关于 Shutter Mcp
Shutter Mcp 是一款实验性 MCP 服务,可创建指定未来时间才能解密的消息,适用于延时通信。其演示加密和测试网部署不适合敏感或生产数据。
主要功能
- 01加密并设定未来解锁时间
- 02解析自然语言时间表达
- 03接受 Unix 时间戳和日期
- 04检查消息是否可解密
- 05时间锁到期后解密
- 06说明时间锁加密原理
适用场景
- 01在竞拍结束前隐藏出价
- 02安排公告在未来公开
- 03为未来的自己准备消息
MCP 相关
它向 MCP 客户端提供时间锁加密工具,包括加密、状态检查、解密、时间戳转换和原理说明。文档列出了 Claude Web 和 VS Code 集成方式。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Shutter MCP
一个 Model Context Protocol(MCP)服务,使用 Shutter Network 提供时间锁加密功能。该服务允许用户加密消息,只有在指定的未来时间之后才能解密,从而实现无需信任的延时通信。
功能
- 时间锁加密:加密消息,并在未来的时间戳解锁
- 自然语言时间解析:使用“从现在起 3 个月”等表达式
- Unix 时间戳支持:直接输入时间戳以精确指定时间
- 支持 Claude Web、VS Code MCP
- 全面的错误处理:提供易于理解的错误消息和指导
- 可用于生产环境:支持 Docker、健康检查和监控
重要说明
ALPHA SOFTWARE:这是使用 Shutter Network 测试网部署(Gnosis Chiado)的实验性软件。请勿用于生产环境或处理敏感数据。此加密实现仅用于演示。
当前限制:
- 演示用加密算法(并非生产级 Shutter 加密)
- 测试网部署(仅限 Chiado 测试网)
- 不保证数据持久化
- API 可能随时更改,恕不另行通知
在线部署
服务 URL:https://shutter-mcp-b76e270d48c5.herokuapp.com/ 健康检查:https://shutter-mcp-b76e270d48c5.herokuapp.com/health MCP 端点:https://shutter-mcp-b76e270d48c5.herokuapp.com/mcp
快速开始
Claude Web 集成
-
打开 Claude Web 设置
- 访问 claude.ai/settings
- 前往“集成”部分
-
添加自定义集成
- 点击“添加自定义集成”
- 输入 URL:
https://shutter-mcp-b76e270d48c5.herokuapp.com/mcp - 点击“添加”
-
测试集成
- 开始新的对话
- 尝试:“将这条消息加密,并在 3 个月后解锁:你好,未来!”
- 或者:“解释时间锁加密的工作原理”
VS Code MCP 集成
-
安装 MCP 扩展
- 打开 VS Code
- 安装“Model Context Protocol”扩展
- 或从市场安装:
ms-vscode.vscode-mcp
-
配置 MCP 服务
- 打开 VS Code 设置(Ctrl+,)
- 搜索“MCP”
- 添加服务配置:
{ "mcp.servers": { "shutter-timelock": { "url": "https://shutter-mcp-b76e270d48c5.herokuapp.com/mcp", "name": "Shutter Timelock Encryption" } } }
-
测试集成
- 打开命令面板(Ctrl+Shift+P)
- 输入“MCP: Call Tool”
- 选择“timelock_encrypt”并提供参数
本地开发设置
如需在本地运行服务进行开发:
先决条件
- Python 3.11 或更高版本
- pip(Python 包管理器)
安装
-
克隆或下载此仓库
git clone <your-repo-url> cd shutter-mcp-server -
运行部署脚本
./scripts/deploy.sh -
启动服务
./scripts/start.sh
服务将在 http://localhost:5002 上提供,MCP 端点为 http://localhost:5002/mcp。
本地集成设置
进行本地开发时,请将配置更新为使用:
- Claude Web:
http://localhost:5002/mcp - VS Code:
http://localhost:5002/mcp
Docker 部署
# Build and run with Docker Compose
docker-compose up -d
# Or build and run manually
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 工具
- 使用未来的时间戳测试时间锁加密
- 验证健康检查端点的响应
可用工具
timelock_encrypt(message, unlock_time)
使用 Shutter Network 通过时间锁加密消息。
参数:
message(字符串):要加密的文本消息unlock_time(字符串):消息可解密的时间- 自然语言:“从现在起 3 个月”“从现在起 1 年”
- 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(string):timelock_encrypt返回的标识encrypted_data(string):timelock_encrypt返回的加密数据
get_unix_timestamp(time_expression)
将时间表达式转换为 Unix 时间戳。
参数:
time_expression(string):要转换的时间(默认值:"now")
explain_timelock_encryption()
获取关于时间锁加密及其用法的全面说明。
时间锁加密的工作原理
时间锁加密可以加密一条消息,使其只能在特定时间之后解密。Shutter Network 使用:
- 阈值密码学:分布式生成和管理密钥
- 去中心化 Keyper:由多个节点组成的网络,共同管理解密密钥
- 基于时间的释放:仅在指定时间戳之后释放密钥
- 无需信任的运行方式:任何单一参与方都无法提前解密消息
使用场景
- 密封投标拍卖:在拍卖结束前隐藏报价
- 延时公告:安排未来揭晓
- 死者开关:如果你没有签到,消息就会解锁
- 比赛揭晓:在比赛结束前隐藏答案
- 未来通信:给未来的自己发送消息
配置
环境变量
PORT:服务端口(默认值:5002)SHUTTER_API_BASE:Shutter API 端点(默认值:Chiado 测试网)SHUTTER_REGISTRY_ADDRESS:Registry 合约地址
自定义配置
编辑 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 # Main server implementation
├── scripts/
│ ├── deploy.sh # Deployment script
│ └── start.sh # Start script
├── examples/
│ └── usage_example.py # Usage examples
├── docs/
│ └── API.md # API documentation
├── requirements.txt # Python dependencies
├── Dockerfile # Docker configuration
├── docker-compose.yml # Docker Compose configuration
├── Procfile # Heroku process configuration
├── deploy-heroku.ps1 # PowerShell deployment script
└── README.md # This file
安全注意事项
重要:这是存在显著限制的 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 Network 状态
- 确保时间戳在未来
开发
添加新工具
- 使用
@mcp.tool()装饰器定义工具函数 - 添加全面的文档字符串,说明参数
- 包含适当的错误处理和用户指导
- 使用示例脚本进行测试
修改时间解析
编辑 ShutterTimelock 类中的 parse_time_expression 方法,以支持其他时间格式。
贡献
- Fork 此仓库
- 创建功能分支
- 进行更改
- 添加测试和文档
- 提交拉取请求
许可证
MIT 许可证——详情请参阅 LICENSE 文件。
致谢
- Shutter Network:提供时间锁加密基础设施
- Model Context Protocol:提供集成框架
- FastAPI:提供 Web 框架
支持
- 问题:提交 GitHub issue
- 文档:参见
docs/目录 - 示例:查看
examples/目录
版本:2.1.0
最后更新:2025 年 8 月
兼容性:Claude Web、VS Code MCP、MCP Protocol 2024-11-05
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。