Token导航 LogoToken导航TokenDH.com
S1 MCP Server logo
AI代理stdio官方级别未说明来源级核验

S1 MCP Server

MCP Server

一个连接LLM代理与Schedule I Unity游戏的系统,提供实时游戏状态检查、游戏对象操作和代理调试功能。

工具数

19

提示词数

0

GitHub Stars

3

资源数

0
游戏开发C#ClaudeClaude DesktopClaudeCline

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

SirTidez

提供方

SirTidez

最后核验

2026/5/17 20:35

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install -r requirements.txt

详细介绍

S1MCP:附表I的模型上下文协议

一个全面的系统,使LLM代理能够通过模型上下文协议(MCP)与调度I游戏进行交互。此存储库包含游戏模块(S1MCPServer)和MCP服务器客户端(S1MCPClient),它们协同工作以提供代理调试和游戏状态检查功能。

概述

S1MCP将LLM代理(如Claude、GPT)与Schedule I Unity游戏连接起来,实现:

  • 实时游戏状态检查 -查询NPC、物品、建筑、车辆和玩家数据
  • 游戏对象操纵 -传送实体、修改健康状况、生成项目
  • 代理调试 -允许LLM诊断mod问题并提出修复建议
  • 开发工具 -为改装者提供强大的调试和开发工具

建筑

┌─────────────────────────────────────────────────────────────┐
│                    LLM Agent (Claude/GPT)                     │
│                    (Claude Desktop, Cline, etc.)              │
└────────────────────────────┬──────────────────────────────────┘
                             │ MCP Protocol (JSON-RPC over stdio)
                             │
┌────────────────────────────▼──────────────────────────────────┐
│              S1MCPClient (Python MCP Server)                 │
│  - Handles MCP protocol (JSON-RPC over stdio)                  │
│  - Translates MCP tools → Game API calls                     │
│  - Manages LLM interactions                                  │
│  - Language: Python 3.10+                                    │
└────────────────────────────┬──────────────────────────────────┘
                             │ TCP/IP Communication
                             │ (localhost:8765)
┌────────────────────────────▼──────────────────────────────────┐
│              S1MCPServer (MelonLoader Mod)                   │
│  ┌────────────────────────────────────────────────────────┐  │
│  │  TCP Server (Background Thread)                      │  │
│  │  - Listens for commands from MCP server (port 8765)   │  │
│  │  - Receives JSON-RPC requests                         │  │
│  └──────────────┬───────────────────────────────────────────┘  │
│                 │ Enqueue Commands                            │
│  ┌──────────────▼───────────────────────────────────────────┐  │
│  │  Command Queue (Thread-Safe)                            │  │
│  │  - Queues game operations                               │  │
│  └──────────────┬───────────────────────────────────────────┘  │
│                 │ Process on Main Thread                      │
│  ┌──────────────▼───────────────────────────────────────────┐  │
│  │  Command Handlers (Main Thread)                         │  │
│  │  - Accesses Unity game objects                          │  │
│  │  - Executes game operations safely                      │  │
│  └──────────────┬───────────────────────────────────────────┘  │
│                 │ Results                                     │
│  ┌──────────────▼───────────────────────────────────────────┐  │
│  │  Response Queue (Thread-Safe)                          │  │
│  │  - Queues operation results                            │  │
│  └──────────────┬───────────────────────────────────────────┘  │
│                 │ Send via TCP                                │
│                 └──────────────────────────────────────────────┘
└────────────────────────────┬──────────────────────────────────┘
                             │
┌────────────────────────────▼──────────────────────────────────┐
│              Schedule I Game (Unity)                          │
│  - Game objects (NPCs, Items, Vehicles, Buildings)           │
│  - Player state and inventory                                 │
│  - Network state (multiplayer)                                │
│  - Game systems (native Unity/Schedule One classes)         │
└───────────────────────────────────────────────────────────────┘

存储库结构

