rstime插件
用于处理时间和时区信息的模型上下文协议(MCP)插件。这 rstime 插件提供了在不同时区检索当前时间和解析RFC2822格式时间字符串的工具。
概述
rstime插件是一个基于WebAssembly的MCP插件,用Rust编写,通过模型上下文协议公开与时间相关的功能。它允许LLM客户:
- 获取任何时区的当前时间
- 将RFC2822格式的时间字符串解析为Unix时间戳
- 完整的时区名称,以获得更好的用户体验
特性
工具
get_time
返回指定时区的当前时间。
输入:
timezone(可选,字符串):时区标识符(例如。,America/New_York,Europe/London,Asia/Tokyo).默认为UTC如果没有提供。
输出:
current_time(string):指定时区的RFC2822格式的当前时间。
例子:
Tool: get_time
Input: {"timezone": "America/Los_Angeles"}
Output: "Tue, 15 Jan 2024 10:30:45 -0800"parse_time
解析RFC2822格式的时间字符串并返回相应的Unix时间戳。
输入:
time(必填,string):要解析的RFC2822格式的时间字符串。
输出:
timestamp(整数):自Unix纪元以来解析的时间戳(秒)。
例子:
Tool: parse_time
Input: {"time": "Tue, 15 Jan 2024 18:30:45 +0000"}
Output: 1705344645提示
get_time_with_timezone
一个提示,引导用户获取特定时区的当前时间。
论据:
timezone(可选,字符串):检索时间信息的时区。默认为UTC.
答复: 返回一条助手消息,建议获取指定时区的时间。
建筑
先决条件
- 锈1.70或更高版本
- WASM编译的Extism工具链
构建步骤
# Build the WebAssembly plugin
cargo build --release --target wasm32-wasip1
# The compiled WASM file will be available at target/wasm32-wasip1/release/plugin.wasm或者,您可以使用提供的 prepare.sh 脚本:
./prepare.sh这将创建已编译的 rstime.wasm 文件。
Docker支持
包含一个用于容器化部署的Dockerfile。构建它:
docker build -t rstime:latest .测试
该插件包括全面的测试覆盖率。使用运行测试,将目标更改为您的架构:
cargo test --lib --target x86_64-apple-darwin测试覆盖率
测试套件包括:
- 获取UTC和各种时区的时间
- 处理无效的时区名称
- 解析有效和无效的RFC2822时间字符串
- 工具列表和元数据
- 快速检索和列出
- 资源操作
- 错误处理和边缘情况
支持的时区
该插件支持IANA时区数据库中的所有时区,通过 chrono-tz 机箱。一些常见的例子包括:
UTC-协调世界时America/New_York-东部时间America/Chicago-中部时间America/Denver-山地时间America/Los_Angeles-太平洋时间Europe/London-格林尼治标准时间Europe/Paris-中欧时间Asia/Tokyo-日本标准时间Asia/Shanghai-中国标准时间Australia/Sydney-澳大利亚东部时间
有关完整列表,请参阅IANA时区数据库。
依赖项
- 计时 -日期和时间处理
- chrono tz -时区支持
- 灭绝pdk -MCP的Extism插件开发工具包
- 序列化与反序列化 -序列化/反序列化
- Serde JSON -JSON处理
- 无论如何 -错误处理
- base64 -Base64编码/解码
用法示例
当与MCP兼容的客户端集成时,您可以使用以下插件:
User: What time is it in Tokyo?
Client calls: get_time tool with {"timezone": "Asia/Tokyo"}
Plugin returns: Current time in RFC2822 format for Asia/Tokyo
Client: The current time in Tokyo is [result]建筑
该插件遵循Extism PDK架构:
- lib.rs:使用工具和提示逻辑实现主插件
- PDK:MCP通信的PDK特定类型和导出功能
- Cargo.toml:Rust依赖关系和构建配置
该插件编译为WebAssembly,并通过Extism的外部函数接口实现MCP协议。
错误处理
该插件优雅地处理常见错误:
- 无效时区:返回描述性错误消息
- 缺少必需的参数:提供有关所需参数的有用反馈
- 时间格式无效:使用上下文报告解析错误
- 未知工具/提示:返回适当的错误响应
贡献
为这个插件做贡献时:
- 保持现有的代码风格
- 添加新功能的测试
- 使用任何新功能更新此README
- 提交前确保所有测试通过
许可证
这个插件是hyper-mcp项目的一部分。有关许可证信息,请参阅主项目存储库。
