项目简介

本项目是 Deepwiki 的一个非官方 MCP (Model Context Protocol) 服务器实现。它通过 MCP 协议暴露了一个名为 'deepwiki.fetch' 的工具,允许支持 MCP 的大型语言模型 (LLM) 客户端按需获取 Deepwiki 仓库的内容,并将其结构化或聚合为 Markdown 格式。这使得 LLM 能够方便地访问 Deepwiki 上的知识库。

主要功能点

  • Deepwiki 内容获取: 通过指定 Deepwiki URL,按需抓取仓库页面内容。
  • HTML 到 Markdown 转换: 将抓取到的 Deepwiki 页面 HTML 内容转换为干净、易读的 Markdown 格式。
  • 领域安全: 仅处理 'deepwiki.com' 域名下的 URL,防止意外抓取其他网站。
  • 内容净化: 自动移除页面中的头部、底部、导航、脚本、广告等非内容元素。
  • 链接重写: 调整内部链接,使其在 Markdown 输出中正确工作(如转换为相对路径或锚点)。
  • 多种输出模式: 支持将整个仓库内容聚合为一个长 Markdown 文档,或按页面返回结构化的 Markdown 数据列表。
  • 可控的抓取深度和并发: 可配置最大抓取深度和并发请求数,优化性能。

安装步骤

  1. 确保 Node.js 已安装: 本项目需要 Node.js 环境。
  2. 克隆仓库:
    git clone https://github.com/regenrek/deepwiki-mcp.git
    cd deepwiki-mcp
  3. 安装依赖:
    npm install
  4. 构建项目:
    npm run build

这将生成可执行文件。

服务器配置 (供 MCP 客户端使用)

MCP 客户端需要知道如何启动这个 Deepwiki MCP 服务器进程。您需要在 MCP 客户端的配置中添加一个服务器条目。配置通常是 JSON 格式,指定服务器的名称、启动命令和参数。

例如,典型的配置可能如下(具体配置方式取决于您的 MCP 客户端):

{
  "mcpServers": {
    "mcp-deepwiki": { // 服务器的唯一名称,您可以自定义
      "command": "npx", // 启动命令
      "args": ["-y", "mcp-deepwiki"] // 启动参数:使用 npx 执行全局安装的 mcp-deepwiki 命令
    }
  }
}

或者,如果您想直接从本地构建的代码启动:

{
  "mcpServers": {
    "mcp-deepwiki-local": { // 另一个名称
      "command": "node", // 启动命令
      "args": ["/path/to/your/cloned/repo/bin/cli.mjs"] // 启动参数:直接执行本地构建的 CLI 脚本
    }
  }
}

请将上述配置添加到您的 MCP 客户端的相应位置。客户端会根据此配置在需要时自动启动服务器。

基本使用方法

一旦在 MCP 客户端中配置并连接成功,LLM 就可以通过调用服务器暴露的工具来使用其功能。对于本项目,核心功能通过 'deepwiki.fetch' 工具提供。

LLM 客户端会向服务器发送一个调用 'deepwiki.fetch' 工具的请求,其中包含以下参数:

  • 'url' (必填): 要抓取的 Deepwiki 仓库的起始 URL (e.g., 'https://deepwiki.com/user/repo')。支持一些简写格式。
  • 'mode' (可选): 输出模式,可以是 '"aggregate"' (默认,所有内容合并为一个 Markdown) 或 '"pages"' (按页面返回结构化数据)。
  • 'maxDepth' (可选): 最大抓取深度 (默认 1,即只抓取首页及其一级子页面)。

服务器接收到请求后,会执行抓取和转换,并将结果(包括 Markdown 内容、总字节数、耗时等)以结构化的格式返回给 LLM 客户端。如果发生错误(如域名不被允许、验证失败),也会返回相应的错误信息。

LLM 客户端根据服务器返回的数据,将其整合到对话或任务中。

信息

分类

网页与API