VMark MCP 服务器
使用说明
- 项目简介
- 这是一个完整的 MCP 服务器实现,围绕 Model Context Protocol(MCP)设计,能够向 LLM 客户端提供“资源托管与访问”“工具注册与执行”“提示/模板渲染”等_CONTEXT 服务。服务器通过 WebSocket、Stdio 等形式与客户端通信,具备会话管理、能力声明,以及对多种传输协议的支持。
- 代码分布在多个模块,核心包含:资源与工具的注册、JSON-RPC 风格的请求/响应处理、以及一个可运行的桥接服务(WebSocket/Sidecar)来连接 AI 客户端。
- 主要功能点
- MCP 核心能力
- 注册与暴露 Tools(工具)与 Resources(资源),以及对外提供 Tool 调用和 Resource 读取接口
- 支持前端/LLM 客户端通过 JSON-RPC 风格的消息进行调用,服务器返回结构化的 ToolCallResult 与 ResourceReadResult
- 桥接与侧车
- 提供 WebSocket 桥(WebSocketBridge)以连接 AI 侧车;也包含用于本地侧车的启动/健康检查逻辑
- 能够将客户端请求转发给 MCP 服务器,随后返回统一格式的响应
- 资源与工具的扩展性
- 通过模块化工具包注册(document, selection, editor, formatting, blocks, lists, tables, workspace 等等)
- 同时提供 AI-设计工具集(协议、结构、变换、段落等)以扩展 MCP 的能力覆盖范围
- 本地化与稳定性
- 提供原子性写入、端口自发现、跨进程通信的可靠实现
- 会话与多窗口协调(热退出、恢复等),确保在多窗口场景下的一致性
- MCP 核心能力
- 安装与运行步骤
- 依赖环境
- Node.js、pnpm(前端部分)、Rust 工具链(若使用 Rust 相关后端/命令),以及必要的构建工具(如 esbuild、pkg 等)
- 构建与启动(简要概览)
- 根据仓库中的说明,在本地克隆后进入 vmark-mcp-server 相关子目录,执行相应的构建脚本,将 MCP 侧车打包为独立可执行文件
- 启动后,MCP 服务器通过桥接与 VMark 进行通信,侧车会在启动时自动从 Bootstrap/端口文件发现端口号
- MCP 客户端配置(示例说明,实际不需要客户端代码即可理解)
- 客户端需要知道如何启动 MCP 服务器(工作路径、可执行文件位置)以及启动参数。以下为示例配置字段含义(请以实际环境路径替换具体值):
{
"serverName": "vmark",
"command": "/path/to/vmark-mcp-server", // MCP 服务器可执行文件的完整路径
"args": [] // 启动参数,如需健康检查等可放入此处
}
说明:
- serverName:MCP 服务器的名称,客户端在日志或界面上用于标识来源
- command:启动 MCP 服务器的可执行文件或启动脚本的绝对路径
- args:向服务器传递的启动参数(如需稳定启动时传递的标识或模式,可在此配置)
- 客户端需要知道如何启动 MCP 服务器(工作路径、可执行文件位置)以及启动参数。以下为示例配置字段含义(请以实际环境路径替换具体值):
{
"serverName": "vmark",
"command": "/path/to/vmark-mcp-server", // MCP 服务器可执行文件的完整路径
"args": [] // 启动参数,如需健康检查等可放入此处
}
说明:
- 依赖环境
- 基本使用方法
- 运行前准备
- 确保本机有适用的 MCP 客户端(Claude/Codex/Gemini 等)可连接
- 将服务器端可执行文件放置于可访问路径,确保对运行用户可执行
- 启动与对接
- 启动 MCP 服务器可执行文件,服务器会自动在本地端口等待并通过 Bootstrap/端口文件暴露端口给客户端
- 在 AI 客户端的设置中配置服务器启动命令与参数(上面的示例 JSON 即为参考)
- 常见工作流
- 通过 MCP 客户端向服务器发送资源读取、工具调用、以及 Prompts 获取等请求
- 服务器返回标准化的 ToolCallResult/ResourceReadResult,LLM 可以基于此进行上下文拼接与功能调用
- 其他特性
- 支持多窗口/多工作区场景、会话管理、健康检查、以及与 VMark 的热退出/恢复集成
- 运行前准备