Product 1 Sep 2026 · 5 min read

Introducing our official MCP server

The catalogue answers as an MCP server now — one address, five tools and an entry in the official registry. Here is what it answers, and the two things it refuses to.

MR mcprush team · The people who run the gateway

An agent told to find a server that talks to Postgres has two ways to go about it. It can read a catalogue page written for a person — parse the markup, take whichever of the fifteen install tabs the prerender happened to bake, and hope the package name it scraped belongs to the listing it was looking at. Or it can ask.

Asking needs the catalogue to be a server, and it is one: it answers at mcprush.com/mcp and it is listed in the official MCP registry as com.mcprush/catalogue, where the entry is public. What follows is everything it will tell an agent, and the two things it will not.

One address, two windows

The address does not fork by path, it forks by verb. A GET is a person checking they copied the right thing, and it answers with a page. A POST is an agent, and it answers JSON-RPC. Neither is a redirect to the other, and neither reader is handed the answer meant for the other one.

The verb decides which window opens. The page is documentation for the endpoint that is serving the page.The verb decides which window opens. The page is documentation for the endpoint that is serving the page.
The verb decides which window opens. The page is documentation for the endpoint that is serving the page.

The handshake negotiates rather than announces. A client that asks for one of the three protocol revisions the server speaks gets that revision back; a client that asks for something else gets the newest one instead of a protocol error, which is the difference between a client that connects and a client whose author has to read a changelog.

What it answers

Five tools, and each of them exists because somebody kept asking the question by hand. Four of them are the catalogue read out loud. The fifth is the one that is genuinely hard to get from a page.

ToolWhat you give itWhat comes back
search_serversWords, a heading, free-onlyUp to twenty-five, each with what it does, its security grade, how many tools it declares and what it costs
get_serverOne idThe tools it declares and what each one reaches, the grade, the day it was scanned and how many findings that scan raised
list_categoriesNothingThe headings, with a live count of servers under each
search_skillsWordsAgent skills — folders of instructions a client reads, rather than servers it calls
install_commandAn id and a clientThe line to run, or the config block to write and the file it goes in
The last row is the only one answering something a page cannot answer well. The other four are on the site already, in HTML somebody has to parse.

The per-client matrix is the part every catalogue gets wrong, because it is not one fact but fifteen. A page can only show one of them at a time, behind a tab switcher, and a scraper takes whichever tab was baked into the markup — which is why an agent running in Zed so often ends up pasting a command written for Claude Code.

  • A command, where the client has one. claude mcp add, codex mcp add, gemini mcp add and code --add-mcp all take different arguments in different orders, and the JSON in the last one has to survive a shell.
  • A config block and the file it belongs in, where the client is configured by file. Cursor, Windsurf and Zed each want a different shape under a different key, and a remote server needs its authorisation header inside that shape or the config is one that pastes cleanly and never connects.
  • A refusal with a reason, where the client cannot run that server at all. Copilot Studio runs in Microsoft’s cloud and cannot start a process on your machine. Perplexity has not shipped remote MCP support yet. Both of those are better answers than a command that would have failed.

What it will not hand over

Search returns everything needed to choose and stops there. It does not return the package name, and it does not return the install line — those come from a second call, on one listing at a time.

Everything a decision needs is face up. The one field a mirror actually needs is the one that costs a second call.Everything a decision needs is face up. The one field a mirror actually needs is the one that costs a second call.
Everything a decision needs is face up. The one field a mirror actually needs is the one that costs a second call.

The arithmetic is the whole reason. An agent picks one thing out of a list, so a second call on the one it picked costs it nothing at all. Somebody copying the shelf has to make that call for every row they want, and a catalogue that could be taken in an evening becomes one that cannot be taken quietly.

A directory that answers every question in one call is not a directory. It is a copy, waiting for somebody with a script.

The one thing an agent is not allowed to do

Some listings are paid, and an agent cannot buy one. The card, the consent and the receipt belong to the person who started it, and no amount of tool design changes that. Returning a bare command and saying nothing about money would send an agent off to run a line that answers 401 — and the human would learn the price from an error message.

The price and the address go back with the command, and a sentence saying which of the two to use first.The price and the address go back with the command, and a sentence saying which of the two to use first.
The price and the address go back with the command, and a sentence saying which of the two to use first.

So a paid listing answers with the price, a link straight to the plan chooser, and an instruction addressed to the agent: show this to the person running you, and do not try the command until they say it is done. The command comes back as well, because it is wanted thirty seconds later and nobody should have to ask twice.

What a call costs

A call with no key on it is refused, and the refusal says which kind of key is missing — a buyer key, which is not the publisher key that signs publishing calls, and is the single thing people bring to the wrong door. The free tier carries five hundred calls a month and sixty a minute, which is more than an agent installing things will ever use and less than a mirror would need. Only tool calls count: the handshake, the tool list and a call the server answered with an error are not taken off it.

claude mcp add --transport http mcprush-catalogue https://mcprush.com/mcp \ --header "Authorization: Bearer $MCPRUSH_KEY"
One client’s form of it. The other fourteen are what install_command is for.

Calls are counted against the account, and each one is logged with the key that made it — which is worth a moment of thought before minting one. A key per machine turns the question "what did this thing do last week" into a query instead of a guess, and revoking one machine costs the others nothing.

A line in a list clients already read

The official registry holds no code and runs nothing. It holds a name, an address, the transport, and proof that whoever published it controls the domain in the name — which turns out to be the whole of what a client needs in order to offer a server to somebody who has never heard of it.

A registry entry is data, not a page. The clients read it so that nobody has to type an address they were told in a blog post.A registry entry is data, not a page. The clients read it so that nobody has to type an address they were told in a blog post.
A registry entry is data, not a page. The clients read it so that nobody has to type an address they were told in a blog post.

Which is the honest summary of all of this. None of it is a feature an agent could not have lived without — the catalogue was already public, and a determined scraper would have got most of it eventually. What changed is that the wrong answer stopped being the easy one.