使用说明
代码搜索MCP服务器
语义代码搜索MCP服务器,使用嵌入对代码存储库进行索引,并为Amazon Q CLI提供智能搜索功能。
特性
- 语义搜索:按含义查找代码,而不仅仅是关键字
- 关键字搜索:传统的基于文本的搜索
- 多存储库支持:跨多个存储库进行索引和搜索
- 基于块的索引:智能代码分块以获得更好的上下文
- 文件类型感知:支持20多种编程语言
- 实时集成:与Amazon Q CLI无缝协作
建筑
Code Repo → Indexer → ChromaDB → MCP Server → Amazon Q CLI
快速开始
1.设置环境
# Clone and setup
git clone <repository-url>
cd code-search-mcp
# Run quick setup
./quick_start.sh
2.为您的第一个存储库建立索引
# Activate environment
source venv/bin/activate
# Index a repository
python indexer.py --repo-path /path/to/your/repo --repo-name my-project
# Verify indexing
python indexer.py --list
3.启动MCP服务器
如果这是您第一次或清理后:
# Run quick setup to create virtual environment and install dependencies
./quick_start.sh
要启动服务器,请执行以下操作:
# Start the server (recommended)
./start_server_simple.sh
# Alternative startup script
./start_server.sh
手动启动(如果需要):
# Activate environment and start manually
source venv/bin/activate
python mcp_server.py
4.配置Amazon Q CLI
# Add MCP server to Q CLI
qchat mcp add --name code-search --command /path/to/code-search-mcp/venv/bin/python --args /path/to/code-search-mcp/mcp_server.py
# Verify configuration
qchat mcp list
库管理
为新存储库建立索引
python indexer.py --repo-path /path/to/repo --repo-name repo-name
例子:
python indexer.py --repo-path /home/user/projects/my-app --repo-name my-app
列出索引存储库
python indexer.py --list
查看存储库统计信息
# All repositories
python indexer.py --stats
# Specific repository
python indexer.py --stats --filter-repo my-app
测试搜索功能
# Test semantic search
python indexer.py --search "authentication logic"
# Test search in specific repository
python indexer.py --search "database connection" --filter-repo my-app
支持的文件类型
索引器自动处理这些文件类型:
编程语言:
- python
.py) - JavaScript/TypeScript(
.js,.ts) - Java
.java) - C
.cs) - C/C++(
.c,.cpp,.h) - 去吧(
.go) - 生锈(
.rs) - PHP(
.php) - 红宝石(
.rb) - Swift(
.swift) - Kotlin(
.kt) - Scala(
.scala)
数据和配置:
- JSON(
.json) - YAML(
.yaml,.yml) - XML(
.xml) - SQL(
.sql)
文档:
- Markdown(
.md) - HTML(
.html) - CSS(
.css) - 文本(
.txt)
使用Amazon Q CLI
配置后,您可以向Amazon Q CLI提出以下问题:
代码发现
- “在我的应用程序存储库中查找身份验证逻辑”
- “显示数据库连接代码”
- “用户验证在哪里实现?”
- “查找处理文件上传的函数”
API文档
- “GetUserById API做什么?”
- “显示项目中的所有REST端点”
- “查找错误处理模式”
架构理解
- “应用程序是如何构建的?”
- “显示服务层实现”
- “查找依赖注入配置”
提供的MCP工具
| 工具 | 说明 | 参数 |
|---|---|---|
search_code_semantic |
基于人工智能的语义搜索 | query, repo_name, limit, min_similarity |
search_code_keyword |
传统关键字搜索 | query, repo_name, limit |
list_indexed_repos |
列出所有索引存储库 | 无 |
repo_stats |
获取存储库统计信息 | repo_name (可选) |
配置文件
q-cli-config.json:Amazon Q CLI MCP配置chroma_db/repo_metadata.json:存储库元数据requirements.txt:Python依赖关系
故障排除
Git克隆或清理后启动
如果您刚刚克隆了存储库或清理了环境:
-
运行快速设置:
./quick_start.sh -
为您的存储库建立索引:
source venv/bin/activate python indexer.py --repo-path /path/to/your/repo --repo-name repo-name -
启动MCP服务器:
./start_server_simple.sh -
配置Q CLI(如果之前没有这样做):
qchat mcp add --name code-search --command $(pwd)/venv/bin/python --args $(pwd)/mcp_server.py
MCP服务器未加载
- 检查服务器是否正在运行:
ps aux | grep mcp_server - 验证Q CLI配置:
qchat mcp list - 检查服务器日志是否有错误
没有搜索结果
- 验证存储库是否已编入索引:
python indexer.py --list - 检查存储库路径是否正确
- 确保文件采用支持的格式
性能问题
- 大型存储库可能需要时间来索引
- 考虑仅对特定目录进行索引
- 在索引过程中监视内存使用情况
发展
项目结构
code-search-mcp/
├── indexer.py # Repository indexing logic
├── mcp_server.py # MCP server implementation
├── code_indexer.py # Core indexing classes
├── start_server.sh # Server startup script
├── quick_start.sh # Setup script
├── requirements.txt # Dependencies
├── chroma_db/ # Vector database
└── venv/ # Python virtual environment
添加新文件类型
编辑 code_indexer.py 并向中添加新的扩展 SUPPORTED_EXTENSIONS 列表。
自定义块大小
修改 chunk_size 参数在 CodeIndexer 类初始化。
许可证
本项目归Savynt,股份有限公司所有。保留所有权利。
快速参考
基本命令
# Setup (first time or after cleanup)
./quick_start.sh
# Index a repository
source venv/bin/activate
python indexer.py --repo-path /path/to/repo --repo-name repo-name
# List indexed repositories
python indexer.py --list
# Start MCP server
./start_server_simple.sh
# Configure Q CLI
qchat mcp add --name code-search --command $(pwd)/venv/bin/python --args $(pwd)/mcp_server.py
# Check Q CLI configuration
qchat mcp list
安装后的文件结构
code-search-mcp/
├── venv/ # Virtual environment (created by quick_start.sh)
├── chroma_db/ # Vector database (created when indexing)
├── mcp_server.py # Main MCP server
├── indexer.py # Repository indexer
├── start_server_simple.sh # Server startup script
└── README.md # This file
支持
对于问题和疑问:
- 检查故障排除部分
- 查看MCP服务器日志
- 验证Amazon Q CLI配置
- 独立测试索引器功能
