Token导航 LogoToken导航

MCP Server · 开发工具

codebase MCP v2

一个提供智能代码库分析的MCP服务器,支持高效的Git同步、增量索引和语义搜索,适用于代码审查、架构理解和开发协作。

未说明官方级别未说明来源级核验工具 8
代码分析开发工具PythonClaude搜索Claude Desktop

快速开始

公开资料没有提供安装命令,按仓库或官方文档接入。
作者 / 组织
NirakhRastogi
提供方
NirakhRastogi

工具数量

8

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

0

仓库热度

收录来源

1 个

MCP World

选型结论

codebase MCP v2 属于开发工具类 MCP Server,公开资料标注 8 个工具,通过传输方式未标注接入,适配 Claude Desktop、Claude,没有现成的安装命令;接入前先确认权限范围。

分类

开发工具

传输方式

未说明

认证方式

无需认证

部署方式

公开资料未说明

安装与配置

公开目录没有给出安装命令,需要按仓库 README安装;下面按同类条目的通用流程说明。

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    先确认运行方式

    公开资料没有标注传输方式,先看仓库 README,确认是本地进程还是远程地址。

  2. 2

    获取服务

    公开目录没有给出安装命令,按仓库 README里的步骤安装或获取服务。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 8 个工具,随便调一个只读工具确认能返回结果。

接入前确认

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

公开资料仍需确认:安装命令

详细介绍

高效代码库分析MCP服务器架构计划

概述

一种MCP服务器,提供智能代码库分析,无需一次将所有内容加载到内存中。代码库托管在GitHub上,并在本地与高效的基于git的更新同步。

核心架构

1.存储库同步层

初始克隆
def initialize_repository(repo_url, local_path):
    """
    Clone repository with optimizations
    """
    # Shallow clone to save bandwidth and storage
    git.clone(
        repo_url, 
        local_path,
        depth=1,  # Only latest commit initially
        single_branch=True,  # Only main branch
        filter='blob:none'  # Blobless clone - fetch files on demand
    )
    
    # Store metadata
    store_repo_metadata({
        'url': repo_url,
        'local_path': local_path,
        'current_commit': get_current_commit_hash(),
        'last_synced': timestamp()
    })
增量更新策略
def sync_repository():
    """
    Pull only changes since last sync
    """
    current_commit = get_stored_commit_hash()
    
    # Fetch changes
    git.fetch(origin='origin', depth=1)
    
    # Get diff between commits
    changed_files = git.diff(
        current_commit,
        'origin/main',
        name_only=True
    )
    
    # Categorize changes
    changes = {
        'added': [],
        'modified': [],
        'deleted': [],
        'renamed': []
    }
    
    for file_info in git.diff_tree(current_commit, 'origin/main'):
        status = file_info.status
        if status == 'A':
            changes['added'].append(file_info.path)
        elif status == 'M':
            changes['modified'].append(file_info.path)
        elif status == 'D':
            changes['deleted'].append(file_info.path)
        elif status == 'R':
            changes['renamed'].append({
                'old': file_info.old_path,
                'new': file_info.new_path
            })
    
    # Pull the actual changes
    git.pull(origin='origin', branch='main')
    
    # Update indexes incrementally
    process_changes(changes)
    
    # Update commit hash
    update_stored_commit_hash(get_current_commit_hash())
    
    return changes
智能同步调度
  • 按需:当用户进行查询时,检查是否需要同步
  • 周期性的:每N分钟进行一次背景同步(可配置)
  • Webhook已触发:如果配置了GitHub webhook,则同步推送事件
  • 手册:公开用于显式同步请求的工具

2.索引阶段(一次性+增量更新)

Git感知文件系统爬虫
  • 目的:构建代码库的轻量级索引
  • 策略:

- 使用git ls树进行文件发现(比文件系统扫描更快) - 从git中提取元数据(提交哈希、作者、最后修改时间) - 尊重 .gitignore 通过git自动 - 使用git责备来跟踪文件历史记录 - 以pgvector扩展名存储在PostgreSQL数据库中

符号提取器
  • 目的:提取高级代码结构而不进行完全解析
  • 索引什么:

- 函数/方法签名 - 类定义 - 进出口报表 - 注释和文档字符串(仅第一行) - 文件级元数据

  • 工具:使用特定语言的解析器(Tree sitter用于多语言支持)
  • 存储:结构化索引,包括:
  {
    file_path: string,
    symbols: [{name, type, line_start, line_end, signature}],
    imports: [string],
    exports: [string],
    hash: string  // for change detection
  }
依赖关系图生成器
  • 目的:映射文件之间的关系
  • 数据:

- 导入/要求关系 - 调用图(轻量级,符号级) - 继承体系

  • 存储:图形数据库或邻接列表
基于pgvector的语义分块
  • 目的:创建可搜索的上下文块
  • 策略:

- 按逻辑单元(函数、类、模块)分组 - 包括周围环境(导入、相关定义) - 生成语义搜索的嵌入 - 使用pgvector扩展名存储在PostgreSQL中 - 存储块元数据:文件、行号、父符号、git提交哈希

