代码知识库查询服务

Testigo-recall-mcp是一款为AI代理提供预扫描代码库知识库查询服务的MCP服务器,通过预提取代码行为、设计决策和假设事实来节省时间和资源。

  • by testigo-recall
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 ado122/testigo-recall-mcp

使用说明

证人-回忆-MCP

MCP服务器,向AI代理公开预扫描的代码库知识库。代理不直接读取源文件,而是查询预先提取的有关代码行为、设计决策和假设的事实,从而节省时间和令牌。

适用于Claude Code、Cursor、Windsurf和任何兼容MCP的客户端。

安装

pip install testigo-recall-mcp

配置

GitHub发布(默认)

自动下载知识库 .db GitHub版本中的文件:

{
  "mcpServers": {
    "testigo-recall": {
      "command": "testigo-recall-mcp",
      "env": {
        "TESTIGO_RECALL_REPO": "owner/repo",
        "GITHUB_TOKEN": "ghp_..."
      }
    }
  }
}

Azure Blob存储

下载 .db Azure Blob存储容器中的文件。Auth使用您现有的 az login session——不需要秘密:

{
  "mcpServers": {
    "testigo-recall": {
      "command": "testigo-recall-mcp",
      "env": {
        "TESTIGO_RECALL_AZURE_URL": "https://account.blob.core.windows.net/container"
      }
    }
  }
}

认证优先级:SAS令牌> az login 承载令牌>公共容器。

本地文件

直接指向本地 .db 文件(对开发/演示有用):

{
  "mcpServers": {
    "testigo-recall": {
      "command": "testigo-recall-mcp",
      "env": {
        "TESTIGO_RECALL_DB_PATH": "/path/to/knowledge.db"
      }
    }
  }
}

所有后端都可以组合——DB在启动时合并。

环境变量

变量 描述
TESTIGO_RECALL_REPO GitHub仓库,逗号分隔(例如。 owner/repo).自动下载自 knowledge-base 释放标签。
TESTIGO_RECALL_AZURE_URL Azure Blob存储容器URL,逗号分隔。
TESTIGO_RECALL_AZURE_SAS Azure的可选SAS令牌(读取+列表)。如果不需要 az login 是活跃的。
TESTIGO_RECALL_DB_PATH 本地 .db 文件路径,逗号分隔。
GITHUB_TOKEN 私有仓库的GitHub令牌。公共仓库无需授权即可工作。

工具

服务器向AI代理公开了6个工具:

search_codebase

在知识库中进行全文搜索。返回按相关性排序的事实。支持以分号分隔的多查询批处理(例如。 "auth login; session JWT; middleware").

  • query --搜索关键字
  • category --可选过滤器: behavior, design,或 assumption
  • min_confidence --置信阈值0.0-1.0
  • limit --最大结果(默认值:20)
  • repo_name --可选筛选器,适用于一个存储库

get_module_facts

深入了解特定模块。使用 search_codebase 首先发现模块ID。

  • module_id --例如。 SCAN:backend/app/api 或 PR-123

get_recent_changes

最近在代码库中提取了事实。

  • category --可选过滤器
  • limit --结果数(默认值:10)

get_component_impact

爆炸半径分析——显示了什么取决于组件以及它取决于什么。

  • component_name --文件路径或服务名称(例如。 api_service.py)

list_modules

列出知识库中所有扫描的模块。无参数调用以获得紧凑的回购摘要。

  • repo_name --可选存储库筛选器

get_repo_dependencies

来自包清单(go.mod、package.json)的跨仓库依赖关系图。

  • repo_name --可选过滤器
  • direction — outgoing, incoming,或 both

运作原理

知识库包含按类别组织的预先提取的事实:

  • 行为 --代码的作用(触发器、结果)
  • 设计 --它是如何构建的(决策、模式、权衡)
  • 假设 --它所期望的(不变量、先决条件)

事实来源于两个方面:

  • 扫描事实 (SCAN:module/path)--模块的当前状态,自动刷新
  • 公关事实 (PR-123)--某个特定的公关发生了什么变化,并作为历史保留下来

服务器使用SQLite和FTS5全文搜索进行快速、相关性排名的查询。

多回购支持

所有后端都支持单个MCP服务器实例中的多个存储库。每个回购都有自己的 .db 文件,存储在共享位置(GitHub版本、Azure容器或本地目录)。服务器下载所有 .db 在启动时将文件合并到一个统一的知识库中。

knowledge-base/
  ├── frontend-app.db
  ├── backend-api.db
  ├── shared-lib.db
  └── infrastructure.db

使用 list_modules() 查看所有可用的存储库,以及 repo_name 参数开启 search_codebase 以确定查询范围。