代码库本地RAG工具

AmanMCP是一款零配置、隐私优先的本地RAG工具,专为代码库提供混合搜索(BM25+语义)和AST感知分块功能。

  • by Aman-CERP
  • Go
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 Aman-CERP/amanmcp

使用说明

AmanMCP

本地RAG用于您的代码库。零配置。隐私第一。


阿尔法软件 -使用风险自负。 完整免责声明


快速开始

先决条件: 奥拉玛 已安装(brew install ollama)

# Install
brew tap Aman-CERP/amanmcp && brew install --cask amanmcp

# Initialize (auto-starts Ollama, pulls model, indexes)
cd your-project && amanmcp init

# Restart Claude Code. Done.

问克劳德: “搜索我的代码库以进行身份验证”


它做什么

flowchart LR
    subgraph Local["Your Machine (100% Local)"]
        Code[(Codebase)]
        AmanMCP["AmanMCP<br/>BM25 + Vector"]
    end

    Claude["Claude AI"]

    Code -->|index| AmanMCP
    Claude <-->|query| AmanMCP
    AmanMCP -->|context| Claude

    style Local fill:#d5f4e6,color:#000
    style AmanMCP fill:#27ae60,color:#fff
    style Claude fill:#3498db,color:#fff

主要特点: 混合搜索(BM25+语义)|AST感知分块|AmanGraph关系覆盖|PDF文本提取|显式语言支持层|<100ms查询


基本命令

命令 描述
amanmcp init 初始化项目
amanmcp index [path] 构建搜索索引和AmanGraph
amanmcp search "query" 搜索代码库
amanmcp doctor 解决问题
amanmcp status 检查索引运行状况

完整命令参考→


克劳德能做什么

当通过MCP连接时,Claude有以下工具:

工具 目的
search 跨代码库的混合搜索
search_code 查找函数、类、类型
search_docs 搜索文档

结构化SDK注册的MCP工具是规范的集成路径。这 遗留进程中 Server.CallTool markdown包装器仍然适用于较旧的 测试和兼容性调用程序,但它已被弃用,并计划删除 在v1.0.0之后。

尝试: “查找处理数据库连接的函数”


文档

我想… 去这里
逐步开始 快速入门指南
查看所有CLI命令 命令参考
配置设置 配置
使用MLX(苹果硅) MLX设置
了解搜索的工作原理 混合搜索指南
贡献代码 贡献

浏览文档

浏览我们按主题组织的全面文档。每个类别都突出显示了关键文档,以帮助您快速找到所需内容。


条款 -深度挖掘与洞察

文档 主题 问题/疑问 关键见解
人工智能工程指南 学习路线图 如何高效学习AI/ML工程? 80/20方法-专注于跨工具传递的基本原理
AI原生项目管理 人工智能协作 当人工智能进行大部分编码时,如何管理项目? 具有上下文管理和会话工作流的人工智能执行器模型
AI原生文档课程 文档策略 如何防止文档泛滥? 内部文档的积累速度可能快于其有用性——整合策略很重要
黑盒架构案例研究 模块化设计 如何构建可大规模维护的系统? Eskil Steenberg的原则-稳定的接口+隐藏的复杂性=数十年的耐用性
Claude代码搜索与AmanMCP基准测试 工具比较 什么时候使用内置工具与专业搜索? 工具是互补的,而不是竞争的——每种工具都有优势
调试MCP协议 协议调试 为什么MCP集成神秘失败? 标准污染违反协议-MCP使用标准指令进行通信
更小的型号,更好的搜索 模型选择 如何在资源约束下选择嵌入模型? 通过以质量为中心的调优,0.6B模型在特定任务上的表现优于8B
静态嵌入解释 回退模式 什么时候应该使用静态嵌入和动态嵌入? 零依赖嵌入实现即时启动和优雅降级
零摩擦课程 开发人员用户体验 如何实现“它只是工作”的理念? 每个手动步骤都是一个有漏洞的抽象——自动检测优于配置

→ 文章文档概述


概念 -核心思想与理论

文档 主题 问题/疑问 关键见解
混合搜索 搜索基础 为什么要结合关键字和语义搜索? BM25找到精确匹配,向量找到意义——融合得到两种优势
MCP协议 人工智能集成 AmanMCP如何与Claude沟通? 模型上下文协议通过JSON-RPC实现结构化AI工具通信
索引管道 内容处理 什么被索引,如何索引? 代码使用解析器支持的块,markdown使用节块,PDF使用页面感知文本提取
语言支持层 语言支持 哪些语言是解析器支持的,哪些是回退的? 结果曝光 language_support_tier 因此解析器支持是明确的
树保姆指南 代码解析 如何使用解析器支持的分块来解析代码? 一级语言使用AST感知分块;回退语言使用行块
两阶段检索 搜索优化 为什么搜索两次而不是一次? 快速筛选(候选人),然后精确排名平衡速度和准确性
矢量搜索概念 语义搜索 语义搜索实际上是如何工作的? 嵌入将文本转化为数字,以几何方式捕捉意义

→ 概念文档概述


指南 -分步说明

文档 主题 问题/疑问 关键见解
首次用户指南 入门 如何从头开始设置AmanMCP?五个步骤:安装Ollama,安装AmanMCP,初始化项目,重启Claude,查询
自制咖啡设置指南 安装 如何在macOS上通过Homebrew进行安装?Homebrew提供自动更新和依赖关系管理
MLX设置 性能 如何在Apple Silicon上更快地嵌入? MLX在本地嵌入生成方面比Ollama快16倍
后端切换 配置 如何在Ollama和MLX嵌入之间切换? 简单的配置更改可以比较工作负载的后端
自动重新索引 工作流 如何使搜索索引与代码更改保持同步? 文件监视可实现实时增量更新,无需手动重新索引
热管理 优化 如何在索引过程中减少CPU热量? 通过批量大小和并发调优优化CPU温度

