交互式绘图MCP服务器

一个基于Model Context Protocol (MCP)的交互式绘图服务器,提供16x16网格绘图界面,支持实时状态同步和持久化存储。

  • by AaronGoldsmith
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 AaronGoldsmith/interactive_draw_mcp

使用说明

交互式绘图MCP

该项目是一个具有交互式绘图界面的模型上下文协议(MCP)服务器的示例。它演示了如何使用Tkinter作为图形界面构建一个MCP扩展,该扩展包括一个用于绘图的单独UI窗口。

特性

  • 绘制网格界面:

    • 提供16x16网格,每个单元格可以在两种状态(填充或空)之间切换。
    • 提供一个清晰的网格按钮来重置所有单元格。
  • 服务器功能:

    • 开始绘画课程:初始化新会话并启动UI。
    • 切换单元格:通过命令界面切换单个单元格的颜色。
    • 获取电网状态:以文本表示形式检索当前网格配置。
  • 持久性:网格状态保存为JSON文件(board_state.json)以保持会话之间的一致性。

  • UI和状态同步:

    • 实时UI更新:后台线程持续监视网格状态文件的更新,并直观地反映更改。

安装

选项1:从源代码安装

  1. 克隆此存储库:

    git clone https://github.com/AaronGoldsmith/interactive_draw_mcp
    cd interactive_draw_mcp
    
  2. 安装软件包:

    pip install -e .
    

用法

作为独立的MCP服务器

运行服务器以打开绘图窗口:

interactive-draw-mcp

与鹅

选项1:使用Goose CLI(推荐)

启用扩展后启动Goose:

# Local Development
goose session --with-extension "python -m interactive-draw-mcp"

工具

  • 服务器工具:
    • start_drawing_session():初始化绘图会话并打开UI。
    • toggle_cell_color(row, col):在指定位置切换单元格的颜色 row 和 col.
    • get_grid_state():提供网格当前状态的字符串表示。

资源和参考

架构概述

该项目的架构展示了:

  1. MCP服务器:通过定义良好的工具管理Goose AI和绘图界面之间的通信。
  2. 交互式用户界面:为网格提供可视化界面。
  3. 与Goose AI集成:Goose AI的工具调用直接反映到网格状态上,反之亦然。

益处

  • 职责分离:保持服务器逻辑和UI演示之间的清晰分离。
  • 改善用户体验:提供直观的视觉反馈以及基于文本的命令界面。
  • 适应性:可以扩展到涉及人工智能和交互式UI的更复杂的应用程序。