codemirror-mcp について
codemirror-mcp は、Web エディターに MCP のリソースメンションとプロンプトコマンドを追加する CodeMirror 拡張です。CodeMirror ベースのエディターに MCP の機能を組み込みたいフロントエンド開発者を対象としています。
主な機能
- 01@resource メンションのオートコンプリート
- 02リソースメンションの装飾とクリック処理
- 03/prompt コマンドのオートコンプリート
- 04カスタマイズ可能なテーマ設定
活用シーン
- 01Web エディターで @ を使って MCP リソースを参照
- 02エディター内で / を使って MCP プロンプトを呼び出す
- 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
コメント
Markdown 対応
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。