Space Context
app.spacecontextPublished by spacecontext.appOfficial publisherv0.2.1Updated Oct 30, 2026
The context layer for the physical world: filmed spaces as cited context for agents.
Overview
Remote MCP server that gives assistants read access to your filmed Space Context spaces, with cited answers, scan comparisons and photo evidence.
- What you can do
- List, search and read spaces by section or as one Markdown page
- Ask a space a question and get a short answer with citations
- Review scan history, compare two scans and fetch the original evidence photo
- Check scan status and follow a running scan's progress
- With scan permission: check a frame, create, upload, start or cancel a scan, and read wallet balance and capture checklists
- When to use it
- Useful when you document real places, vehicles or appliances by filming them and want an assistant to answer questions about them, compare before-and-after scans, or check what changed, with evidence it can point to.
- Requirements
- A remote endpoint over Streamable HTTP with OAuth 2.1 sign-in; no key is pasted. A Space Context account (Apple, Google or emailed code, same as the iPhone app). Scanning additionally needs a card on file in the account, and the user must tick the scan permission during consent.
Installation
In SourceWeft
- Open Space Context in the dashboard and add it to a workspace.
- Connect the required credentials. They are stored privately and never shown on public pages.
- Enable the server for the chats that should use its tools.
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
Use with an agent
Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.
Read https://sourceweft.com/mcp/app.spacecontext%2Fspacecontext/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.Other MCP clients
Add this to your client's mcpServers config. The client completes OAuth sign-in on first connect.
{
"mcpServers": {
"space-context": {
"type": "http",
"url": "https://mcp.spacecontext.app/mcp"
}
}
}README
Space Context MCP server
[License: MIT] [MCP] [OAuth 2.1] [Cloudflare Workers] [Docs]
A remote MCP server that gives Claude, ChatGPT, Codex, Cursor, VS Code or any MCP client access to your Space Context spaces. The assistant can list spaces, search them, read them by section or as one page, ask them questions, compare scans and show the photo evidence. Every item, issue and key location says whether a second, independent check found it on its own photo (verified, unconfirmed or from the narration), so the assistant knows what to state and what to hedge. If you allow it, it can also scan spaces for you.
It speaks MCP over Streamable HTTP and authorizes with OAuth 2.1 (dynamic client registration and client ID metadata documents). It's stateless (createMcpHandler from agents, MCP SDK v2) behind @cloudflare/workers-oauth-provider. This package isn't published to npm. Use the hosted server above, or deploy your own.
Connect an assistant
You never paste a key. Connecting works like this:
- Your assistant opens a Space Context page. You sign in with Apple, Google or a code sent to your email, using the same account as the iPhone app.
- You choose whether the assistant may see sensitive values (Wi-Fi passwords, door and alarm codes, the narration) and whether it may scan spaces for you. By default it can do neither. Scanning needs a card on file in your account (added in the console, nothing charged): without one, the page offers to connect read-only instead, or to try again once the card is added.
- The server creates an API key for this connection only, listed as
MCP · <assistant>in the console. Its scopes arespaces:readandscans:read, plusspaces:sensitiveandscans:writeif you ticked them.
Revoking that key in the console ends the connection, and the assistant asks you to sign in again. Connecting the same assistant again replaces its previous key. The assistant sees your live spaces, including the ones scanned with the iPhone app. A space from the app becomes readable once it has been screened for sensitive values: the first read starts the screening, which takes a minute or two. Full guide: Connect an assistant.
Tools
Reading tools, on every connection (annotated read-only and idempotent):
These tools work only on a connection where the user ticked let it scan spaces. On any other connection the API refuses them with INSUFFICIENT_SCOPE:
Resources: spacecontext://spaces (the list, JSON) and spacecontext://spaces/{space_id} (a space as Markdown). Prompts: check_out_report (compare two scans and write a report that keeps confirmed changes apart from what may be missing) and where_is (find one thing, with its area and evidence photo).
No tool reaches the open web. Space content is returned as data, never as instructions: the server's instructions say so, and so does a note in every result that carries space content. The server card at /.well-known/mcp/server-card.json lists tools, resources and prompts before sign-in. Arguments and results: MCP tools.
Deploy your own
The server is a Cloudflare Worker that talks to a Space Context API (…/v1, with API_V1_ENABLED = "true"). It signs people in through the API's own sign-in endpoints and creates one API key per connection. Everything it keeps is in KV: OAuth clients, grants and tokens (grants carry the connection's API key and are encrypted by the OAuth library), and sign-ins in progress, for ten minutes, encrypted with a key that only the user's browser holds.
1. Install and build the SDK (the server imports it), from the repository root:
2. Create the KV namespace for OAuth clients, grants and tokens, and put its id in kv_namespaces in wrangler.jsonc. This and the next steps run in packages/mcp:
3. Set the configuration in wrangler.jsonc (name, the custom domain in routes, and vars):
4. Add the secret for Google sign-in:
5. Register the callback URLs with the providers:
- Google: add
${PUBLIC_URL}/authorize/google/callbackas an authorized redirect URI of the web OAuth client. - Apple: add
${PUBLIC_URL}/authorize/apple/callbackas a return URL of the Services ID.
Without both GOOGLE_WEB_CLIENT_ID and the secret, the Google button isn't shown, and the same goes for Apple without APPLE_SERVICES_ID. Email sign-in is always offered. The API checks Google and Apple tokens against its own web client ID and Services ID, so use the same ones the API is configured with.
6. Deploy:
Keep these settings from wrangler.jsonc:
global_fetch_strictly_publicstays on. The server fetches client metadata documents from URLs that clients choose, so a plainfetchmust never reach private addresses. The API is reached through theBACKENDbinding.- With
workers_devandpreview_urlsoff, the server answers only on its custom domain. ratelimitslimit each client IP to 10 registrations (/register) and 60 sign-in page requests (/authorize…) a minute, answered with429andRetry-After: 60beyond. Rate limits aren't inherited by environments, and eachnamespace_idmust be unique in your Cloudflare account. Without the bindings (as indev) nothing is limited.- Access tokens last one hour. A grant lives for 90 days after its last refresh. A client registered dynamically is deleted after 180 days without a token request.
wrangler.jsonc also defines dev (local, see below) and staging (Space Context's own staging deployment).
Develop
The API isn't part of this repository. The tests don't need it: they drive registration, PKCE, consent, token and real MCP calls against a fake API. The dev environment sets no Google or Apple client, so local sign-in uses the emailed code. Read CONTRIBUTING.md before adding a tool: any tool that writes or spends must sit behind scans:write and be annotated honestly.
MIT © Finikos S.r.l.
Source: packages/mcp/README.md at commit 0aab27d
Tools
0Version history
2- v0.2.1LatestOct 15, 2026
- v0.2.0Oct 14, 2026
Score
85% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 daysRequired25 pts
- Auth declaredRequired10 pts
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts