使用说明
Context42-MCP RAG服务器
基于FastMCP的服务器,用于智能文档压缩的本地文本搜索。
🚀 快速开始
# Install basic version (keyword search)
uvx install context42
# Install with CLaRa semantic compression
pip install context42[clara]
# Run directly
uvx context42
# Or via uv
uv run context42
# Download CLaRa model (optional)
context42 download
🛠️ MCP工具
| 工具 | 说明 | 参数 |
|---|---|---|
load_documents |
从目录加载文本文件 | directory: str, extensions: list[str], max_files: int |
chunk_documents |
应用压缩块 | compression_level: float (1.0-128.0) |
search |
按块搜索(关键字或CLaRa) | query: str, top_k: int, method: str (auto|clara|keyword) |
get_status |
获取服务器状态 | - |
CLaRa工具 (要求 pip install context42[clara]) |
||
init_clara |
初始化CLaRa模型进行语义搜索 | model: str, force_download: bool |
clara_status |
获取CLaRa模型状态 | - |
unload_clara |
卸载CLaRa模型以释放内存 | - |
ask |
使用CLaRa询问有关文档的问题 | question: str, max_tokens: int |
📚 MCP资源
context42://status-当前服务器状态(已加载文档、块、压缩、CLaRa状态)context42://documents-加载的文档元数据列表
🧠 CLaRa语义压缩
可选功能 -安装时使用 pip install context42[clara] 启用苹果的CLaRa模型进行语义文档压缩和智能搜索。
CLaRa型号可用
| 型号 | 压缩 | 尺寸 | 用例 |
|---|---|---|---|
clara-7b-instruct-16 |
16× | ~14GB | 一般问答, 推荐 |
clara-7b-instruct-128 |
128× | ~14GB | 大语料库搜索 |
clara-7b-base-16 |
16× | ~14GB | 自定义微调 |
clara-7b-e2e-16 |
16× | ~14GB | 多文档RAG |
CLaRa工作流
# 1. Initialize CLaRa (downloads model if needed)
tools/call init_clara {"model": "clara-7b-instruct-16"}
# 2. Load documents
tools/call load_documents {"directory": "./docs"}
# 3. Ask semantic questions
tools/call ask {"question": "What is the main topic of these documents?"}
# 4. Search with CLaRa (auto-enabled when loaded)
tools/call search {"query": "machine learning", "method": "clara"}
# 5. Check model status
tools/call clara_status {}
回退行为
| CLaRa状态 | 搜索行为 | 询问行为 |
|---|---|---|
| 未安装 | 关键字搜索 | 错误消息 |
| 已安装,未加载 | 关键字搜索 | 错误消息 |
| 已加载 | CLaRa语义搜索 | CLaRa-generation |
🎯 示例用法
# 1. Load documents
tools/call load_documents {"directory": "./docs", "extensions": [".md", ".txt"]}
# 2. Apply 16x compression (100-char chunks)
tools/call chunk_documents {"compression_level": 16.0}
# 3. Search for content
tools/call search {"query": "machine learning", "top_k": 5}
📊 支持的文件格式
| 扩展 | 描述 |
|---|---|
.md |
Markdown |
.txt |
纯文本 |
.rst |
重新结构化文本 |
.json |
JSON(文本格式) |
.yaml, .yml |
YAML配置 |
.toml |
TOML配置 |
.csv |
CSV数据 |
.log |
日志文件 |
📊 压缩级别
| 级别 | 块大小 | 用例 |
|---|---|---|
| 1.0x | 1000个字符 | 大上下文,详细分析 |
| 4.0x | 250个字符 | 中等上下文,平衡搜索 |
| 16.0x | 100个字符 | 上下文小,搜索速度快 |
| 64.0x | 100个字符 | 最大压缩 |
🔧 MCP集成
快速CLI设置
使用以下命令行将Context42添加到任何与MCP兼容的工具中:
# Claude Desktop
echo '{"mcpServers":{"context42":{"command":"uvx","args":["context42"]}}' >> ~/Library/Application\ Support/Claude/claude_desktop_config.json
# Cursor Editor
echo '{"mcpServers":{"context42":{"command":"uvx","args":["context42"]}}' > ~/.cursor/mcp_settings.json
# Continue.dev
echo '{"mcpServers":{"context42":{"command":"uvx","args":["context42"]}}' > ~/.continue/config.json
MCP配置标准
Context42遵循官方MCP配置模式,可与所有主要工具配合使用:
标准配置格式
{
"mcpServers": {
"context42": {
"command": "uvx",
"args": ["context42"]
}
}
}
克劳德代码(推荐)
# Add to user scope (cross-project)
claude mcp add --transport stdio context42 -- uvx context42
# Add to project scope (team-shared)
claude mcp add --transport stdio context42 --scope project -- uvx context42
# Add with environment variables
claude mcp add --transport stdio context42 --env CONTEXT42_DOCS_PATH=/path/to/docs -- uvx context42
VS Code
{
"mcp": {
"servers": {
"context42": {
"type": "stdio",
"command": "uvx",
"args": ["context42"]
}
}
}
}
光标/风帆
{
"mcpServers": {
"context42": {
"command": "uvx",
"args": ["context42"]
}
}
}
Zed编辑
{
"context_servers": {
"Context42": {
"source": "custom",
"command": "uvx",
"args": ["context42"]
}
}
}
Cline/Roo代码
{
"mcpServers": {
"context42": {
"type": "stdio",
"command": "uvx",
"args": ["context42"]
}
}
}
配置范围
MCP服务器可以在不同级别进行配置:
| 范围 | 位置 | 用例 | 命令 |
|---|---|---|---|
| 本地 | ~/.claude.json (特定于项目) |
个人、仅限项目的服务器 | claude mcp add --scope local |
| 项目 | .mcp.json (版本控制) |
团队共享服务器 | claude mcp add --scope project |
| 用户 | ~/.claude.json (全局) |
跨项目个人服务器 | claude mcp add --scope user |
环境变量扩展
在中使用环境变量 .mcp.json 对于灵活的配置:
{
"mcpServers": {
"context42": {
"command": "uvx",
"args": ["context42"],
"env": {
"CONTEXT42_DOCS_PATH": "${DOCS_PATH:-./docs}",
"CONTEXT42_COMPRESSION": "${COMPRESSION_LEVEL:-4.0}"
}
}
}
}
Windows兼容性
对于Windows用户,请使用 cmd /c 包装:
{
"mcpServers": {
"context42": {
"command": "cmd",
"args": ["/c", "uvx", "context42"]
}
}
}
支持的工具
Context42适用于所有主要的MCP兼容工具:
AI编码助理:
- 克劳德桌面,克劳德代码,光标,风帆
- Cline、Roo Code、Continue.dev、Codeium
- GitHub Copilot、OpenCode、Aider、Supermaven
- 来源图科迪,Tabnine,困惑
IDE和编辑:
- VS代码、JetBrains IDE(IntelliJ、PyCharm等)
- Zed、Neovim、Emacs、Sublime Text
CLI工具:
- Amp、BoltAI、Crush、Factory(机器人)
- Kilo Code、LM Studio、Warp Terminal
企业平台:
- 谷歌反重力,亚马逊Q开发者CLI
- 微软Copilot命令行界面,Qwen编码器
MCP资源和提示
Context42公开了可以引用的MCP资源 @:
# Reference server status
@context42://status
# Reference loaded documents
@context42://documents
可用斜线命令(如果客户端支持):
/mcp__context42__load_docs
/mcp__context42__search
/mcp__context42__status
身份验证和安全
- 不要求进行验证 -Context42是一个本地服务器
- 文件系统访问 -尊重您的用户权限
- 无网络呼叫 -所有处理都在本地进行(CLaRa型号下载除外)
- 企业就绪 -可以通过托管MCP配置进行部署
- CLaRa隐私 -从官方HuggingFace存储库下载的模型
内存需求
| 配置 | 所需RAM | GPU VRAM |
|---|---|---|
| 回退(仅关键字) | ~100MB | 无 |
| CPU上的CLaRa | ~16GB | 无 |
| MPS(Mac)上的CLaRa | ~16GB统一 | 共享 |
| CUDA上的CLaRa | ~8GB | ~14GB |
Python客户端
from mcp.client.stdio import stdio_client, StdioServerParameters
from mcp import ClientSession
async def use_context42():
server_params = StdioServerParameters(
command="uvx", args=["context42"]
)
async with stdio_client(server_params) as (read, write):
async with ClientSession(read, write) as session:
await session.initialize()
result = await session.call_tool("load_documents", {
"directory": "./documents"
})
# Use CLaRa if available
clara_result = await session.call_tool("init_clara", {
"model": "clara-7b-instruct-16"
})
# Ask semantic questions
answer = await session.call_tool("ask", {
"question": "What is the main topic?",
"max_tokens": 128
})
CLI命令
# Model management (requires context42[clara])
context42 download # Download default CLaRa model
context42 models --local # List downloaded models
context42 info clara-7b-instruct-16 # Show model details
context42 remove clara-7b-instruct-128 # Remove model
# Server management
context42 serve # Start MCP server
context42 serve --model clara-7b-instruct-128 # Use specific model
context42 serve --preload # Preload model at startup
context42 serve --fallback # Keyword-only mode
MCP服务器管理
# List all configured MCP servers
claude mcp list
# Get Context42 server details
claude mcp get context42
# Remove Context42 server
claude mcp remove context42
# Check server status in Claude Code
/mcp
# Use Claude Code as MCP server (for testing)
claude mcp serve
企业配置
对于企业部署,请使用托管MCP配置:
// managed-mcp.json
{
"mcpServers": {
"context42": {
"command": "uvx",
"args": ["context42"],
"env": {
"CONTEXT42_DOCS_PATH": "/company/docs",
"CONTEXT42_MAX_FILES": "10000",
"CONTEXT42_MODEL": "clara-7b-instruct-16",
"CONTEXT42_DEVICE": "cuda"
}
}
},
"allowedMcpServers": [
{"serverName": "context42"}
]
}
🧪 发展
# Install dev dependencies
uv sync
# Run server for testing
uv run context42
# Test via FastMCP inspector
fastmcp dev context42/server.py
📁 项目结构
context42/
├── __init__.py # Package exports, CLARA_AVAILABLE flag
├── server.py # FastMCP server with MCP tools
├── cli.py # CLI: serve, download, models, remove, info
├── processor.py # DocumentProcessor class
├── chunker.py # Chunker class
├── search.py # SearchEngine (keyword fallback)
└── clara/ # Optional CLaRa integration
├── __init__.py # CLaRa exports
├── config.py # CLaRaConfig with model registry
├── manager.py # ModelManager (download/load/unload/remove)
└── generator.py # CLaRaGenerator (ask/search)
⚙️ 特性
- ✅ FastMCP框架:基于现代装饰器的MCP服务器
- ✅ 多格式支持:.md、.txt、.rst、.json、.yaml、.toml、.csv、.log
- ✅ 智能分块:可配置的压缩(1x-128x),带重叠
- ✅ 关键字搜索:基于相关性的评分和预览
- ✅ CLaRa集成:使用Apple的CLaRa模型进行可选语义压缩
- ✅ 混合搜索:在CLaRa语义搜索和关键字搜索之间自动切换
- ✅ 模型管理:下载、加载和管理多个CLaRa模型
- ✅ 内存管理:延迟加载和卸载以提高资源效率
- ✅ uvx就绪:可通过uvx在全球范围内安装
- ✅ 类型安全:完整类型注释
- ✅ 错误处理:全面的异常管理
- ✅ CLI工具兼容:适用于所有主要的CLI工具和编辑器
🐛 故障排除
服务器问题
服务器无法启动:
uv sync # Install dependencies
uvx --install context42 # Ensure global installation
连接错误:
- Windows:使用
cmd /c配置中的包装器 - macOS/Linux:检查
uvx在PATH中 - 验证MCP客户端是否支持stdio传输
权限错误:
- 确保Context42具有对文档目录的读取权限
- 检查目标文件的文件权限
文档加载问题
未找到文档:
- 检查目录路径是否包含支持的文件类型
- 如果需要,使用绝对路径
- 验证目录是否存在并且可以访问
大文件处理:
- 使用压缩级别4.0x-16.0x以获得更好的性能
- 考虑拆分非常大的文件(>10MB)
搜索问题
搜索未返回任何结果:
- 确保先加载和分块文档
- 尝试不同的搜索词或部分匹配
- 检查压缩级别是否过高(减少上下文)
搜索性能缓慢:
- 使用更高的压缩级别(16.0x-64.0x)
- 限制搜索
top_k参数 - 考虑减小文档语料库大小
MCP客户端问题
服务器未出现在客户端中:
- 配置后重新启动MCP客户端
- 检查配置JSON语法
- 验证服务器名称是否完全匹配
工具不可用:
- 使用
/mcpClaude Code中用于检查状态的命令 - 确保服务器已成功初始化
- 检查客户端日志中的连接错误
资源引用不起作用:
- 验证客户端是否支持MCP资源
- 使用格式:
@context42://status或@context42://documents - 检查服务器是否已先加载文档
📄 许可证
MIT许可证-有关详细信息,请参阅许可证文件。