S1MCPServer/
├── S1MCPServer/          # C# MelonLoader mod (game-side)
│   ├── Core/             # Core systems (queues, protocol, router)
│   ├── Handlers/         # Command handlers (NPC, Player, Item, etc.)
│   ├── Server/           # TCP server implementation
│   ├── Models/           # Data models
│   ├── Utils/            # Utilities (reflection, logging)
│   └── MainMod.cs        # Main mod entry point
│
├── S1MCPClient/          # Python MCP server (client-side)
│   ├── src/
│   │   ├── main.py       # MCP server entry point
│   │   ├── tcp_client.py # TCP client for mod communication
│   │   ├── tools/        # MCP tool definitions
│   │   ├── models/       # Data models
│   │   └── utils/        # Utilities (logger, config)
│   └── requirements.txt  # Python dependencies
│
├── S1MCPClientRust/      # Rust MCP server (side-by-side migration)
│   ├── src/              # MCP server, TCP client, tools, lifecycle/docs modules
│   ├── config.json.example
│   └── README.md
│
└── README.md             # This file

项目

S1MCP服务器

在附表I中运行的MelonLoader mod,通过TCP/IP提供游戏API访问。使用C#(.NET 6)构建,支持IL2CPP和Mono后端。

主要特点:

  • 用于外部通信的TCP服务器(端口8765)
  • 线程安全命令/响应排队系统
  • 跨运行时支持(Mono/IL2CPP)
  • 直接访问Schedule One本地课程
  • 使用UniverseLib的反射实用程序
  • 可选的UnityExplorer集成

请参阅: S1MCP服务器/README.md 详细文档。

S1MCP客户端

一个基于Python的MCP服务器,连接到S1MCPServer模块,并将游戏操作作为LLM代理的MCP工具公开。执行官方MCP协议。

主要特点:

  • MCP协议实现(官方SDK)
  • 用于mod通信的TCP客户端
  • 游戏操作的综合工具集
  • 自动重新连接和错误处理
  • 可通过JSON配置文件进行配置

请参阅: S1MCPClient/README.md 详细文档。

S1MCPClientRust

基于Rust的并行MCP服务器实现,旨在作为客户端运行时的原生二进制目标。

请参阅: S1MCPClientRust/README.md 用于当前状态、命令和奇偶校验注释。

快速开始

先决条件

  1. 第一类 游戏已安装
  2. Melon加载器 为附表I安装
  3. Python 3.10+ 安装
  4. 视窗 (游戏需要,TCP跨平台工作)

安装

1.安装S1MCPServer模块

  1. 构建mod:
   cd S1MCPServer
   # Open S1MCPServer.sln in Visual Studio or Rider
   # Build for your target backend (IL2CPP or Mono)
   # Configuration: Debug IL2CPP or Release IL2CPP
  1. 安装已编译的DLL:

- 复制已编译的 .dllbin/Debug IL2CPP/net6/ (或 Debug Mono) - 把它放在你的日程表I中 Mods 文件夹 - mod将自动启动端口8765上的TCP服务器

2.安装S1MCPClient

  1. 导航到客户端目录:
   cd S1MCPClient
  1. 安装Python依赖项:
   pip install -r requirements.txt
  1. (可选)创建配置文件:
   # Create config.json in S1MCPClient/
   {
     "host": "localhost",
     "port": 8765,
     "log_level": "INFO",
     "connection_timeout": 5.0,
     "reconnect_delay": 1.0
   }

3.配置MCP客户端

配置您的MCP客户端(例如Claude Desktop)以使用S1MCPClient:

克劳德桌面版 (claude_desktop_config.json):

{
  "mcpServers": {
    "s1mcp": {
      "command": "python",
      "args": ["-m", "src.main"],
      "cwd": "C:\\path\\to\\S1MCPServer\\S1MCPClient"
    }
  }
}

Cline或其他MCP客户:

  • 命令: python -m src.main
  • 工作目录:路径 S1MCPClient 文件夹

