Security
How this is built, and how to report a problem
Sato Hub runs a public, read-only MCP server and a set of open data feeds. This page states the posture plainly — for researchers, and for the automated scanners that check us daily.
Reporting something
Open an issue on the public repository, or reach us through the support form. Please include what you did, what happened, and what you expected — a reproduction is worth more than a scanner output.
We do not run a paid bounty. We will credit you if you want the credit, and we will tell you what we changed.
https://satohub.ai/.well-known/security.txt
The posture
The MCP server is read-only
Every tool at /api/mcp reads. None of them writes, and none of them takes an action on anyone's behalf. There is no authentication because there is nothing to authorise — the data is public and free under CC-BY-4.0.
No credentials, no wallets, no custody
Sato Hub never holds a private key, never takes custody of funds, and never asks for a seed phrase. Wallet signatures are used in one place — proving control of a key when registering an Agent Passport — and only the signature is verified, never stored as a secret.
What is collected
Anonymous usage events: which tool was called, a sanitised argument, a latency, a session identifier that is not tied to a person. No IP addresses, no cookies for tracking, no personal profiles. The MCP caller's user-agent is recorded because it is how we tell a monitoring bot from a real client.
Database access
Row Level Security is enabled on every public table with no policies, and the application is server-only through a service-role key. The public PostgREST/anon API is therefore denied by default rather than filtered.
Outbound fetches are guarded
Where the app fetches a URL on a user's behalf — verifying a listing claim, probing an endpoint — the target is checked against loopback, private and link-local ranges before the request, and redirects are not followed automatically.
What a claim or a registration proves
A claimed listing proves the claimant controls a domain that listing already points at. A registered Agent Passport with a verified wallet proves control of a key. Neither is an endorsement, neither changes a Sato Score, and neither can set a verification status — those are evidence-reviewed and unreachable from any self-service path.
If you are a scanner
You are welcome here — several of you check this server every day, and the handshake is deliberately cheap. Everything under /api/export and /api/mcp is free and unauthenticated, so there is no need to probe around them. If you publish a finding about this server, we would rather hear about it first — but we would rather you publish than stay quiet.