Developer docs
MatterMesh API & MCP
Programmatic access to the public Reality Translation Engine library. Built for AI agents, LLMs, retrieval pipelines, robotics simulators, and CAD/AR tooling. No authentication required for read access.
REST endpoints
Base URL: https://www.mattermesh.ai
List public scans. Query params: q (name substring), limit (1–200, default 50), offset.
Single scan record with all asset URLs.
Crawlable manifest of completed scans with one direct public URL per source image, SVG vector, Gaussian splat, render, and frame asset.
Single-scan asset manifest for crawlers and AI indexers.
HTML asset index for standard web crawlers that prefer pages over JSON.
Submit a photo + scale reference; MatterMesh translates it into JSON, SVG, splat, and a render. Requires an API key in the apikey header.
curl https://www.mattermesh.ai/api/public/library?limit=5 \
| jq '.items[] | { id, name, render: .assets.render }'Model Context Protocol (MCP)
MatterMesh exposes a single MCP endpoint that any MCP-compatible AI client can use to search the library, fetch scan records, and pull direct asset URLs — no API key, no OAuth, no per-asset linking.
Tools advertised on tools/list:
search_scans— search the library by name with pagination.get_scan— fetch a full scan record (metadata + asset URLs) by id.get_scan_assets— return only the asset URLs, optionally filtered by format (image,vector_svg,splat,render,frames).
Use with AI clients
Endpoint to paste anywhere a client asks for an MCP server URL: https://www.mattermesh.ai/api/mcp (Streamable HTTP, POST only, no auth).
ChatGPT (OpenAI) — custom connector
Settings → Connectors → Add custom connector. Name MatterMesh, URL https://www.mattermesh.ai/api/mcp, auth None. Enable it in the composer's tools menu, then ask: "search MatterMesh for wheelbarrow".
Claude (Anthropic)
claude.ai (web, Pro/Team/Enterprise): Settings → Connectors → Add custom connector → paste the URL above, auth None.
Claude Desktop / Claude Code: add to claude_desktop_config.json:
{
"mcpServers": {
"mattermesh": {
"url": "https://www.mattermesh.ai/api/mcp"
}
}
}Cursor
Settings → MCP → Add new MCP server. Same JSON shape as Claude Desktop, written to ~/.cursor/mcp.json (or per-project .cursor/mcp.json).
VS Code (Copilot Chat / Continue / Cline)
// .vscode/mcp.json
{
"servers": {
"mattermesh": { "type": "http", "url": "https://www.mattermesh.ai/api/mcp" }
}
}Windsurf · Cline · Zed · Goose
All accept the same Claude-Desktop-style block. Server name mattermesh, URL above, no auth.
Grok / xAI API
curl https://api.x.ai/v1/chat/completions \
-H "Authorization: Bearer $XAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "grok-4",
"messages": [{"role":"user","content":"find a wheelbarrow scan on mattermesh"}],
"mcp_servers": [{
"type": "url",
"name": "mattermesh",
"url": "https://www.mattermesh.ai/api/mcp"
}]
}'OpenAI Responses API (Agents SDK, GPT-5)
curl https://api.openai.com/v1/responses \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5",
"input": "find a wheelbarrow scan on mattermesh",
"tools": [{
"type": "mcp",
"server_label": "mattermesh",
"server_url": "https://www.mattermesh.ai/api/mcp",
"require_approval": "never"
}]
}'Google Gemini (google-genai SDK)
from google import genai
from google.genai import types
client = genai.Client()
resp = client.models.generate_content(
model="gemini-2.5-pro",
contents="find a wheelbarrow on mattermesh",
config=types.GenerateContentConfig(
tools=[types.Tool(mcp=types.McpServer(
label="mattermesh",
url="https://www.mattermesh.ai/api/mcp",
))],
),
)Raw JSON-RPC (any HTTP client)
curl -X POST https://www.mattermesh.ai/api/mcp \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'The Accept: application/json, text/event-stream header is required by the MCP Streamable HTTP spec — clients that omit it get a 406.
Per-scan license
Every scan record exposes a license object:
"license": {
"type": "CC-BY" | "CC0" | "CC-BY-SA" | "CC-BY-NC" | "proprietary" | "unspecified",
"url": "https://creativecommons.org/licenses/by/4.0/" | null,
"attribution": "Photo by Jane Doe / MatterMesh" | null
}Agents must respect per-scan license terms. unspecified means no explicit license — treat as "contact creator before reuse". proprietary is all-rights-reserved.
Usage, attribution, rate limits
Everything public is free — crawl, index, fetch, cache, mirror, embed, cite, train on, fine-tune on, redistribute, and use commercially. No contact required. No attribution required (appreciated but optional). Per-scan license values, when present, govern that scan's assets. See the AI policy for the full terms.
Subscribe to scan.published, scan.processed, and scan.failed webhooks at /settings/webhooks. Public read endpoints are loosely rate-limited per IP to keep the site up; contact us if you need higher limits or write access.