使用说明
- 项目简介
- 该仓库实现了一个 MCP 服务器,能够加载并聚合多种 SSG 适配器的工具与资源,供 LLM 客户端以标准化的方式读取资源、调用工具和获取适配信息。服务器基于 Deno 运行环境,通过 STDIN/STDOUT 以 JSON-RPC 2.0 进行通信,具备初始化、列出工具、执行工具、列出资源以及读取资源等核心能力。
- 主要功能点
- MCP 兼容的请求/响应处理:支持 initialize、tools/list、tools/call、resources/list、resources/read 等核心接口。
- 动态适配器聚合:在启动阶段加载仓库中的各个 SSG 适配器(如 babashka、zola、hakyll 等),聚合它们的工具清单与前置信息。
- 元工具与适配器工具:提供 odd_ssg_list_adapters、odd_ssg_connect 等元工具,以及各个适配器自带的工具,能够通过统一的接口执行外部命令。
- 资源管理:将适配器作为资源暴露,并支持按 URI 读取资源的能力,为 LLM 提供上下文信息与能力清单。
- 会话与连接状态:跟踪已连接的适配器,支持查看连接状态与输出结果。
- 传输与协作模式:通过标准输入输出进行通信,便于管道化部署,亦可扩展支持其他传输通道(如 SSE、WebSocket 等)。
- 安装步骤
- 安装并配置 Deno 环境(确保系统可执行 deno 命令)。
- 获取代码并定位到 noteg-mcp 目录中的服务器入口文件 server.ts。
- 运行服务器(示例,需具备对本地适配器的读取权限): deno run --allow-read noteg-mcp/server.ts
- 服务器启动后,将通过 STDIN/STDOUT 与 MCP 客户端进行通信,客户端发送 JSON-RPC 请求,服务器返回 JSON-RPC 响应。
- 如需集成特定适配器,请确保仓库中包含相应的 adapters,并确保权限与路径可被服务器动态导入。
- 服务器配置(MCP 客户端所需信息,JSON 格式,供启动连接使用)
{
"serverName": "odd-ssg-mcp-server",
"command": ["deno", "run", "--allow-read", "noteg-mcp/server.ts"],
"args": []
// 注:MCP 客户端仅需读取上述字段来启动与服务器的 STDIN/STDOUT 连接,命令与参数用于启动服务器进程。
}
注解:
- serverName: MCP 客户端用于标识目标服务器的名称,与实际启动的进程相对应。
- command: 启动服务器的命令行(不包含实际执行的参数,以便客户端可灵活拼接)。
- args: 额外参数(若无,可留空)。
- 客户端不需要了解服务器的内部实现细节,只需知道如何启动并通过 JSON-RPC 进行交互。
- 基本使用方法
- 启动服务器(如上所述的命令)后,确保服务器正常输出启动信息。
- 初始化协商
- 客户端发送 initialize 请求,服务器返回协议版本、能力 List(工具与资源能力)以及服务器信息。
- 获取工具清单
- 客户端发送 tools/list,请求返回包括元工具 odd_ssg_list_adapters、odd_ssg_connect,以及各适配器的工具清单。
- 连接/执行工具
- 通过 odd_ssg_connect 连接某个适配器(若需要),返回连接结果。
- 使用适配器名和工具名组合成 tool 请求,提交 arguments,获取执行结果文本。
- 资源交互
- 通过 resources/list 获得资源清单(通常以适配器为单位的资源描述)。
- 通过 resources/read 指定 uri 读取资源内容,返回内容文本(通常为 JSON 表示的适配器信息与工具描述)。
- 集成与日志
- 结合 LLM 的上下文需求,将读取的资源文本与工具输出作为上下文注入生成式对话,或在提示中进行动态调用。
- 其他注意事项
- 服务器使用 Deno 的 STDIO 通道进行通信,部署时请确保运行环境对 STDIN/STDOUT 的数据传输无阻塞。
- 适配器模块应实现 SSGAdapter 接口,包含 name、language、description、connect、disconnect、isConnected、tools 等字段,以便 MCP 服务端正确加载与暴露。
信息
分类
AI与计算