项目简介

Dolphin MCP知识库服务器('dolphin-mcp')是一个基于Model Context Protocol (MCP) 构建的后端服务,旨在将Dolphin语义代码搜索功能集成到支持MCP协议的LLM客户端(如Continue.dev、Claude Desktop等)。它作为一个桥梁,将Dolphin API提供的强大代码和文档搜索能力,以标准化的工具形式暴露给大型语言模型,从而增强LLM在代码理解、生成和辅助开发方面的表现。

主要功能点

  • 语义代码与文档搜索 ('search_knowledge'):允许LLM根据语义查询代码和文档,返回排名靠前的代码或文本片段,并附带引用信息。支持通过仓库、路径前缀、排除路径和模式进行高级过滤。
  • 代码片段获取 ('fetch_chunk'):根据唯一的代码块ID(chunk_id),精确获取并返回带有代码引用信息的代码片段。
  • 文件行范围获取 ('fetch_lines'):根据仓库名称、文件路径和起始/结束行号,从本地磁盘获取指定范围的文件内容,并以代码块形式返回。
  • 矢量存储信息查询 ('get_vector_store_info'):提供关于底层矢量存储(Dolphin API)的元数据,包括命名空间、维度、限制和近似的代码块数量。
  • 在编辑器中打开 ('open_in_editor'):根据仓库名称、文件路径和可选的行/列信息,生成一个URI,供客户端在VS Code等编辑器中直接打开文件并定位到指定位置。

安装步骤

  1. 安装Bun运行时:Dolphin MCP服务器使用Bun作为运行时。请访问 Bun官方网站 按照指引进行安装。
  2. 运行Dolphin API后端:Dolphin MCP服务器需要一个正在运行的Dolphin API实例。请确保您的Dolphin API后端已在配置的URL(默认为'http://127.0.0.1:7777')上运行。
  3. 启动Dolphin MCP服务器
    • 快速启动 (推荐):无需额外安装,直接使用'bunx'命令即可运行:
      bunx dolphin-mcp
    • 全局安装 (可选):如果您希望全局安装并像普通命令一样运行,可以执行:
      bun install -g dolphin-mcp
      然后通过 'dolphin-mcp' 命令启动。

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

要让MCP客户端(如Continue.dev或Claude Desktop)连接到Dolphin MCP服务器,您需要在客户端的配置文件中添加以下JSON格式的配置。这些配置告诉客户端如何启动和连接Dolphin MCP服务器。

示例配置(适用于Continue.dev)

在您的'config.yaml'文件中添加:

mcpServers:
  - name: Dolphin-KB                 # MCP服务器的名称,客户端界面会显示此名称
    command: bunx                    # 启动MCP服务器的命令
    args:                            # 传递给命令的参数
      - dolphin-mcp                  # 启动Dolphin MCP服务器的脚本
    env:                             # 环境变量,用于配置Dolphin MCP服务器
      DOLPHIN_API_URL: "http://127.0.0.1:7777" # (必填) Dolphin API的URL,确保Dolphin API已在此地址运行
      MAX_CONCURRENT_SNIPPET_FETCH: "8" # (可选) 并行获取代码片段的最大并发数,用于性能优化
      SNIPPET_FETCH_TIMEOUT_MS: "2000"  # (可选) 每个代码片段请求的超时时间(毫秒)
      SNIPPET_FETCH_RETRY_ATTEMPTS: "1" # (可选) 失败请求的重试次数

示例配置(适用于Claude Desktop)

在您的'claude_desktop_config.json'文件中添加:

{
  "mcpServers": {
    "dolphin-kb": {                     # MCP服务器的唯一标识符
      "command": "bunx",                # 启动MCP服务器的命令
      "args": ["dolphin-mcp"],          # 传递给命令的参数
      "env": {                          # 环境变量,用于配置Dolphin MCP服务器
        "DOLPHIN_API_URL": "http://127.0.0.1:7777", # (必填) Dolphin API的URL,确保Dolphin API已在此地址运行
        "MAX_CONCURRENT_SNIPPET_FETCH": "8",     # (可选) 并行获取代码片段的最大并发数,用于性能优化
        "SNIPPET_FETCH_TIMEOUT_MS": "2000",      # (可选) 每个代码片段请求的超时时间(毫秒)
        "SNIPPET_FETCH_RETRY_ATTEMPTS": "1"      # (可选) 失败请求的重试次数
      }
    }
  }
}

基本使用方法

一旦Dolphin MCP服务器配置并由MCP客户端成功启动,LLM即可通过调用Dolphin MCP服务器暴露的工具来获取上下文信息:

  1. 语义代码搜索:LLM可以向'search_knowledge'工具发送查询,例如:“查找身份验证逻辑相关的函数”。服务器将返回匹配的代码片段及其引用。
  2. 获取特定代码:如果LLM需要查看某个特定代码块的详细内容(例如,通过搜索结果中的'chunk_id'),它可以通过调用'fetch_chunk'工具来实现。
  3. 获取文件指定行:LLM可以通过'fetch_lines'工具获取某个文件指定行范围的代码内容。
  4. 在本地编辑器中打开:LLM可以使用'open_in_editor'工具生成一个URI,指示客户端在本地VS Code编辑器中打开并定位到特定代码位置。

这些工具使LLM能够以高度结构化和语境化的方式访问和利用您的代码库信息,从而提升其在编程任务中的效率和准确性。

信息

分类

开发者工具