amdWiki MCP Server
使用说明(Markdown 要点)
- 项目简介
- 本仓库实现了一个基于 Model Context Protocol (MCP) 的后端服务器,核心职责是以标准化的 JSON-RPC 方式向 LLM 客户端暴露并管理资源、工具、以及 prompts 等能力,帮助 LLM 在对话中直接访问并操作 wiki 内容。
- 主要功能点
- MCP 核心能力曝光:通过统一的工具集提供对页面查询、检索、元数据、附件、分类等能力的访问。
- 资源与内容访问:通过 WikiEngine 提供对页面、元数据、版本、关键词、分类等信息的查询。
- 工具注册与执行:向客户端注册多组工具(Tools),如 amdwiki_query_page、amdwiki_list_pages、amdwiki_search、amdwiki_get_metadata、amdwiki_get_attachments、amdwiki_upload_attachment 等等,支持参数化输入并返回标准化的 JSON-RPC 响应。
- 与后端的安全对接与会话上下文:服务器在执行工具时会初始化 WikiEngine,并可在工具实现中利用页面管理、搜索、元数据等能力。
- 传输介质支持(示例实现):当前实现以 StdioServerTransport 为传输层,便于通过标准输入输出的方式与客户端通信;理论上也可扩展为 SSE、WebSocket 等传输。
- 完整的工具输入/输出 Schemas:为每个 Tool 提供明确的输入 Schema,确保客户端与服务器之间的输入输出结构统一。
- 安装步骤
- 1)安装依赖并构建:通过常规 TypeScript 构建流程将 TypeScript 源代码编译为可执行的 JS(dist/ 目录)。
- 2)构建 MCP 服务器:将 mcp-server.ts 构建输出为 dist/mcp-server.js。
- 3)启动 MCP 服务器:使用 Node 运行 dist/mcp-server.js,服务器端将通过标准输入输出(stdio)方式对接。
- 4)连接客户端:MCP 客户端按 MCP 规范配置服务器信息(名称、启动命令与参数等),通过 JSON-RPC 与 MCP 服务器通信。
- 服务器配置
说明:MCP 客户端需要的配置信息通常包含服务器名称、启动命令和参数等,用于在客户端侧建立与 MCP 服务器的连接。示例配置如下(仅作示意,实际路径与环境需按使用场景调整):
{
"serverName": "amdwiki-mcp-server",
"command": "node",
"args": ["dist/mcp-server.js"],
"cwd": "/path/to/amdWiki"
}
备注:
- serverName 用于客户端内部标识该 MCP 服务器的实例。
- command 与 args 指定启动 MCP 服务器的命令及参数,以在客户端连接阶段启动服务。
- cwd 为服务器工作目录,通常指向仓库根目录。
- MCP 客户端不需要在此直接执行服务器端代码,仅需启动命令并通过 MCP 的协议与服务器通信。
- 基本使用方法
- 启动与连接:在服务端构建完成后,通过 node dist/mcp-server.js 启动 MCP 服务器。MCP 客户端根据配置在后台启动与连接。
- 请求/响应流程:客户端向 MCP 服务器发送 JSON-RPC 请求,包含方法名、参数以及唯一 id,服务器返回对应的 JSON-RPC 响应或错误信息。
- 功能调用方式:客户端通过工具名称(如 amdwiki_query_page、amdwiki_search 等)发起 Tool 调用,请求参数与返回内容遵循各 Tool 的定义的输入/输出结构。
- 会话与能力声明:服务器端在实现中声明能力、注册工具、并对不同请求进行分发,便于 LLM 客户端根据能力进行协作。