Frontmatter Matters MCP Server
使用说明内容(Markdown格式)
- 项目简介
- 这是一个用 Rust 实现的 MCP 服务器端,用于向 LLM 客户端提供标准化的上下文信息与功能,如资源访问、工具执行和提示模板渲染。服务器读取并管理一个索引(SQLite 数据库 .fmm.db),通过 MCP 规定的 JSON-RPC 接口暴露多种工具(如 fmm_read_symbol、fmm_dependency_graph、fmm_list_exports 等),并提供对话会话与能力声明。
- 主要功能点
- MCP 核心协议实现:处理 MCP 风格的请求与响应,使用 JSON-RPC 进行通信。
- 资源与工具托管:提供对代码资源、符号导出、依赖图、文件大纲等资源的访问,以及对多种工具的注册与执行。
- Prompt 模板与渲染:集成对 Prompt 模板的定义与渲染支持,用于 LLM 交互模式定制。
- 索引与查询能力:基于 SQLite 索引,提供快速的导出查找、依赖分析、符号定位等能力。
- 会话与能力声明:服务器端维护会话上下文并声明服务器能力,适配多种传输协议(如 Stdio、SSE、WebSocket 等扩展)。
- 与客户端的 JSON-RPC 通信:通过标准化的请求/响应格式实现 MCP 客户端的调用与通知。
- 安装步骤
- 使用 Rust 构建与运行:
- 确保已安装 Rust 工具链(rustc、cargo)。
- 在仓库根目录执行:cargo build --release
- 启动 MCP 服务器:在构建产物就绪后执行二进制,使用子命令“mcp”启动 MCP 服务器,例如:
- fmm mcp
- 或者直接通过 Cargo 运行:cargo run --bin fmm mcp
- 使用 Rust 构建与运行:
- 服务器配置 MCP 客户端通常需要一份配置来指向 MCP 服务器以建立连接。以下为可选的客户端连接配置示例(JSON 格式,实际客户端不需要执行代码,仅用于描述连接信息): { "serverName": "fmm", "command": "fmm", // 运行 MCP 服务器的启动命令(可替换为已安装的二进制名,如直接使用“fmm”) "args": ["mcp"], // 启动 MCP 服务所需参数,等价于执行“fmm mcp” "description": "FMM MCP 服务器,用于为 LLM 提供资源、工具与提示上下文", "notes": "该配置用于 MCP 客户端连接设置,实际运行依赖具体部署环境与二进制名称。" }
- 基本使用方法
- 启动服务器后,客户端可通过 MCP 的 JSON-RPC 接口发送请求(如读取资源、执行工具、获取 Prompt)。
- 常用工具包括:fmm_lookup_export、fmm_read_symbol、fmm_dependency_graph、fmm_file_outline、fmm_list_exports、fmm_search、fmm_list_files、fmm_glossary 等。
- 客户端可通过不同传输协议接入(如 Stdio、SSE、WebSocket),按需实现。