内容
# 🏛️ MCPalace: 记忆宫殿
[](LICENSE)
[](#-executando-com-docker)
[](https://www.rust-lang.org)
**MCPalace** 是一个开源、自我管理和自我恢复的 MCP(Model Context Protocol)引擎,旨在成为您人工智能代理的终极**记忆宫殿**。
它源于社区中许多开发者的需求,他们报告了上下文限制、缺乏情境化持久记忆以及在冗长提示或无关日志/评论时 token 丢失的问题。
---
## ✨ 主要功能
* **🧠 主题记忆库(SQL + 图数据库)**: 以关系型(MySQL)和知识图谱(Memgraph)格式存储关联记忆,支持语义搜索、丰富的概念连接和智能代理间共享。
* **🔌 自我恢复的插件编排器(JSON/Lua)**: 允许在运行时动态加载用 Lua 编写的全新工具。系统自动检测和迁移数据库模式,以确保稳定性(“自我修复”)。
* **⚡ 超紧凑上下文压缩器(Compactor)**: 用 Rust 编写的模块化管道,显著减少上下文 token 消耗:
* *缩写替换*: 通过庞大的 JSON 词典将技术术语映射为常见缩写。
* *电报风格*: 将冗长句子转换为直接命令。
* *停用词过滤*: 删除低熵文章和介词。
* *代码和日志清理*: 修剪文件注释(JS、Rust、Python、Lua)并自动截断长错误堆栈跟踪。
* **🛡️ 多语言沙盒**: 在隔离环境(Python、Lua 和 JavaScript)中安全执行模型提供的代码。
---
## 🛠️ 系统架构
* **引擎**: 使用高性能 Actix-web 构建的 Rust MCP 服务器核心。
* **插件管理器**: 用于安全、动态执行隔离脚本的 JSON/Lua 桥接。
* **压缩器**: Rust 策略流水线(`CompressionStrategy`)递归处理文本和 JSON 有效载荷。
---
## 🐳 使用 Docker 运行
MCPalace 预配置为在 Docker 容器中运行。
1. **复制示例环境变量:**
```bash
cp .env.example .env
```
2. **编辑 `.env` 文件** 并设置您的安全 `ADMIN_TOKEN`:
```env
ADMIN_TOKEN=您的安全令牌
```
3. **启动容器:**
```bash
docker-compose up -d --build
```
4. 服务器将在端口 `8789` 上响应(API JSON-RPC 2.0)。
---
## 💻 在 VSCode / Cursor / Continue 上配置
要在您喜欢的开发环境(例如 VSCode、Cursor 或 Continue 插件)中使用 MCPalace 作为 MCP 服务器:
### Cursor 或 VSCode 配置(通过 Continue Config)
在客户端配置文件中添加 MCPalace 到您的 MCP 服务器列表中(通常在 `~/.continue/config.json` 或 Cursor 设置中):
```json
{
"mcpServers": {
"mcpalace": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"--network",
"mcpalace_default",
"-e",
"ADMIN_TOKEN=您的安全令牌",
"mcpalace-engine"
]
}
}
}
```
或者,如果您更喜欢通过 HTTP/SSE 协议直接连接到本地运行的实例:
```json
{
"mcpServers": {
"mcpalace": {
"url": "http://localhost:8789/sse"
}
}
}
```
---
## 🤝 如何贡献
MCPalace 是一个**社区软件**,旨在永远保持这种状态。您的贡献非常受欢迎!
1. **复刻** 项目。
2. 为您的功能创建分支(`git checkout -b feature/新功能`)。
3. 提交您的更改(`git commit -m 'feat: 添加新功能'`)。
4. 推送到原始仓库(`git push origin feature/新功能`)。
5. 打开 **拉取请求**。
---
## 📄 许可证
该项目在 **MCPalace 非商业许可证** 下获得许可。完全允许复制、分发和修改软件,**仅限非盈利目的**。请参阅 [LICENSE](LICENSE) 文件以获取更多详细信息。