返回市场
神经数据库-MCP

神经数据库-MCP

作者:nervusdb6 星标更新:2025-10-16

项目介绍

@nervusdb/mcp

NervusDB 官方 MCP 服务器 - 结合 @nervusdb/corerepomix 的代码知识图谱

npm 版本 许可证: MIT

功能

  • 代码知识图谱: 使用 @nervusdb/corerepomix 构建跨语言的代码知识图谱
  • 项目洞察: 分析代码影响,查找相关文件,探索项目结构
  • 工作流自动化: 任务管理,包括分支创建和 PR 提交
  • 代码操作: 带有安全检查的读取、写入文件和运行测试
  • 数据库工具: 查询和维护知识图谱索引
  • 影子索引策略: 通过指纹验证确保可靠的索引

预备条件

  • Node.js 20.0.0 或更高版本
  • pnpm 8.0.0 或更高版本

快速开始

安装依赖

pnpm install

运行服务器

# 开发模式
pnpm start:stdio

# 生产构建
pnpm build

索引项目

pnpm synapse:index -p /path/to/your/project

Claude Desktop 集成

添加到你的 Claude Desktop 配置 (~/Library/Application Support/Claude/claude_desktop_config.json 在 macOS 上):

{
  "mcpServers": {
    "nervusdb-mcp": {
      "command": "npx",
      "args": ["-y", "@nervusdb/mcp"]
    }
  }
}

或者,如果你全局安装了该包:

{
  "mcpServers": {
    "nervusdb-mcp": {
      "command": "nervusdb-mcp"
    }
  }
}

安装选项:

# 选项 1: 使用 npx (推荐,无需安装)
# 只需添加上述配置,Claude 将自动运行它

# 选项 2: 全局安装以加快启动速度
npm install -g @nervusdb/mcp

配置

GitHub 认证 (用于工作流工具)

工作流工具 (workflow.submitForReview) 需要 GitHub 认证来创建拉取请求。服务器支持 3 种认证方法 并自动回退:

方法 1: 环境变量 (推荐用于 CI/CD)

# 设置 GITHUB_TOKEN 或 GH_TOKEN
export GITHUB_TOKEN=ghp_your_personal_access_token

# 或在你的 shell 配置文件中 (~/.zshrc 或 ~/.bashrc)
echo 'export GITHUB_TOKEN=ghp_xxx' >> ~/.zshrc

方法 2: GitHub CLI (推荐用于本地开发)

# 安装 gh CLI
brew install gh # macOS
# 或参见 https://cli.github.com/ 其他平台

# 认证
gh auth login

方法 3: Claude Desktop 配置

在 Claude Desktop 配置中添加环境变量:

{
  "mcpServers": {
    "nervusdb-mcp": {
      "command": "npx",
      "args": ["-y", "@nervusdb/mcp"],
      "env": {
        "GITHUB_TOKEN": "ghp_your_personal_access_token"
      }
    }
  }
}

认证优先级:

  1. GITHUB_TOKEN 环境变量 (最高优先级)
  2. GH_TOKEN 环境变量
  3. gh auth token 命令 (如果 gh CLI 已认证)

如果没有可用的认证,工作流工具将提供清晰的错误消息及设置指南。

可用工具

NervusDB MCP 服务器提供了 13 个工具,分为 4 类:

1. 工作流工具 ⚙️

  • workflow.startTask - 创建任务分支并更新账本
  • workflow.submitForReview - 推送分支并创建拉取请求 (需要 GitHub 认证)

2. 项目工具

  • project.getStructure - 获取项目文件结构及其统计信息
  • project.analyzeImpact - 根据知识图谱分析代码影响
  • project.findRelatedFiles - 查找与目标文件相关的文件
  • project.readFile - 读取任意文件内容

3. 代码工具

  • code.readFile - 读取项目文件内容
  • code.writeFile - 写入内容到项目文件 (需要确认)
  • code.runTests - 使用 Vitest 运行测试并返回结果

4. 数据库工具

  • db.getStats - 获取索引元数据和统计信息
  • db.query - 对知识图谱执行类型化或原始查询
  • db.rebuildIndex - 使用遥测重建项目索引
  • db.getHealth - 通过指纹验证检查索引健康状况

使用示例

// 1. 启动新任务
workflow.startTask({
  taskId: '42',
  owner: 'alice',
  designDoc: 'docs/design/feature-42.md',
});

// 2. 分析代码影响
project.analyzeImpact({
  projectPath: '/workspace/my-project',
  functionName: 'calculateTotal',
  limit: 20,
});

// 3. 读取文件
code.readFile({
  projectPath: '/workspace/my-project',
  file: 'src/services/orderService.ts',
});

// 4. 运行测试
code.runTests({
  projectPath: '/workspace/my-project',
  filter: 'orderService',
});

// 5. 查询知识图谱
db.query({
  projectPath: '/workspace/my-project',
  query: {
    type: 'typed',
    filter: { predicate: 'CONTAINS' },
    options: { limit: 100 },
  },
});

// 6. 提交审核
workflow.submitForReview({
  confirm: true,
  title: 'feat: 优化订单计算',
  reviewers: ['bob'],
});

工作原理

  1. 索引: 使用 repomix 收集项目文件,并使用 @nervusdb/core 构建知识图谱
  2. 存储: 维护带有指纹验证的影子索引以保证数据完整性
  3. 查询: 提供类型化和原始查询接口以探索代码关系
  4. 工作流: 与 Git 工作流集成进行任务管理

项目结构

nervusdb-mcp/
├── src/
│   ├── server/           # MCP 服务器实现
│   ├── tools/            # 工具实现 (工作流、项目、代码、数据库)
│   ├── services/         # 业务逻辑服务
│   ├── domain/           # 核心领域逻辑 (索引、查询)
│   └── utils/            # 共享工具
├── bin/                  # CLI 可执行文件
├── docs/                 # 文档
└── tests/                # 测试套件

开发

# 安装依赖
pnpm install

# 运行测试
pnpm test

# 检查代码质量
pnpm check

# 生产构建
pnpm build

文档

贡献

参见 CONTRIBUTING.md 了解开发指南。

许可证

MIT