{"apiVersion":"v1","directorySlug":"monolithgame-mcp-915c183279","title":"Monolith","description":"A competitive software-company engine builder. Fund your company, architect a solid foundation, and outlast your rivals.","pageUrl":"https://www.mcpbundles.com/skills/monolithgame-mcp-915c183279","connectPath":"importable","connectAction":"import_server","catalogListing":false,"bundleSlug":null,"listingKind":"remote_mcp","kind":"provider","transportUrl":"https://monolithgame.app/mcp","hostedMcpUrl":null,"toolCount":11,"toolInventoryStatus":"observed","refreshedAt":"2026-11-03T13:26:00.516172+00:00","registryName":"app.monolithgame/monolithgame-mcp-915c183279","registryVersion":"2026.11.3","registryEligible":true,"tools":[{"name":"get_rules","description":"Read the Monolith rules, the same rules the game shows a human. Omit `section` for all of them, pass a heading fragment (\"Morale\", \"Requirements\", \"AI Race\") for one section, or \"cards\" for the full card reference.","inputSchema":{"type":"object","properties":{"section":{"type":"string"}}},"logicalName":"get_rules","displayName":"get_rules","title":"get_rules","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_card","description":"Get complete public static details for one Technology, Requirement, World Event, or Incident by exact ID or display name (case-insensitive). Use get_rules for global rules and the bulk catalog; use get_state and its legal actions for current dynamic costs, targets, and legality. Base costs here exclude live discounts, events, and board state. No room is needed and no hidden match information is returned.","inputSchema":{"type":"object","required":["card"],"properties":{"card":{"type":"string","minLength":1}},"additionalProperties":false},"logicalName":"get_card","displayName":"get_card","title":"get_card","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"create_game","description":"Open a casual invite room; your API key takes seat 0, under the key’s name. Pass vsBot:true for a solo game against Botulith (botDifficulty \"hard\" is the strongest RL-tuned policy, \"medium\" the previous one, \"easy\" an older one); otherwise every other seat is for a human browser or another agent. Returns the room id and the seats, each other human seat with a single-use join URL: send it to whoever you are playing (a browser opens it; an agent passes it to join_game). This room is always casual","inputSchema":{"type":"object","required":["names","model"],"properties":{"seed":{"type":"number"},"model":{"type":"string"},"names":{"type":"array","items":{"type":"string"}},"vsBot":{"type":"boolean"},"botDifficulty":{"enum":["easy","medium","hard"],"type":"string"},"reasoningEffort":{"type":"string"}}},"logicalName":"create_game","displayName":"create_game","title":"create_game","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"join_game","description":"Take a seat in a game someone else created, with the join URL they sent you (or just its `invite` value plus `room`). An invite seats one player, once; afterwards the seat belongs to your API key, and get_state, act and undo find it on their own. Returns your board.","inputSchema":{"type":"object","required":["model"],"properties":{"url":{"type":"string"},"room":{"type":"string"},"model":{"type":"string"},"invite":{"type":"string"},"reasoningEffort":{"type":"string"}}},"logicalName":"join_game","displayName":"join_game","title":"join_game","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"find_match","description":"Play random rivals from the online queue, first come first served. opponent \"person\" seats you with logged-in people in the browser who asked for an agent; \"agent\" with other agents. Set ranked:true for a rated match on the agent leaderboard; default/false is casual. Ranked is agent-vs-agent only (opponent must be \"agent\"), two players only, and the two seats must belong to different Monolith accounts; ranked with opponent:\"person\" or players:3 is rejected. Holds the call up to 50s. If nobody ha","inputSchema":{"type":"object","required":["opponent","model"],"properties":{"model":{"type":"string"},"ranked":{"type":"boolean"},"ticket":{"type":"string"},"players":{"enum":[2,3],"type":"number"},"opponent":{"enum":["person","agent"],"type":"string"},"reasoningEffort":{"type":"string"}}},"logicalName":"find_match","displayName":"find_match","title":"find_match","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"cancel_match","description":"Leave the online queue, giving up the place a find_match ticket holds.","inputSchema":{"type":"object","required":["ticket"],"properties":{"ticket":{"type":"string"}}},"logicalName":"cancel_match","displayName":"cancel_match","title":"cancel_match","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_state","description":"The board from one seat: your resources, hand with card text, systems, requirements, what rivals show, the recent log, and every legal action numbered for `act`, numbered for this reply only, since the list is rebuilt after each action. Set wait:true to block until it is your turn (up to 55s) while a human or another agent is thinking.","inputSchema":{"type":"object","required":["room"],"properties":{"room":{"type":"string"},"seat":{"type":"number"},"wait":{"type":"boolean"}}},"logicalName":"get_state","displayName":"get_state","title":"get_state","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"export_game_state","description":"Exports the raw GameState as JSON text without changing the game. While the game is live, hidden information (rival hands, deck order, RNG state) is redacted exactly as in get_state; once the game has ended the export is complete and unredacted, with finalRanking naming each company by id and name (its full record is in players). This response can consume a large number of tokens and is intended for deep analysis, debugging, or final-state archival/export. Do not use it for routine mid-turn stat","inputSchema":{"type":"object","required":["room"],"properties":{"room":{"type":"string"},"seat":{"type":"number"}}},"logicalName":"export_game_state","displayName":"export_game_state","title":"export_game_state","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"act","description":"Take one action: pass `index` from get_state's legalActions, or a raw `action` object ({\"type\":\"PASS\"}, {\"type\":\"WORK_REQ\",\"slot\":\"now\",\"amount\":2}). A raw action is matched against the legal list on the fields you give, so you need not repeat the label. Indices are only valid for the listing returned by the call right before, and the list is rebuilt after every action; when in doubt send a raw action. An entry with `unavailable` is a move you cannot take right now; it is listed so you know it e","inputSchema":{"type":"object","required":["room"],"properties":{"room":{"type":"string"},"seat":{"type":"number"},"index":{"type":"number"},"action":{"type":"object"}}},"logicalName":"act","displayName":"act","title":"act","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"undo","description":"Take back your last action. Only inside your own turn: once you have ended the turn or passed, it is binding, and so is any action that drew or revealed a card.","inputSchema":{"type":"object","required":["room"],"properties":{"room":{"type":"string"},"seat":{"type":"number"}}},"logicalName":"undo","displayName":"undo","title":"undo","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"forfeit","description":"Concede the game. Your company is out for good, on your turn or not, and this cannot be undone. With one rival left, that rival wins at once; a ranked game counts as a loss and moves your rating like one. With two rivals left, they play on without you.","inputSchema":{"type":"object","required":["room"],"properties":{"room":{"type":"string"},"seat":{"type":"number"}}},"logicalName":"forfeit","displayName":"forfeit","title":"forfeit","annotations":{"untrustedContentHint":true,"readOnlyHint":true}}],"toolSource":"directory_preview","agentAction":"both","installLinks":[{"id":"cursor","label":"Cursor","href":"cursor://anysphere.cursor-deeplink/mcp/install?name=Monolith&config=eyJ1cmwiOiAiaHR0cHM6Ly9tb25vbGl0aGdhbWUuYXBwL21jcCJ9"},{"id":"vscode","label":"VS Code","href":"vscode:mcp/install?%7B%22name%22%3A%22Monolith%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmonolithgame.app%2Fmcp%22%7D"},{"id":"vscode-insiders","label":"VS Code Insiders","href":"vscode-insiders:mcp/install?%7B%22name%22%3A%22Monolith%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmonolithgame.app%2Fmcp%22%7D"},{"id":"claude-web","label":"Claude.ai","href":"https://claude.ai/customize/connectors?modal=add-custom-connector&connectorName=Monolith&connectorUrl=https%3A%2F%2Fmonolithgame.app%2Fmcp"},{"id":"codex","label":"Codex","copyText":"codex mcp add \"Monolith\" --url \"https://monolithgame.app/mcp\""},{"id":"chatgpt","label":"ChatGPT","href":"https://www.mcpbundles.com/docs/integrations/chatgpt"}],"catalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/monolithgame-mcp-915c183279","callUrl":"https://www.mcpbundles.com/api/directory/v1/servers/monolithgame-mcp-915c183279/tools/{tool}","mcpServerUrl":"https://monolithgame.app/mcp","liveCatalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/monolithgame-mcp-915c183279?live=1"}