项目简介

Dependency Context 是一个 MCP (Model Context Protocol) 服务器,旨在为大型语言模型(LLM)客户端(如支持MCP的AI编码助手或编辑器)提供项目代码库中使用的依赖项的文档信息。它通过解析项目的依赖文件(如 'package.json'、'requirements.txt' 或自定义的 'dependency-context.json' 文件),查找对应的开源仓库(主要支持 GitHub),抓取其文档(Markdown 文件),并创建可供语义搜索的矢量索引。

通过将 Dependency Context 集成到支持 MCP 的开发环境中,AI 助手可以获得关于项目所用库和框架的准确、实时的上下文信息,从而提供更精确的代码补全、解释、调试帮助和用法示例。

该项目还提供一个命令行工具模式,允许开发者直接下载依赖项的原始文档文件。

主要功能点

  • 依赖解析: 支持从 'package.json' (Node.js), 'requirements.txt' (Python) 以及自定义 'dependency-context.json' 文件中自动识别项目依赖。
  • 仓库查找: 自动识别依赖项对应的 GitHub 仓库。
  • 文档抓取: 从找到的仓库中克隆代码并提取 Markdown 格式的文档文件。
  • 矢量索引: 使用本地模型(默认 Xenova/all-MiniLM-L6-v2)为文档内容创建矢量嵌入,构建语义搜索索引。
  • MCP 工具:
    • 'InitializeDependencyIndex':分析项目依赖并构建文档索引。
    • 'searchDependencyDocs':对已索引的文档执行语义搜索,返回相关代码片段及来源信息。
  • 配置灵活: 可通过环境变量 ('.env' 文件、系统环境变量、MCP参数) 配置 GitHub Token、嵌入模型、chunk 大小等。
  • 多种传输协议: 支持 Stdio 和 HTTP Streaming (SSE) 协议。
  • 命令行模式: 提供独立的 CLI 命令用于直接下载依赖文档文件。

安装步骤

Dependency Context 可以作为一个独立的 Node.js 应用安装。

  1. 确保已安装 Node.js 和 npm/yarn。
  2. 全局安装:
    npm install -g dependency-context
    # 或使用 yarn:
    # yarn global add dependency-context
  3. 可选(推荐): 创建一个 GitHub 个人访问令牌 (PAT),并在环境变量中设置 'GITHUB_TOKEN',以提高 GitHub API 请求的速率限制。

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

Dependency Context 服务器通常不是直接运行的,而是由支持 MCP 的客户端(如某些编辑器或 AI 助手)根据配置按需启动。以下是客户端配置 MCP 服务器时所需的核心信息结构和参数说明:

客户端的 MCP 配置通常是一个 JSON 对象,其中包含 'mcpServers' 部分。在该部分中,您需要为 Dependency Context 服务器添加一个条目,例如命名为 '"dependency-context"'。该条目应包含以下关键配置:

  • '"command"': 启动 Dependency Context 服务器的可执行命令。
    • 如果全局安装了 'dependency-context',可以直接使用 '"dependency-context"'。
    • 也可以使用 'npx' 临时执行,例如 '"npx"'。
  • '"args"': 传递给命令的参数数组。
    • 如果使用 'npx',参数通常为 '["-y", "--package=dependency-context", "dependency-context"]'。
    • 如果需要启动 HTTP Streaming 模式,可能需要额外参数,例如 '["--http-stream"]'。
  • '"env"': 一个可选的 JSON 对象,用于为服务器进程设置环境变量。
    • 可以包含 '"GITHUB_TOKEN": "您的GitHub令牌"' (用于提高API限制)。
    • 可以包含 '"MODEL_NAME": "嵌入模型的名称"' (指定使用的嵌入模型)。
    • 可以包含 '"DEBUG": "true"' 或 '"false"' (开启或关闭调试日志)。
    • 可以包含 '"MIN_CHUNK_SIZE": "最小文档块大小"'、'"MAX_CHUNK_SIZE": "最大文档块大小"'、'"CHUNKS_RETURNED": "搜索结果返回块数"' 等数值参数。

注意: 具体配置方式和位置取决于您使用的 MCP 客户端软件(例如 Cursor 编辑器)。请查阅您客户端软件的文档以获取详细的 MCP 配置指南。

基本使用方法(通过支持 MCP 的 AI 客户端)

  1. 配置并启用 MCP 服务器: 在您的 MCP 客户端(如编辑器)中按照上述说明配置 Dependency Context 服务器,并确保其已启用。
  2. 触发索引初始化: 在您的项目中,通常需要通过向 AI 助手发送指令来初始化依赖项索引。例如,在 Agent 模式下,您可以尝试输入类似 '"Can you initialize dependency-context?"' 或 '"请初始化项目依赖文档索引"' 的提示词。服务器会解析项目依赖、抓取文档并创建索引。这个过程可能需要一些时间。
  3. 提问获取上下文: 一旦索引建立完成,当您向 AI 助手提问关于项目代码中使用的依赖项的用法、功能或调试问题时,AI 助手将能够通过 MCP 调用 'searchDependencyDocs' 工具,利用 Dependency Context 提供的文档上下文来增强其回答的准确性。您无需直接调用搜索工具,AI 会在相关时自动使用它。

命令行模式(直接下载文档)

如果您只想下载依赖文档而不使用矢量搜索或 MCP 服务器:

  1. 全局安装 Dependency Context (见安装步骤)。
  2. 在项目目录下运行:
    dependency-context download
    这会将当前项目依赖的文档下载到项目根目录下的 'dependency-context' 文件夹中。
  3. 指定项目路径:
    dependency-context download /path/to/your/project

信息

分类

开发者工具