Skip to main content
Glama
IvanMurzak

GameDev-MCP-Server

by IvanMurzak

NuGet MCP Unreal Unity Godot Discord Stars License Docker Image Stand With Ukraine

Engine-agnostic Model Context Protocol server shared by the game-engine MCP plugins:

It is a thin host over the NuGet packages com.IvanMurzak.McpPlugin.Server and com.IvanMurzak.ReflectorNet, where all the real server logic lives. The server bridges MCP clients (Claude, Cursor, Copilot, …) and an engine plugin over SignalR:

MCP client  ⇄  gamedev-mcp-server  ⇄ (SignalR) ⇄  engine plugin (Unity / Godot / Unreal)

There is no engine-specific code in this repository — one server binary serves all three engine plugins. Tools, resources and prompts are provided dynamically by whichever engine plugin connects.

Not to be confused with AI-Game-Dev-Server — the cloud LLM/billing proxy. This project is the local MCP stdio/http proxy host.

Install / Run

Pre-built executables

Download the zip for your platform from Releases (gamedev-mcp-server-<rid>.zipwin-x64, win-x86, win-arm64, linux-x64, linux-arm64, osx-x64, osx-arm64), unzip, and run:

./gamedev-mcp-server --port 8080 --client-transport stdio

Typical MCP client configuration (stdio):

{
  "mcpServers": {
    "GameDev-MCP": {
      "command": "path/to/gamedev-mcp-server",
      "args": ["--port=8080", "--client-transport=stdio"]
    }
  }
}

Docker

docker run -i --rm -p 8080:8080 aigamedeveloper/mcp-server

dotnet tool

dotnet tool install --global com.IvanMurzak.GameDev.MCP.Server
gamedev-mcp-server --port 8080

Build from source

dotnet build com.IvanMurzak.GameDev.MCP.Server.csproj
dotnet run --project com.IvanMurzak.GameDev.MCP.Server.csproj -- --client-transport stdio --port 8080

Cross-platform self-contained executables for all 7 RIDs: ./build/build-all.sh (bash) or ./build/build-all.ps1 (PowerShell). Outputs land in publish/<rid>/ and are zipped as gamedev-mcp-server-<rid>.zip (skip zipping with --no-zip / -NoZip).

Related MCP server: Learn MCP Server

Configuration

CLI arguments override environment variables.

Environment variable

CLI argument

Default

Description

MCP_PLUGIN_PORT

--port

8080

Client → Server ← Plugin connection port

MCP_PLUGIN_CLIENT_TIMEOUT

--plugin-timeout

10000

Plugin → Server connection timeout (ms)

MCP_PLUGIN_CLIENT_TRANSPORT

--client-transport

stdio

Client → Server transport: stdio or streamableHttp

MCP_PLUGIN_IDLE_TIMEOUT_SECONDS

--idle-timeout-seconds

28800

streamableHttp idle-session eviction window (this host seeds 8h instead of the package default of 600s, so a local session survives a working day). Multi-tenant hosts should lower it and use a Redis session-migration record for long-window resumption

MCP_AUTH

--auth

transport-dependent (see Authentication)

Authentication mode: none or oauth

MCP_AUTH_ISSUER

--auth-issuer

