使用说明

项目简介

docs-server 是一个基于 Model Context Protocol (MCP) 的文档服务器,它允许你将文档资源(以 llms.txt 格式定义)发布为 MCP 服务器,以便支持 MCP 协议的客户端(如 LLM 应用)可以访问这些文档。该服务器主要用于为大型语言模型提供结构化的文档数据,作为其上下文信息来源。

主要功能点

  • 文档资源托管: 支持通过 llms.txt 文件定义和托管文档资源,允许服务器管理员轻松管理可被 LLM 访问的文档集合。
  • 多种配置方式: 支持通过 YAML、JSON 配置文件或直接在命令行中指定 llms.txt 文件的 URL 来配置文档来源,灵活适应不同的部署场景。
  • 文档内容获取: 提供 'fetch_docs' 工具,允许 MCP 客户端通过 URL 获取指定文档的内容,并以 Markdown 格式返回。
  • 文档源列表: 提供 'list_doc_sources' 工具,允许 MCP 客户端获取所有可用的文档资源列表,方便客户端进行资源发现和选择。
  • 支持多种传输协议: 支持 Stdio, HTTP, WebSocket 等多种 MCP 服务器常用的传输协议。

安装步骤

  1. 安装 Python 包: 确保你的系统已安装 Python 和 pip。然后在命令行中执行以下命令安装 'mcp-mcpdoc' 包:
    pip install mcp-mcpdoc

服务器配置

MCP 客户端需要配置连接到 docs-server 的信息。以下是配置示例 (JSON 格式):

{
  "serverName": "llms-txt",
  "command": "mcpdoc",
  "args": [
    "--urls",
    "文档源名称1:文档源URL1",
    "文档源名称2:文档源URL2"
  ],
  "transport": "stdio"
}

配置参数说明:

  • 'serverName': 服务器名称,固定为 'llms-txt',在服务器代码中定义。
  • 'command': 启动服务器的命令,这里是 'mcpdoc',即安装后可用的命令行工具。
  • 'args': 传递给 'mcpdoc' 命令的参数,用于配置文档源和其他选项。
    • '--urls': 指定文档源 URL 列表。可以同时指定多个 URL。
      • '文档源名称1:文档源URL1': 指定一个文档源,格式为 '名称:URL'。名称是可选的,用于在 'list_doc_sources' 工具中标识文档源。URL 指向 llms.txt 文件的网络地址。
      • 例如: 'LangGraph:https://langchain-ai.github.io/langgraph/llms.txt' 表示名称为 "LangGraph",URL 为 'https://langchain-ai.github.io/langgraph/llms.txt' 的文档源。
    • 其他可选参数 (可以添加到 'args' 数组中):
      • '--yaml <YAML配置文件路径>': 使用 YAML 配置文件指定文档源。
      • '--json <JSON配置文件路径>': 使用 JSON 配置文件指定文档源。
      • '--follow-redirects': 如果需要跟随 HTTP 重定向,请添加此参数。
      • '--timeout <秒数>': 设置 HTTP 请求超时时间,默认为 10 秒。
      • '--transport <传输协议>': 指定 MCP 服务器使用的传输协议,默认为 'stdio'。 可选值包括 'stdio', 'http', 'websocket'。

配置示例 (使用 YAML 配置文件):

假设你有一个名为 'config.yaml' 的 YAML 配置文件,内容如下:

- name: LangGraph Python
  llms_txt: https://langchain-ai.github.io/langgraph/llms.txt

则 MCP 客户端的配置可以修改为:

{
  "serverName": "llms-txt",
  "command": "mcpdoc",
  "args": [
    "--yaml",
    "config.yaml"
  ],
  "transport": "stdio"
}

确保 'config.yaml' 文件与 'mcpdoc' 命令在同一目录下,或者提供正确的路径。

基本使用方法

  1. 启动服务器: MCP 客户端根据上述配置启动 'docs-server'。
  2. 客户端请求: MCP 客户端可以向 'docs-server' 发送 MCP 请求,调用以下工具 (tools):
    • 'list_doc_sources()': 获取所有可用的文档源列表。客户端应首先调用此工具,了解有哪些文档资源可以访问。
    • 'fetch_docs(url: str)': 根据提供的 'url' 获取文档内容。'url' 必须是 'list_doc_sources()' 返回的文档源 URL 或其子路径。服务器会验证 URL 的有效性,确保其属于配置的文档源域名下。

使用流程示例:

  1. MCP 客户端调用 'list_doc_sources()' 获取文档源列表。
  2. 客户端解析返回的列表,选择合适的文档源 URL。
  3. 客户端调用 'fetch_docs(url="选定的文档源URL/具体文档路径")' 获取文档内容。
  4. 服务器返回 Markdown 格式的文档内容。

通过以上步骤,MCP 客户端可以利用 'docs-server' 提供的文档资源作为上下文信息,增强 LLM 应用的功能。

信息

分类

数据库与文件