MCP语义搜索
一种本地向量数据库系统,通过消息控制协议为LLM编码代理提供快速、高效的软件项目语义搜索功能。
服务介绍
Files-DB-MCP: 代码项目的向量搜索
一个本地向量数据库系统,通过消息控制协议(MCP)为LLM编码代理提供快速高效的软件项目搜索能力。
特性
- 零配置 - 自动检测项目结构并使用合理的默认设置
- 实时监控 - 持续监视文件更改
- 向量搜索 - 语义搜索以查找相关代码
- MCP接口 - 兼容Claude Code和其他LLM工具
- 开源模型 - 使用Hugging Face模型进行代码嵌入
安装
选项1:克隆和设置(推荐)
# Using SSH (recommended if you have SSH keys set up with GitHub)
git clone git@github.com:randomm/files-db-mcp.git ~/.files-db-mcp && bash ~/.files-db-mcp/install/setup.sh
# Using HTTPS (if you don't have SSH keys set up)
git clone https://github.com/randomm/files-db-mcp.git ~/.files-db-mcp && bash ~/.files-db-mcp/install/setup.sh
选项2:自动化安装脚本
curl -fsSL https://raw.githubusercontent.com/randomm/files-db-mcp/main/install/install.sh | bash
使用
安装后,在任意项目目录中运行:
files-db-mcp
服务将:
- 检测您的项目文件
- 在后台开始索引
- 立即开始响应MCP搜索查询
要求
- Docker
- Docker Compose
配置
Files-DB-MCP无需配置即可工作,但您可以使用环境变量自定义它:
EMBEDDING_MODEL- 更改嵌入模型(默认:'jinaai/jina-embeddings-v2-base-code' 或项目特定模型)FAST_STARTUP- 设置为'true'以使用更小的模型来加快启动速度(默认:'false')QUANTIZATION- 启用/禁用量化(默认:'true')BINARY_EMBEDDINGS- 启用/禁用二进制嵌入(默认:'false')IGNORE_PATTERNS- 忽略的文件/目录的逗号分隔列表
首次启动
首次运行时,Files-DB-MCP将下载嵌入模型,这可能需要几分钟时间,具体取决于:
- 所选模型的大小(高质量模型为300-500MB)
- 您的互联网连接速度
随后的启动会快得多,因为模型会被缓存在持久化的Docker卷中。为了更快地初始启动,您可以:
# Use a smaller, faster model (90MB)
EMBEDDING_MODEL=sentence-transformers/all-MiniLM-L6-v2 files-db-mcp
# Or enable fast startup mode
FAST_STARTUP=true files-db-mcp
模型缓存
Files-DB-MCP自动持久化已下载的嵌入模型,因此您只需下载一次:
- 模型存储在名为
model_cache的Docker卷中 - 此卷在容器重启之间以及不同项目之间保持不变
- 缓存对机器上所有使用Files-DB-MCP的项目共享
- 您不需要为每个项目重新下载模型
Claude Code集成
添加到您的Claude Code配置中:
{
"mcpServers": {
"files-db-mcp": {
"command": "python",
"args": ["/path/to/src/claude_mcp_server.py", "--host", "localhost", "--port", "6333"]
}
}
}
文档
仓库结构
/src- 源代码/tests- 单元测试和集成测试/docs- 文档/scripts- 实用脚本/install- 安装脚本/.docker- Docker配置/config- 配置文件/ai-assist- AI辅助文件
许可证
贡献
欢迎贡献!请随时提交拉取请求。