Metadata-Version: 2.4
Name: astrocade-creator-mcp
Version: 0.1.1
Summary: Astrocade Creator MCP — pull and edit your Astrocade games locally over MCP (stdio).
Requires-Python: >=3.12
Description-Content-Type: text/markdown
Requires-Dist: mcp>=1.11.0
Requires-Dist: pydantic>=2
Requires-Dist: PyJWT[crypto]>=2.10
Requires-Dist: requests
Requires-Dist: aiohttp>=3.10
Requires-Dist: html5lib
Provides-Extra: dev
Requires-Dist: pytest; extra == "dev"
Requires-Dist: pytest-asyncio; extra == "dev"
Requires-Dist: mypy; extra == "dev"

# Astrocade Creator MCP

A local (stdio) [MCP](https://modelcontextprotocol.io) server that lets a creator pull, edit,
push, and publish the games already on their Astrocade account — as ordinary local files.

## Add to your MCP client

Point your MCP client (Claude Code, Claude Desktop, …) at it — no install step, `uvx` fetches it
from PyPI on demand:

```json
{
  "mcpServers": {
    "astrocade": {
      "command": "uvx",
      "args": ["astrocade-creator-mcp@latest"]
    }
  }
}
```

Or via the Claude Code CLI: `claude mcp add astrocade -- uvx astrocade-creator-mcp@latest`.

Targets **prod** by default — a creator sets nothing. To point at stage instead, add
`"env": { "ASTROCADE_CREATOR_MCP_ENV": "stage" }` to the entry.

### Sign-in

Nothing to configure. The **first tool call** opens a browser for Cognito (Google) login, caches
the tokens under `~/.astrocade`, and silently refreshes them afterward. Login is lazy (not at
startup) so the browser flow never blocks the MCP stdio handshake.

Optional — sign in ahead of time so the first call has no delay:
```bash
uvx astrocade-creator-mcp login
```
Token cache dir: `~/.astrocade` (override with `ASTROCADE_TOKEN_CACHE_DIR`).

## Tools

- `list_my_games` — your games (drafts included).
- `pull_game` / `push_game` — check a game out (files + metadata, as JSON), save edits back as a draft. `push_game` can also update metadata (`title`, `description`, `thumbnail_url`).
- `publish_game` — publish the draft and get a playable URL.
- `check_wish_status` — poll an AI "wish" that's in flight (wishes are submitted on astrocade.com; `push_game`/`pull_game` surface the request id when one is running).
- `list_lib_apis` / `get_lib_api` — browse the Astrocade `lib` API reference.
