Specter

by dirtcubeinteractive

273 downloads
Not rated
GitHub

About

Configure a Specter game backend from chat — players, economy, progression, leaderboards, tournaments, battle passes, and real-time multiplayer — via your AI assistant. Browser sign-in; create/mutate tools opt-in.

Details

Author
dirtcubeinteractive
Downloads
273
Categories
Cloud Service, Other, Infrastructure, Database, Automation, AI

- Read-only tools to inspect economy, progression, and competition configuration.
- Mutating tools to create currencies, items, tasks, and achievements.
- Client tools to simulate player actions like sending events and claiming rewards.
- Browser-based sign‑in with no password shared with the tool.
- Auto‑detects your project from your sign‑in session.
- Works with Claude Desktop, Claude Code, and other MCP‑compatible hosts.

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Specter
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

Install the package with npx specter-skills init. Set up the MCP server via npx specter-skills mcp (or manually edit your MCP host config). Sign in once through your browser to authorize the tool. After that, Claude can run read-only and mutating tools on your Specter project.

specter_verify_setup

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?".

specter_list_currencies

List the currencies configured in this Specter project. Returns ids/slugs you can reference when creating other entities. Requires a one-time browser sign-in (specter_login).

specter_list_items

List the items configured in this Specter project. Returns ids/slugs you can reference when creating other entities. Requires a one-time browser sign-in (specter_login).

specter_list_bundles

List the bundles / loot boxes configured in this Specter project. Returns ids/slugs you can reference when creating other entities. Requires a one-time browser sign-in (specter_login).

specter_list_stores

List the stores configured in this Specter project. Returns ids/slugs you can reference when creating other entities. Requires a one-time browser sign-in (specter_login).

specter_list_tasks

List the tasks / achievements configured in this Specter project. Returns ids/slugs you can reference when creating other entities. Requires a one-time browser sign-in (specter_login).

specter_list_events

List the custom events configured in this Specter project. Returns ids/slugs you can reference when creating other entities. Requires a one-time browser sign-in (specter_login).

specter_list_leaderboards

List the leaderboards configured in this Specter project. Returns ids/slugs you can reference when creating other entities. Requires a one-time browser sign-in (specter_login).

specter_list_tournaments

List the tournaments / competitions configured in this Specter project. Returns ids/slugs you can reference when creating other entities. Requires a one-time browser sign-in (specter_login).

specter_list_battlepasses

List the battle passes configured in this Specter project. Returns ids/slugs you can reference when creating other entities. Requires a one-time browser sign-in (specter_login).

specter_list_progression_systems

List the level / progression systems configured in this Specter project. Returns ids/slugs you can reference when creating other entities. Requires a one-time browser sign-in (specter_login).

specter_list_markers

List the progression markers configured in this Specter project. Returns ids/slugs you can reference when creating other entities. Requires a one-time browser sign-in (specter_login).

specter_get_player_state

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.

specter_send_event

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.

specter_test_achievement

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.

specter_get_reward_history

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).

specter_claim_reward

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.

specter_generate_client_code

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).

specter_client_call

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-player token; false = api-key-only catalog reads.

specter_login

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.

specter_create_item

Create an inventory item. Properties (consumable/equippable/...), prices, unlock conditions go in `fields`. MUTATES live game config — confirm with the user and prefer staging.

specter_create_bundle

Create a bundle. For a gacha/loot box set isGacha + pity fields in `fields`; contents/prices go in `fields` too. MUTATES live game config — confirm with the user and prefer staging.

specter_create_store

Create a store. Categories/contents/platforms go in `fields` (storeCategories[]). MUTATES live game config — confirm with the user and prefer staging.

specter_create_battlepass

Create a battle pass. tiers (free/premium rewards per tier) go in `fields`. MUTATES live game config — confirm with the user and prefer staging.

specter_create_level_system

Create a level system. levelSystemTypeId: 1=XP-based, 2=event-based. levelDetails is the per-level config. MUTATES live game config — confirm with the user and prefer staging.

specter_create_progression_marker

Create a progression marker (a named counter like XP or trophies). MUTATES live game config — confirm with the user and prefer staging.

specter_create_leaderboard

Create a leaderboard. prizeDistributionRule/prize config goes in `fields`. outcomeType: 1=high_score, 2=time_trial, 4=position_weighting, 5=cumulative_score. sourceType: 1=match, 2=statistics, 3=custom. MUTATES live game config — confirm with the user and prefer staging.