跑步

  1. 开始时间表I 已加载mod
  2. 等待主场景 加载(您将看到日志:“主场景已加载-S1MCPServer处于活动状态”)
  3. 启动您的MCP客户端 (Claude Desktop、Cline等)-它将自动连接到mod

可用工具

S1MCPClient提供了一套全面的游戏交互工具:

NPC工具

  • s1_get_npc -按ID获取NPC信息
  • s1_list_npcs -列出所有NPC(可选过滤器)
  • s1_get_npc_position -获取NPC位置
  • s1_teleport_npc -将NPC传送到位置
  • s1_set_npc_health -修改NPC健康状况

玩家工具

  • s1_get_player -获取玩家信息
  • s1_get_player_inventory -获取玩家库存
  • s1_teleport_player -Teleport播放器
  • s1_add_item_to_player -将商品添加到库存

项目工具

  • s1_list_items -列出所有项目定义
  • s1_get_item -按ID获取商品信息
  • s1_spawn_item -世界上的重生物品

构建工具

  • s1_list_buildings -列出所有建筑
  • s1_get_building -获取建筑信息

车辆工具

  • s1_list_vehicles -列出所有车辆
  • s1_get_vehicle -获取车辆信息

游戏状态工具

  • s1_get_game_state -获取当前游戏状态(场景、网络、模组、版本)

日志工具

  • s1_capture_logs -从MelonLoader捕获和过滤游戏日志以进行调试

- 按关键字、时间戳范围、正则表达式模式过滤 - 获取前/后N行 - 对于代理调试至关重要

调试工具

  • s1_inspect_object -使用反射检查Unity游戏对象

S1MCPClient/README.md 获取详细的工具文档。

协议

该系统使用TCP/IP上的JSON-RPC 2.0在S1MCPClient和S1MCPServer之间进行通信:

消息格式:

  • 4字节长度前缀(小字节序int32)
  • UTF-8编码的JSON有效载荷

请求格式:

{
  "id": 1,
  "method": "get_npc",
  "params": {
    "npc_id": "kyle_cooley"
  }
}

响应格式:

{
  "id": 1,
  "result": {
    "npc_id": "kyle_cooley",
    "name": "Kyle Cooley",
    "position": {"x": 10.5, "y": 1.0, "z": 20.3},
    "health": 100.0,
    "is_conscious": true
  },
  "error": null
}

发展

构建S1MCP服务器

该项目支持多种构建配置:

  • 调试单声道 -Mono后端的调试构建
  • 发布单声道 -发布Mono版本
  • 调试IL2CPP -IL2CPP后端的调试版本(建议大多数用户使用)
  • 发布IL2CPP -IL2CPP的发布版本(生产)

打开 S1MCPServer.sln 在Visual Studio、Rider或您首选的IDE中,为您的目标配置进行构建。

项目依赖项

S1MCP服务器:

  • Melon加载器
  • UniverseLib(用于反射实用程序)
  • .NET 6.0
  • 直接访问Schedule One本地课程

S1MCP客户端:

  • Python 3.10+
  • mcp>=0.9.0 (官方MCP SDK)
  • pywin32>=306 (Windows命名管道支持-传统,现在使用TCP)
  • pydantic>=2.0.0 (数据验证)

添加新工具

  1. 添加命令处理程序S1MCPServer/Handlers/
  2. 注册处理程序CommandRouter.cs
  3. 添加工具定义S1MCPClient/src/tools/
  4. 注册工具S1MCPClient/src/main.py

有关详细的开发指南,请参阅单个项目的README。

故障排除

连接问题

问题: 无法连接到mod

解决:

  • 确保日程表I在加载mod的情况下运行
  • 检查主场景是否已加载(等待日志消息)
  • 验证TCP服务器正在侦听端口8765(检查mod日志)
  • 检查本地主机连接的防火墙设置
  • 验证mod和客户端配置中的端口是否匹配(默认值:8765)

问题: 操作过程中连接丢失