矢量存储模式:

-- Enable pgvector extension
CREATE EXTENSION IF NOT EXISTS vector;

-- Code chunks table with embeddings
CREATE TABLE code_chunks (
    id SERIAL PRIMARY KEY,
    file_id INTEGER REFERENCES files(id),
    chunk_text TEXT,
    chunk_type TEXT,  -- 'function', 'class', 'module', etc.
    symbol_name TEXT,
    line_start INTEGER,
    line_end INTEGER,
    embedding vector(384),  -- Dimension depends on model
    commit_hash TEXT,
    created_at TIMESTAMP DEFAULT NOW(),
    updated_at TIMESTAMP DEFAULT NOW()
);

-- Create HNSW index for fast vector search
CREATE INDEX ON code_chunks 
USING hnsw (embedding vector_cosine_ops);

-- Create GiST index for metadata filtering
CREATE INDEX idx_chunks_file ON code_chunks(file_id);
CREATE INDEX idx_chunks_symbol ON code_chunks(symbol_name);
CREATE INDEX idx_chunks_type ON code_chunks(chunk_type);

2.查询处理流水线

查询分析层
User Query → Intent Classification → Strategy Selection

意图类型:

  • find_definition:定位定义某物的位置
  • find_usage:查找符号的所有用法
  • explain_function:了解特定代码
  • trace_flow:遵循执行路径
  • find_similar:语义代码搜索
  • architectural:高层结构问题
战略路由器

根据意图,选择适当的检索策略:

策略1:基于符号的查找 (快速)

  • For:“函数X在哪里定义?”
  • 流程:直接索引查找→ 返回文件+行号
  • 加载:仅加载相关文件部分

策略2:依赖遍历 (中等)

  • For:“此模块依赖于什么?”
  • 流程:图形查询→ 返回连接节点
  • 加载:仅依赖元数据

策略3:使用pgvector进行语义搜索 (中速)

  • For:“查找处理身份验证的代码”
  • 流程:

1. 使用与索引相同的模型嵌入查询 1. 基于pgvector余弦相似度的向量相似度搜索 1. 使用元数据过滤器以获得更好的结果 1. 按相关性+新近度排名 1. 返回带有上下文的前k个块

  • SQL查询:
  SELECT 
      c.id,
      c.chunk_text,
      c.symbol_name,
      c.line_start,
      c.line_end,
      f.path,
      1 - (c.embedding  $1::vector) as similarity
  FROM code_chunks c
  JOIN files f ON c.file_id = f.id
  WHERE 
      c.chunk_type = ANY($2)  -- Optional: filter by type
      AND 1 - (c.embedding  $1::vector) > 0.7  -- Similarity threshold
  ORDER BY c.embedding  $1::vector
  LIMIT 10;
  • 加载:仅匹配块+周围上下文

策略4:深度分析 (慢速,按需)

  • For:“解释支付流程是如何工作的”
  • 流程:

1. 使用语义搜索查找入口点 1. 遍历依赖关系图 1. 仅加载相关文件 1. 为法学硕士构建专注的背景 1. 增量流分析

3.上下文组装

智能上下文生成器
def build_context(query, max_tokens=8000):
    relevant_symbols = find_relevant(query)
    context = []
    token_count = 0
    
    # Priority order
    for symbol in rank_by_relevance(relevant_symbols):
        chunk = load_chunk(symbol)
        if token_count + len(chunk) 15分钟前)
   - 如果是:运行 `sync_repository()` 在后台
   - 继续使用当前索引数据
1. **查询分析**:意图= `architectural + explain`
1. **符号搜索**:查询PostgreSQL中的“auth\*”符号→ 15 火柴
1. **语义搜索**:
   - 嵌入查询:“身份验证系统”→ 矢量(384)
   - 查询pgvector:

SELECT c.*, f.path, 1 - (c.embedding $1::vector) as similarity FROM code_chunks c JOIN files f ON c.file_id = f.id WHERE 1 - (c.embedding $1::vector) > 0.7 ORDER BY c.embedding $1::vector LIMIT 5;

   - 获取前5个相关块
1. **依赖遍历**:从依赖关系图中获取身份验证模块依赖关系
1. **上下文组装**:
   - 从git加载主认证模块(2KB)
   - 加载密钥中间件(1.5KB)
   - 加载与身份验证相关的配置(0.5KB)
   - 总计:4KB,8KB预算
1. **响应**:提供结构化的解释,包括:
   - 带有GitHub URL的文件引用
   - 行号
   - 提交哈希用于版本跟踪
   - 定义链接

## Git特定优化

### 1.金发克隆

git clone --filter=blob:none --depth=1


- 最初只下载树和提交对象
- 按需获取文件内容
- 为大型存储库节省约70%的初始克隆时间

### 2.备件检查(可选)

对于monorepos,只签出相关目录:

def setup_sparse_checkout(paths): """ Only checkout specified paths """ git.config('core.sparseCheckout', 'true') with open('.git/info/sparse-checkout', 'w') as f: for path in paths: f.write(f"{path}\n") git.read_tree('-mu', 'HEAD')


