Overview
SILO’s remote MCP server gives an agent the read API as tools. There is one tool per published function or view, and each one sends exactly one request to the Data API with the shared publishable key. There is nothing to sign up for and no key to paste.
The server does not restate the contract. Each tool’s description is generated from the same
openapi.json as the Endpoints reference, and the rules live on Conventions & limits. The catalog tool returns the full contract as JSON.
Connect
- Claude
- ChatGPT
- Cursor
claude.ai / Claude Desktop: Settings → Connectors → Add custom connector. Paste the URL, leave authentication empty.Claude Code:
What a result looks like
On success, every tool returns one text block. It starts with the row count and a provenance line, followed by the rows exactly as PostgREST returned them:short_interest, investor_flow, quotes, …) also report Content-Range. If PostgREST cut the page, the result says PARTIAL PAGE and how many rows matched, so a cut page can’t pass as the whole series. Page with order + offset.
View tools take filters (column → PostgREST operator, e.g. {"ticker": "eq.PETR4", "trade_date": "gte.2026-09-01"}), select, order, limit and offset. They take nothing else. There are no or= trees, no SQL and no write path.
Errors are information
A PostgREST error comes back as a tool error (isError: true). The response body is included verbatim, with the endpoint and parameters that caused it. The server makes one request per call and never retries.
22023means the request crossed a stated ceiling: the 1,000-row page, the anonymous id ceiling, or a screen’s threshold range. Narrow the query, or page withp_afterwhere the function offers it. Retrying the same call will not produce a different answer.NULLmeans the source did not declare the value, or the field does not apply to that fund family. Never fill it or read it as zero. See null semantics.as_ofvscomplete_through(fromcoverage):as_ofis the newest period that has elapsed;complete_throughis how much the source has published in full. A gap between them reflects Brazil’s filing calendar, not an outage.
Limits
The server always calls the API at the anonymous tier. It never forwards your credentials, so the anonymous ceilings apply: 3 panel ids, 25search_funds rows, 200 option-chain rows, and no panel universe mode. For the signed-in ceilings, call the Data API directly with a user token. Rows per response are 1,000 at every tier.
Suggested first prompt
Using the SILO tools: callcatalogandcoverage, then tell me which FIDCs match the evergreen-aging screen and how their senior tranches performed. Treat every screen row as a signal, not a finding.