→ 指南文档概述


研究 -调查与决策

文档 主题 问题/疑问 关键见解
搜索质量改进系列 综合 如何全面解决词汇不匹配问题? 矢量上下文检索+BM25查询扩展将通过率从60%提高到92%
上下文检索决策 搜索增强 如何弥合查询和代码之间的词汇不匹配? 在嵌入之前,使用模式回退将LLM生成的上下文预存到块中
上下文检索回归 质量分析 增强功能如何导致退化? 小型嵌入模型+上下文前缀可以在嵌入空间中聚集
查询扩展不对称 查询处理 我们是否应该扩展所有搜索后端的查询? 仅扩展到BM25-扩展有助于关键字搜索,但会稀释嵌入
RRF融合原理 搜索融合 如何将BM25和矢量搜索结果结合起来? 互易秩融合(k=60)提供简单、有效的组合,无需训练
词汇不匹配分析 搜索质量 为什么代码的语义搜索失败? 用户说“搜索功能”,代码说 func Search -40%故障的根本原因
狗食法 质量验证 如何验证RAG搜索质量? 具有5个为什么根本原因分析的分层查询系统捕捉到了语义差距
嵌入模型 模型选择 代码搜索的嵌入模型是什么? qwen3-0.6b平衡质量和资源;代码专用模型提高了7-8%的检索效率
嵌入后端演进 后端选择 默认情况下是哪个嵌入后端? Ollama默认(较低的RAM),MLX选择加入(快16倍)-RAM对开发更重要
嵌入优化 性能 如何优化嵌入性能? MLX与TEI基准测试揭示了批处理大小调整和GPU利用率模式
嵌入模型演化 进化 我们的嵌入选择是如何进化的? nomic→ 胡戈→ Qwen3-每一次转变都教会了我们如何权衡
SQLite vs Bleve 存储后端 哪个BM25后端用于并发访问? SQLite FTS5支持并发访问(WAL模式)-纯Go,经过生产验证
矢量数据库选择 矢量存储 哪个矢量数据库首先用于本地? US搜索→ coder/hnsw-纯Go,可扩展到300K+向量
专业化vs泛化 模型策略 我们应该使用专业模型还是通用模型? 专业模型在领域中表现出色,但通用模型提供了更好的回退
树保姆Chunking 代码解析 如何智能地分块代码? AST感知边界保留语义单元-需要CGO,但值得
MLX迁移案例研究 性能迁移 如何计划和执行性能迁移? 实施前验证,始终有回退,更喜欢自动检测
RAG的可观测性 操作 如何观察RAG系统?RAG与代理的区别需要结构化的日志记录和搜索质量指标

→ 研究文件概述


贡献 -开发者资源

文档 主题 问题/疑问 关键见解
代码约定 代码风格 我在贡献时应该遵循哪些标准? 错误包装、资源清理和配置驱动行为是不可协商的
测试指导 质量保证 我如何为AmanMCP编写测试? 使用黄金文件进行确定性验证的表驱动测试
TDD基本原理 开发过程 为什么AmanMCP需要测试优先开发? 测试作为规范可以防止返工,并实现无所畏惧的重构

→ 查看所有3个贡献文档


参考 -技术规格

文档 主题 问题/疑问 关键见解
命令 CLI用法 AmanMCP中提供了哪些命令? 六个核心命令处理初始化、搜索、健康检查和维护
配置 设置 如何自定义AmanMCP行为? YAML配置控制路径、模型、权重和排除
建筑 系统设计 AmanMCP的内部结构是怎样的? 清洁分离:MCP层、搜索引擎、存储、嵌入管道
术语表 术语 RRF和HNSW等技术术语是什么意思? 搜索、嵌入和MCP概念的快速参考

路线图

状态 功能
现在 适用于Mac/Linux的生产就绪本地RAG
下一步 Windows支持,对其他语言的Tier 1解析器支持
稍后 IDE插件、远程团队搜索、云同步

欢迎捐款 在 优先领域.


隐私

  • 100%本地 -安装后不需要互联网
  • 无遥测 -我们不收集任何数据
  • 无云 -你的代码永远不会离开你的机器

安装选项

方法 命令
家酿 brew tap Aman-CERP/amanmcp && brew install --cask amanmcp
脚本 curl -sSL https://raw.githubusercontent.com/Aman-CERP/amanmcp/main/scripts/install.sh | sh (macOS arm64发布工件)
来源 git clone ... && make install-local
离线 amanmcp init --offline (仅BM25,无需型号)

技术

组件 选择
语言 转到1.26.3+
协议 MCP 2025-11-25
关键字搜索 SQLite FTS5 BM25(纯Go)
矢量搜索 编码器/hnsw
代码解析 树保姆
嵌入件 奥拉玛 (默认)/MLX(苹果硅)

贡献

看 贡献.md 用于开发设置和指南。

优先领域: 一级语言支持、Windows支持、性能。


许可证

Apache 2.0许可证-请参阅 许可证


免责声明

AmanMCP是正在积极开发的实验软件。通过使用此软件,您承认这是alpha/beta质量的软件,对任何问题承担全部责任,并理解开发人员对数据丢失、系统问题或其他问题不承担责任。


致谢

模型上下文协议 通过Anthropic| 编码器/hnsw | 奥拉玛 | 树保姆 | 通义


AmanERP团队精心制作 · “它只是起作用。”