使用说明
项目简介
nabchan-mcp-server 是一个基于 Model Context Protocol (MCP) 构建的服务器,专门用于提供 Nablarch 框架的文档内容。它通过预先构建的文档索引,支持用户通过关键词搜索 Nablarch 文档,并能根据 URL 读取文档的 Markdown 格式内容。此服务器旨在作为 LLM 应用的后端,使其能够理解和利用 Nablarch 框架的文档信息。
主要功能点
- 文档搜索: 允许用户通过关键词搜索 Nablarch 框架的文档,返回匹配文档的标题、URL 和概要信息。
- 文档读取: 根据文档 URL,返回 Nablarch 文档的 Markdown 格式内容,方便 LLM 理解和处理。
- MCP 协议支持: 遵循 MCP 协议标准,可以与任何兼容 MCP 协议的客户端进行通信。
- 多种传输协议支持: 支持 Stdio 和 SSE 传输协议,可以根据客户端需求灵活配置。
安装步骤
-
环境准备:
- 确保已安装 Python 3.11 或更高版本。
- 推荐使用 uv 包管理器加速 Python 包的安装。
- 确保已安装 Git。
- 可选:安装 Docker 用于快速启动体验。
-
克隆仓库:
git clone https://github.com/backpaper0/nabchan-mcp-server cd nabchan-mcp-server git submodule init git submodule update -
构建索引: 首次运行服务器前,需要构建 Nablarch 文档的索引。执行以下命令:
uv run -m tools.build_index这个过程会下载 Nablarch 文档并进行索引构建,可能需要一些时间。
服务器配置
MCP 客户端需要配置服务器的启动命令才能连接 nabchan-mcp-server。以下是使用 'command' 和 'args' 配置服务器连接的 JSON 示例,适用于大多数 MCP 客户端(例如 VSCode 的 MCP 客户端配置):
{ "servers": { "nablarch-document": { "command": "uv", "args": [ "run", "-m", "nabchan_mcp_server.main" ] } } }
参数说明:
- '"servers"': 定义 MCP 服务器的配置。
- '"nablarch-document"': 为该服务器连接自定义的名称,客户端使用此名称引用服务器。
- '"command"': 启动服务器的命令,这里使用 'uv run' 运行 Python 模块。
- '"args"': 传递给 'uv run' 命令的参数列表:
- '"run"': 'uv run' 的子命令,用于运行 Python 代码。
- '"-m"': 'uv run' 的参数,表示运行模块。
- '"nabchan_mcp_server.main"': 要运行的 Python 模块,即服务器主程序。
如果需要使用 SSE 传输协议,并且预先启动服务器,可以使用以下配置(需要先手动启动服务器,见基本使用方法):
{ "servers": { "nablarch-document": { "type": "sse", "url": "http://localhost:8000/sse" } } }
参数说明:
- '"type"': 指定传输协议类型为 'sse' (Server-Sent Events)。
- '"url"': SSE 服务器的 URL 地址,默认为 'http://localhost:8000/sse'。
基本使用方法
-
启动服务器:
- 使用 Stdio 传输 (默认): MCP 客户端如果配置了 'command' 和 'args',通常会在需要时自动启动服务器。无需手动启动。
- 使用 SSE 传输:
如果 MCP 客户端配置了 'type: "sse"' 和 'url',则需要 手动启动服务器。在仓库根目录下执行以下命令启动 SSE 服务器:
或者使用 Docker 快速启动 SSE 服务器:uv run -m nabchan_mcp_server.main --transport ssedocker run -p 8000:8000 ghcr.io/backpaper0/nabchan-mcp-server
-
配置 MCP 客户端: 将上述提供的服务器配置 JSON 添加到您的 MCP 客户端配置中。例如,在 VSCode 中,可以添加到 'settings.json' 文件的 '"mcp"' 字段下。
-
使用 LLM 客户端: 启动支持 MCP 协议的 LLM 客户端(如 GitHub Copilot Chat in Agent mode),并向其提问关于 Nablarch 框架的问题。客户端会自动调用 nabchan-mcp-server 提供的工具,检索相关文档信息,并用于生成更准确的回答。
例如,您可以提问:
- "Nablarch 框架的 DI 容器是如何配置的?"
- "Nablarch 如何处理事务?"
- "Nablarch 的 Form 类有什么作用?"
LLM 客户端会利用 nabchan-mcp-server 提供的 'search_document' 和 'read_document' 工具来辅助回答您的问题。
信息
分类
开发者工具