关于 codemirror-mcp
codemirror-mcp 是一个 CodeMirror 扩展,为编辑器实现 MCP 的资源引用与提示词命令功能。适合在 Web 编辑器中集成 MCP 能力的前端开发者使用。
主要功能
- 01@resource 引用的自动补全
- 02资源引用的可视化样式与点击处理
- 03/prompt 命令的自动补全
- 04支持自定义主题样式
适用场景
- 01在 Web 编辑器中通过 @ 引用 MCP 资源
- 02在编辑器中通过 / 调用 MCP 提示词
- 03在基于 CodeMirror 的应用中嵌入 MCP 交互
MCP 相关
该项目是一个 MCP 客户端侧组件,通过 MCP SDK 的传输层(如 WebSocket)连接 MCP 服务,并在编辑器中使用其资源与提示词。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
暂未收录安装方式
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
还没有获取到工具列表
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
codemirror-mcp
一个 CodeMirror 扩展,实现了 Model Context Protocol(MCP),用于资源提及和提示词命令。
功能
- 资源补全:为
@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 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。