克拉代克斯
 
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__
__`)
~/.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.
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://: /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/mcpstdio(任何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 --systemLinux:systemd系统服务
系统级服务在以下目录下运行共享守护进程 /etc/systemd/system,用平原管理 systemctl.
sudo cratedex install-service --system验证:
systemctl status cratedex
journalctl -u cratedex -f要删除:
sudo cratedex remove-service --systemmacOS:launchd
cratedex install-service 在中安装LaunchAgent ~/Library/LaunchAgents/. 使用 --system (使用sudo)for /Library/LaunchDaemons/.
Windows:任务计划程序
cratedex install-service 在登录时安装用户级计划任务。 系统级Windows服务不直接实现;将NSSM用于该部署模型。
许可证
根据以下任一方式获得许可
- Apache许可证,版本2.0(特许通行证 或 )
- MIT许可证(许可证-麻省理工学院 或 )
由您选择。
贡献
除非您另有明确说明,否则根据Apache-2.0许可证的定义,您有意提交以包含在作品中的任何贡献都应如上所述获得双重许可,无需任何额外的条款或条件。
