Token导航 LogoToken导航TokenDH.com
Multi Repo Context MCP Server logo
AI代理未说明官方级别未说明来源级核验

Multi Repo Context MCP Server

MCP Server

一个提供跨仓库上下文和工具的层次化MCP服务器模板,支持动态发现和插件式架构扩展。

工具数

3

提示词数

0

GitHub Stars

0

资源数

0
TypeScriptAI代理工作流自动化

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

alessandropac96

提供方

alessandropac96

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

多回购上下文MCP服务器

提供跨存储库上下文和工具的分层MCP(模型上下文协议)服务器的可重用模板。服务器按存储库命名空间组织工具,支持动态发现,并允许通过类似插件的架构轻松扩展。

特性

  • 分层工具组织:用于跨回购操作的根工具和特定于回购的命名空间工具
  • 动态存储库发现:自动从配置、环境或父目录中查找存储库
  • 插件架构:易于使用新的存储库和工具进行扩展
  • 类型安全:具有适当接口的完全TypeScript支持
  • 灵活配置:具有优先级排序的多个配置源
  • 延迟加载:按需加载回购工具以减少启动时间

建筑

服务器提供:

  • 根工具 用于跨存储库操作(列出存储库、跨存储库搜索)
  • 回购专用工具 按存储库命名空间(例如。, repo-name:tool-name)
  • 动态发现 自动或通过配置查找存储库
  • 插件架构 便于添加新的存储库和工具

安装

npm install
# or
bun install

配置

在以下位置之一创建配置文件(按优先级顺序选中):

  1. .multi-repo-mcp/repos.json (项目本地)
  2. ~/.multi-repo-mcp/repos.json (用户配置)
  3. 环境变量 MULTI_REPO_MCP_CONFIG 指向配置文件
  4. 默认配置(启用自动发现)

配置格式

{
  "repos": [
    {
      "name": "my-contracts",
      "path": "/path/to/contracts",
      "type": "contracts",
      "tools": "builtin"
    },
    {
      "name": "my-backend",
      "path": "/path/to/backend",
      "type": "backend",
      "tools": "builtin"
    },
    {
      "name": "my-custom-repo",
      "path": "/path/to/custom",
      "type": "unknown",
      "tools": "custom"
    }
  ],
  "discovery": {
    "enabled": true,
    "parentPath": "/path/to/parent",
    "autoDetectType": true
  },
  "tools": {
    "lazyLoad": true,
    "cacheResults": true
  }
}

配置选项

  • 回购协议:存储库配置数组

- 名字:存储库的唯一标识符 - 路径:存储库的绝对或相对路径 - 类型:存储库类型(合同、后端、前端、基础设施、未知) - 工具:工具来源- "builtin", "custom",或指向工具模块的路径

  • 发现:自动发现设置

- 启用:启用自动存储库发现 - 父路径:扫描存储库的路径 - 自动检测类型:自动检测存储库类型

  • 工具:工具加载设置

- 懒加载:首次使用时加载仓库工具(默认值:true) - cacheResults:缓存工具结果(默认值:true)

用法

发展

npm run dev
# or
bun run dev

构建

npm run build

npm start

根工具

服务器提供了三个内置的根工具:

list_repos

列出所有已发现的包含元数据的存储库。

输入:

输出: 仓库信息数组(名称、路径、类型)

search_across_repos

使用文件系统搜索在所有存储库中搜索。

输入:

  • query: string (必填)-搜索查询
  • repoFilter?: string[] (可选)-将搜索限制在特定存储库
  • fileTypes?: string[] (可选)-按文件扩展名筛选

输出: 按存储库分组的搜索结果

get_repo_info

获取特定存储库的详细信息。

输入:

  • repo: string (必填)-存储库名称

输出: 回购元数据、可用工具、文件结构摘要

添加存储库工具

内置模块

  1. 创建目录: src/tools/examples/{repo-type}/
  2. 创建 index.ts 出口a loadTools 功能:
import { ToolDefinition } from '../../registry/types.js';

export async function loadTools(repoPath: string): Promise {
  return [
    {
      name: 'my_tool',
      description: 'Does something useful',
      inputSchema: {
        type: 'object',
        properties: {
          param: { type: 'string' }
        },
        required: ['param']
      },
      handler: async (args, context) => {
        // Tool implementation
        return {
          content: [{
            type: 'text',
            text: JSON.stringify({ result: 'success' }, null, 2)
          }]
        };
      }
    }
  ];
}
  1. 这些工具将自动加载到该类型的存储库中

自定义回购工具

Repos可以在中定义自己的工具 .mcp-tools/index.ts:

import { ToolDefinition } from 'path/to/types';

export const tools: ToolDefinition[] = [
  {
    name: 'custom_tool',
    description: 'Repo-specific tool',
    handler: async (args, context) => {
      // Tool implementation
      return {
        content: [{
          type: 'text',
          text: JSON.stringify({ result: 'success' }, null, 2)
        }]
      };
    }
  }
];

"tools": "custom" 在存储库配置中使用自定义工具。

存储库类型检测

服务器根据文件结构自动检测存储库类型:

  • 合同: foundry.toml, hardhat.config.*, truffle-config.*
  • 后端: package.json 具有服务器框架依赖关系
  • 前端: package.json 具有前端框架依赖关系
  • 基础设施: terraform/, cdk.json, serverless.yml

示例存储库工具

合同存储库

  • get_contract_abi -获取特定合同的ABI
  • get_contract_address -获取合约的部署地址

后端存储库

  • get_api_endpoint -获取API端点配置

项目结构

multi-repo-mcp/
├── src/
│   ├── index.ts                    # Entry point
│   ├── server.ts                   # MCP server setup & initialization
│   ├── registry/                   # Tool and repo registries
│   │   ├── ToolRegistry.ts
│   │   ├── RepoRegistry.ts
│   │   └── types.ts
│   ├── tools/                      # Tool definitions
│   │   ├── root/                   # Root-level tools
│   │   └── examples/               # Example repo tool modules
│   ├── discovery/                  # Repository discovery
│   │   ├── RepoDiscoverer.ts
│   │   ├── RepoTypeDetector.ts
│   │   └── RepoValidator.ts
│   ├── loader/                     # Dynamic tool loading
│   │   ├── ToolLoader.ts
│   │   └── RepoToolLoader.ts
│   └── config/                     # Configuration management
│       ├── ConfigLoader.ts
│       └── defaults.ts
├── templates/                      # Templates for new modules
│   └── repo-tool-module/
├── config/                         # Configuration files
│   └── repos.example.json
└── README.md

工具定义模式

所有工具都遵循此界面:

interface ToolDefinition {
  name: string;                    // Tool name (without namespace)
  description: string;             // Human-readable description
  inputSchema?: JSONSchema;         // JSON Schema for input validation
  handler: (args: any, context: ToolContext) => Promise;
  repo?: string;                   // Optional repo namespace
}

interface ToolContext {
  repoPath: string;                // Absolute path to repo
  repoInfo: RepoInfo;              // Repo metadata
  logger: Logger;                  // Logger instance
}

interface ToolResult {
  content: Array;
  isError?: boolean;
}

环境变量

  • MULTI_REPO_MCP_CONFIG -配置文件的路径
  • MULTI_REPO_MCP_REPOS_PATH -扫描存储库的路径
  • DEBUG -启用调试日志记录

许可证

麻省理工学院

目录标签

目录标签

TypeScriptAI代理工作流自动化多仓库管理本地部署模型上下文协议动态工具发现插件架构TypeScript支持

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

3

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP