内容
# MCP 服务器
基于 Rust 构建的模型上下文协议(MCP)服务器集合。
## 可用服务器
### LTM-MCP(长期记忆)
为 AI 助手提供强大的长期记忆服务器,实现对话上下文和信息的持久化存储和检索。
**功能:**
- 基于 PostgreSQL 的持久化存储,支持全文搜索
- RESTful HTTP/SSE API 用于 MCP 协议
- API 密钥身份验证
- 自动数据库迁移
- 准备好 Docker 部署
- 多平台支持(linux/amd64, linux/arm64)
**MCP 工具:**
- `store_memory` - 存储具有内容、上下文、标签和元数据的新记忆
- `get_memory` - 通过 ID 检索特定记忆
- `search_memories` - 跨记忆内容进行全文搜索
- `list_memories` - 列出具有按集合和标签过滤的记忆
- `update_memory` - 更新现有记忆字段
- `delete_memory` - 从存储中删除记忆
- `add_tags` - 为现有记忆添加标签
- `remove_tags` - 从记忆中删除标签
- `list_tags` - 获取跨记忆的所有唯一标签
- `list_collections` - 获取所有唯一集合名称
## 快速入门
### 使用 Docker(推荐)
```bash
# 拉取最新镜像
docker pull ghcr.io/kagchi/mcp-servers-ltm-mcp:latest
# 使用 PostgreSQL 运行
docker run -d \
--name ltm-mcp \
-p 3000:3000 \
-e LTM_DATABASE_URL="postgresql://user:password@postgres:5432/ltm" \
-e LTM_AUTH_API_KEY="your-secret-api-key" \
ghcr.io/kagchi/mcp-servers-ltm-mcp:latest
```
### 从源码
```bash
# 克隆仓库
git clone https://github.com/KagChi/mcp-servers.git
cd mcp-servers
# 设置环境变量
export LTM_DATABASE_URL="postgresql://localhost:5432/ltm"
export LTM_AUTH_API_KEY="your-secret-api-key"
# 构建并运行
cargo run --package ltm-mcp
```
## 配置
所有配置都通过带有 `LTM_` 前缀的环境变量完成:
### 服务器配置
- `LTM_SERVER_HOST` - 服务器绑定地址(默认:`0.0.0.0`)
- `LTM_SERVER_PORT` - 服务器端口(默认:`3000`)
### 数据库配置
- `LTM_DATABASE_URL` - PostgreSQL 连接 URL(必填)
- 格式:`postgresql://user:password@host:port/database`
### 身份验证配置
- `LTM_AUTH_API_KEY` - 用于身份验证的 API 密钥(必填)
### 日志配置
- `LTM_LOG_LEVEL` - 日志级别(默认:`info`)
- 选项:`trace`, `debug`, `info`, `warn`, `error`
## API 端点
### 健康检查
```bash
GET /health
```
验证服务器和数据库连接性。
### MCP 协议端点
- `GET /mcp/v1/info` - 服务器信息
- `GET /mcp/v1/tools` - 列出可用工具
- `POST /mcp/v1/tools/call` - 调用工具
所有 MCP 端点都需要通过 Bearer token 进行身份验证:
```bash
curl -H "Authorization: Bearer YOUR_API_KEY" \
http://localhost:3000/mcp/v1/tools
```
## 开发
### 先决条件
- Rust 1.95.0 或更高版本
- PostgreSQL 14 或更高版本
- Docker(用于容器化部署)
### 构建
```bash
# 构建所有 crate
cargo build --workspace
# 构建特定 crate
cargo build --package ltm-mcp
# 为发布版本构建
cargo build --release --workspace
```
### 测试
```bash
# 运行所有测试
cargo test --workspace
# 为特定 crate 运行测试
cargo test --package ltm-mcp
```
### 代码质量
```bash
# 格式化代码
cargo fmt --all
# 运行 lint
cargo clippy --all-targets --all-features -- -D warnings
```
## Docker 部署
### 构建镜像
```bash
# 构建 ltm-mcp 镜像
docker build -f crates/ltm-mcp/Dockerfile -t ltm-mcp:latest .
```
### 多平台构建
```bash
docker buildx build \
--platform linux/amd64,linux/arm64 \
-f crates/ltm-mcp/Dockerfile \
-t ltm-mcp:latest \
.
```
## 项目结构
```
mcp-servers/
├── Cargo.toml # 工作区配置
├── LICENSE # Apache-2.0 许可证
├── README.md # 本文件
├── .github/
│ └── workflows/
│ ├── check.yml # Rust 和 Docker 验证
│ └── docker.yml # Docker 构建和推送
└── crates/
├── mcp-common/ # 共享实用程序
│ ├── Cargo.toml
│ └── src/
│ ├── lib.rs
│ └── error.rs # 常见错误类型
└── ltm-mcp/ # 长期记忆服务器
├── Cargo.toml
├── Dockerfile
├── migrations/ # 数据库迁移
│ └── 20260706000001_create_memories.sql
└── src/
├── main.rs # 应用程序入口点
├── config.rs # 环境配置
├── server.rs # HTTP 服务器和路由
├── tools/ # MCP 工具实现
│ └── mod.rs
└── memory/ # 内存存储层
├── mod.rs
├── types.rs # 数据模型
├── store.rs # 存储特征
└── postgres.rs # PostgreSQL 实现
```
## CI/CD
该项目使用 GitHub Actions 进行持续集成和部署:
- **Rust 检查** (`check.yml`) - 验证 Rust 工具链、格式化、lint 和测试
- **Docker 构建** (`docker.yml`) - 构建并将多平台 Docker 镜像推送到 GitHub 容器注册表
镜像会自动发布到 `ghcr.io/kagchi/mcp-servers-{crate}`,位于:
- 推送到 `main` 分支(标记为 `latest`)
- 版本标签(例如 `v1.0.0`)
## 许可证
该项目根据 Apache License 2.0 许可 - 有关详细信息,请参阅 [LICENSE](LICENSE) 文件。
## 作者
KagChi
## 仓库
https://github.com/KagChi/mcp-servers