specter_create_competition

Create a competition. competitionFormatTypeMasterId: 2=tournament, 3=instant battle, 4=paid challenge, 5=bracket. For match-based (sourceTypeId 1) pass matchId+gameId in `fields`; entry prices/prizes/schedule also go in `fields`. MUTATES live game config — confirm with the user and prefer staging.

specter_schedule_liveops

Schedule a leaderboard or competition live. Provide exactly one of competitionId / leaderboardId. Recurrence config goes in `fields`. MUTATES live game config — confirm with the user and prefer staging.

specter_grant_reward

Grant items/bundles/currencies/markers to a player. rewardDetails is an array; each entry has rewards: {items[],bundles[],currencies[],progressionMarkers[]}. MUTATES live game config — confirm with the user and prefer staging.

specter_create_currency

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.

specter_create_currency_conversion

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.

specter_create_currency_policy

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.

specter_create_match

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.

specter_create_event

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.

specter_create_task

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 intent (actual go-live is via scheduling). MUTATES live game config — confirm with the user and prefer staging.

specter_create_mission

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.

specter_create_step_series

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.

specter_create_time_series

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.

specter_schedule_achievement

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.

specter_stop_achievement

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.

specter_delete_achievement

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.

specter_edit_currency

Update an existing currency (name, description, code, type, …). Identify it by slug/name. MUTATES live game config — confirm and prefer staging.

specter_edit_task

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.

specter_update_entity

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.

specter_admin_call

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-injected when omitted. MUTATES live config — ALWAYS confirm with the user first, treat any path containing '/delete' as destructive, and prefer staging.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "specter": {
            "specter": {
                "command": "npx",
                "args": [
                    "-y",
                    "-p",
                    "specter-skills",
                    "specter-mcp"
                ],
                "env": {
                    "SPECTER_ENV": "production",
                    "SPECTER_ALLOW_MUTATIONS": "true"
                }
            }
        }
    }
}

McpServers

{
    "specter": {
        "command": "npx",
        "args": [
            "-y",
            "-p",
            "specter-skills",
            "specter-mcp"
        ],
        "env": {
            "SPECTER_ENV": "production",
            "SPECTER_ALLOW_MUTATIONS": "true"
        }
    }
}

specter-skills

npm version node license > Build your game backend by talking to Claude. specter-skills teaches Claude everything about Specter — the game backend platform — so you can add player accounts, an in-game economy, daily quests, leaderboards, tournaments, battle passes, and real-time multiplayer to your game in plain English, and get correct, working code plus the ability to configure your backend without ever opening the dashboard. No SDK to learn. No API docs to read. Install it, then ask. `` You: "Add Specter to my game — silent login, a coins wallet, and a daily quest 'play 3 matches' that rewards 100 coins." Claude: ...writes the integration code, sets up the quest in your backend, done. ` ---

Contents

- What's inside - Quickstart - Installation - The skills - The MCP server · Setup · Sign in · Tools · Configuration - Things to ask Claude - Checking the version & updating - Requirements - Troubleshooting ---

What's inside

This one package ships two halves of the same product: | | What it is | What it does | |---|---|---| | 🧠 Skills | Knowledge Claude reads | Claude writes correct Specter integration code — right endpoints, headers, response handling, and all the platform's gotchas baked in. | | 🛠️ MCP server | A tool Claude can run | Claude acts on your backend — inspect a project, verify your setup, and create currencies, items, tasks, leaderboards, battle passes, and more, straight from chat. | Skills work in Claude Code, Claude Desktop, the Claude Agent SDK, and any other skills-aware host. The MCP server works in any MCP-compatible host (Claude Desktop, Claude Code, …). ---

Quickstart

1. Install the skills in your game project:
`bash npx specter-skills init ` 2. Get your API key from console.specterapp.xyz (Project → API Keys). 3. Ask Claude to build something: > "Add Specter email login and a gem currency to my Unity game." The right skill activates automatically and Claude writes the integration. That's it. > 💡 Want Claude to also set up the backend for you (create currencies, quests, leaderboards)? > Add the MCP server and ask "create a gems currency and a daily login quest in > my Specter project." ---

Installation

``bash
No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.