使用说明

  • 项目简介
    • 该仓库实现了一个 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 等)。
  • 安装步骤
    1. 安装并配置 Deno 环境(确保系统可执行 deno 命令)。
    2. 获取代码并定位到 noteg-mcp 目录中的服务器入口文件 server.ts。
    3. 运行服务器(示例,需具备对本地适配器的读取权限): deno run --allow-read noteg-mcp/server.ts
    4. 服务器启动后,将通过 STDIN/STDOUT 与 MCP 客户端进行通信,客户端发送 JSON-RPC 请求,服务器返回 JSON-RPC 响应。
    5. 如需集成特定适配器,请确保仓库中包含相应的 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 进行交互。
  • 基本使用方法
    1. 启动服务器(如上所述的命令)后,确保服务器正常输出启动信息。
    2. 初始化协商
      • 客户端发送 initialize 请求,服务器返回协议版本、能力 List(工具与资源能力)以及服务器信息。
    3. 获取工具清单
      • 客户端发送 tools/list,请求返回包括元工具 odd_ssg_list_adapters、odd_ssg_connect,以及各适配器的工具清单。
    4. 连接/执行工具
      • 通过 odd_ssg_connect 连接某个适配器(若需要),返回连接结果。
      • 使用适配器名和工具名组合成 tool 请求,提交 arguments,获取执行结果文本。
    5. 资源交互
      • 通过 resources/list 获得资源清单(通常以适配器为单位的资源描述)。
      • 通过 resources/read 指定 uri 读取资源内容,返回内容文本(通常为 JSON 表示的适配器信息与工具描述)。
    6. 集成与日志
      • 结合 LLM 的上下文需求,将读取的资源文本与工具输出作为上下文注入生成式对话,或在提示中进行动态调用。
  • 其他注意事项
    • 服务器使用 Deno 的 STDIO 通道进行通信,部署时请确保运行环境对 STDIN/STDOUT 的数据传输无阻塞。
    • 适配器模块应实现 SSGAdapter 接口,包含 name、language、description、connect、disconnect、isConnected、tools 等字段,以便 MCP 服务端正确加载与暴露。

信息

分类

AI与计算