使用说明
克拉代克斯
MCP(模型上下文协议)服务器,用于Rust文档索引、全文搜索和项目诊断。
快速开始
- 安装:
cargo install cratedex
要稍后升级,请执行以下操作:
cratedex update
- 作为后台服务运行(Linux用户服务):
cratedex install-service --linger
- 连接您的AI编码工具:
# Claude Code
claude mcp add --scope user --transport http cratedex http://127.0.0.1:3737/mcp
# Codex
codex mcp add cratedex --url http://127.0.0.1:3737/mcp
对于OpenCode,添加一个指向以下内容的HTTP MCP服务器条目:
http://127.0.0.1:3737/mcp
特性
- 在Rust crate文档(SQLite FTS5)中进行全文搜索
- 货物元数据和工作空间感知依赖关系解析
- 构建诊断、过时的依赖关系和安全建议
- 每个项目的注册都有背景索引
- 双传输:stdio(每个客户端)或HTTP(共享守护进程)
先决条件
- 防锈工具链(1.93+)
- Nightly Rust(用于生成rustdoc JSON)
安装
cargo install cratedex
配置
配置从以下位置加载(按优先级顺序):
- 环境变量(
CRATEDEX__<SECTION>__<KEY>) ~/.cratedex/cratedex.tomlcratedex.toml在当前目录中- 内置默认值
看 cratedex.toml.example 对于所有选项。关键环境变量:
| 变量 | 默认值 | 描述 |
|---|---|---|
CRATEDEX__SERVER__TRANSPORT |
http |
传输协议: http 或 stdio |
CRATEDEX__SERVER__HOST |
127.0.0.1 |
HTTP绑定地址 |
CRATEDEX__SERVER__PORT |
3737 |
HTTP绑定端口 |
CRATEDEX__SERVER__ALLOW_REMOTE |
false |
允许非环回绑定(false 强烈推荐) |
CRATEDEX__SERVER__AUTH_TOKEN |
unset | 可选HTTP承载令牌 |
CRATEDEX__SERVER__MAX_SEARCH_RESULTS |
10 |
每次搜索查询的最大结果数 |
CRATEDEX__SERVER__MAX_PROJECTS |
32 |
同时注册的最大项目数 |
CRATEDEX__SERVER__MAX_CONCURRENT_REQUESTS |
64 |
HTTP并发限制 |
CRATEDEX__SERVER__RATE_LIMIT_PER_SEC |
30 |
HTTP请求速率上限 |
CRATEDEX__SERVER__MAX_REQUEST_BODY_BYTES |
262144 |
最大HTTP请求正文大小 |
CRATEDEX__DATABASE__PATH |
~/.cratedex/cratedex.db |
数据库文件路径 |
HTTP安全模型
- 默认情况下,cratedex只允许环回绑定(
127.0.0.1/localhost). - 绑定到非环回接口需要通过以下方式明确选择加入
CRATEDEX__SERVER__ALLOW_REMOTE=true(或install-service --allow-remote). - 如果您将服务暴露在localhost之外,请将其放置在强制TLS和身份验证的反向代理后面。
- 为了获得额外的本地保护(多用户主机),请设置
CRATEDEX__SERVER__AUTH_TOKEN并发送Authorization: Bearer <token>.
MCP工具
| 工具 | 说明 |
|---|---|
register_project |
注册Rust项目以进行索引和诊断 |
reindex_project |
重新启动现有项目的索引 |
list_projects |
列出所有已注册的项目及其索引状态 |
get_index_status |
获取一个项目的索引状态 |
list_crates |
列出项目工作区中的所有板条箱 |
get_diagnostics |
简洁的诊断摘要 |
get_build_diagnostics |
分页构建诊断 |
get_outdated_diagnostics |
分页过时的依赖关系 |
get_security_diagnostics |
分页安全建议 |
search_docs |
在全局索引中搜索Rust文档 |
unregister_project |
从服务器中删除已注册的项目 |
MCP资源
| URI | 描述 |
|---|---|
cratedex://logs |
服务器最近的日志条目(最后500行) |
部署模型
stdio--每个客户端进程
每个MCP客户端都会生成自己的 cratedex 过程。配置简单,但并发客户端可能会在共享数据库文件上竞争。最适合单客户端设置。
HTTP--共享守护进程
一个单一的 cratedex 进程通过HTTP为所有客户端提供服务。避免数据库锁争用,并在所有会话中共享文档索引。建议用于多客户端环境。
端点: http://<host>:<port>/mcp (默认值 http://127.0.0.1:3737/mcp)
客户端配置
克劳德代码
claude mcp add --scope user --transport http cratedex http://127.0.0.1:3737/mcp
法典
codex mcp add cratedex --url http://127.0.0.1:3737/mcp
stdio(任何MCP客户端)
配置客户端以直接生成服务器:
{
"command": "cratedex",
"args": ["server"],
"env": {
"CRATEDEX__SERVER__TRANSPORT": "stdio"
}
}
高级服务管理
Linux:systemd用户服务
对于持久共享HTTP守护进程,请将cratedex作为systemd用户服务安装:
cratedex install-service
这将服务单元写入 ~/.config/systemd/user/cratedex.service,运行 daemon-reload,并启用+启动服务。该命令是幂等的。
验证:
systemctl --user status cratedex
journalctl --user -u cratedex -f
要删除:
cratedex remove-service
要更新服务二进制文件,请执行以下操作:
cratedex update
对于系统级服务:
sudo cratedex update --system
Linux:systemd系统服务
系统级服务在以下目录下运行共享守护进程 /etc/systemd/system,用平原管理 systemctl.
sudo cratedex install-service --system
验证:
systemctl status cratedex
journalctl -u cratedex -f
要删除:
sudo cratedex remove-service --system
macOS:launchd
cratedex install-service 在中安装LaunchAgent ~/Library/LaunchAgents/.
使用 --system (使用sudo)for /Library/LaunchDaemons/.
Windows:任务计划程序
cratedex install-service 在登录时安装用户级计划任务。
系统级Windows服务不直接实现;将NSSM用于该部署模型。
许可证
根据以下任一方式获得许可
- Apache许可证,版本2.0(特许通行证 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT许可证(许可证-麻省理工学院 或 http://opensource.org/licenses/MIT)
由您选择。
贡献
除非您另有明确说明,否则根据Apache-2.0许可证的定义,您有意提交以包含在作品中的任何贡献都应如上所述获得双重许可,无需任何额外的条款或条件。
