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.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っている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がつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
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, zanadir
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況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.
Find what a repository's CI is missing, and which security checks cannot fail the build.
作者のリポジトリから書かれたとおりにコピーしたものです。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)冒頭だけを表示しています。続きはリポジトリで読めます