Triremes MCP server
Let an AI agent search the problems people have and the websites with poor SEO / AEO, read a website's gap score and see the free samples. The server is read only, free and needs no key: it shows what the public pages show, and each answer links to the page where a lead, an idea report or a website is bought.
Connect
- Address:
https://triremes.com/mcp - Transport: MCP's streamable HTTP. Each message is one
POSTof one JSON-RPC 2.0 message, answered with one JSON answer; the server opens no event stream, soGETis answered 405. - Protocol versions:
2025-06-18,2025-03-26,2024-11-05. The client's own when it is one of them, else the newest. - No sign-in, no key and no OAuth.
Claude Code
claude mcp add --transport http triremes https://triremes.com/mcp
Claude Desktop
Add it under Settings, Connectors, Add custom connector, with the address above. Or, in
claude_desktop_config.json, through the mcp-remote bridge:
{
"mcpServers": {
"triremes": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://triremes.com/mcp"]
}
}
}
Any other client
A client that speaks streamable HTTP takes the address; many read a configuration like this one:
{
"mcpServers": {
"triremes": {
"type": "http",
"url": "https://triremes.com/mcp"
}
}
}
Or call it yourself:
curl -s https://triremes.com/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": {"name": "search_problems", "arguments": {"query": "invoice"}}}'
Tools
Every tool only reads. Lists come 25 at a time; the next page is the answer's next_cursor passed back as
cursor.
search_problems
Search the problems people have that Triremes lists, biggest first: each with its title, tier, how many reports and when the last was, its summary as its page shows it, whether it is sold as a lead (businesses that have it) or an idea report, its price, and its page. Leads and idea reports are bought on that page.
cursor: The next_cursor of the answer before, for the next page.kind: Only leads, or only idea reports.query: Words to find in a problem's title or summary; empty for every problem.
search_website_gaps
Search the business websites Triremes measured with gaps in what search engines and AI answer engines can read, each one sold on its own: what kind of business and where, its gap score, its gaps and failed checks by name, when it was measured, its price and its page. The business, its website and its contacts are bought on that page.
business: A kind of business, such as Dentists or Roofing Contractors; when several kinds match, the answer lists them.city: A city.country: A country, as its two-letter ISO code (US, DE).cursor: The next_cursor of the answer before, for the next page.gap_score: Only websites with a gap score in this band: poor Poor: 50% or more, fair Fair: 20% to 49%, good Good: under 20%.
get_website_gap_score
One website on sale by its id (3f9a1c07b2e85d64): its gap score, the share of the checks measured on its homepage that it fails, each weighted 3, 2 or 1 by how serious it is, with the checks it failed by name, when it was measured, its price and its page.
site_id: The website's id, as search_website_gaps gives it.
show_samples
The free sample lead and sample idea report: what a buyer gets, on pages anyone may read.
No arguments.
What is free
Everything the server answers is free. It never answers with what a purchase pays for (a problem's businesses and contacts, a website's business, address or contacts); where that is what you want, the answer links to its page on triremes.com, where it is bought as on the rest of the site. To search and buy from your own code, there is the paid Triremes API.
Limits
- At most 30 calls a minute from one address, and at most 300 a minute from
everyone together. Past either, the answer is HTTP 429 with a
Retry-Afterheader and a JSON-RPC error saying how many seconds to wait. - A message is at most 16 KB.
- Calls from a web page on another site are refused (403); a client that is no browser sends no
Originand is not affected. - The server keeps no session. Its answer to
initializegives anMcp-Session-Id, which carries the name and version your client gave; send it back with each message after, as clients do. Notifications are answered 202.
What a call's record keeps is in the privacy policy.