mcpField
C
codemirror-mcp

codemirror-mcp

ローカル
marimo-team.github.io開発ツール7913 週間前に更新

codemirror-mcp について

codemirror-mcp は、Web エディターに MCP のリソースメンションとプロンプトコマンドを追加する CodeMirror 拡張です。CodeMirror ベースのエディターに MCP の機能を組み込みたいフロントエンド開発者を対象としています。

主な機能

  1. 01@resource メンションのオートコンプリート
  2. 02リソースメンションの装飾とクリック処理
  3. 03/prompt コマンドのオートコンプリート
  4. 04カスタマイズ可能なテーマ設定

活用シーン

  1. 01Web エディターで @ を使って MCP リソースを参照
  2. 02エディター内で / を使って MCP プロンプトを呼び出す
  3. 03CodeMirror ベースのアプリケーションに MCP の操作を組み込む

MCP 対応

本プロジェクトは MCP クライアント側のコンポーネントであり、MCP SDK の WebSocket などのトランスポートを通じて MCP サーバーに接続し、そのリソースやプロンプトをエディターで利用します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

codemirror-mcp

リソースへのメンションとプロンプトコマンドに対応する Model Context Protocol(MCP)を実装した CodeMirror 拡張機能です。

機能

  • リソース補完:@resource メンションのオートコンプリート
  • リソースの装飾:クリック処理に対応した @resource メンションの視覚的なスタイル設定
  • プロンプト補完:/prompt コマンドのオートコンプリート
  • テーマのサポート:カスタマイズ可能なスタイル設定

インストール

npm install @marimo-team/codemirror-mcp @modelcontextprotocol/sdk
# or
pnpm add @marimo-team/codemirror-mcp @modelcontextprotocol/sdk
ピア依存関係

このモジュールには、以下のピア依存関係が必要です。

  • @codemirror/view
  • @codemirror/state
  • @modelcontextprotocol/sdk

使い方

import { WebSocketClientTransport } from "@modelcontextprotocol/sdk/client/websocket.js";
import { mcpExtension, extractResources } from '@marimo-team/codemirror-mcp';
import { EditorView } from '@codemirror/view';

const transport = new WebSocketClientTransport(new URL('ws://localhost:8080'));

const view = new EditorView({
  extensions: [
    // ... other extensions

    mcpExtension({
      // Required options
      transport: transport,

      // Optional options
      logger: console,
      clientOptions: {
        name: 'your-client',
        version: '1.0.0'
      },
      onResourceClick: (resource) => {
        // Open resource
        // e.g. open in a tab, etc.
      },
    }),

    // Handle submit
    keymap.of([
      {
        key: 'Enter',
        run: () => {
          const resources = extractResources(view);
          const formattedResources = resources
            .map(
              ({ resource }) =>
                `${resource.uri} (${resource.type}): ${resource.description || resource.name}`
            )
            .join('\n');
          const prompt = `${view.state.doc.toString()}\n\nResources:\n${formattedResources}`;
          // ... submit prompt to AI server
          // const response = await generateText(prompt);
        },
      },
    ]),
  ],
  parent: document.querySelector('#editor'),
});

リソース

  • リソースを参照するには @resource-uri 構文を使用します
  • リソースは視覚的に装飾され、クリックできます
  • リソースの操作に対するクリック処理
  • ホバー時のツールチップにリソースの詳細を表示します
  • カスタマイズ可能なテーマ

プロンプト

  • プロンプトコマンドには /command 構文を使用します
  • 使用可能なプロンプトのオートコンプリート

開発

# Install dependencies
pnpm install

# Run tests
pnpm test

# Run demo
pnpm dev

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。