使用说明
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客户端:绕过LLM
MCPClient从dedalus-mcp框架(注意:MCPClient是一个非DAuth客户端),自己解码base64。
需求
- 外部状态存储(Redis、Uptash、webhook等)
matplotlib用于图表