Built for agents first,
humans second.
Every page on silent.fish is also a structured API response. Every site profile is also a JSON-LD record. The same data layer powers our website, the MCP server, the A2A endpoint, and the REST + GraphQL API. Built so AI agents can read, reason, and refer.
For your tools
Install @silent-fish/mcp in Claude, Cursor, Windsurf, or any MCP-capable client. Query the atlas, fetch site details, recommend trips, all from a natural-language prompt.
claude mcp install @silent-fish/mcpFor your agents
Delegate planning to the silent.fish agent. Speaks the emerging A2A protocol. Returns ranked trip recommendations with full sourcing. Stateful sessions, OAuth2 auth, machine-friendly responses.
POST https://a2a.silent.fish/sessionsFor everyone else
REST + GraphQL at api.silent.fish. JSON-LD responses. Hypermedia links between resources. OpenAPI 3.1 spec. Built for media, agencies, planners, and any developer who prefers a clean HTTP endpoint.
GET https://silent.fish/api/sites?month=8Data transparency
Every record returns its source. OSM node IDs, Wikipedia article URLs, iNaturalist observation counts, NOAA station identifiers. Agents trust what they can verify. Humans should too.
See full source attribution for the open data and editorial lineage.
Example round trip
A typical agent interaction, end to end:
User: "I want to dive with mantas in August. Open Water level. Budget under €5000."
Claude calls silent-fish.recommend_trip({
month: 8,
certification_level: "Open Water",
species: "manta",
budget_eur: 5000
})
silent.fish responds:
[
{
site: "Hanifaru Bay",
operator: "Adeos",
fit_score: 70,
reasoning: [
"In season month 8",
"Marine life match: Mantas, Aug",
"Marine protected reserve"
],
booking_url: "https://silent.fish/chartered/adeos?ref=trip-rec&site=hanifaru-bay"
},
...
]
Claude responds to user with reasoning, sources, and the booking link.