Token导航 LogoToken导航TokenDH.com
codex7 (Shawnzheng011019) logo
搜索检索stdio官方级别未说明来源级核验

codex7 (Shawnzheng011019)

MCP Server

一个基于Python的代码检索系统,结合向量搜索和图关系进行智能代码分析和搜索,实现为模型上下文协议(MCP)服务器。

工具数

8

提示词数

0

GitHub Stars

0

资源数

0
搜索Python知识图谱多语言支持

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

Shawnzheng011019

提供方

Shawnzheng011019

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install -r requirements.txt

详细介绍

代码检索系统-MCP服务器

一个用Python构建的综合代码检索系统,将向量搜索与基于图的关系相结合,用于智能代码分析和搜索,实现为模型上下文协议(MCP)服务器。

🌟 特性

  • 🔍 本地代码库分析:扫描并索引您的本地项目以进行智能搜索
  • 📚 多内容支持:分析代码、文档、配置文件等
  • ⚡ 语义搜索:结合向量相似性和BM25的高级混合搜索
  • 🤖 MCP集成:用于无缝集成AI IDE的模型上下文协议服务器
  • 🎯 多语言支持:用于JavaScript、TypeScript、Python、Go、Rust、Java、C++等的AST拆分器
  • 📊 知识图谱:构建代码依赖关系图以进行影响分析
  • 🗄️ Milvus矢量数据库:高性能矢量相似性搜索
  • 🕸️ Neo4j图形数据库:丰富的关系建模和查询

🏗️ 建筑

该系统完全用Python构建,具有干净、模块化的架构:

核心组件

  • 扫描仪:本地代码库文件系统扫描程序(src/scanner/)
  • 处理器:内容分块和嵌入生成(src/processor/)
  • 矢量数据库:Milvus客户端,用于快速相似性搜索(src/query/)
  • 图形数据库:用于代码关系的Neo4j客户端(src/graph/)
  • 嵌入服务:针对Milvus优化的OpenAI嵌入生成(src/embedding/)
  • 搜索引擎:使用BM25和重新排名进行混合搜索(src/search/)
  • MCP服务器:基于FastMCP的服务器,用于AI工具集成(src/mcp/)

处理管线

  1. 扫描 → 发现并分类本地项目文件
  2. 提取 → 解析代码和文档内容
  3. → 具有上下文保留的智能文本分割
  4. 嵌入 → 使用OpenAI生成语义嵌入
  5. 索引 → 存储在Milvus矢量数据库和Neo4j图形数据库中
  6. 搜索 → 混合搜索与重新排序以获得最佳结果

🚀 快速开始

先决条件

  • Python 3.10+
  • Docker(适用于Milvus和Neo4j)
  • 用于嵌入的OpenAI API密钥

安装

  1. 克隆存储库:
git clone 
cd code-retrieval-system
  1. 安装依赖项:
pip install -r requirements.txt
  1. 设置环境变量:
cp .env.example .env
# Edit .env with your OpenAI API key and database settings
  1. 使用Docker启动数据库:
docker-compose up -d
  1. 运行MCP服务器:
# Using stdio transport (default)
python main.py --stdio

# Using SSE transport
python main.py --sse --port 8000

配置

编辑 .env 要配置的文件:

  • 数据库设置:Milvus和Neo4j连接参数
  • OpenAI设置:API密钥和嵌入模型
  • 搜索参数:BM25权重,重新排序阈值
  • 文件处理:块大小,支持的扩展

📖 MCP工具

系统提供以下MCP工具:

核心工具

  • index_codebase -索引代码库以进行搜索
  • search_code -混合搜索与重新排名
  • search_in_file -在特定文件内搜索
  • clear_database -清除数据库中的所有数据

图形分析工具

  • get_function_dependencies -获取函数依赖关系图
  • get_class_hierarchy -获取类继承层次结构
  • get_file_structure -获取文件结构分析

系统工具

  • get_system_stats -获取系统统计数据和运行状况

示例用法

为代码库建立索引

# Using MCP client
result = await client.call_tool("index_codebase", {
    "root_path": "/path/to/your/code",
    "max_workers": 4
})

搜索代码

# Using MCP client
result = await client.call_tool("search_code", {
    "query": "how to implement authentication",
    "top_k": 10,
    "use_graph": true,
    "use_reranking": true
})

获取函数依赖关系

# Using MCP client
result = await client.call_tool("get_function_dependencies", {
    "function_name": "user.authenticate"
})

在文件中搜索

# Using MCP client
result = await client.call_tool("search_in_file", {
    "file_path": "src/main.py",
    "query": "database connection"
})

🔧 高级配置

OpenAI嵌入

# Required for vector search
OPENAI_API_KEY=your_openai_api_key
OPENAI_MODEL=text-embedding-ada-002

搜索参数

  • BM25_K1:BM25参数用于术语频率饱和(默认值:1.2)
  • BM25_B:用于文档长度规范化的BM25参数(默认值:0.75)
  • TOP_K_RESULTS:要返回的结果数(默认值:10)
  • RERANK_THRESHOLD:基于图形的重新排序阈值(默认值:0.5)

🛠️ 发展

项目结构

code-retrieval-system/
├── src/
│   ├── config.py              # Configuration management
│   ├── types.py               # Data models and types
│   ├── scanner/               # File system scanning
│   ├── processor/             # Content processing and chunking
│   ├── query/                 # Vector database (Milvus)
│   ├── graph/                 # Graph database (Neo4j)
│   ├── embedding/             # OpenAI embedding service
│   ├── search/                # Search and reranking
│   ├── mcp/                   # FastMCP server
│   └── utils/                 # Utilities and logging
├── main.py                    # MCP server entry point
├── requirements.txt           # Python dependencies
├── docker-compose.yml         # Database setup
├── .env.example              # Environment template
└── README.md                 # This file

测试

使用以下工具运行测试:

pytest tests/

代码质量

# Format code
black src/

# Lint code
flake8 src/

# Type checking
mypy src/

📊 演出

该系统设计用于以下性能:

  • 并行处理:多线程文件扫描和处理
  • 高效索引:优化分块和OpenAI嵌入生成
  • 快速搜索:使用BM25回退进行Milvus向量相似性搜索
  • 图形加速:Neo4j用于关系查询
  • 缓存:对频繁访问的数据进行智能缓存

🔍 搜索流程

搜索过程遵循以下复杂的流程:

  1. 矢量搜索:Milvus中使用OpenAI嵌入的语义相似性
  2. BM25搜索:基于关键字的精确匹配
  3. 杂交组合:两种方法的加权组合
  4. 图形增强:用代码关系丰富结果
  5. 重新排序:根据图形上下文重新排序结果
  6. 最终排名:产生最佳有序的结果

🤝 贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 添加测试
  5. 提交拉取请求

📄 许可证

此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。

🙏 致谢

  • Milvus矢量数据库功能
  • Neo4j用于图形数据库功能
  • OpenAI用于嵌入服务
  • MCP服务器框架的FastMCP
  • 各种工具和库的开源社区

目录标签

目录标签

搜索Python知识图谱多语言支持代码检索本地部署语义搜索AI集成

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

api-key

工具数量(toolCount,工具数)

8

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdioapi-key部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

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

来源信息

继续浏览同类 MCP