游戏控制桥接器

通过OpenKore机器人使用MCP协议控制Ragnarok Online玩家的LLM解决方案。

  • by diviatrix
  • Perl
  • 本地部署
  • 13 星标
  • 更新于
在 GitHub 查看 diviatrix/openkore-mcp

使用说明

OpenKore MCP桥

基本上,这是使用MCP通过OpenKore机器人控制Ragnarok Online玩家的LLM方式。

MCP(模型上下文协议)SSE服务器直接内置于OpenKore插件中——没有外部依赖关系

特性

  • MCP SSE运输 (协议版本2024-11-05)通过HTTP
  • 253工具 来自典型的OpenKore安装:
    • 207个命令工具(所有控制台命令)
    • 2个聊天模板(自动回复单词)
    • 44个响应模板(预设消息)
  • 纯Perl——仅使用核心OpenKore模块+ JSON + IO::Socket::INET
  • 非阻塞I/O集成到 mainLoop_pre 钩子
  • 支持多个并发SSE客户端
  • CORS已启用

建筑

MCP Client (Qwen, Claude, etc.)
    ↕ HTTP/SSE (localhost:5556)
MCPBridge.pl (OpenKore plugin)
    → Commands::run()
    → OpenKore internals

没有中间件。插件就是服务器。

端点

方法 路径 描述
得到 /sse SSE事件流(MCP传输)
职位 /message?sessionId=N 来自客户端的JSON-RPC请求
选项 * CORS飞行前

MCP方法

方法 说明
initialize 握手--返回协议版本、功能、服务器信息
tools/list 列出所有可用工具(支持光标分页)
tools/call 按名称执行工具
ping 健康检查

安装

(我在debian上做了所有事情,请报告有关win和其他人的问题)

  1. (可选)确保 JSON Perl模块已安装:

    perl -MJSON -e 1
    

    如果失败,请安装: cpan JSON 或 apt install libjson-perl

  2. 复制插件目录:

    cp -r plugins/MCPBridge /path/to/your/openkore/plugins/
    
  3. 添加 control/config.txt:

    loadPlugins_list MCPBridge
    
  4. 启动OpenKore。服务器自动启动 http://127.0.0.1:5556,您将在ok控制台中看到- [MCPBridge] MCP SSE on http://127.0.0.1:5556/sse

配置

在 .qwen/mcp.json (或任何MCP客户端配置):

{
  "mcpServers": {
    "openkore": {
      "url": "http://127.0.0.1:5556/sse"
    }
  }
}

或

{
  "mcp": {
    "openkore": {
      "type": "remote",
      "url": "http://localhost:5556/sse",
      "enabled": true
    }
  }
}

用法

工作模式简单,LLM工作循环 wait_pm 工具,它有可选的超时参数(秒)。 下午收到LLM后,将其视为提示,并做一些事情,然后重复。

  1. 如上所示配置MCP客户端
  2. 启动你的AI代理。
  3. 提示他 拉格纳罗克玩家 角色定义和请求启动循环
  4. 代理将等待PM命令并执行OpenKore工具进行响应

卷曲测试

# Connect SSE (blocks, streams events)
curl -N http://127.0.0.1:5556/sse

# In another terminal, send initialize request
curl -X POST 'http://127.0.0.1:5556/message?sessionId=1' \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}'

工具类型

命令工具

每个OpenKore控制台命令都可以作为工具使用(例如。, move, stats, a, s). 除此之外,只有自定义工具 wait_pm,请在“用法”部分阅读。

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "move",
    "arguments": { "x": "100", "y": "200" }
  }
}

聊天模板(chat_*)

自动回复来自的单词 chat_resp.txt.

响应模板(resp_*)

罐装回复来自 responses.txt (例如。, resp_authS).

故障排除

  • 检查OpenKore日志 [MCPBridge] 消息
  • 端口5556必须空闲: ss -tlnp | grep 5556
  • 确保 JSON Perl模块已安装: perl -MJSON -e 1

文件

  • MCPBridge.pl --主插件(MCP SSE服务器)
  • README.md --本文件

许可证