Skip to main content
Glama

多仓库架构中心(oss-mcp

Node.js Version Protocol Package Manager License

一个可扩展的多仓库架构路由器与模型上下文协议(MCP)服务器,使用 Node.js(ESM)编写。专为跨仓库依赖发现、拓扑路由以及与 codebase-memory-mcp 的批量 AST 索引集成而设计。


⚡ 快速开始(3 分钟设置)

1. 前置条件

确保你已全局安装 Node.js(>= 18)codebase-memory-mcp

# Install codebase-memory-mcp globally
npm install -g codebase-memory-mcp@latest

2. 克隆并安装依赖

git clone https://github.com/Abbilville/oss-mcp oss-mcp
cd oss-mcp
npm install

3. 初始化任意多仓库工作区

oss-mcp 指向你的微服务目录。它将扫描仓库,生成 registry.yaml,并自动将代码批量索引到 AST 知识图谱中:

npx oss-mcp setup /path/to/your/microservices-workspace

Related MCP server: Codebase Contextifier 9000

🚀 核心能力

  1. 多项目动态发现:从 CLI 参数、中央目录(data/projects.yaml)、环境变量或工作区层级结构动态解析仓库清单(registry.yaml)。

  2. 自动化结构与依赖扫描器:递归检查跨多种技术栈(Node.js、Express、React、Python、FastAPI、Java、Go)的目录树,检测入口点、端口以及服务间的 HTTP/事件关系。

  3. 自动化批量 AST 索引:通过单条命令编排 codebase-memory-mcp 对项目清单中的所有服务进行 AST 图谱索引。

  4. 结构化 MCP 接口:为 AI 代理提供标准化工具,用于查询跨服务架构、追踪端到端请求生命周期以及导航多服务边界。


📁 使用 data/ 目录

data/ 目录为托管多个不同微服务项目或系统的环境提供集中式项目管理。

data/
├── projects.yaml         # Central multi-project catalog (routes project IDs to manifests)
├── registry.yaml         # Default / sample repository manifest and service relationships
├── projects.yaml.example # Reference template for projects catalog
└── registry.yaml.example # Reference template for repository manifests

1. 中央项目目录(data/projects.yaml

如果你在机器上管理多个项目,请在 data/projects.yaml(或 ~/.config/oss-mcp/projects.yaml)中注册它们。这样你就可以通过 ID 定位任意项目(例如 npx oss-mcp index --project ecommerce):

# data/projects.yaml
projects:
  ecommerce:
    name: "E-Commerce Microservices"
    description: "Frontend SPA, API Gateway, Auth Service, and Order Service"
    registry_path: "./data/ecommerce_registry.yaml"
    root_path: "/path/to/ecommerce/workspace"

  analytics:
    name: "Analytics Platform"
    description: "Event streaming and reporting backend"
    registry_path: "/path/to/analytics/registry.yaml"
    root_path: "/path/to/analytics/workspace"

2. 仓库清单(registry.yaml

每个项目都有一个 registry.yaml,定义其各个服务、元数据、入口点、端口和关系。

# registry.yaml
repos:
  - name: backend-service
    owner: backend-team
    local_path: ./services/backend-service
    description: "REST API server handling auth, database persistence, and business logic"
    tech_stack:
      - Node.js
      - Express
      - PostgreSQL
      - Redis
      - JWT
    entry_point: src/server.js
    port: 4000

  - name: web-frontend
    owner: frontend-team
    local_path: ./services/web-frontend
    description: "Customer SPA built with React and TypeScript"
    tech_stack:
      - React
      - TypeScript
      - Axios
    entry_point: src/index.tsx
    port: 3000

relationships:
  - source: web-frontend
    target: backend-service
    type: api_call
    description: "Frontend makes REST API calls to backend endpoints for data and authentication."

  - source: web-frontend
    target: backend-service
    type: depends_on
    description: "Frontend depends on backend JWT session management and RBAC permissions."

支持的关系类型

  • api_call:从源到目标的 HTTP / REST / GraphQL 调用。

  • depends_on:架构或生命周期依赖(例如共享会话、契约依赖)。

  • event_stream:异步消息传递(Kafka、RabbitMQ、Redis Pub/Sub、AWS EventBridge)。

  • shared_resource:共享数据库模式、缓存实例或存储桶。

  • submodule:Git 子模块或 monorepo 包引用。


🎯 清单解析层级

执行工具或 CLI 命令时,oss-mcp 使用 4 层回退机制确定要加载的注册表:

1. Explicit Flag / Parameter   (--project "ecommerce" or --registry "/path/to/registry.yaml")
   └── 2. Central Projects Catalog (data/projects.yaml or ~/.config/oss-mcp/projects.yaml)
       └── 3. Environment Variable   (export MCP_REGISTRY_PATH="/path/to/registry.yaml")
           └── 4. Workspace Traversal (searching current directory & parent folders for registry.yaml)

💻 CLI 参考

操作

命令

描述

接入工作区

npx oss-mcp setup /path/to/workspace

扫描工作区,写入 registry.yaml,并批量索引所有服务。

扫描目录

npx oss-mcp scan /path/to/workspace -o ./registry.yaml

扫描目录,推断入口点/端口,并输出清单。

批量索引

npx oss-mcp index --registry ./registry.yaml

将所有清单仓库索引到 codebase-memory-mcp

列出服务

npx oss-mcp list --registry ./registry.yaml

显示服务、端口和依赖的摘要表。

列出项目

npx oss-mcp projects

显示所有已注册项目及索引图谱状态。

退役

npx oss-mcp remove <project_id_or_path> [--delete-manifest]

清除索引图谱并从目录中注销项目。

启动服务器

npx oss-mcp run

在 stdio 传输上启动 MCP 服务器。


🤖 AI 助手与 IDE 集成

oss-mcp 提供了一个架构桥接,与 codebase-memory-mcp 协同工作。

┌─────────────────────────────────────────────────────────────┐
│                       AI Agent Layer                        │
│   (Antigravity / Claude Code / Cursor / Codex / Roo Code)   │
└──────────────────────────────┬──────────────────────────────┘
                               │
               ┌───────────────┴───────────────┐
               ▼                               ▼
 ┌───────────────────────────┐   ┌───────────────────────────┐
 │          oss-mcp          │   │    codebase-memory-mcp    │
 │                           │   │                           │
 │ • Multi-repo discovery    │   │ • Deep AST function index │
 │ • Service topology & port │   │ • Class & symbol search   │
 │ • Cross-repo relationships│   │ • Call graph path tracing │
 │ • Batch index management  │   │ • Source code snippets    │
 └───────────────────────────┘   └───────────────────────────┘

1. 🪐 Google Antigravity (AGY)

A. 配置 MCP 服务器

oss-mcp 添加到项目的 .agents/mcp_config.json 或全局的 ~/.gemini/config/mcp_config.json 中:

{
  "mcpServers": {
    "oss-mcp": {
      "command": "node",
      "args": ["/absolute/path/to/oss-mcp/src/server.js"]
    }
  }
}

B. 安装工作区技能与规则

  1. .agents/skills/ 目录复制或符号链接到当前项目的 .agents/skills/(或全局的 ~/.gemini/config/skills/)。

  2. .agents/AGENTS.md 中包含多仓库路由规则:

    # Multi-Repo Routing
    For any question spanning multiple services or repositories, use the `oss-mcp` MCP server to discover topology with `get_architecture_overview()`, then query `codebase-memory-mcp` scoped to relevant repositories.

C. Antigravity 斜杠命令与用法

直接在 Antigravity 聊天中键入这些命令:

  • /oss setup /path/to/microservices — 自动扫描工作区,推断技术栈和端口,生成 registry.yaml,并批量索引到 AST 图谱。

  • /oss status — 查看已注册服务、端口以及图谱节点/边计数的表格。

  • /oss trace checkout flow from UI to backend — 使用序列图追踪端到端跨服务生命周期。

  • /oss remove <project_id> — 安全注销项目并清除知识图谱。


2. ⚡ Claude Code (CLI) 与 Claude Desktop

A. Claude Code CLI 设置

直接使用 claude mcp add 命令添加 MCP 服务器:

# Add oss-mcp MCP server
claude mcp add oss-mcp node /absolute/path/to/oss-mcp/src/server.js

或添加到项目的 .claude.json / settings.json 中:

{
  "mcpServers": {
    "oss-mcp": {
      "command": "node",
      "args": ["/absolute/path/to/oss-mcp/src/server.js"]
    }
  }
}

B. Claude Desktop 设置

打开你的 Claude Desktop 配置文件:

  • Windows%APPDATA%\Claude\claude_desktop_config.json

  • macOS~/Library/Application Support/Claude/claude_desktop_config.json

添加服务器定义:

{
  "mcpServers": {
    "oss-mcp": {
      "command": "node",
      "args": ["C:/Telkom/oss-mcp/src/server.js"]
    }
  }
}

C. Claude 工作流指令(CLAUDE.md

将以下指南添加到项目的 CLAUDE.md 中,以教导 Claude 如何路由多仓库查询:

## Multi-Repo Architecture Navigation
When answering questions about cross-service interactions, microservices, or APIs:
1. Call `oss-mcp` tool `get_architecture_overview()` to locate caller/callee services and port contracts.
2. Query `codebase-memory-mcp` (`search_graph`, `trace_path`, `get_code_snippet`) scoped by repository name.
3. Synthesize the end-to-end flow with a Mermaid sequence diagram.

D. Claude 中的示例聊天提示

  • "扫描文件夹 ../services 并初始化多仓库注册表。"

  • "显示所有已注册的微服务,并检查它们的 AST 图谱是否已索引。"

  • "追踪从前端登录到后端令牌验证的 JWT 认证流程。"


3. 🎯 Cursor IDE

A. 在 Cursor 中添加 MCP 服务器

  1. 转到 Cursor 设置 $\rightarrow$ 功能 $\rightarrow$ MCP

  2. 点击 + 添加新的 MCP 服务器

  3. 填写:

    • 名称oss-mcp

    • 类型command

    • 命令node /absolute/path/to/oss-mcp/src/server.js

  4. 点击保存并验证绿色状态点。

B. Cursor 规则(.cursorrules.cursor/rules/multi-repo.mdc

在工作区中创建规则文件:

---
description: Multi-repository architecture navigation rules
globs: *
---
You have access to the `oss-mcp` MCP server.
When the user asks about multi-service architecture or cross-repo communication:
1. Call `get_architecture_overview` to understand service topologies and ports.
2. Trace API calls and dependencies between services.
3. Provide Mermaid sequence diagrams for all cross-service workflows.

C. Cursor 中的示例聊天提示

  • @oss-mcp 哪些服务与支付后端通信?

  • @oss-mcp 扫描此多仓库工作区并生成 registry.yaml

  • 前端客户端如何从目录 API 获取产品?追踪路由和处理程序。


4. 🧩 Roo Code / Cline / Codex(VS Code 扩展)

A. 配置 MCP 设置

打开 cline_mcp_settings.json(或 roo_cline_mcp_settings.json):

{
  "mcpServers": {
    "oss-mcp": {
      "command": "node",
      "args": ["/absolute/path/to/oss-mcp/src/server.js"],
      "disabled": false,
      "autoApprove": [
        "get_architecture_overview",
        "get_repo_details",
        "get_related_repos",
        "list_projects"
      ]
    }
  }
}

B. 自定义指令

在 Cline / Roo Code 设置中添加自定义指令:

When working across multiple repositories, use the `oss-mcp` MCP tools to inspect service dependencies and ports before making code modifications or answering architectural questions.

🛠️ 工作区技能深入解析

.agents/skills/ 中的技能封装了完整的端到端多仓库工作流:

技能

主要触发条件

执行的工作流

oss

/oss <query>"追踪跨仓库流程..."

自主主导航器:验证索引状态 $\rightarrow$ 自动扫描并批量索引缺失仓库 $\rightarrow$ 加载拓扑 $\rightarrow$ 执行作用域 AST 查询 $\rightarrow$ 合成序列图。

oss-navigator

跨服务流程查询

查询路由器:查询 get_architecture_overview() $\rightarrow$ 追踪调用方客户端 $\rightarrow$ 追踪被调用方路由处理程序 $\rightarrow$ 生成 Mermaid 序列图。

oss-onboard

/oss setup [path]"扫描文件夹..."

接入向导:递归扫描目录 $\rightarrow$ 检测技术栈和端口 $\rightarrow$ 写入 registry.yaml $\rightarrow$ 触发批量 AST 索引。

oss-status

/oss status"检查多仓库状态"

诊断:查询目录项目和索引图谱节点/边统计 $\rightarrow$ 渲染状态摘要表。

oss-remove

/oss remove <project_id>

清理:从目录中注销项目 $\rightarrow$ 清除知识图谱数据库 $\rightarrow$ 如果请求则删除清单。


🔌 MCP 工具参考

工具

参数

输出

描述

get_architecture_overview

project?: str

JSON

返回完整的仓库清单、服务元数据和关系图。

get_repo_details

repo_name: str, project?: str

JSON

返回单个仓库的详细信息,包括端口、技术栈和直接连接。

get_related_repos

repo_name: str, direction?: str, project?: str

JSON

返回连接的依赖(inboundoutboundall)。

list_projects

JSON

列出目录项目和已索引的 codebase-memory-mcp 图谱数据库统计。

scan_and_create_registry

workspace_path: str, output_file?: str

JSON

扫描目录,推断依赖,并生成清单文件。

index_project_repositories

project?: str, mode?: str

JSON

将仓库批量索引到 codebase-memory-mcp

remove_project

project: str, purge_graphs?: bool, delete_manifest?: bool

JSON

清除索引图谱并从目录中注销项目。


许可证

根据 MIT 许可证分发。

A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables semantic code search across multiple repositories using natural language queries. Provides intelligent code discovery, symbol lookups, and cross-repo dependency analysis for AI coding agents.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables semantic code search across multiple repositories using AST-aware chunking and relationship tracking. Supports local LLM embeddings, real-time indexing, and cross-codebase dependency analysis through vector and graph databases.
    3
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides AI coding assistants with deep, semantic understanding of local codebases via AST-aware chunking, cross-repo symbol graphs, and architectural memory, enabling context-aware code search and dependency tracing.
    10
    MIT

View all related MCP servers

Related MCP Connectors

  • Code intelligence for coding agents: semantic, AST, graph, and full-text search. 279+ languages.

  • Give your AI agent a persistent map of your project's structure, dependencies, and bugs.

  • AI Agent with Architectural Memory. Impact analysis (free), tests and code from the graph (pro).

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Abbilville/oss-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server