spacesheep

Getting Started

Deploy publication-quality documents from Claude Code, Codex, Cursor, Windsurf, and any MCP-compatible client. The /sheep skill generates polished HTML pages and publishes them to a private, shareable URL in one step.

1
Install
npx spacesheep-skill

or

curl -fsSL https://spacesheep.app/install.sh | bash

Installs the /sheep skill and configures the MCP server for Claude Code. Add -g for global install. For other clients, see MCP setup below.

2
Sign in via your browser

The installer opens spacesheep.dev, you approve with one click, and it wires up the MCP server automatically — no API key to copy and paste. First time, you'll claim an @username: it becomes your URL namespace, so spaces publish to spacesheep.dev/@you/<title>. Prefer manual setup? Create a key on the dashboard and see the config below.

3
Restart your client

Reload Claude Code, Codex, Cursor, or whichever client you use so the MCP connection is picked up.

4
Create something
Deploy a quarterly metrics report from this data to spacesheep
Build an architecture overview and publish it
Create a comparison page: Postgres vs SQLite vs D1

The MCP deploy tool builds a self-contained HTML document and publishes it to a private URL you can share. In Claude Code, the /sheep skill adds design best practices automatically.


Worker mode

Need server-side logic, API endpoints, or a shared database? Include a worker.js file and spacesheep deploys it as a live Cloudflare Worker with D1 database access.

// worker.js — ES module format
export default {
  async fetch(request, env) {
    const url = new URL(request.url);
    if (url.pathname === "api/votes") {
      const rows = await env.D1.prepare("SELECT * FROM votes").all();
      return Response.json(rows.results);
    }
    return new Response("<h1>Hello</h1>", {
      headers: { "Content-Type": "text/html" }
    });
  }
};

Include a schema.sql file for database migrations — it runs against D1 on every deploy. Use CREATE TABLE IF NOT EXISTS for idempotent migrations.

Deploy with worker.js + any other files — worker mode is detected automatically. Use relative URLs in frontend code (e.g. fetch("api/data")).


MCP setup by client

The installer configures Claude Code automatically. For other clients, add the spacesheep MCP server manually:

Claude Code

Add to .mcp.json (project) or ~/.claude/settings.json (global):

{
  "mcpServers": {
    "spacesheep": {
      "type": "url",
      "url": "https://mcp.spacesheep.dev/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}

Codex (OpenAI)

Add to ~/.codex/config.toml (or .codex/config.toml per project):

[mcp_servers.spacesheep]
url = "https://mcp.spacesheep.dev/mcp"
bearer_token_env_var = "SPACESHEEP_API_KEY"

Then set the env var: export SPACESHEEP_API_KEY=YOUR_API_KEY

Cursor

Add to ~/.cursor/mcp.json (global) or .cursor/mcp.json (project):

{
  "mcpServers": {
    "spacesheep": {
      "url": "https://mcp.spacesheep.dev/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}

Windsurf

Add to ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "spacesheep": {
      "serverUrl": "https://mcp.spacesheep.dev/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}

MCP tools

deployUpload files as a static site or Worker app. Pass access: { visibility, emails[] } (visibility: public / members / private) for sharing. Include worker.js for dynamic mode with D1.
list_spacesList all your deployed spaces.
read_spaceRead deployed files. Accepts a URL or UUID.
share_spaceGrant access to others by email.
delete_spaceRemove a space and its files.
get_spaceView metadata and access list.
list_commentsRead viewer feedback on a space.
add_commentReply as Claude. Also react_to_comment, resolve_comment.