Essentras MCP server
MCP serverDev toolsBuy press coverage in 3,800+ vetted media outlets. Price a basket, get a checkout link.
Available today. Use it from your connected AI after setup.
No other account needed.
Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.
Then ask your AI: use Essentras MCP server to get outlet
Install Essentras MCP server
The server’s own address, for the clients that take one directly. Or connect ahel once and every client you use reads it from one address, with the account kept on ahel rather than in each client’s config.
Claude Code
claude mcp add --transport http --scope user essentras-mcp-server 'https://essentras.com/api/mcp'Run it once in your project, then open /mcp to approve any sign-in the server asks for.
Claude Desktop
https://essentras.com/api/mcpAdd a custom connector in Settings, paste this address, and approve the sign-in.
Cursor
cursor://anysphere.cursor-deeplink/mcp/install?name=essentras-mcp-server&config=eyJ1cmwiOiJodHRwczovL2Vzc2VudHJhcy5jb20vYXBpL21jcCJ9Open the link and Cursor adds the server at that address.
ChatGPT
https://essentras.com/api/mcpIn Settings, enable Developer mode, create an MCP app, and paste this address. Your plan and workspace must allow custom apps.
Codex
codex mcp add essentras-mcp-server --url 'https://essentras.com/api/mcp'Run it once, then sign in with codex mcp login essentras-mcp-server if the server asks for an account.
From the project's README
As published by ltv-so/essentras-mcp in README.md.
Buy press coverage from an AI agent.
Essentras is a marketplace for paid media placements. This MCP server makes the catalogue machine readable end to end: an agent can search 3,800+ vetted outlets by budget, domain authority, geography, topic and link policy, price a basket, and hand the buyer a checkout link. No account, no API key, nothing to negotiate.
Listed in the official MCP Registry as
com.essentras/placements.
Quick start
Add this to any MCP client (Claude Desktop, Claude Code, Cursor, VS Code):
{
"mcpServers": {
"essentras": {
"type": "http",
"url": "https://essentras.com/api/mcp"
}
}
}
Then ask for what you want:
Find US tech outlets under $400 that give dofollow links, then price the best three.
I have $2,000 for fintech press in the UK. What can I get?
What does a placement on Business Insider cost, and how long does it take?
Tools
| Tool | What it does |
|---|---|
search_outlets | Search by max_price, country, region, language, topic, min_da, dofollow, indexed, with sorting and paging. Returns offers with a fixed USD price, turnaround, link policy and a stable id. |
get_outlet | Full detail for one outlet by id. |
quote_placements | Prices a basket. Returns line items, any volume discount, the final total and a checkout_url. Charges nothing and creates no order. |
All three are annotated read-only and idempotent.
The agent never pays
This is a design decision, not a limitation waiting to be removed.
The server holds no payment method and cannot take money. quote_placements returns a
checkout_url; the buyer opens it, sees the same basket at the same total, and pays on
essentras.com. So the worst case for someone who hands an agent too much trust is a basket
they did not want, never a charge they did not authorize.
A capability the server does not have is a stronger guarantee than an instruction a model might ignore.
The quote is the price
quote_placements exists rather than expecting you to add up list prices, because the
basket total is not the sum of its parts: volume tiers apply at 3 and 5 placements. The
page, the REST API, the MCP server and the charge all read one pricing function, so the
number an agent reports is the number the buyer is charged.
Billing is at checkout, not on publication. If the placement does not publish, or the stated turnaround is missed, the order is refunded.
Plain HTTP
Everything the MCP server does is also a REST endpoint, described by OpenAPI 3.1.
curl "https://essentras.com/api/agent/v1/outlets?country=US&dofollow=true&max_price=400&limit=3"
curl -X POST https://essentras.com/api/agent/v1/quote \
-H 'Content-Type: application/json' \
-d '{"items":[{"id":"business-insider"},{"id":"msn"}]}'
See examples/quickstart.sh for a runnable walkthrough.
| Endpoint | |
|---|---|
/api/agent/v1 | Service description and checkout model |
/api/agent/v1/openapi | OpenAPI 3.1 |
/api/agent/v1/feed | Product feed, JSONL, Agentic Commerce Protocol shape |
/.well-known/agent.json | Discovery manifest |
/llms.txt | What we sell, in prose |
Protocol support
Streamable HTTP, dual era on purpose. The server implements the 2026-07-28 revision
(stateless, server/discover, per-request _meta, resultType, cache hints) and the
earlier initialize handshake, because a large share of clients in the wild still open the
old way. Unsupported versions get a proper UnsupportedProtocolVersionError with the list
of versions we do speak, so a client can retry rather than guess.
Limits and honest notes
- Read and quote are public and rate limited per IP. There is nothing to gate: everything the API returns is already visible on the website.
- JSON-RPC batches are capped (20 messages, 5 of them tool calls). An unbounded batch is a cheap way to buy a lot of someone else's database time.
- One outlet per order, so
quote_placementstakes no quantity. The checkout handoff cannot express it, and quoting a basket the cart cannot reproduce would be worse than not supporting it. - Most placements publish as standard editorial articles with no sponsored label. A
minority carry a sponsored or discreet disclosure, and every offer states which under
link.disclosure. Do not assume the whole catalogue is one or the other. - The catalogue is what it is: strong in business, tech and finance, thinner on some tier-one US names. Search it rather than assuming an outlet is there.
Links
- Documentation: essentras.com/agents
- Marketplace: essentras.com/publishers
- Contact: essentras.com/contact
License
MIT. See LICENSE.
Tools it offers (3)
What this server listed when ahel dialed its public endpoint in Oct 2026, with no key and no account of yours. The names are the server’s own.
get_outletquote_placementssearch_outlets
Signals
- Last commit
- Oct 2026
Advanced
- Delivery
- placements MCP server → your ahel connector (mcp.ahel.ai) → your AI.
- Item type
- mcp-server
- Key
com-essentras-placements- Source
- github.com/ltv-so/essentras-mcp
- Hosted endpoint
https://essentras.com/api/mcp
github.com/ltv-so/essentras-mcp