代码智能MCP服务器

GOGO是一个本地优先的模型上下文协议(MCP)服务器,为AI代理提供可搜索的代码库向量数据库,无需重型硬件。

  • by donutboyband
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 donutboyband/gogo-mcp

使用说明

GOGO-代码智能MCP服务器

冲冲 是本地第一个模型上下文协议(MCP)服务器,它为AI代理提供了一个可搜索的代码库矢量数据库,而不需要重型硬件。

特性

  • 超低内存占用:使用Matryoshka表示学习和二进制量化进行96-99%的压缩
  • 混合搜索:结合向量相似性、BM25关键字搜索和符号查找
  • 智能分块:基于树的函数、类和方法提取
  • 代码智能:符号定义、调用图、参考查找等
  • Git感知同步:仅重新索引更改的文件(增量更新)
  • 本地优先:所有处理都通过Olama在您的机器上进行
  • 文件监视:文件更改时自动同步

需求

  • Python 3.11+
  • 奥拉玛 随着 nomic-embed-text 模型
  • 4GB+内存

安装

安装Ollama并拉动嵌入模型:

ollama pull nomic-embed-text

然后从来源:

git clone https://github.com/eccreativ/gogo-mcp.git
cd gogo-mcp
uv sync

配置

添加到您的Claude桌面配置(~/Library/Application Support/Claude/claude_desktop_config.json 在macOS上):

{
  "mcpServers": {
    "gogo": {
      "command": "uv",
      "args": ["run", "gogo-server"],
      "cwd": "/path/to/gogo-mcp"
    }
  }
}

MCP工具

索引

工具 说明
index_directory 具有并行树型解析的代码库的完整索引
sync_index Git感知增量同步(仅更改文件)
clear_index 删除代码库的索引
watch_directory 文件更改时自动同步
unwatch_directory 停止查看目录

搜索

工具 说明
super_grep 强大的统一搜索 -将向量相似性、BM25、符号查找和引用搜索组合在一个调用中
code_research 具有查询意图分类的语义搜索
find_references 查找符号的所有用法(调用、导入、继承)

代码智能

工具 说明
get_symbol_definition O(1)查找函数/类的定义位置
get_codebase_overview 高层架构:入口点、关键类、文件结构
get_call_graph 这个函数叫什么?它叫什么?
get_related_symbols 查找经常一起使用的符号(共现分析)

使用示例

为代码库建立索引

index_directory("/path/to/your/project")

使用super_grep搜索

super_grep("authentication", "/path/to/project")

退货:

  • 与“身份验证”匹配的符号定义
  • 所有参考文献/用法
  • 语义相似的代码
  • 相关符号

获取代码库概述

get_codebase_overview("/path/to/project")

退货:

  • 文件计数、符号计数、引用计数
  • 符号类型细分(函数、类等)
  • 入口点(主要功能、处理程序)
  • 具有方法计数的关键类

探索功能

get_call_graph("handleLogin", "/path/to/project", direction="both")

退货:

  • 定义功能的地方
  • 所有来电者(拨打此电话的人)
  • 所有被叫者(这叫什么)

建筑

堵塞管道

  1. 使用解析代码 树保姆 (支持30多种语言)
  2. 将函数、类、方法提取为单独的块
  3. 增加元数据(导入、签名、文档字符串)
  4. 用Ollama嵌入每个块

矢量压缩

速度+准确性的两阶段检索:

  1. 第一阶段:汉明距离滤波器

    • 二进制量化向量(256位)
    • 快速XOR+计数
    • 返回前100名候选人
  2. 第二阶段:余弦相似度重新排序

    • MRL截断浮点向量(256维)
    • 精准排名
    • RRF与BM25评分融合

索引

索引 目的
矢量(二进制) 快速相似性搜索
矢量(MRL浮动) 精确重新排序
BM25(FTS) 关键字搜索
符号 O(1)定义查找
参考文献 调用图,用法

支持的语言

Python、JavaScript、TypeScript、Go、Rust、Java、C、C++、C#、Ruby、PHP、Swift、Kotlin、Scala、Lua、R、Julia、Elixir、Erlang、Haskell、OCaml、Clojure、Perl、Dart等等。

演出

  • 记忆:每个代码块约16个字节(标准RAG为3KB)
  • 索引:并行树保姆解析+并行嵌入
  • 搜索:100K+块上小于100ms
  • 压缩:96-99%与全float32向量

发展

# Install dependencies
uv sync

# Run tests
uv run pytest

# Run server directly
uv run gogo-server

许可证

MIT许可证-请参阅 许可证 文件。

学分

内置: