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 客户端根据能力进行协作。

服务器信息