OAuth authorization-server URL (e.g. https://ai-game.dev). Required for oauth

MCP_PUBLIC_URL

--public-url

This server's canonical public URL / token audience (e.g. https://ai-game.dev/mcp). Required for oauth; seeds the Origin allow-list

MCP_BIND

--bind

loopback

Bind address: loopback, any (0.0.0.0), or a specific IP. Hosted deploys behind a proxy set any/0.0.0.0

MCP_ALLOWED_ORIGINS

--allowed-origins

Comma/semicolon-separated additional allowed browser Origins (added to loopback + the --public-url origin)

MCP_LOG_LEVEL

Info

Log verbosity floor: Trace, Debug, Info, Warn, Error, Fatal. Read by NLog, so unlike the rest of this table it has no CLI equivalent

Logs are written to logs/server-log.txt (and logs/server-log-error.txt); in stdio mode console logging is redirected to stderr so stdout stays clean for the MCP JSON stream.

The default level is Info. Set MCP_LOG_LEVEL=Trace to dump every MCP message body while debugging a protocol issue — but expect volume: on a busy hosted deployment Trace measured 39-54k lines/min (5-12 GB/day), which rotates server-log.txt (10 MB x 5 archives) down to roughly ten minutes of retained history. Lower verbosity keeps more usable history, not less.

Authentication

The server is an OAuth 2.1 resource server. Two modes:

Mode

Auth

Default for

Use

none

none — single-instance, zero-config

stdio

offline / local dev / CI

oauth

ES256 JWT validated locally via cached JWKS (with PAT introspection fallback); 401 + resource_metadata challenge

streamableHttp

signed-in localhost and hosted

  • Transport-conditional default: stdio defaults to none. streamableHttp defaults to oauth when both --auth-issuer and --public-url are configured; otherwise it stays on none and logs a warning (so the zero-config docker run / --port 8080 quickstart still works). An explicit --auth always wins.

  • oauth requires --auth-issuer (the authorization server, e.g. https://ai-game.dev) and --public-url (this server's canonical audience). Startup fails fast if either is missing while --auth oauth is set.

  • Origin validation (DNS-rebinding defense) runs in all modes: a request with a non-allowed Origin gets 403. Loopback and the --public-url origin are allowed by default; add more with MCP_ALLOWED_ORIGINS.

  • Bind defaults to loopback. Set --bind any (or 0.0.0.0) for a hosted deployment a reverse proxy must reach.

# Local, offline (stdio, none) — unchanged zero-config default:
gamedev-mcp-server --client-transport stdio --port 8080

# Hosted resource server (streamableHttp, oauth), reachable by nginx:
gamedev-mcp-server --client-transport streamableHttp --port 8080 \
  --auth oauth --auth-issuer https://ai-game.dev --public-url https://ai-game.dev/mcp \
  --bind 0.0.0.0

Configure an AI agent

Write a project-scoped, pinned MCP client config for any supported AI agent from the terminal — no editor UI, no token copy/paste (native OAuth authorize):

# Local server, current project:
gamedev-mcp-server configure --agent claude-code
# Hosted server:
gamedev-mcp-server configure --agent codex --url https://ai-game.dev/mcp
# List agents:
gamedev-mcp-server configure --help

Each written config is URL-only (credentials are never written into project files) and carries the project pin (…/p/<pin> path segment) plus, for local servers, the deterministic per-project port — so agent sessions launched in this project folder route strictly to this project's engine. --agent <id> accepts any id from configure --help (e.g. claude-code, codex, cursor, vscode-copilot, …); --transport stdio writes a stdio spawn config instead of an HTTP one; --project <path> targets a different project root (default: current directory).

Compatibility

GameDev-MCP-Server

McpPlugin.Server

ReflectorNet

Engine plugins

9.2.4 (current)

7.5.2

5.4.0

engine plugins on McpPlugin 7.x

8.0.3 (legacy)

6.11.0

5.3.1

engine plugins on McpPlugin 6.x

Any 9.x server needs an engine plugin built on McpPlugin 7.x (the instance-metadata handshake + oauth mode). McpPlugin 6.x plugins pair with the 8.0.3 line.

Every 9.x release since 9.0.0 builds against a released McpPlugin.Server 7.x. For the exact pins of an intermediate version, see its entry on Releases — this table tracks the current release and the last 6.x-compatible one rather than every patch, so it does not go stale between them.

License

Apache-2.0 — Copyright (c) 2026 Ivan Murzak

A
license - permissive license
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
3dRelease cycle
13Releases (12mo)
Commit activity
Issues opened vs closed

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • A comprehensive Model Context Protocol (MCP) server that enables AI assistants to control Unreal E…

  • MCP server for AI dialogue using various LLM models via AceDataCloud

  • Cloud-hosted MCP server for durable AI memory

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/IvanMurzak/GameDev-MCP-Server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server