文档向量搜索服务

一个离线优先的模型上下文协议(MCP)服务器,用于查询Google ADK文档,支持高效的向量搜索和MCP集成。

  • by nkaewam
  • Python
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 nkaewam/adk-mcp

使用说明

ADK MCP服务器

用于查询Google ADK(附件开发工具包)文档的离线第一模型上下文协议(MCP)服务器。该服务器使用LanceDB进行矢量搜索,使用FastMCP进行MCP接口,允许AI模型访问和理解ADK文档。

特性

  • 先离线:所有文档和矢量索引都存储在本地。
  • 快速搜索:使用LanceDB和FastEmbed进行高效的矢量搜索。
  • MCP集成:兼容任何启用MCP的客户端(如Claude Desktop)。
  • 轻松部署:可以使用以下工具作为本地工具安装 uv.

先决条件

  • Python 3.13或更高版本
  • 紫外线 用于依赖关系管理和运行。

安装

  1. 克隆存储库:

    git clone <repository-url>
    cd adk-mcp-docs
    
  2. 安装依赖项:

    make install
    # or
    uv sync
    

用法

1.建立指数

在运行服务器之前,您需要从文档中构建向量索引。

make build-index
# or
uv run src/adk_mcp/builder.py

2.运行服务器(开发)

要在热重新加载的开发模式下运行服务器,请执行以下操作:

make run
# or
uv run fastmcp run src/adk_mcp/server.py

3.本地部署

将服务器安装为可通过访问的本地工具 uvx:

make deploy-local
# or
uv tool install . --force

安装后,您可以使用以下命令运行服务器:

uvx adk-mcp

MCP客户端的配置

VS代码/反重力

对于VS Code(具有兼容的MCP扩展名)或Antigravity,请在以下位置创建一个文件 .vscode/mcp-servers.json 内容如下:

{
  "mcpServers": {
    "adk-mcp": {
      "command": "uvx",
      "args": ["adk-mcp"]
    }
  }
}

光标

  1. 打开光标设置。
  2. 首选 特性 > 主控程序.
  3. 点击 +添加机器人.
  4. 将名称设置为 adk-mcp.
  5. 将类型设置为 command.
  6. 将命令设置为 uvx adk-mcp.

克劳德桌面

将以下内容添加到您的 claude_desktop_config.json:

{
  "mcpServers": {
    "adk-mcp": {
      "command": "uvx",
      "args": ["adk-mcp"]
    }
  }
}

项目结构

  • src/adk_mcp/:MCP服务器的源代码。
    • builder.py:用于构建LanceDB索引的脚本。
    • server.py:FastMCP服务器实现。
    • data/:用于存储LanceDB索引(已生成)的目录。
  • data/:(可选)源文档文件(如果未嵌入包中)。
  • Makefile:常见任务的便捷快捷方式。
  • pyproject.toml:项目元数据和依赖关系。

分块策略

文档使用上下文感知分块策略进行索引,以确保高质量的搜索结果:

  1. 基于头部的拆分:文件按H1、H2和H3标头拆分。
  2. 上下文标题:每个块都以其分层上下文作为前缀(例如。, Context: Getting Started > Installation > Python).
  3. 语言选项卡处理:对带有语言标签的文档进行特殊处理(例如。, === "Python", === "Go").这些选项卡中的内容单独索引,并用相应的语言标记。
  4. 嵌入:使用 BAAI/bge-small-en-v1.5 生成向量嵌入的模型。

可用工具

search_adk

搜索Google ADK文档以获取相关信息。

论据:

  • query (string):搜索查询。
  • language (string):要筛选的编程语言。支持的值: "python", "go", "java",或 "all".

退货:

  • 一个格式化的字符串,包含前5个相关块,包括它们的源URL和内容。