Dex MCP服务器(Rust)
模型上下文协议(MCP)服务器的生产质量Rust实现 Dex个人CRM.
概述
此MCP服务器使AI助手(如Claude)能够与Dex Personal CRM交互,提供以下功能:
- 联系人发现:具有模糊匹配和置信度评分的智能联系人搜索
- 联系人丰富:添加笔记、提醒和更新联系信息
- 关系历史:检索联系人时间线和交互历史记录
- 全文检索:通过缓存快速搜索联系人、笔记和提醒
特性
- 🦀 用Rust编写:快速、安全、可靠
- 🏗️ 整洁架构:关注点明确分离的存储库模式
- 🔍 高级搜索:BM25排名和模糊匹配的全文搜索
- ⚡ 性能优化:具有可配置TTL的智能缓存
- 🧪 测试良好:综合单元和集成测试
- 📊 可观测性:内置日志记录和指标
- 🔒 安全:API密钥的基于环境的配置
快速开始
先决条件
安装
- 克隆存储库:
git clone https://github.com/yourusername/DexMCPServerRust.git
cd DexMCPServerRust- 设置环境变量:
cp .env.example .env
# Edit .env and add your Dex API key- 构建项目:
cargo build --release- 运行服务器:
cargo run --release配置
配置是通过环境变量进行管理的。创建一个 .env 文件基于 .env.example:
DEX_API_KEY=your_api_key_here
DEX_API_BASE_URL=https://api.getdex.com/api/rest
MAX_MATCH_RESULTS=10
MATCH_CONFIDENCE_THRESHOLD=70
CACHE_TTL_MINUTES=5Claude桌面集成
要将此MCP服务器与Claude Desktop一起使用,请将其添加到您的配置中:
视窗: %APPDATA%\Claude\claude_desktop_config.json macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"dex": {
"command": "C:\\path\\to\\DexMCPServerRust\\target\\release\\dex-mcp-server.exe",
"env": {
"DEX_API_KEY": "your_api_key_here"
}
}
}
}看 claude_desktop_config_example.json 举一个完整的例子。
可用的MCP工具
联系人发现
- find_contact:按姓名、电子邮件、电话或公司搜索联系人
- get_contact_details:检索完整的联系信息
联系人丰富
- 丰富联系:添加或更新联系信息
- add_contact_note:为联系人创建备注
- create_contact_minder:为联系人设置提醒
关系历史
- get_contact_history:使用笔记和提醒检索联系人时间线
- get_contact_notes:获取联系人的所有笔记
- get_contact_reminders:获取联系人的所有提醒
搜索
- search_full_text:跨所有数据的快速全文搜索
发展
运行测试
# Run all tests
cargo test
# Run library tests only
cargo test --lib
# Run specific test
cargo test test_name
# Run with output
cargo test -- --nocapture代码质量
# Format code
cargo fmt
# Run linter
cargo clippy
# Run linter with warnings as errors
cargo clippy -- -D warnings基准测试
# Run benchmarks
cargo benchCI/CD
该项目使用GitHub Actions进行持续集成和自动发布。
工作流
- CI管道:每次推送和公关都会运行
- 代码格式检查(cargo fmt) - 用Clippy打毛 - 在Linux、macOS和Windows上的测试 - 文件检查 - 安全审计 - 相关性检查
- 释放管道:自动语义版本控制
- 根据提交消息自动计算版本 - 多平台二进制构建(Linux、macOS、Windows、ARM) - GitHub发布更新日志 - 可选发布到crates.io
提交消息格式
此项目使用 约定式提交 对于自动语义版本控制:
feat:-新功能(小版本凹凸)fix:-Bug修复(补丁版本碰撞)BREAKING CHANGE:-重大变化(主要版本碰撞)docs:,chore:,refactor:,test:,ci:-无版本冲突
例子:
git commit -m "feat: add contact export functionality"有关更多详细信息,请参阅 .
建筑
该项目遵循清洁建筑原则:
src/
├── main.rs # Application entry point
├── lib.rs # Library root
├── client/ # Dex API client (sync wrapper)
├── repositories/ # Data access layer
├── services/ # Business logic layer
├── tools/ # MCP tool implementations
├── models/ # Domain models
├── search/ # Full-text search engine
├── cache/ # Caching utilities
├── config.rs # Configuration management
├── error.rs # Error types
└── server/ # MCP server implementation有关更多详细信息,请参阅 CLAUDE.md.
演出
服务器包括几个性能优化:
- 请求缓存:可配置的基于TTL的API响应缓存
- 平行抓取:尽可能并发API请求
- 高效索引:基于BM25的搜索索引,延迟初始化
- 连接池:可重用的HTTP连接
看 性能_结果.md 基准测试。
贡献
欢迎投稿!拜托:
- 分叉存储库
- 创建要素分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
提交前检查表
- \[ \]
cargo fmt-代码已格式化 - \[ \]
cargo clippy-没有刺耳的警告 - \[ \]
cargo test-所有测试均通过 - \[ \]
cargo build-项目构建成功 - \[\]必要时更新文档
文档
- CLAUDE.md -项目指南和Rust最佳实践
- 架构审查.md -架构概述
- LOGGING_GUIDE.md -日志记录和调试指南
- E2E_TESTS_SUMMARY.md -端到端测试指南
许可证
MIT许可证-请参阅 许可证 详情
