Shuttermcp

Shuttermcp

🚀 Shutter MCP

Shutter MCP 是一个模型上下文协议(MCP)服务器,它借助 Shutter 网络提供时间锁加密功能。该服务器允许用户加密消息,这些消息只能在指定的未来时间之后才能被解密,从而实现无需信任的延时通信。

✨ 主要特性

  • 时间锁加密:加密消息,使其在未来的时间戳解锁。
  • 自然语言时间解析:支持使用如“从现在起 3 个月”这样的表达式。
  • Unix 时间戳支持:可直接输入时间戳以实现精确计时。
  • 支持 Claude Web 和 VS Code MCP。
  • 全面的错误处理:提供用户友好的错误消息和指导。
  • 可用于生产环境:支持 Docker,具备健康检查和监控功能。

⚠️ 重要提示

ALPHA 软件:这是使用 Shutter 网络测试网(Gnosis Chiado)部署的实验性软件。请勿将其用于生产环境或处理敏感数据。加密实现仅用于演示目的。

当前限制

  • 演示加密算法(非生产级 Shutter 加密)。
  • 测试网部署(仅支持 Chiado 测试网)。
  • 不保证数据持久化。
  • API 可能会在未通知的情况下发生更改。

🚀 快速开始

Claude Web 集成

  1. 打开 Claude Web 设置
  2. 添加自定义集成
    • 点击“添加自定义集成”。
    • 输入 URL:https://shutter-mcp-b76e270d48c5.herokuapp.com/mcp
    • 点击“添加”。
  3. 测试集成
    • 开始新对话。
    • 尝试:“Encrypt this message to unlock in 3 months: Hello future!”
    • 或者:“Explain how timelock encryption works”

VS Code MCP 集成

  1. 安装 MCP 扩展
    • 打开 VS Code。
    • 安装“Model Context Protocol”扩展。
    • 或者从市场安装:ms-vscode.vscode-mcp
  2. 配置 MCP 服务器
    • 打开 VS Code 设置(Ctrl + ,)。
    • 搜索“MCP”。
    • 添加服务器配置:
{
"mcp.servers": {
"shutter-timelock": {
"url": "https://shutter-mcp-b76e270d48c5.herokuapp.com/mcp",
"name": "Shutter Timelock Encryption"
}
}
}
  1. 测试集成
    • 打开命令面板(Ctrl + Shift + P)。
    • 输入“MCP: Call Tool”。
    • 选择“timelock_encrypt”并提供参数。

📦 安装指南

本地开发设置

如果你想在本地运行服务器进行开发:

前提条件

  • Python 3.11 或更高版本。
  • pip(Python 包管理器)。

安装步骤

  1. 克隆或下载此仓库
git clone 
cd shutter-mcp-server
  1. 运行部署脚本
./scripts/deploy.sh
  1. 启动服务器
./scripts/start.sh

服务器将在 http://localhost:5002 可用,MCP 端点为 http://localhost:5002/mcp

本地集成设置

对于本地开发,将配置更新为使用:

  • Claude Web:http://localhost:5002/mcp
  • VS Code:http://localhost:5002/mcp

Docker 部署

# 使用 Docker Compose 构建并运行
docker-compose up -d

# 或者手动构建并运行
docker build -t shutter-mcp-server .
docker run -p 5002:5002 shutter-mcp-server

💻 使用示例

基础用法

# 以 Claude Web 测试命令为例
Encrypt this message to unlock in 1 hour: Secret meeting at 3pm
Check decryption status for identity: 0x1234...
Explain how timelock encryption works

高级用法

# 在 VS Code 中使用 MCP 工具进行时间锁加密测试
# 使用命令面板调用 MCP 工具
# 测试带有未来时间戳的时间锁加密
# 验证健康端点响应

📚 详细文档

可用工具

timelock_encrypt(message, unlock_time)

使用 Shutter 网络对消息进行时间锁加密。

参数

  • message(字符串):要加密的文本消息。
  • unlock_time(字符串):消息可以解密的时间。
    • 自然语言:“3 months from now”、“1 year from now”。
    • Unix 时间戳:“1721905313”。
    • 绝对日期:“2024-12-25”、“January 15, 2025”。

示例

timelock_encrypt("Secret auction bid: $50,000", "2024-12-31 23:59:59")

check_decryption_status(identity)

检查时间锁加密的消息是否可以解密。

参数

  • identity(字符串):timelock_encrypt 返回的标识。

decrypt_timelock_message(identity, encrypted_data)

如果时间锁已过期,则解密时间锁加密的消息。

参数

  • identity(字符串):timelock_encrypt 返回的标识。
  • encrypted_data(字符串):timelock_encrypt 返回的加密数据。

get_unix_timestamp(time_expression)

