Viz MCP示例
为视觉LLM渲染视觉效果的MCP服务器。
安全
由于此服务器将敏感凭据作为环境变量,建议将其作为专用服务器保存在 Dedalus平台.
如果您想允许任意令牌传入,请访问我们的 文档 查看“DAuth”(Dedalus Auth)和“bearer Auth”(使用Cmd+K快速导航)。
设置
cp .env.example .env
# Fill in REDIS_URL and DEDALUS_API_KEY跑
# Terminal 1: server
python3 run server.py
# Terminal 2: client
python3 run client.py工具
| 工具 | 说明 |
|---|---|
push(value, label) | 添加数据点 |
get_metrics() | 获取JSON数据 |
get_chart(title) | 渲染PNG(视觉LLM看到这个) |
clear() | 重置数据 |
运作原理
- 客户端向Dedalus代理发送指令
- 代理调用服务器上的工具(
push,get_chart等等) get_chart()回报ImageContent--视觉模型“看到”PNG- Agent描述它看到的内容
数据后端
get_state() 和 set_state() 在 main.py 可以互换。此示例使用Redis,但您可以替换为:
- Webhook调用您的后端
- 另一个数据库(Postgres、DynamoDB等)
- 任何外部服务
托管在Dedalus Hobby层上的MCP服务器仅限于突发服务器。这意味着服务器状态不会在会话之间持续存在,因此您需要提供自己的外部存储。
\[!注意\] Vision LLM将能够看到图表。为了使这个例子简单,代理只能输出其观察结果,而不能将图像序列化给用户。如果您需要保存其响应: - 外部存储器:有get_chart()将PNG上传到S3/R2/您选择的后端。 - 视觉代理作为工具:将视觉模型称为@工具(将其调用封装在函数中),在此处返回描述+base64数据或其他创造性策略。 - 直接MCP客户端:绕过LLMMCPClient从dedalus-mcp框架(注意:MCPClient是一个非DAuth客户端),自己解码base64。
需求
- 外部状态存储(Redis、Uptash、webhook等)
matplotlib用于图表
