这是一个实现了Model Context Protocol(MCP)的CodeMirror扩展,用于资源提及和提示命令。
@resource提及@resource提及进行视觉样式处理并支持点击操作/prompt命令npm install @marimo-team/codemirror-mcp @modelcontextprotocol/sdk
# 或
pnpm add @marimo-team/codemirror-mcp @modelcontextprotocol/sdk
此模块需要以下同级依赖:
@codemirror/view@codemirror/state@modelcontextprotocol/sdkimport { 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: [
// ... 其他扩展
mcpExtension({
// 必需选项
transport: transport,
// 可选选项
logger: console,
clientOptions: {
name: 'your-client',
version: '1.0.0'
},
onResourceClick: (resource) => {
// 打开资源
// 例如,在新标签页中打开等
},
}),
// 处理提交
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}`;
// ... 将提示提交到AI服务器
// const response = await generateText(prompt);
},
},
]),
],
parent: document.querySelector('#editor'),
});
@resource-uri语法引用资源/command语法进行提示命令# 安装依赖
pnpm install
# 运行测试
pnpm test
# 运行演示
pnpm dev
MIT