Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
제작자가 쓴 설명(영어 원문)
Launch, inspect and stop multiplayer game server sessions on Gameye from any MCP client.
이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
GAMEYE_API_TOKEN, GAMEYE_ENV비밀로 표시된 값은 내 계정의 열쇠예요. 절대 다른 사람과 공유하거나 채팅에 붙여 넣지 마세요.
필요한 것
어떤 앱을 쓰세요?
위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.
Claude Desktop → Settings → Developer → Edit Config를 열고 claude_desktop_config.json에 이 내용을 붙여 넣으세요
{
"mcpServers": {
"gameye": {
"command": "npx",
"args": [
"-y",
"gameye-mcp"
],
"env": {
"GAMEYE_API_TOKEN": "your-value",
"GAMEYE_ENV": "your-value"
}
}
}
}터미널에서 이 명령어를 실행하세요
claude mcp add gameye --env GAMEYE_API_TOKEN=your-value --env GAMEYE_ENV=your-value -- npx -y gameye-mcp실행하기 전에 빈 값을 채워 주세요.
프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요
{
"mcpServers": {
"gameye": {
"command": "npx",
"args": [
"-y",
"gameye-mcp"
],
"env": {
"GAMEYE_API_TOKEN": "your-value",
"GAMEYE_ENV": "your-value"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
프로젝트의 .vscode/mcp.json에 붙여 넣으세요
{
"servers": {
"gameye": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"gameye-mcp"
],
"env": {
"GAMEYE_API_TOKEN": "your-value",
"GAMEYE_ENV": "your-value"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
이 서버는 내 컴퓨터에서 실행되는데, ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요. 다른 앱을 고르세요.
선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.
GAMEYE_ENV env이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 6일 점검
레지스트리 이름이 GitHub 계정 Gameye 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요
내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요
내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
입력해야 할 값: GAMEYE_API_TOKEN
내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).
GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(0.4.0)은 12일 전 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 Node.js, Docker도 있어야 해요.
같은 카테고리에는: Spec Driven Development, Remote Desktop Commander, yontu
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Türkçe yazı denetimi: TDK kuralları, yapay zekâ izleri, metin türüne göre üslup.
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
A Model Context Protocol server for the Gameye game server orchestration API. It lets an AI agent (Claude Code, Claude Desktop, Cursor, or any MCP client) launch and inspect game server sessions, check image tags and regions, and fetch logs and artifacts. You talk to it in plain language, and you don't have to leave your editor.
Status: beta (
0.x). Tools, inputs and outputs may change between releases, and there may be bugs. The server says so to every client that connects, on startup, and ingameye_context. It is published on npm asgameye-mcp, as a container image atghcr.io/gameye/gameye-mcp, and in the MCP Registry asio.github.Gameye/gameye-mcp; see the changelog for what changed in each release.
GAMEYE_API_TOKEN=<your-token> npx -y gameye-mcp
It needs Node.js 22 or newer. The server speaks MCP over stdio. Normally your MCP client starts it for you (see Install), so you rarely need to run it by hand.
Gameye has two public API hosts. The server targets sandbox by default.
GAMEYE_ENV | Host | Who it is for |
|---|---|---|
sandbox (default) | https://api.sandbox-gameye.gameye.net | Self-serve customers. This is your permanent home and runs live matches, not just tests. |
production | https://api.production-gameye.gameye.net | Enterprise customers. |
The environment is a property of the server process. No tool takes an environment argument, so an agent can't switch to production partway through a conversation. If you need both, configure two named server entries (for example gameye-sandbox and gameye-production), each with its own token.
| Variable | Required | Default | Description |
|---|---|---|---|
GAMEYE_API_TOKEN | Yes | — | Gameye API token. Use the least-privileged scopes you need (see below). |
GAMEYE_ENV | No | sandbox | sandbox or production. Selects the API host. |
GAMEYE_API_URL | No | — | Overrides the host, for testing only. Must be https. If it equals one of the two known hosts, it must match GAMEYE_ENV or the server refuses to start. Any other URL is labelled custom in every tool result. |
GAMEYE_ENABLE_SKILLS_UPDATE | No | — | Set to 1 to let gameye_update_skills run the skills updaters with apply: true. Without it the tool only checks and lists the commands. |
GAMEYE_MAX_SESSIONS | No | 5 | Most sessions launched by this server that may run at once. A launch past it is refused. |
GAMEYE_MAX_TTL | No | 4h | Longest ttl a launch may ask for, at least 30m. A longer TTL, or 0, is refused. |
GAMEYE_MAX_LAUNCHES | No | 20 | Launches per server run. Restart the server to reset it. |
GAMEYE_STOP_OWN_ONLY | No | — | Set to 1 so gameye_stop_session only stops sessions this server launched. |
GAMEYE_TIMEOUT_MS | No | 30000 | Per-request timeout in milliseconds, a positive whole number. Log snapshots get at least 60 s and artifact downloads at least 120 s. A request that runs out of time comes back as a tool error: Request to timed out after s. |
claude mcp add gameye --env GAMEYE_API_TOKEN=<your-token> -- npx -y gameye-mcp
For production, add --env GAMEYE_ENV=production and use a production token.
Most clients (Claude Desktop, Cursor, Windsurf and others) accept an mcpServers block:
{
"mcpServers": { "gameye": { "command": "npx", "args": ["-y", "gameye-mcp"], "env": { "GAMEYE_API_TOKEN": " ", "GAMEYE_ENV": "sandbox" } } } }
Restart the client after you change its configuration.
npx -y gameye-mcp runs the latest release. To stay on one version, name it: npx -y gameye-mcp@0.4.0 (or "args": ["-y", "gameye-mcp@0.4.0"]).
The server runs on Windows with Node.js 22 or newer. We've tested it on Windows 11, through Claude Code and over plain stdio. If something breaks on Windows, please open an issue.
npx directly, because it's a .cmd script. Start it through cmd /c instead: "command": "cmd",
"args": ["/c", "npx", "-y", "gameye-mcp"]
With Claude Code: claude mcp add gameye --env GAMEYE_API_TOKEN= -- cmd /c npx -y gameye-mcp. Claude Code 2.1.296 and later also start plain npx.
npx.cmd instead of npx when you run the server by hand. A new Windows install blocks the npx PowerShell script with "running scripts is disabled on this system".gameye_update_skills reports outdated skills on Windows but doesn't run the update. It prints the commands for you to run.gameye_create_token writes the token file with owner-only permissions on macOS and Linux. On Windows those permissions don't apply, and the file gets the access rules of its folder. Write it inside your user profile.No Node.js on the machine? Run the published image instead. It works on amd64 and arm64:
{
"mcpServers": { "gameye": { "command": "docker", "args": ["run", "-i", "--rm", "-e", "GAMEYE_API_TOKEN", "-e", "GAMEYE_ENV", "ghcr.io/gameye/gameye-mcp"], "env": { "GAMEYE_API_TOKEN": " ", "GAMEYE_ENV": "sandbox" } } } }
With Claude Code: claude mcp add gameye --env GAMEYE_API_TOKEN= -- docker run -i --rm -e GAMEYE_API_TOKEN ghcr.io/gameye/gameye-mcp.
-e NAME (no value), so Docker copies it from the client's environment and the token never appears in the command line.-i and never add -t: a terminal mangles the JSON-RPC messages on stdout.ghcr.io/gameye/gameye-mcp:0.4.0.--rm deletes them:gameye_get_artifacts saves its download under the temp directory. To keep it, mount a directory and point the temp directory at it: -v /absolute/dir:/out -e TMPDIR=/out. The path the tool reports is the container path; the file is in /absolute/dir on the host.gameye_create_token writes to the outputPath you give it. Mount a directory the same way and pass an outputPath under /out.Give the server a token with only the scopes it needs.
| Recipe | Scopes | What the agent can do |
|---|---|---|
| Observer | session:read logs:read artifact:read regions:read region:read application:read | Inspect sessions, logs, artifacts, regions and applications. No changes. |
| Operator | Observer + session:start session:stop session:write | Also launch and stop sessions and update session state. |
| Deployer | Operator + application:write | Also create and edit applications, so the agent can set up a deployment end to end. |
| Token admin | Deployer + token:write | Also create API tokens. |
Never pass your Gameye API token into a game server's environment. A game server doesn't need it, and anything inside the container can read it.
Every tool result starts with the environment and host it used, for example [sandbox · api.sandbox-gameye.gameye.net].
| Tool | Kind | Description |
|---|---|---|
gameye_context | read | Show the environment, host and server version this server targets, and the guardrail defaults (session TTL, launched-by label, token expiry) |
gameye_launch_session | write, dryRun | Start a containerized game server (billable). Default TTL and agent label applied; see Guardrails |
gameye_list_sessions | read | List running sessions (filterable; all=true for every status) |
gameye_describe_session | read | Get session details, ports and players |
gameye_stop_session | destructive, dryRun | Stop one session by its exact ID |
gameye_player_join | write | Register one or more players as joined |
gameye_player_leave | write | Remove one or more players from a session |
gameye_get_locations | read | List locations that can host an image right now |
gameye_list_regions | read | List the regions available to your organization |
gameye_check_tag | read | Check whether an image tag is available in a region |
gameye_list_applications | read | List your applications with registry, resources, regions and ports |
gameye_list_registry_tags | read | List an application's tags in its upstream registry (paged) |
gameye_enable_tag | write, dryRun | Enable an image tag for an application so Gameye preloads it |
gameye_get_logs | read | Fetch session logs |
gameye_get_artifacts | read | Download a file or directory from a session container as a tar archive |
gameye_create_application | write, dryRun | Create an application |
gameye_edit_application | destructive, dryRun | Change an application; omitted fields stay unchanged |
gameye_create_token | write, dryRun | Create an API token and write it to a file |
gameye_update_skills | read, or write with apply | Compare the installed Gameye skills with the latest pack, and update them with apply: true. See Keeping the skills current |
Every tool carries MCP annotations: read tools set readOnlyHint, gameye_stop_session and gameye_edit_application set destructiveHint, and every tool that calls the Gameye API sets openWorldHint.
The tool set covers every operation in the Gameye client API. tests/parity.test.ts checks this against the vendored spec in spec/.
These behave the same on sandbox and production, because sandbox runs live matches for self-serve customers.
gameye_launch_session, gameye_stop_session, gameye_enable_tag and the application and token tools accept dryRun: true. The tool returns the exact request (method, host, path and body) with the API token masked, and sends nothing.ttl gets a 30m TTL, and the result says the default was applied. Every launch sends the label launched-by: gameye-mcp, replacing any launched-by value the caller passes, so agent-launched sessions can be found with gameye_list_sessions and filter: { "launched-by": "gameye-mcp" }. When a warm pool serves the image and region, the Gameye API ignores request labels (and env and args), so warm-pool sessions do not carry this label.***, in case log output, labels or an error message echo it.gameye_stop_session stops exactly one session by its exact ID. There is no bulk stop, and empty, wildcard or list IDs are refused. With GAMEYE_STOP_OWN_ONLY=1 it also refuses any session this server did not launch.GAMEYE_MAX_SESSIONS), each with a TTL of at most 4h (GAMEYE_MAX_TTL)앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요