{"name":"io.github.dirtcubeinteractive/specter-skills","slug":"dirtcubeinteractive-specter-skills","title":null,"description":"Configure a Specter game backend from chat: economy, progression, leaderboards, multiplayer.","url":"https://mcp.market/server/dirtcubeinteractive-specter-skills","rating":null,"grade":"B","score":74,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":19,"stars":0,"forks":1,"downloads_week":94,"last_push_at":"2026-06-27T09:32:28.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/dirtcubeinteractive/specter-skills","website":"https://console.specterapp.xyz","version":"0.11.1","remotes":[],"packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"specter-skills","version":"0.11.1","runtimeHint":"npx","transport":{"type":"stdio"},"runtimeArguments":[{"type":"named","name":"-y"},{"value":"specter-skills","type":"named","name":"-p"}],"packageArguments":[{"value":"specter-mcp","type":"positional"}],"environmentVariables":[{"description":"Target environment: 'staging' or 'production'","format":"string","name":"SPECTER_ENV"},{"description":"Set 'true' to enable the create/mutate tools (gated behind confirmation)","format":"string","name":"SPECTER_ALLOW_MUTATIONS"},{"description":"Client api-key. Not needed after browser sign-in (the dev key from login is reused)","format":"string","isSecret":true,"name":"SPECTER_API_KEY"},{"description":"Auto-detected from sign-in. Set only to pin one project when your org has several","format":"string","name":"SPECTER_PROJECT_ID"},{"description":"Admin token for CI / non-interactive use instead of browser sign-in","format":"string","isSecret":true,"name":"SPECTER_ADMIN_TOKEN"}]}],"tools":[{"name":"specter_admin_call","description":"Escape hatch for the dashboard/admin API: POST to any /v1 admin endpoint that lacks a dedicated tool (e.g. match/add, member/invite/send, reward-set/create, games/add, tag/create, ugc-leaderboard/create, app-event/custom/subscribe-all, bulk-upload/*). Find the exact path + request body in the specter-admin references (references/endpoints-index.md and admin-endpoints.md). projectId is auto-injecte","write_action":false,"price_micros":0,"input_schema":null},{"name":"specter_claim_reward","description":"Claim the test player's pending reward(s) from a source — this is how a game claims an ON-CLAIM task/mission reward after it completes (grant-reward-by-source). It grants the reward to the wallet/inventory and flips its status pending → completed. Identify the source by its slug/id and type.","write_action":false,"price_micros":0,"input_schema":null},{"name":"specter_client_call","description":"Escape hatch for the game-facing API: POST to any /v2/client/* endpoint as the sandbox test player. Use for client calls that lack a dedicated tool (e.g. player/me/get-inventory, friends/send-request, stores/default-purchase, leaderboards/get-rankings, competitions/enter). Find the exact path + body in the client-api-index / curated-client-api references. asPlayer=true (default) sends the test-pla","write_action":false,"price_micros":0,"input_schema":null},{"name":"specter_create_currency","description":"Create a virtual or real-money currency. `type` is \"virtual\" (in-game, e.g. coins/gems) or \"real\" (real-money). currencyId (slug) is auto-derived from the name if omitted. MUTATES live game config — confirm with the user and prefer staging.","write_action":true,"price_micros":0,"input_schema":null},{"name":"specter_create_currency_conversion","description":"Define an exchange rate from one currency to another (e.g. 100 gems → 1 gold). Pass currencies by slug/name; the tool resolves them to the integer ids the API needs. MUTATES live game config — confirm and prefer staging.","write_action":true,"price_micros":0,"input_schema":null},{"name":"specter_create_currency_policy","description":"Attach a policy to a currency: \"balance_limits\" (min/max a player can hold), \"currency_decay\" (lose a % over time), or \"earning_caps\" (max earnable per period). Pass the currency by slug/name. MUTATES live game config — confirm and prefer staging.","write_action":true,"price_micros":0,"input_schema":null},{"name":"specter_create_event","description":"Create a custom event that tasks/achievements can be triggered by (e.g. \"boss_defeated\"). Create the event BEFORE the task that references it. eventId (slug) is auto-derived from the name. MUTATES live game config — confirm with the user and prefer staging.","write_action":true,"price_micros":0,"input_schema":null},{"name":"specter_create_match","description":"Create a multiplayer match template (the config a real-time session is based on). `format` is single/multi/team; `outcome` is how a winner is decided (highest score, fastest time, finish position). The game is resolved by name/slug. Matchmaking rules (team size, MMR) go in `fields`. MUTATES live game config — confirm and prefer staging.","write_action":true,"price_micros":0,"input_schema":null},{"name":"specter_create_mission","description":"Create a MISSION: a pool of tasks where players see/complete a subset per cycle (typeId 1). Use for \"daily missions\", \"rotating challenges\", \"pick N of these\". For sequential use specter_create_step_series; for streaks use specter_create_time_series. Each task in `tasks` is created inline. MUTATES live game config — confirm and prefer staging.","write_action":true,"price_micros":0,"input_schema":null},{"name":"specter_create_step_series","description":"Create a STEP SERIES: ordered tasks where each unlocks the next (typeId 2). Use for \"quest lines\", \"tutorial chains\", \"finish step 1 before step 2\". The order of `tasks` (or each task's sortingOrder) defines the sequence. MUTATES live game config — confirm and prefer staging.","write_action":true,"price_micros":0,"input_schema":null},{"name":"specter_create_task","description":"Create a SINGLE-objective achievement (a \"task\"/\"quest\"/\"objective\" — one trigger, one reward). For multi-objective achievements use specter_create_mission (a pool), specter_create_step_series (sequential), or specter_create_time_series (streaks). `event` is the trigger event (slug/name, resolved automatically). `rewards` grants currencies/items/markers (by slug/name). `recurring` captures cadence","write_action":true,"price_micros":0,"input_schema":null},{"name":"specter_create_time_series","description":"Create a TIME SERIES: per-window recurring tasks, e.g. a daily login streak (typeId 3). Use for \"streaks\", \"login N days in a row\", \"weekly recurring that resets on miss\". `stageLength` is the window count (e.g. 7) and `interval` its unit (e.g. \"day\"). MUTATES live game config — confirm and prefer staging.","write_action":true,"price_micros":0,"input_schema":null},{"name":"specter_delete_achievement","description":"Soft-delete a single task (kind=\"task\") or a group (kind=\"mission\"|\"step_series\"|\"time_series\"). Provide refs (slugs/names/ids). DESTRUCTIVE — confirm with the user first, and prefer staging.","write_action":true,"price_micros":0,"input_schema":null},{"name":"specter_edit_currency","description":"Update an existing currency (name, description, code, type, …). Identify it by slug/name. MUTATES live game config — confirm and prefer staging.","write_action":true,"price_micros":0,"input_schema":null},{"name":"specter_edit_task","description":"Update an existing single task's name, description, rewardClaim, recurrence, or businessLogic (identify it by slug/name). To CHANGE REWARDS, delete and recreate the task — task/edit uses diff-semantics on rewards that aren't reliably expressible here. MUTATES live game config — confirm and prefer staging.","write_action":true,"price_micros":0,"input_schema":null},{"name":"specter_generate_client_code","description":"Generate ready-to-paste game integration code (v2 client REST) wired with this project's real client api-key + a real event slug. Covers login, firing events, reading tasks, and wallet. JS works anywhere; C# is dependency-free Unity (the official Specter Unity SDK is recommended for production).","write_action":false,"price_micros":0,"input_schema":null},{"name":"specter_get_player_state","description":"Sign in the sandbox test player and read their task/achievement status, wallet balances, and inventory. Use to inspect what a player currently sees, or to check an achievement's progress.","write_action":false,"price_micros":0,"input_schema":null},{"name":"specter_get_reward_history","description":"Read the test player's reward history — including PENDING rewards waiting to be claimed (on-claim tasks). Filter by status ('pending' shows claimable). Each entry has sourceType + sourceId (e.g. the task), amount, and status (pending → completed).","write_action":false,"price_micros":0,"input_schema":null},{"name":"specter_login","description":"Opens the Specter dashboard in the browser so the member can sign in (email/password, Google, or Apple) and authorize this tool. Required once before creating currencies/tasks. No password is ever shared with the tool.","write_action":false,"price_micros":0,"input_schema":null},{"name":"specter_schedule_achievement","description":"Activate a created task or task-group (mission/step-series/time-series) by setting its dates/recurrence. Pass exactly one of taskRef (single task) or groupRef (a group), by slug/name/id. Omitting startDate makes it go live immediately. MUTATES live game config — confirm and prefer staging.","write_action":false,"price_micros":0,"input_schema":null},{"name":"specter_send_event","description":"Send a custom event (by its slug) as the sandbox test player — the same event your game would fire. Use to trigger tasks/achievements and verify they respond. `params` are the event parameters (statistics/states) your rule references.","write_action":true,"price_micros":0,"input_schema":null},{"name":"specter_stop_achievement","description":"Halt a live task or task-group (keeps the record; reversible by scheduling again). Pass exactly one of taskRef / groupRef. MUTATES live game config — confirm and prefer staging.","write_action":false,"price_micros":0,"input_schema":null},{"name":"specter_test_achievement","description":"Prove a configured task/achievement works: reads the test player's task status, fires the trigger event (with optional params), polls again, and reports whether the task progressed/completed. Use right after creating a task to verify it actually fires.","write_action":false,"price_micros":0,"input_schema":null},{"name":"specter_update_entity","description":"Generic editor for the long tail: update an item/bundle/store/leaderboard/competition/battlepass/level_system/marker/mission/step_series/time_series/event. Pass the entity's `id` (from the matching list_* tool) and the `fields` to change. MUTATES live game config — confirm and prefer staging.","write_action":true,"price_micros":0,"input_schema":null},{"name":"specter_verify_setup","description":"Smoke-test the configured Specter project: api-key validity, project info, currencies, test-player login, wallet provisioning, and tasks. Use this first to answer \"is my Specter backend set up correctly?\".","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":74,"grade":"B","scanned_at":"2026-09-26T16:34:50.487Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-26T16:34:50.427Z","components":{"code":{"score":25,"max":25,"notes":["5 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":8,"max":15,"notes":["last push 91 days ago"]},"identity":{"score":9,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"specter-skills","version":"0.11.1","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":2,"publishedAt":"2026-06-26T10:21:37.373Z","repositoryUrl":"git+https://github.com/dirtcubeinteractive/specter-skills.git","weeklyDownloads":94}],"repo":{"found":true,"owner":"dirtcubeinteractive","repo":"specter-skills","archived":false,"pushedAt":"2026-06-27T09:32:28Z","stars":0,"forks":1,"openIssues":0,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/63977665?v=4","ownerCreatedAt":"2020-04-19T19:54:56Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/63977665?v=4&s=128","source":"github"},"presence":{"stars":0,"forks":1,"downloadsWeek":94,"license":"MIT","lastPushAt":"2026-06-27T09:32:28.000Z","score":19}}}},"grade_history":[],"reviews":[]}