MCP server: One MCP server.

Placement API

@futurebetsMCP server · External

Buy SEO link placements across every marketplace: verified domains, held prices, one invoice.

SEOv1.0.0MITTypeScript
Freeno charge per call

One address for any MCP client. No sign-in needed on this server.

What it does

  1. Reads
  2. Writes
  3. High impact

At most: only reads or looks up information.

What it costs

Free

Odel charges nothing per call. The publisher may charge for its own service.

Tools

None listed · checked 26 Sep 2026

Odel could not list its tools without signing in.

Try it in the Inspector
README3 min read

Buy SEO link placements across every marketplace from one API or MCP server. Named, inspectable domains with live prices, independent verification, a survival record for every publisher we have bought from, and one invoice — paid with prepaid credits.

This repository holds the TypeScript client (sdk/, published to npm as placementapi) and the MCP registry manifest (server.json). The service itself is not open source.

Connect the MCP server

bash
# Claude Code
claude mcp add --transport http placement-api https://api.placementapi.com/mcp \
  --header "Authorization: Bearer $PLACEMENT_KEY"
json
// Cursor / Windsurf / any host that takes a JSON config
{ "mcpServers": { "placement_api": { "url": "https://api.placementapi.com/mcp",
  "headers": { "Authorization": "Bearer pk_live_…" } } } }

Claude.ai / ChatGPT: Settings → Connectors → add custom connector with the URL above and the Authorization header.

Get a key at https://app.placementapi.com/dashboard. A read key can search, plan and compare; an order key can spend credits.

Tools

ToolWhat it does
search_placementsSearch ~550k priced placements deduplicated by domain, with verification, score and price plausibility on every row
plan_linksA brief in (links, topic, DR, budget, strategy) → a costed plan of named domains, each with why, held at price for four hours
compare_domainEverything about one publisher: listings and spread, verification, web-graph, survival, outcomes, Placement Score, market reference
target_profile / gap_mapYour page's backlink profile and the competitor links you can reproducibly buy, priced
keyword_winnersWhat the sites that rank for a keyword look like, and what they buy
place_order · submit_content · write_it_for_meOrder at the held price; supply the article, let the publisher write it, or have it written
list_orders · campaign_status · order_outcomeFulfilment, live checks and observed rank movement (observed, never attributed)
standing_orders · create_standing_orderRecurring plans; auto-placement can only be enabled from the dashboard
check_balance · cancel_order

Use the SDK

bash
npm i placementapi
ts
import { PlacementApi } from "placementapi";

const api = new PlacementApi({ apiKey: process.env.PLACEMENT_KEY! });
const quote = await api.quote({ links: 5, topic: "finance", dr_min: 50, strategy: "safest" });
for (const l of quote.lines) console.log(l.domain, l.price_credits, l.verification, l.why.join(" · "));

See sdk/README.md.

Things worth knowing

  • Credits are US cents. Prices on a quote are held for four hours; order with the quote_id to pay the held price.
  • verification says whether a domain's authority is real: ok, suspect (high link authority with no organic footprint — what a link farm looks like) or unverified. quality_reasons names which of five tests fired. Method: https://placementapi.com/research/quality-methodology
  • Suppliers are never identified. You see counts and spreads, never who. That is a product rule, not a gap.
  • why[] on every line is the factual basis for the pick, in sentences an agent can repeat.

Support: hello@placementapi.com · Terms: https://placementapi.com/terms

Similar modules

Browse SEO