{
  "markdown": "# Sprites MCP Server\n\nThe official [Model Context Protocol](https://modelcontextprotocol.io) server for\n[**Sprites**](https://sprites.dev) — sandboxed, checkpointable compute environments you can\ncreate, run commands in, and manage services on, all from your AI agent.\n\nThis is a **remote MCP server**. There's nothing to install and run locally: your MCP client\nconnects directly over HTTPS to the hosted endpoint and authenticates with OAuth. This\nrepository is the public home for the server — its listing manifest, connection instructions,\nand tool reference. The server itself is operated by [Fly.io](https://fly.io) as part of the\nSprites platform.\n\n- **Endpoint:** `https://sprites.dev/mcp`\n- **Transport:** Streamable HTTP (JSON-RPC 2.0)\n- **Auth:** OAuth 2.1 (`sprites:read` / `sprites:write` scopes)\n- **Registry:** [`dev.sprites/mcp`](https://registry.modelcontextprotocol.io/v0/servers?search=dev.sprites/mcp) in the official MCP registry\n- **Docs:** https://docs.sprites.dev/integrations/remote-mcp/\n\n[![Add sprites MCP server to Cursor](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/install-mcp?name=sprites&config=eyJ1cmwiOiJodHRwczovL3Nwcml0ZXMuZGV2L21jcCJ9)\n\n## What is Sprites?\n\nA Sprite is an isolated, persistent compute environment. You can create one, execute commands\ninside it, run long-lived services, snapshot its full state as a checkpoint and restore later,\nand control its outbound network policy — all programmatically. The MCP server exposes these\ncapabilities as tools so an AI agent can operate Sprites on your behalf.\n\nLearn more at [sprites.dev](https://sprites.dev) and [docs.sprites.dev](https://docs.sprites.dev).\n\n## Connecting\n\nBecause it's a remote server, you point your client at the URL and complete an OAuth login in\nthe browser the first time. No package install, no local process.\n\n### Claude Code\n\n```bash\nclaude mcp add --transport http sprites https://sprites.dev/mcp\n```\n\nThen run `/mcp` inside Claude Code to complete the OAuth login.\n\n### Cursor\n\nClick the **Add sprites MCP server to Cursor** button above, or add it manually to\n`~/.cursor/mcp.json` (global) or `.cursor/mcp.json` (per project):\n\n```json\n{\n  \"mcpServers\": {\n    \"sprites\": {\n      \"url\": \"https://sprites.dev/mcp\"\n    }\n  }\n}\n```\n\nCursor will prompt you to authorize via OAuth on first use.\n\n### Claude Desktop / other HTTP-native clients\n\nAdd a remote server pointing at `https://sprites.dev/mcp`. In a generic MCP client config that\nsupports remote servers, that looks like:\n\n```json\n{\n  \"mcpServers\": {\n    \"sprites\": {\n      \"url\": \"https://sprites.dev/mcp\"\n    }\n  }\n}\n```\n\nYou'll be prompted to authorize via OAuth on first use.\n\n### Clients that only speak stdio\n\nSome older MCP clients can only launch a local command over stdio and can't dial a URL directly.\nFor those, the generic [`mcp-remote`](https://www.npmjs.com/package/mcp-remote) adapter bridges\nstdio to the remote endpoint (it handles the OAuth flow for you):\n\n```json\n{\n  \"mcpServers\": {\n    \"sprites\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"mcp-remote\", \"https://sprites.dev/mcp\"]\n    }\n  }\n}\n```\n\n`mcp-remote` is a third-party, off-the-shelf tool — it is **not** the Sprites server, just a\ntransport shim for clients that need one.\n\n## Authentication\n\nThe server implements OAuth 2.1 with the metadata-discovery and dynamic-client-registration\nendpoints MCP clients expect, so most clients configure themselves automatically once you\nprovide the URL:\n\n| Endpoint | Purpose |\n| --- | --- |\n| `GET /.well-known/oauth-protected-resource` | Protected Resource Metadata (RFC 9728) |\n| `GET /.well-known/oauth-authorization-server` | Authorization Server Metadata (RFC 8414) |\n| `POST /oauth/register` | Dynamic Client Registration (RFC 7591) |\n| `GET`/`POST /oauth/authorize` | Authorization endpoint |\n| `POST /oauth/token` | Token endpoint |\n\n**Scopes:** `sprites:read` (list/get operations) and `sprites:write` (create/update/destroy and\ncommand execution).\n\n**Restricted tokens.** During the consent flow you can restrict a token — limit it to a sprite\nname prefix, cap the total number of sprites it may create, scope it to a label, or set an\nexpiry. Restrictions are enforced on every call.\n\n## Tools\n\n18 tools, grouped below. Access is **read** (safe, read-only) or **write** (creates, mutates, or\nexecutes). Every sprite-scoped tool takes a required `sprite` parameter naming the target sprite.\n\n### Sprite management\n\n| Tool | Access | Description |\n| --- | --- | --- |\n| `list_sprites` | read | List sprites for the authenticated organization. |\n| `create_sprite` | write | Create a new sprite. |\n| `destroy_sprite` | write | Destroy a sprite. |\n\n### Command execution\n\n| Tool | Access | Description |\n| --- | --- | --- |\n| `exec` | write | Run a command inside a sprite (non-TTY HTTP exec). |\n| `exec_list` | read | List active exec sessions. |\n| `exec_kill` | write | Kill an exec session by ID. |\n\n### Checkpoints\n\n| Tool | Access | Description |\n| --- | --- | --- |\n| `checkpoint_create` | write | Snapshot the current sprite state. |\n| `checkpoint_list` | read | List checkpoints. |\n| `checkpoint_get` | read | Get details of a specific checkpoint. |\n| `checkpoint_restore` | write | Restore the sprite to a checkpoint. |\n\n### Services\n\n| Tool | Access | Description |\n| --- | --- | --- |\n| `service_list` | read | List configured services and their state. |\n| `service_get` | read | Get details of a specific service. |\n| `service_create` | write | Create or update a service definition. |\n| `service_start` | write | Start a service. |\n| `service_stop` | write | Stop a running service. |\n| `service_logs` | read | Stream logs for a service. |\n\n### Network policy\n\n| Tool | Access | Description |\n| --- | --- | --- |\n| `policy_network_get` | read | Get the current outbound network policy. |\n| `policy_network_update` | write | Update the outbound network policy. |\n\n### Parameters\n\nCommon: every sprite-scoped tool requires `sprite` (string) — the target sprite name.\n\n- **`list_sprites`** — `prefix` (string, optional), `max_results` (integer, optional),\n  `continuation_token` (string, optional).\n- **`create_sprite`** — `name` (string, **required**), `wait_for_capacity` (boolean, optional).\n- **`destroy_sprite`** — `name` (string, **required**).\n- **`exec`** — `cmd` (string, **required**, repeatable for command + args), `path` (string,\n  optional), `stdin` (boolean, optional), `env` (string `KEY=VALUE`, optional, repeatable),\n  `dir` (string, optional).\n- **`exec_kill`** — `session_id` (string, **required**), `signal` (string, optional, default\n  `SIGTERM`), `timeout` (string, optional, default `10s`).\n- **`checkpoint_create`** — `comment` (string, optional).\n- **`checkpoint_get`** — `checkpoint_id` (string, **required**, e.g. `v7`).\n- **`checkpoint_restore`** — `checkpoint_id` (string, **required**).\n- **`policy_network_update`** — `rules` (array, **required**; each rule has `domain`, `action`,\n  and optional `include`).\n- **`service_get` / `service_start` / `service_stop` / `service_logs`** — `service_name`\n  (string, **required**). `service_start`/`service_stop` take an optional `duration`/`timeout`;\n  `service_logs` takes optional `lines` (integer) and `duration` (string).\n- **`service_create`** — `service_name` (string, **required**), `cmd` (string, **required**),\n  `args` (array, optional), `needs` (array, optional), `http_port` (integer, optional),\n  `duration` (string, optional).\n\nThe authoritative, always-current tool schemas are served by the live server via the MCP\n`tools/list` method.\n\n## Registry & discovery\n\nThis server is published to the official MCP registry as `dev.sprites/mcp`. Directories that\ningest the registry (Smithery, Glama, the GitHub MCP registry, and others) pick it up\nautomatically. The manifest lives in [`server.json`](./server.json).\n\n## About this repository\n\nThis repo contains public listing metadata and documentation only. The MCP server is\nimplemented as part of the Sprites platform and served remotely at `https://sprites.dev/mcp` —\nthere is no server code to run here.\n\n## License\n\n[MIT](./LICENSE) © Fly.io, Inc.\n",
  "bytes": 8130,
  "sha": "e73f0c538ea1d8fbaa962783825e460b443f3e42f47802f8b6139ef45b67919b",
  "repo_slug": "superfly/sprites-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_dev_sprites_mcp_ee11f415/readme"
}