将时间表达式转换为 Unix 时间戳。

参数

  • time_expression(字符串):要转换的时间(默认:“now”)。

explain_timelock_encryption()

获取时间锁加密及其用法的全面解释。

时间锁加密的工作原理

时间锁加密允许你加密一条消息,该消息只能在特定时间之后才能解密。Shutter 网络使用:

  • 阈值密码学:分布式密钥生成和管理。
  • 去中心化密钥守护者:共同管理解密密钥的节点网络。
  • 基于时间的释放:密钥仅在指定的时间戳之后释放。
  • 无需信任的操作:没有任何一方可以提前解密消息。

使用场景

  • 密封投标拍卖:在拍卖结束前隐藏投标。
  • 延时公告:安排未来的揭示。
  • 死亡开关:如果你未签到,则消息将解锁。
  • 竞赛结果揭晓:在竞赛结束前隐藏答案。
  • 未来通信:向未来的自己发送消息。

配置

环境变量

  • PORT:服务器端口(默认:5002)。
  • SHUTTER_API_BASE:Shutter API 端点(默认:Chiado 测试网)。
  • SHUTTER_REGISTRY_ADDRESS:注册表合约地址。

自定义配置

编辑 src/server.py 以修改:

  • API 端点。
  • 超时值。
  • 错误处理行为。
  • 其他工具。

测试

运行示例脚本以测试功能:

python examples/usage_example.py

健康检查端点:

curl https://shutter-mcp-b76e270d48c5.herokuapp.com/health

本地测试:

curl http://localhost:5002/health

项目结构

shutter-mcp-server/
├── src/
│   └── server.py              # 主服务器实现
├── scripts/
│   ├── deploy.sh              # 部署脚本
│   └── start.sh               # 启动脚本
├── examples/
│   └── usage_example.py       # 使用示例
├── docs/
│   └── API.md                 # API 文档
├── requirements.txt           # Python 依赖项
├── Dockerfile                 # Docker 配置
├── docker-compose.yml         # Docker Compose 配置
├── Procfile                   # Heroku 进程配置
├── deploy-heroku.ps1          # PowerShell 部署脚本
└── README.md                  # 本文件

安全考虑

重要提示:这是具有重大限制的 alpha 软件

  • 演示实现:当前加密仅用于演示目的。
  • 仅测试网:使用 Chiado 测试网,不适合处理生产数据。
  • 无生产加密:尚未实现完整的 Shutter 加密算法。
  • 实验状态:API 和功能可能会在未通知的情况下发生更改。
  • 无数据保证:不保证数据持久化或可用性。

用于生产环境时

  • 实现适当的 Shutter 加密算法。
  • 可用时使用主网部署。
  • 添加身份验证和访问控制。
  • 实施适当的密钥管理。
  • 在生产部署中使用 HTTPS。

故障排除

服务器无法启动

  • 检查 Python 版本(需要 3.11 或更高版本)。
  • 验证所有依赖项是否已安装:pip install -r requirements.txt
  • 检查端口可用性:lsof -i :5002(Linux/Mac)或 netstat -an | findstr :5002(Windows)。

Claude 集成问题

  • 确保服务器可从互联网访问。
  • 验证 MCP 端点是否返回正确响应:curl https://shutter-mcp-b76e270d48c5.herokuapp.com/mcp
  • 检查跨域请求的 CORS 配置。

VS Code 集成问题

  • 验证 MCP 扩展是否已安装并启用。
  • 检查 VS Code 设置中的服务器配置。
  • 开发时使用本地服务器:http://localhost:5002/mcp

Shutter API 错误

  • 验证互联网连接。
  • 检查 Shutter 网络状态。
  • 确保时间戳在未来。

开发

添加新工具

  1. 使用 @mcp.tool() 装饰器定义工具函数。
  2. 添加包含参数描述的完整文档字符串。
  3. 包含适当的错误处理和用户指导。
  4. 使用示例脚本进行测试。

修改时间解析

编辑 ShutterTimelock 类中的 parse_time_expression 方法以支持其他时间格式。

贡献

  1. 分叉仓库。
  2. 创建功能分支。
  3. 进行更改。
  4. 添加测试和文档。
  5. 提交拉取请求。

📄 许可证

本项目采用 MIT 许可证,详情请参阅 LICENSE 文件。

致谢

支持

  • 问题反馈:在 GitHub 上创建问题。
  • 文档:查看 docs/ 目录。
  • 示例:查看 examples/ 目录。

版本:2.1.0
最后更新:2025 年 8 月
兼容性:Claude Web、VS Code MCP、MCP 协议 2024 - 11 - 05

  • 0 关注
  • 0 收藏,10 浏览
  • system 提出于 2025-09-30 08:06

相似服务问题