Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Docs, live API tools and prompts for the horizOn game backend in Godot, Unity and Unreal.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
HORIZON_API_KEY, HORIZON_ACCOUNT_API_KEY, HORIZON_BASE_URLValues marked secret are keys to your account. Never share them or paste them into a chat.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"horizon": {
"command": "npx",
"args": [
"-y",
"horizon-mcp"
],
"env": {
"HORIZON_API_KEY": "your-value",
"HORIZON_ACCOUNT_API_KEY": "your-value",
"HORIZON_BASE_URL": "your-value"
}
}
}
}Run this in your terminal
claude mcp add horizon --env HORIZON_API_KEY=your-value --env HORIZON_ACCOUNT_API_KEY=your-value --env HORIZON_BASE_URL=your-value -- npx -y horizon-mcpFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"horizon": {
"command": "npx",
"args": [
"-y",
"horizon-mcp"
],
"env": {
"HORIZON_API_KEY": "your-value",
"HORIZON_ACCOUNT_API_KEY": "your-value",
"HORIZON_BASE_URL": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"horizon": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"horizon-mcp"
],
"env": {
"HORIZON_API_KEY": "your-value",
"HORIZON_ACCOUNT_API_KEY": "your-value",
"HORIZON_BASE_URL": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
HORIZON_BASE_URL envThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026
The registry name was verified with the GitHub account ProjectMakersDE, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
You need to fill in: HORIZON_API_KEY, HORIZON_ACCOUNT_API_KEY
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (1.9.1) reached the registry 15 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.
In the same category: Spec Driven Development, Remote Desktop Commander, Signoff
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
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.
Five gates that make an agent's 'done' provable: run them, read the verdict, audit the record.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
MCP server for horizOn Backend-as-a-Service
Gives AI coding assistants documentation, live API tools, and workflow prompts for game and app development.
Add to your MCP client configuration (Claude Desktop, Cursor, etc.):
{
"mcpServers": { "horizOn": { "command": "npx", "args": ["-y", "horizon-mcp"], "env": { "HORIZON_API_KEY": "your-api-key-here" } } } }
The server exposes 29 documentation resources, 120 player tools and 4 workflow prompts. An Account Key enables additional scoped admin tools. These counts come from the registered MCP resources, tools and prompts.
Documentation resources are served directly from the MCP server. No API key required.
| URI | Description |
|---|---|
horizon://docs/marketplace | Atomic original-item escrow, exact prices, protected Inbox returns and scoped recovery. |
horizon://docs/chat | Direct/group/project text, metadata-only realtime, incremental snapshots, original receipts and scoped moderation. |
horizon://docs/matches | Opaque turn state, exact revisions, immutable reports, bounded deadlines and original ranked-run recovery. |
horizon://docs/shared-objects | Opaque bounded world data, current permissions, exact revisions and trusted ordinary game notices. |
horizon://docs/items | Unique inventory, bounded item properties and atomic server-owned purchases |
horizon://docs/groups | Guilds, roles, bounded member pages and revision-safe membership actions |
horizon://docs/friends | Atomic social relationships, explicit revisions and exact public friend-code lookup |
horizon://docs/achievements | Versioned definitions, permanent completion bits and immediate atomic value rewards |
horizon://docs/inbox | Session inbox, protected rewards, immutable broadcasts, server clock and safe publication retries |
horizon://docs/statistics | Atomic session counters, safe integer batches, explicit original IDs and cache/UTC recovery. SDK and admin examples |
horizon://docs/player-values | Atomic balances and offers, stable operation IDs, all three SDKs, safe retries and support corrections |
horizon://overview | What is horizOn, core concepts (Account vs User), features, tier system, API structure, and SDKs |
horizon://docs/auth | Authentication methods (Anonymous, Email, Google), endpoints, SDK code examples, and common errors |
horizon://docs/leaderboard | Leaderboard score submission, top entries, user rank, entries around user, player profile per entry, validated only boards, with SDK examples |
horizon://docs/cloud-save | Cloud save/load for JSON and binary data, tier size limits, SDK examples |
horizon://docs/remote-config | Server-side key-value configuration: feature flags, game balance, A/B testing. SDK examples |
horizon://docs/localization | Server-side localized strings across 15 languages: per-key translations, single/all fetch, available languages. SDK examples |
horizon://docs/news | In-game news and announcements with language filtering. SDK examples |
horizon://docs/gift-codes | Gift code validation and redemption, cosmetic grants, server-owned value rewards, compact V2 original intents and exact counter strings. SDK examples |
horizon://docs/player-profile | Player avatar, frame and badges from a per-project cosmetics catalog, unlocks via gift code grants, profile in leaderboard entries. SDK examples |
horizon://docs/validated-actions | Server-checked runs: single-use run tickets with a server seed, SHA-256 input log hash, server-only rules, validated only leaderboards, server-owned player state, start context, evidence upload, admin evidence review with sus packages and package export, rejection codes. SDK examples |
horizon://docs/feedback | Bug reports, feature requests, and general feedback submission. SDK examples |
horizon://docs/user-logs | Server-side event and error tracking. Requires BASIC tier or higher. SDK examples |
horizon://docs/crash-reporting | Crash report submission, session tracking, fingerprinting, breadcrumbs, and auto-regression detection. SDK examples |
horizon://api/reference | Complete API reference for all horizOn App API endpoints with request/response schemas |
horizon://quickstart/godot | Step-by-step guide to integrate horizOn in Godot with GDScript examples |
horizon://quickstart/unity | Step-by-step guide to integrate horizOn in Unity with C# examples |
horizon://docs/email-sending | Transactional and event-based email delivery to registered users. Templates, scheduling, status tracking, and SMTP integration. SDK examples |
horizon://quickstart/unreal | Step-by-step guide to integrate horizOn in Unreal Engine 5.5+ with the official horizOn SDK plugin. C++ and Blueprint examples |
Live API tools that call the horizOn backend. Requires a valid API key.
horizon_submit_score, horizon_save_cloud_data, horizon_load_cloud_data, horizon_prepare_gift_code, horizon_redeem_gift_code, horizon_get_profile, horizon_set_profile, horizon_start_run, horizon_submit_validated, horizon_get_state and horizon_upload_evidence also need the player's session: sign in first and pass the returned accessToken as sessionToken.
The four player-value tools also require the same player session. Never generate another operation ID automatically after an uncertain result.
Every tool declares MCP annotations (readOnlyHint, destructiveHint, idempotentHint, openWorldHint), so clients can tell reads from writes. Examples of destructive tools include horizon_save_cloud_data (replaces the save), horizon_set_profile (replaces the whole profile), horizon_submit_validated (consumes the ticket, can spend balances) and horizon_cancel_email, plus horizon_purchase_player_value_offer and horizon_adjust_player_value (debit or credit exactly once per persisted operation ID). Many read tools that return an object also declare an outputSchema and return structuredContent next to the JSON text. Each description names when to use the tool, which sibling to use instead, what it returns and how to recover from its errors.
| Tool | Description |
|---|---|
horizon_test_connection | Test connection to the horizOn API (health check) |
horizon_signup_anonymous | Create a new anonymous user account |
horizon_signup_email | Create a new user account with email and password |
horizon_signin_email | Sign in with email and password |
horizon_signin_anonymous | Sign in with an anonymous token |
horizon_check_auth | Check whether a user session is still valid |
horizon_list_leaderboards | List available leaderboard boards for multi-board calls |
horizon_submit_score | Submit a score to the leaderboard (403 VALIDATED_SUBMIT_REQUIRED on validated only boards) |
horizon_get_leaderboard_top | Get the top leaderboard entries with each player's profile, optionally by board key |
horizon_get_user_rank | Get a user's leaderboard rank, optionally by board key |
horizon_get_leaderboard_around | Get leaderboard entries around a user's position, optionally by board key |
horizon_save_cloud_data | Save cloud data for a user, optionally only at an expectedRevision (409 on conflict) |
horizon_load_cloud_data | Load cloud save data for a user, with its revision |
horizon_get_remote_config | Get a single remote config value by key |
horizon_get_all_remote_configs | Get all remote config values |
horizon_get_localization | Get a single localized string by key, optionally for a specific language |
horizon_get_all_localizations | Get all localized strings, optionally for a specific language |
horizon_get_localization_languages | List the languages that have localizations for the app |
horizon_get_news | Get news articles with optional language filtering |
horizon_validate_gift_code | Validate a gift code without redeeming it |
horizon_prepare_gift_code | Read-only V2 preparation; persist all seven original intent fields before consume |
horizon_redeem_gift_code | Explicit consume/retry of that saved intent; current state on replay, no automatic replacement or V1 translation |
horizon_get_profile | Get a player's profile (avatar, frame, badges), unlocks and the cosmetics catalog |
horizon_set_profile | Replace a player's whole profile (avatar, frame, up to 3 badges) |
horizon_get_player_values | Read balances and operation window with the active player session |
horizon_get_player_value_offers | Read configured offers for the player |
horizon_purchase_player_value_offer | Purchase atomically with a caller-persisted operation ID |
horizon_adjust_player_value | Adjust within explicitly enabled limits with a stable ID and reason |
horizon_start_run | Start a server-checked run: single-use ticket with a server seed, optionally bound to a board and with a start context (game, content, simulation and replay format versions, content digest, initial state as base64) |
horizon_submit_validated | Submit a run result with the ticket and the SHA-256 input log hash (given, or computed locally from base64 bytes or text), optionally with earned server-owned values; returns sus (accepted but over a soft threshold); rejections name their code |
horizon_get_state | Read the player's server-owned values (balance, earned today, daily cap per value key); read only |
horizon_upload_evidence | Upload the input log (text or base64, encoded locally) of a run whose submit result asked for evidence; rejections name their code |
horizon_get_statistics | Reads a player's statistics snapshot and server operation window. |
horizon_get_statistics_definitions | Reads the project's statistics catalog conditionally by version. |
horizon_update_statistics | Applies one explicit atomic session batch with a caller-persisted operation ID. |
horizon_get_achievements | Reads visible achievement definitions and permanent completion bits. |
horizon_unlock_achievement | Unlocks one configured manual achievement once for the authenticated player. |
horizon_deliver_achievement_rewards | Reads compatibility reward status for up to eight original achievement keys. |
horizon_get_friends | Reads friends, incoming/outgoing requests, blocks and current limits. |
horizon_find_player | Finds one public player by exact UUID or canonical H- friend code in this project. |
horizon_send_friend_request | Sends Friend Request using the reviewed player revision. |
horizon_accept_friend_request | Accepts Friend Request using the reviewed player revision. |
horizon_decline_friend_request | Declines Friend Request using the reviewed player revision. |
horizon_cancel_friend_request | Cancels Friend Request using the reviewed player revision. |
horizon_remove_friend | Removes Friend using the reviewed player revision. |
horizon_block_player | Blocks Player using the reviewed player revision. |
horizon_unblock_player | Unblocks Player using the reviewed player revision. |
horizon_get_groups | Reads my groups using a matching player session. |
horizon_get_group | Reads group using a matching player session. |
horizon_get_group_members | Reads group members using a matching player session. |
horizon_get_group_pending | Reads group pending requests using a matching player session. |
horizon_create_group | Creates a fresh server-identified group and its leader atomically. |
|
Only the beginning is shown; read the rest in the repo