Token导航 LogoToken导航

MCP Server · 开发工具

Repo Mapper

RepoMap是一款帮助大型语言模型理解和导航复杂代码库的工具,提供命令行分析和MCP服务器功能,通过Tree-sitter解析代码和PageRank算法排名代码元素。

stdio官方级别未说明来源级核验工具 0
代码导航代码分析ClaudeCline

快速开始

作者 / 组织
pdavis68
提供方
pdavis68

工具数量

0

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

168

仓库热度

收录来源

2 个

MCP World

选型结论

Repo Mapper 属于开发工具类 MCP Server,公开资料标注 0 个工具,通过stdio 本地进程接入,适配 Claude、Cline,有可以直接复制的安装命令;接入前要先准备 访问 Token。

分类

开发工具

传输方式

stdio

认证方式

访问 Token

部署方式

公开资料未说明

安装与配置

安装命令

pip install -r requirements.txt

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

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 对应的运行时,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

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

  4. 4

    验证是否可用

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

接入前确认

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

详细介绍

RepoMap-命令行工具和MCP服务器

RepoMap是一个强大的工具,主要用于帮助LLM理解和导航复杂的代码库。它既可以作为按需分析的命令行应用程序,也可以作为MCP(模型上下文协议)服务器,为其他应用程序提供连续的存储库映射功能。通过生成软件存储库的“映射”,RepoMap突出显示了重要文件、代码定义及其关系。它利用Tree sitter进行准确的代码解析,并利用PageRank算法按重要性对代码元素进行排名,确保始终优先考虑最相关的信息。

目录

- 基本用法 - 高级选项

- 设置 - 用法

______________________________________________________________________

教唆者

RepoMap 100%基于Aider的RepoMap功能,但我不认为它与Aider共享任何代码。请允许我解释一下。

我最初的工作是从Aider中获取RepoMap类,删除所有特定于Aider的依赖关系,然后将其转换为命令行工具。Python不是我的母语,我真的很难让它工作。

几个小时前,我有了一个不同的想法。我从aider中获取了RepoMap及其相关代码,并将其输入到LLM(Claude或Gemini 2.5 Pro,不记得了)中,让它基本上从aider的实现中为此创建规范。因此,它为这个应用程序生成了一个非常详细的规范(减去MCP位),然后我用Claude 3.7将其提供给Aider,它构建了这个应用程序的命令行版本。

然后,我使用了Aider w/Claude 3.7、Cline w/Gemini 2.5 Pro Preview和Gemini 2.5 Flash Preview以及Phind.com、Gemini.com和Claude.com以及ChatGPT.com的组合,几个小时后,我终于解决了MCP服务器的问题。请记住,Python并不是我的母语。

______________________________________________________________________

输出示例

