Margin MCP Server
使用说明
- 项目简介
- Margin MCP 服务器是 Margin 项目中用于向 LLM 客户端(如 Claude Desktop)提供统一上下文的后台服务。它基于 MCP 规范实现,托管 Margin 的文档、注释、撰写规则等资源,注册并暴露工具以供 LLM 调用,以及定义并渲染 Prompts。服务器通过 JSON-RPC 与客户端通信,支持通过 Stdio 传输(默认实现),并提供导出桥接等扩展能力,方便与 Claude 桌面应用的集成。
- 主要功能点
- 资源管理与数据访问:公开 margin 的文档、注释、修订等资源,供 LLM 读取。
- 工具注册与执行:提供多种工具,LLM 可以通过工具接口读取数据、创建高亮、添加注释、处理写作改动等。
- Prompts/模板渲染:定义并渲染用于与 LLM 互动的 Prompt 模板,支持对话式交互和场景化指令。
- 与 Claude Desktop 的集成:包含导出桥接器,支持将注释等数据推送给 Claude,并通过 margin_wait_for_export 等工具接收客户端导出的数据。
- 多传输协议支持:核心实现以 stdio 为传输,后续可扩展为 SSE/WebSocket 等。
- 安装与运行步骤
- 确保开发环境中具备 Node.js 及相关依赖(Margin 官方文档推荐 Node.js 22+,并安装项目依赖)。
- 构建/安装 MCP 服务器组件(仓库中 mcp 工作区包含服务器实现,入口脚本带有 Node Shebang,支持直接执行)。
- 通过 Margin 应用设置与 Claude Desktop 的连接。Margin 的设置界面有“Connect to Claude Desktop”选项,配置会写入你系统的 Claude Desktop 配置路径(示例:~/Library/Application Support/Claude/claude_desktop_config.json)。
- 如需手动测试服务器,请在 Margin 项目根目录下运行 MCP 服务器入口(通常执行 mcp/dist/index.js 或等效打包后的入口),服务器启动后会输出配置状态并监听客户端连接。
- 若需要接入导出桥接,请确保 Claude Desktop 能通过 127.0.0.1:24784 与 Margin 的导出桥接通信,Margin 会使用 margin_wait_for_export、margin_highlight_by_text 等工具进行数据导出与推送。
- 服务器配置(供 MCP 客户端使用的 JSON 配置示例) NOTE: 该配置用于 MCP 客户端在本地启动并连接服务器;实际路径可按你的系统调整。字段含义见注释。 { "serverName": "margin", // MCP 服务器在客户端侧的标识名称 "command": "node", // 启动服务器的执行命令 "args": ["/path/to/margin/mcp/dist/index.js"], // 服务器入口脚本路径(相对或绝对路径) "transport": "stdio", // 传输协议:标准输入输出(当前实现) "workingDirectory": "/path/to/margin", // 服务器工作目录(可选) "notes": "MCP 服务器基于 Margin 的 MCP 实现,入口为 mcp/dist/index.js;请确保入口路径正确且服务器可被客户端进程调用。" }
- 基本使用方法
- 启动并连接
- 在 Margin 应用中使用“Connect to Claude Desktop”完成配置,客户端会自动启动并连接到 Margin 的 MCP 服务器。
- 如需手动启动,请使用客户端指定的启动命令与参数,确保传输通道为 stdio。
- 调用与交互
- 客户端通过 JSON-RPC 请求向 MCP 服务器请求资源、调用工具、获取 Prompts 等。
- MCP 服务器返回 JSON-RPC 响应或通知,供 LLM 客户端处理。
- 数据工作流
- Margin 资源(文档、注释、规则、导出内容)被暴露给 LLM 使用;工具允许 LLM 触发 Margin 的写入或查询操作;Prompts 提供引导式交互与上下文信息。
- 启动并连接
- 注意事项
- 该实现包含多种工具与 Prompts、导出桥接等功能,需在受控的本地环境中使用,避免将本地数据库暴露给外部网络。
- 确保 Claude Desktop 的配置路径及本地端口(如 24784)可访问,且导出桥接端口未被占用。