麦基姆CP
用于语义文档搜索的RAG MCP服务器。它将本地文档集合索引到SQLite中 sqlite-vec,然后公开MCP工具,用于索引、搜索、刷新、列出和删除索引文档。
特性
- 对PDF、Word、PowerPoint、Excel、Markdown和文本文件进行语义搜索
- 使用可选的传统单数据库模式进行每用户数据库隔离
- 用于聊天或内容范围检索的文档ID过滤器
- 基于文件大小和修改时间的增量索引
- 默认情况下,Voyage AI嵌入,具有离线本地句子转换器后端
- 忽略本地数据库工件的可移植SQLite存储
设置
python -m venv .venv
.\.venv\Scripts\activate
pip install -r requirements.txt根据示例创建本地环境设置:
copy .env.example .env集 ICKY_VOYAGE_API_KEY 使用默认Voyage后端时。对于离线使用,设置 ICKY_EMBEDDING_PROVIDER=local.
配置
| 变量 | 默认值 | 描述 |
|---|---|---|
ICKY_EMBEDDING_PROVIDER | voyage | voyage 或 local |
ICKY_VOYAGE_API_KEY | unset | 使用Voyage嵌入时需要 |
ICKY_VOYAGE_MODEL | voyage-3.5-lite | 航次嵌入模型 |
ICKY_VOYAGE_DIMENSIONS | 1024 | 航行输出维度 |
ICKY_VOYAGE_WORKERS | 8 | 保留用于并行Voyage工作流 |
ICKY_LOCAL_MODEL | nomic-ai/nomic-embed-text-v1.5 | 局部句子转换模型 |
ICKY_CHUNK_SIZE | 5000 | 每个区块的近似令牌 |
ICKY_CHUNK_OVERLAP | 500 | 块之间的近似令牌重叠 |
ICKY_DATA_DIR | ./data | 每个用户数据库的基本目录 |
ICKY_DB_PATH | 特定于提供程序的 | 传统单一数据库路径 |
Claude MCP配置
{
"mcpServers": {
"ickyMCP": {
"command": "python",
"args": ["C:\\Users\\devan\\OneDrive\\Desktop\\Projects\\ickyMCP\\run.py"],
"env": {
"ICKY_EMBEDDING_PROVIDER": "voyage",
"ICKY_VOYAGE_API_KEY": "YOUR_VOYAGE_API_KEY",
"ICKY_CHUNK_SIZE": "5000",
"ICKY_CHUNK_OVERLAP": "500"
}
}
}
}工具
index:为文件或目录建立索引;接受user_id,patterns,exclude,以及forcesearch:索引块的语义查询;接受document_ids,path_filter,以及file_typessimilar:查找与提供的文本相似的块refresh:重新索引已更改的文件并从索引中删除已删除的文件list:列出索引文档及其IDdelete:按路径、文档ID或所有文档删除status:返回数据库、嵌入和分块状态
验证
python -m compileall -q src run.py fast_index.py
python -c "from src.config import EMBEDDING_PROVIDER; print(EMBEDDING_PROVIDER)"根 test_*.py 文件是集成脚本,需要以下本地文档 docs/ 以及,对于默认后端,配置的Voyage API密钥。
数据卫生
git会忽略生成的数据库和本地文档文件夹: *.db, *.db.bak, *.sqlite, *.sqlite3, data/,以及 docs/.在环境变量或 .env,不在跟踪文件中。
许可证
麻省理工学院
