可视化渲染服务

为视觉大语言模型提供可视化渲染的服务,支持通过工具调用生成图表并返回PNG图像。

  • by dedalus-labs
  • Python
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 dedalus-labs/viz-mcp-example

使用说明

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() 重置数据

运作原理

  1. 客户端向Dedalus代理发送指令
  2. 代理调用服务器上的工具(push, get_chart等等)
  3. get_chart() 回报 ImageContent --视觉模型“看到”PNG
  4. 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 用于图表