> python repomap.py . --chat-files repomap_class.py
Chat files: ['/mnt/programming/RepoMapper/repomap_class.py']
repomap_class.py:
(Rank value: 10.8111)

  36: CACHE_VERSION = 1
  39: TAGS_CACHE_DIR = os.path.join(os.getcwd(), f".repomap.tags.cache.v{CACHE_VERSION}")
  40: SQLITE_ERRORS = (sqlite3.OperationalError, sqlite3.DatabaseError)
  43: Tag = namedtuple("Tag", "rel_fname fname line name kind".split())
  46: class RepoMap:
  49:     def __init__(
  93:     def load_tags_cache(self):
 102:     def save_tags_cache(self):
 459:     def get_ranked_tags_map_uncached(
 483:         def try_tags(num_tags: int) -> Tuple[Optional[str], int]:
 512:     def get_repo_map(

utils.py:
(Rank value: 0.2297)

  18: Tag = namedtuple("Tag", "rel_fname fname line name kind".split())
  21: def count_tokens(text: str, model_name: str = "gpt-4") -> int:
  35: def read_text(filename: str, encoding: str = "utf-8", silent: bool = False) -> Optional[str]:

importance.py:
(Rank value: 0.1149)

   8: IMPORTANT_FILENAMES = {
  27: IMPORTANT_DIR_PATTERNS = {
  34: def is_important(rel_file_path: str) -> bool:
  56: def filter_important_files(file_paths: List[str]) -> List[str]:

    ...
    ...
    ...

______________________________________________________________________

特性

  • 智能代码分析:使用Tree sitter解析源代码并提取函数/类定义
  • 相关性排名:使用PageRank算法按重要性对代码元素进行排名
  • 令牌感知:尊重令牌限制以适应LLM上下文窗口
  • 缓存:持久缓存,用于快速后续运行
  • 多语言:支持Python、JavaScript、TypeScript、Java、C/C++、Go、Rust等
  • 重要文件检测:自动识别重要文件并确定其优先级(README、requirements.txt等)

______________________________________________________________________

安装

pip install -r requirements.txt

______________________________________________________________________

用法

基本用法

# Map current directory
python repomap.py .

# Map specific directory with custom token limit
python repomap.py src/ --map-tokens 2048

# Map specific files
python repomap.py file1.py file2.py

# Specify chat files (higher priority) vs other files
python repomap.py --chat-files main.py --other-files src/

# Specify mentioned files and identifiers
python repomap.py --mentioned-files config.py --mentioned-idents "main_function"

# Enable verbose output
python repomap.py . --verbose

# Force refresh of caches
python repomap.py . --force-refresh

# Specify model for token counting
python repomap.py . --model gpt-3.5-turbo

# Set maximum context window
python repomap.py . --max-context-window 8192

# Exclude files with Page Rank 0
python repomap.py . --exclude-unranked

该工具按以下顺序对文件进行优先级排序:

  1. --chat-files:这些文件被赋予最高优先级,因为它们被认为是您当前正在处理的文件。
  2. --mentioned-files:这些文件具有高优先级,因为它们在当前上下文中被明确提及。
  3. --other-files:这些文件被赋予最低优先级,用于提供额外的上下文。

高级选项

# Enable verbose output
python repomap.py . --verbose

# Force refresh of caches
python repomap.py . --force-refresh

# Specify model for token counting
python repomap.py . --model gpt-3.5-turbo

# Set maximum context window
python repomap.py . --max-context-window 8192

# Exclude files with Page Rank 0
python repomap.py . --exclude-unranked

# Mention specific files or identifiers for higher priority
python repomap.py . --mentioned-files config.py --mentioned-idents "main_function"

______________________________________________________________________

运作原理

  1. 文件发现:扫描存储库中的源文件
  2. 代码解析:使用Tree sitter解析代码并提取定义/引用
  3. 图形构建:创建文件为节点、符号参照为边的图形
  4. 排名:应用PageRank算法按重要性对文件和符号进行排名
  5. 令牌优化:使用二分查找在令牌限制内匹配最重要的内容
  6. 输出生成:将结果格式化为可读的代码映射

______________________________________________________________________

输出格式

该工具生成代码库的结构化视图,显示:

  • 文件路径和重要代码段
  • 函数和类定义
  • 代码元素之间的关键关系
  • 根据实际使用情况和参考文献进行优先级排序

______________________________________________________________________

依赖项

  • tiktoken:各种LLM模型的令牌计数
  • networkx:图形算法(PageRank)
  • diskcache:持久缓存
  • grep-ast:用于代码解析的Tree sitter集成
  • tree-sitter:代码解析框架
  • pygments:语法高亮和词法分析

______________________________________________________________________

缓存

该工具使用持久缓存来加速后续运行:

  • 缓存目录: .repomap.tags.cache.v1/
  • 文件更改时自动失效
  • 可以用以下方式清除 --force-refresh

______________________________________________________________________

支持的语言

目前支持使用Tree sitter语法的语言:

  • 阿尔杜伊诺
  • 聊天
  • 常识
  • C++
  • C#
  • c
  • 飞镖
  • d
  • Emacs Lisp
  • 灵药
  • 榆树
  • 微光
  • 去
  • JavaScript
  • Java
  • 卢阿
  • ocaml_接口
  • ocaml
  • 小马
  • 属性
  • python
  • 球拍
  • r
  • 红宝石
  • 锈
  • Solidity
  • 迅速
  • udev
  • c_charp
  • 盐酸
  • Kotlin
  • PHP
  • 质量
  • Scala

______________________________________________________________________

许可证

此实现基于Aider项目的RepoMap设计。

______________________________________________________________________

作为MCP服务器运行

RepoMap也可以作为MCP(模型上下文协议)服务器运行,允许其他应用程序访问其存储库映射功能。

设置

  1. RepoMap MCP服务器使用STDIO(标准输入/输出)进行通信。传输层不需要额外的配置。
  2. 要使用Cline(或Roo等类似工具)将RepoMap设置为MCP服务器,请将以下配置添加到Cline设置文件中(例如。, cline_mcp_settings.json):
{
  "mcpServers": {
    "RepoMapper": {
      "disabled": false,
      "timeout": 60,
      "type": "stdio",
      "command": "/usr/bin/python3",
      "args": [
        "/absolute/path/to/repomap_server.py"
      ]
    }
  }
}
  • 替换 "/absolute/path/to/repomap_server.py" 与您的实际路径 repomap_server.py 文件。

用法

  1. 跑吧 repomap_server.py 脚本:
python repomap_server.py
  1. 服务器将启动并通过STDIO监听请求。
  2. 其他应用程序可以使用 repo_map 服务器提供的生成存储库映射的工具。他们必须明确 project_root 参数作为他们想要映射的项目的绝对路径。

更新日志

2025年7月13日-删除了project.json依赖项。修复了MCP服务器在文件名方面更易于LLM使用的问题。

工具与能力

工具数量

0

资源数量

0

提示词数量

0

能力标签

Tree-sitter Query本地部署代码分析LLM工具代码导航代码解析MCP服务器

支持客户端

ClaudeCline

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

典型使用场景

让助手直接读代码

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

在对话里跑命令

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

接进开发流程

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

选择建议

值得选的地方

  • 只提供 0 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 已经适配 Claude、Cline,换客户端不用重新研究配置。

先想清楚的地方

  • stdio 方式要求本地装好 运行环境,换机器要重新装一遍。
  • 需要自备访问 Token,没有凭据没法直接试。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在开发工具场景里让模型直接调用外部能力的人。
  • 已经在用 Claude 的用户,接入路径最短。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 暂时拿不到访问 Token的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

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

MCP World · 本页

0stdio有2 个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 条

Repo Mapper 怎么安装?

公开资料给出的安装命令是 pip install -r requirements.txt,运行环境为 未标注。装完后按客户端要求写进 MCP 配置,重启客户端生效。

Repo Mapper 怎么在 Claude Desktop、Cursor 里配置?

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

Repo Mapper 收费吗?

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

Repo Mapper 需要 API Key 吗?

公开资料标注的认证方式是访问 Token,也就是要先拿到凭据才能连上;凭据只填在自己本地的配置里,不要写进公开仓库。

Repo Mapper 支持哪些客户端?

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

来源信息

继续浏览同类 MCP