Embedded Model Context Protocol (MCP) server for AI-assisted game development. 更多...
#include <McpServer.hpp>
Public 类型 | |
| enum class | Transport { None , Tcp , Stdio } |
Public 成员函数 | |
| McpServer (const McpServer &)=delete | |
| McpServer & | operator= (const McpServer &)=delete |
| int | listen (uint16_t port) |
| Bind TCP listen port (0 = ephemeral). Returns bound port or 0 on failure. | |
| bool | listenStdio (std::istream &in=std::cin, std::ostream &out=std::cout) |
Switch to stdio transport (MCP stdio server). A reader thread pulls newline-delimited JSON from in into a queue that poll() drains on the caller thread, so tool execution stays on the main / render thread. Responses are written to out (stdout by default — keep it MCP-only). Returns true when the transport starts. | |
| void | stop () |
| bool | isListening () const |
| int | port () const |
| bool | hasClient () const |
| Transport | transport () const |
| bool | stdinClosed () const |
| True once the stdio input reached EOF (host should exit). | |
| void | poll () |
| Accept clients + process one request batch (non-blocking). | |
| void | setGameRoot (std::string root) |
| Game / project directory hint for agents. | |
| const std::string & | gameRoot () const |
静态 Public 成员函数 | |
| static McpServer & | instance () |
友元 | |
| template<typename > | |
| struct | Immortal |
详细描述
Embedded Model Context Protocol (MCP) server for AI-assisted game development.
Speaks JSON-RPC 2.0 over TCP with newline-delimited messages (same wire shape as MCP stdio; no embedded newlines in payloads). Start with listen(port) after DevTool::attach; call poll() from the game loop / pause pump.
Capabilities: tools, resources, prompts for AI test workflows. Cursor / Claude Desktop can attach via tools/eve-mcp (stdio ↔ TCP bridge).
Desktop-only (part of EVDevTools); not shipped on Android/iOS trimmed runtimes.
在文件 McpServer.hpp 第 35 行定义.
成员枚举类型说明
◆ Transport
|
strong |
| 枚举值 | |
|---|---|
| None | |
| Tcp | |
| Stdio | |
在文件 McpServer.hpp 第 42 行定义.
构造及析构函数说明
◆ McpServer()
|
delete |
成员函数说明
◆ gameRoot()
|
inline |
在文件 McpServer.hpp 第 67 行定义.
◆ hasClient()
|
inline |
在文件 McpServer.hpp 第 57 行定义.
◆ instance()
|
static |
◆ isListening()
|
inline |
在文件 McpServer.hpp 第 55 行定义.
◆ listen()
| int eve::dev::McpServer::listen | ( | uint16_t | port | ) |
Bind TCP listen port (0 = ephemeral). Returns bound port or 0 on failure.
在文件 McpServer.cpp 第 1553 行定义.
引用了 eve::dev::AiPanel::addLog(), eve::dev::AiPanel::instance(), None, port(), setGameRoot(), eve::dev::AiPanel::setMcpConnected(), eve::dev::AiPanel::setMcpPort(), stop() , 以及 Tcp.
被这些函数引用 eve::dev::DevTool::startMcp().
◆ listenStdio()
| bool eve::dev::McpServer::listenStdio | ( | std::istream & | in = std::cin, |
| std::ostream & | out = std::cout |
||
| ) |
Switch to stdio transport (MCP stdio server). A reader thread pulls newline-delimited JSON from in into a queue that poll() drains on the caller thread, so tool execution stays on the main / render thread. Responses are written to out (stdout by default — keep it MCP-only). Returns true when the transport starts.
在文件 McpServer.cpp 第 1583 行定义.
◆ operator=()
◆ poll()
| void eve::dev::McpServer::poll | ( | ) |
Accept clients + process one request batch (non-blocking).
在文件 McpServer.cpp 第 1662 行定义.
引用了 line.
被这些函数引用 eve::dev::DevTool::poll().
◆ port()
|
inline |
在文件 McpServer.hpp 第 56 行定义.
被这些函数引用 listen().
◆ setGameRoot()
| void eve::dev::McpServer::setGameRoot | ( | std::string | root | ) |
◆ stdinClosed()
|
inline |
True once the stdio input reached EOF (host should exit).
在文件 McpServer.hpp 第 60 行定义.
◆ stop()
| void eve::dev::McpServer::stop | ( | ) |
在文件 McpServer.cpp 第 1625 行定义.
被这些函数引用 listen(), listenStdio() , 以及 eve::dev::DevTool::stopMcp().
◆ transport()
|
inline |
在文件 McpServer.hpp 第 58 行定义.
友元及相关函数文档
◆ Immortal
|
friend |
在文件 McpServer.hpp 第 71 行定义.
该类的文档由以下文件生成:
- src/engine/devtools/McpServer.hpp
- src/engine/devtools/McpServer.cpp