解决:

  • 检查mod日志是否有错误
  • 确保游戏没有崩溃
  • 客户端会自动重试连接错误
  • 检查网络连接(尽管本地主机应始终正常工作)

模块未加载

问题: 模块未出现在MelonLoader中

解决:

  • 验证DLL是否正确 Mods 文件夹
  • 检查MelonLoader日志中的加载错误
  • 确保为正确的后端构建(IL2CPP与Mono)
  • 验证所有依赖项是否存在(UniverseLib等)

工具错误

问题: 工具从mod返回错误

解决:

  • 检查响应中的错误消息和代码
  • 验证参数是否符合API规范
  • 检查mod日志以获取详细的错误信息
  • 确保游戏对象存在(例如,NPC ID有效)
  • 在拨打电话之前,等待主场景完全加载

调试

启用DEBUG登录 S1MCPClient/config.json:

{
  "log_level": "DEBUG"
}

查看Schedule I游戏目录中的mod日志,了解详细的服务器端日志。

用例

1.代理调试

允许LLM代理诊断mod问题:

  • 当模组不工作时检查游戏状态
  • 检查NPC是否正确产卵
  • 验证项目注册
  • 检查mod交互
  • 捕获和分析游戏日志以跟踪错误

例子:

User: "My mod isn't spawning NPCs correctly. Can you check what NPCs are currently in the game?"

LLM: [Calls s1_list_npcs] I found 15 NPCs. Here are the ones that might be relevant...

User: "The mod crashed at startup. Can you check the logs?"

LLM: [Calls s1_capture_logs with keyword="error"] I found several errors in the logs around the startup time. 
The issue appears to be...

2.游戏状态检查

了解当前游戏状态:

  • 列出所有NPC及其状态
  • 检查玩家库存
  • 检查建筑占用情况
  • 审查关系

3.测试场景

创建测试场景:

  • 在特定地点生成NPC
  • 将项目添加到库存
  • 修改关系
  • 触发事件

4.发展援助

援助模式开发:

  • 检查可用的游戏对象
  • 测试游戏API功能
  • 验证模块集成
  • 调试模块行为

建筑细部

线程模型

该模块使用复杂的线程模型,将Unity的单线程特性与外部通信安全地连接起来:

Background Thread (TCP Server)
    ↓ Enqueue Request
Command Queue (Thread-Safe)
    ↓ Process on Main Thread (Unity Update)
Command Handlers (Main Thread)
    ↓ Enqueue Result
Response Queue (Thread-Safe)
    ↓ Send via TCP
Background Thread (TCP Server)

这确保了:

  • 所有Unity操作都发生在主线程上
  • 外部通信不会阻止游戏执行
  • 线程间的线程安全消息传递

安全注意事项

  • 仅限本地主机:TCP服务器绑定到 127.0.0.1 仅限(无法从网络访问)
  • 单一客户端:一次只能连接一个MCP客户端
  • 验证:所有参数在执行前都经过验证
  • 错误处理:优雅的错误处理可防止游戏崩溃
  • 速率限制:操作自然受到游戏帧率的速率限制

相关文件

贡献

欢迎投稿!拜托:

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 彻底测试
  5. 提交拉取请求

许可证

\[在此处添加您的许可证\]

积分

  • 泰勒 -项目创建者和维护者
  • 专为Schedule I改装社区打造
  • 使用官方的模型上下文协议SDK
  • 灵感来自UnityExplorer的反射技术
  • 使用UniverseLib实现跨运行时兼容性

支持

对于问题和疑问:

  • 检查上面的故障排除部分
  • 查看单个项目的自述文件
  • 检查附表I中的mod日志
  • 启用DEBUG日志记录以获取详细信息
  • 查看API工具使用规范

______________________________________________________________________

版本: 1.0.0\ 最后更新时间: 2025-01-27\ 作者 泰勒

目录标签

目录标签

游戏开发C#Claude本地部署LLM集成实时调试Unity工具游戏状态管理

支持客户端

Claude DesktopClaudeCline

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

19

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP