{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_p5rav45ndgx6","handle":"spatialflow-mcp","url":"https://wellknown.network/agents/spatialflow-mcp","links":{"self":"https://wellknown.network/agents/spatialflow-mcp/record.json","html":"https://wellknown.network/agents/spatialflow-mcp","markdown":"https://wellknown.network/agents/spatialflow-mcp/record.md","api":"https://wellknown.network/api/v1/agents/spatialflow-mcp","status":"https://wellknown.network/api/v1/agents/spatialflow-mcp/status","claim":"https://wellknown.network/agents/spatialflow-mcp/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/spatialflow-mcp/claim.json","badge":"https://wellknown.network/agents/spatialflow-mcp/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/spatialflow-mcp/history","tools":"https://wellknown.network/api/v1/agents/spatialflow-mcp/tools"},"ard":{"identifier":"urn:air::server:spatialflow-mcp","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"spatialflow-mcp","summary":"Local read-only MCP server for the SpatialFlow API","description":"# spatialflow-mcp\n\nA local, read-only [MCP](https://modelcontextprotocol.io) server for SpatialFlow. It lets an AI\nassistant such as Claude Desktop, Claude Code or Cursor answer questions about your own\nworkspace: where devices are, which geofences they entered, how long trucks sat at a facility,\nand how workflows ran. It talks to\nthe public SpatialFlow API with your API key and runs on your machine over stdio.\n\nIt only issues `GET` requests. There are no tools that create, change or delete anything.\n\n## Run\n\nYou need [uv](https://docs.astral.sh/uv/). `uvx` fetches the package from PyPI and runs it on\nPython 3.10 or newer.\n\n```bash\nSPATIALFLOW_API_KEY=<your-api-key> uvx spatialflow-mcp\n```\n\n`pip install spatialflow-mcp` works too and puts a `spatialflow-mcp` command on your path.\n\n| Variable | Required | Default |\n|----------|----------|---------|\n| `SPATIALFLOW_API_KEY` | yes | none |\n| `SPATIALFLOW_API_URL` | no | `https://api.spatialflow.io` |\n\nLogs go to stderr. The API key is never logged or returned in tool output.\n\n## Create a read-only key\n\nIn the dashboard, open Settings, API Keys, then Create API Key. Turn on **Read-only mode** so\nthe API rejects anything but `GET` for this key, even if a bug or a prompt injection asked for\nmore. Give it only the permissions below. Set an expiry if you can. The key acts inside the\nworkspace it was created in.\n\n| Tool | Key permission |\n|------|----------------|\n| `list_devices`, `get_device`, `get_recent_locations`, `list_geofence_events`, `detention_report`, `fleet_report` | `devices:read` |\n| `list_geofences` | `geofences:read` |\n| `list_workflows`, `list_workflow_executions` | `workflows:read`, and the key's owner must be a workspace owner or manager |\n\nA tool whose permission the key lacks returns a short permission error; the others still work.\n\n## Claude Desktop\n\nAdd this to `claude_desktop_config.json` and restart Claude Desktop:\n\n```json\n{\n  \"mcpServers\": {\n    \"spatialflow\": {\n      \"command\": \"uvx\",\n      \"args\"…","publisher":null,"homepage":"https://docs.spatialflow.io/api/","repository":"https://github.com/spatialflow-io/spatialflow-mcp","version":"0.2.0","license":null,"protocols":["mcp"],"tags":["mcp"],"pricing":null,"endpoints":[{"url":"pypi:spatialflow-mcp","type":"package_pypi","auth":null,"probeable":false}],"skills":null,"tools":null,"extra":null,"attribution":{"kind":"pypi","name":"pypi","repoUrl":"pypi","summary":"pypi","version":"pypi","description":"pypi","homepageUrl":"pypi"}},"derived":{"capabilities":[{"slug":"analytics.reporting","name":"Reporting & Dashboards","confidence":0.814,"provenance":"derived"},{"slug":"dev.package-management","name":"Packages & Dependencies","confidence":0.768,"provenance":"derived"}],"categories":["analytics","dev"],"language":"en"},"observed":{"status":"unknown","statusReason":"Distributed as a package to run locally; no network endpoint to check.","lastOkAt":null,"lastProbedAt":null,"statusComputedAt":null,"reliability30d":null,"latestObservations":[],"tools":null,"package":{"name":"spatialflow-mcp","registry":"pypi","observedAt":"2026-10-30T20:23:29.012Z","publishedAt":"2026-10-12T10:45:40.086236Z","latestVersion":"0.2.0"},"toolSurface":null,"endpointFacts":[]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"pypi","key":"spatialflow-mcp","url":"https://pypi.org/project/spatialflow-mcp/","firstSeenAt":"2026-10-12T14:25:49.309Z","fetchedAt":"2026-10-30T20:22:41.726Z","normalizedAt":"2026-10-30T20:22:41.726Z"}]},"firstSeenAt":"2026-10-12T14:25:49.309Z","updatedAt":"2026-10-30T20:23:29.012Z"}