模型上下文协议服务器

MCP Server是一个基于FastAPI的异步Web服务器,提供实时WebSocket端点与Unity集成,支持LLM(Gemini API)集成和多模态提示,适用于游戏开发和实时通信场景。

  • by heckcoder
  • C#
  • 本地部署
  • 更新于
在 GitHub 查看 heckcoder/awesome-mcp-server

使用说明

MCP服务器(模型上下文协议)

特性

  • 异步FastAPI web服务器,实现强大的通信
  • Unity集成的实时WebSocket端点
  • 会话上下文管理:目标、历史、脚本、日志、计划
  • LLM(Gemini API)集成,多模式即时支持
  • 严格的基于JSON的命令/响应协议
  • 强大的错误处理(API、网络、文件I/O)
  • 模块化、可扩展的架构
  • 通过以下方式配置环境 .env
  • WebSocket和命令处理的单元测试

文件夹结构

  • src/ --Python源代码
    • core/ --服务器逻辑、代理管理
    • communication/ --协议、模型、日志记录
  • Assets/ --Unity资源(前言、场景、脚本)
  • Packages/ --Unity包清单和协议规范
  • requirements.txt --Python依赖关系
  • LICENSE --Apache 2.0许可证

如何运行MCP服务器并连接Unity(本地用户托管)

1.在本地启动MCP服务器

先决条件: 安装Docker和Docker Compose(如果不使用Docker,则安装Python 3.10+)。

启动服务器:

docker-compose up -d

这将使用默认令牌在您自己的PC上本地端口8000上构建和运行MCP服务器 mcp-local-user。不需要中央服务器或远程托管。

或者,您可以直接运行服务器:

python src/core/server.py

2.连接Unity客户端

步骤:

  1. 打开你的Unity项目。
  2. 添加 MCPClient.cs 向 Assets/Scripts (如果尚未出现)。
  3. 在Unity中,转到 Window > MCP Client 打开MCP客户端窗口。
  4. 客户端将自动连接到 ws://localhost:8000 使用默认令牌。
  5. 如果要使用自定义令牌,请单击 Set Token 在MCP客户端窗口中,选择您的令牌文件。
  6. 连接后,服务器和客户端都将显示“连接已建立”。

3.使用方法和高级功能

  • 从服务器向Unity发送命令并实时接收响应。
  • 为了安全起见,所有文件操作都被沙盒到Unity项目目录中。

高级功能

  1. 交互式视觉反馈🎨

    • 在Unity MCP客户端窗口中,单击“拍摄注释截图”以捕获游戏视图。
    • 使用鼠标直接在屏幕截图上绘制(例如,圆圈UI问题)。
    • 点击“将带注释的截图发送给代理”,将图像和提示发送到服务器进行多模态分析和修复。
  2. 代理人“个性”或模式🤖

    • 在MCP客户端窗口中,选择代理模式:
      • 谨慎模式:代理在执行重大操作(例如,文件写入)之前要求确认。
      • 自主模式:除非发生错误,否则代理会不间断地执行计划。
      • 教学模式代理在采取行动之前解释其推理和代码。
    • 所选模式将发送到服务器并影响代理行为。
  3. 性能和缓存层

    • 服务器将文件内容缓存在内存中,只有在修改后才会重新加载文件,从而加快了大型项目的重复分析和命令。

该系统具有鲁棒性,功能齐全,符合其核心目的。这些高级选项进一步增强了高级用户的可用性、安全性和性能。

安全

  • 所有文件操作都被沙盒到Unity项目目录中。
  • 默认令牌仅用于本地身份验证;不需要外部API密钥。
  • 对于高级用户,您可以在中更改端口或令牌 docker-compose.yml 以及Unity设置。

通信协议

看 message_types.json 和 Packages/protocol.json 了解完整规格。

许可证

根据Apache许可证2.0版授权。有关详细信息,请参阅许可证。