{
  "serverInfo": {
    "name": "spacecontext",
    "title": "Space Context",
    "version": "0.2.0",
    "icons": [
      {
        "src": "https://spacecontext.app/icon/icon-512.png",
        "mimeType": "image/png",
        "sizes": [
          "512x512"
        ]
      },
      {
        "src": "https://spacecontext.app/icon/mark.svg",
        "mimeType": "image/svg+xml",
        "sizes": [
          "any"
        ]
      }
    ]
  },
  "description": "Space Context is the context layer for the physical world: it turns a video of a physical space (a flat, a holiday rental, an office, a van, an appliance) into a structured Space Document: every area, every item and where it is, its condition, what is broken, where the water shut-off and the fuse box are, how things work, with the original video frames as evidence. Agents read it, search it, ask it questions and compare scans. The MCP server gives an assistant the user's own spaces: read-only by default, scanning only when the user allows it at sign-in.",
  "websiteUrl": "https://spacecontext.app/developers/",
  "documentationUrl": "https://spacecontext.app/developers/docs/mcp/connect/",
  "repository": {
    "url": "https://github.com/finikoslab/spacecontext",
    "source": "github",
    "subfolder": "packages/mcp"
  },
  "transport": {
    "type": "streamable-http",
    "endpoint": "https://mcp.spacecontext.app/mcp"
  },
  "authentication": {
    "required": true,
    "schemes": [
      "oauth2"
    ],
    "authorizationServer": "https://mcp.spacecontext.app",
    "metadata": "https://mcp.spacecontext.app/.well-known/oauth-authorization-server",
    "protectedResource": "https://mcp.spacecontext.app/.well-known/oauth-protected-resource/mcp"
  },
  "capabilities": {
    "tools": {
      "listChanged": false
    },
    "resources": {
      "listChanged": false
    },
    "prompts": {
      "listChanged": false
    }
  },
  "tools": [
    {
      "name": "list_spaces",
      "title": "List spaces",
      "description": "The spaces this connection can read, newest first, with their latest scan."
    },
    {
      "name": "search_spaces",
      "title": "Search spaces",
      "description": "The records that best answer a question across all spaces or one, in any language."
    },
    {
      "name": "get_space",
      "title": "Read a space",
      "description": "The current document of a space by section: areas, items, issues, key locations, how-to, facts, Q&A, coverage."
    },
    {
      "name": "get_space_markdown",
      "title": "Read a space as one page",
      "description": "The whole space as one Markdown page, to load it as context in one call."
    },
    {
      "name": "ask_space",
      "title": "Ask a space",
      "description": "A short answer from the records of one space, with cited records and photo evidence, or \"not documented\"."
    },
    {
      "name": "list_scans",
      "title": "List scans of a space",
      "description": "The scan history of a space, newest first."
    },
    {
      "name": "compare_scans",
      "title": "Compare two scans",
      "description": "What changed between two scans: items added, moved, recounted, in another condition; confirmed removals apart from what was only not seen."
    },
    {
      "name": "get_evidence_photo",
      "title": "Get an evidence photo",
      "description": "The original video frame behind a record, as an image."
    },
    {
      "name": "get_scan_status",
      "title": "Scan status",
      "description": "Where a scan is: queued, processing (with its stage), complete or failed."
    },
    {
      "name": "follow_scan",
      "title": "Follow a scan",
      "description": "Waits for a running scan and reports its progress, in words."
    },
    {
      "name": "wallet",
      "title": "Balance and price",
      "description": "The prepaid balance, the free scans left and the price of one scan."
    },
    {
      "name": "capture_checklist",
      "title": "What to film",
      "description": "The key locations to film for a type of space, each with a hint, before a scan."
    },
    {
      "name": "check_frame",
      "title": "Check a photo",
      "description": "Whether a photo is usable for a scan, and which key locations it shows. Only on a connection allowed to scan."
    },
    {
      "name": "create_scan",
      "title": "Create a scan",
      "description": "Declares a scan of a new or existing space and returns the upload instructions. Only on a connection allowed to scan."
    },
    {
      "name": "upload_frame",
      "title": "Upload a frame",
      "description": "Sends one image of a frames scan. Only on a connection allowed to scan."
    },
    {
      "name": "start_scan",
      "title": "Start a scan",
      "description": "Starts and charges a scan (the free scan first, then the prepaid balance). Only on a connection allowed to scan."
    },
    {
      "name": "cancel_scan",
      "title": "Cancel a scan",
      "description": "Cancels a scan that has not started; nothing is charged. Only on a connection allowed to scan."
    }
  ],
  "resources": [
    {
      "uri": "spacecontext://spaces",
      "name": "spaces",
      "mimeType": "application/json",
      "description": "The spaces this connection can read."
    },
    {
      "uriTemplate": "spacecontext://spaces/{space_id}",
      "name": "space",
      "mimeType": "text/markdown",
      "description": "One space as a Markdown page."
    }
  ],
  "prompts": [
    {
      "name": "check_out_report",
      "description": "A check-out report from two scans: confirmed changes, possibly missing, and the rest."
    },
    {
      "name": "where_is",
      "description": "Where one thing is in a space, with the evidence photo."
    }
  ]
}