### 3.Git对象数据库查询

不要从磁盘读取文件,直接查询git:

def get_file_at_commit(file_path, commit_hash): """ Get file content without checkout """ return git.show(f"{commit_hash}:{file_path}")


### 4.高效的差分处理

def get_changed_files_efficient(from_commit, to_commit): """ Get changed files without full checkout """ return git.diff_tree( '--no-commit-id', '--name-status', '-r', from_commit, to_commit )


## 可扩展性考虑因素

- **小代码库(\10000个文件)**:

  - 分层索引(首先进行模块级摘要)
  - 智能同步(仅限活动分支)
  - GPU批量嵌入生成
  - 考虑多个工作进程
  - 按存储库/模块使用PostgreSQL分区
  - 浅深度增量git获取

**PostgreSQL性能调优**:

-- Tune HNSW index parameters for your dataset CREATE INDEX idx_chunks_embedding ON code_chunks USING hnsw (embedding vector_cosine_ops) WITH ( m = 16, -- Increase for better recall (16-64) ef_construction = 64 -- Increase for better index quality (64-200) );

-- Query-time tuning SET hnsw.ef_search = 100; -- Higher = better accuracy, slower

-- Connection pooling -- Use pgBouncer or SQLAlchemy pool for concurrent requests


**嵌入生成优化**:

def batch_embed_chunks(chunks, batch_size=32): """ Generate embeddings in batches for efficiency """ model = SentenceTransformer('all-MiniLM-L6-v2') model.to('cuda' if torch.cuda.is_available() else 'cpu')

all_embeddings = [] for i in range(0, len(chunks), batch_size): batch = chunks[i:i+batch_size] embeddings = model.encode( batch, convert_to_numpy=True, show_progress_bar=False ) all_embeddings.extend(embeddings)

return all_embeddings


## 成功指标

- 查询响应时间:90%的查询\85%
- PostgreSQL存储:约2-3x代码库大小(包括嵌入)
- 同步频率:每15分钟一次(可配置)
- 内存使用率:驻留内存\<500MB(无GPU)

## 部署架构

┌─────────────────────┐ │ GitHub Repo │ │ (Remote) │ └──────────┬──────────┘ │ │ git fetch/pull │ (incremental) ▼ ┌─────────────────────┐ ┌──────────────────┐ │ Local Git Clone │ │ PostgreSQL + │ │ (Shallow/Blobless)│◄────►│ pgvector │ └──────────┬──────────┘ └────────┬─────────┘ │ │ │ │ ▼ ▼ ┌─────────────────────┐ ┌──────────────────┐ │ MCP Server │◄────►│ Embedding Model │ │ (FastAPI/Python) │ │ (sentence-trans)│ └──────────┬──────────┘ └──────────────────┘ │ │ MCP Protocol ▼ ┌─────────────────────┐ │ Claude Desktop │ │ or API Client │ └─────────────────────┘

工具与能力

工具数量

8

资源数量

0

提示词数量

0

能力标签

代码分析Python本地部署语义搜索Git集成增量索引开发工具

支持客户端

Claude DesktopClaude

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

让助手直接读代码

把仓库、提交记录和 issue 交给模型检索,补全和重构时不用来回复制文件。

在对话里跑命令

触发构建、测试和脚本,执行结果直接回到上下文,省去切终端。

接进开发流程

把 PR、CI 状态和代码审查接进助手,减少在几个工具之间跳。

选择建议

值得选的地方

  • 只提供 8 个工具,职责集中,接入后不容易误操作。
  • 已经适配 Claude Desktop、Claude,换客户端不用重新研究配置。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • 公开资料没有可直接复制的安装命令,第一次接入要自己找入口。
  • 公开摘要偏短,具体能力和限制要回到仓库确认。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在开发工具场景里让模型直接调用外部能力的人。
  • 已经在用 Claude Desktop 的用户,接入路径最短。
  • 愿意照着官方文档一步步配环境的人。

不太适合

  • 希望一条命令就装好、不想看文档的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
codebase MCP v2

MCP World · 本页

8未说明未标注1 个2026-05-17
Git 838e2ec1

MCP World

12stdio有2 个2026-05-17
Markitdown MCP 2c653a5f

MCP World

1stdio有1 个2026-05-17
Context7 MCP C671e75a

MCP World

0stdio有1 个2026-05-17
Context7 831acf40

MCP World

0stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

codebase MCP v2 怎么安装?

公开目录没有给出可以直接复制的安装命令,需要按仓库 README里的步骤安装;装好后写进客户端的 MCP 配置再重启。

codebase MCP v2 怎么在 Claude Desktop、Cursor 里配置?

它是传输方式未标注,客户端配置里要写启动命令和参数,运行环境是 未标注;保存后完全退出客户端再打开,配置才会生效。

codebase MCP v2 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

codebase MCP v2 需要 API Key 吗?

公开资料标注为无需认证,装好就能连;如果实际调用时报鉴权错误,按官方文档补上凭据。

codebase MCP v2 支持哪些客户端?

公开资料标注支持 Claude Desktop、Claude;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP