30 years of publishing experience · A network of 300+ owned media websites
Home · Developers · MCP server
Developers

MCP server

URL https://mediakit.uk/mcp — Streamable HTTP transport with JSON responses (stateless; no SSE stream). Protocol versions 2025-11-25, 2025-06-18, 2025-03-26 and 2024-11-05.

Connect

{
  "mcpServers": {
    "mediakit": { "type": "http", "url": "https://mediakit.uk/mcp" }
  }
}

Authentication

Read-only tools work without authentication. When a tool needs an agent, the server answers HTTP 401 with WWW-Authenticate: Bearer resource_metadata="https://mediakit.uk/.well-known/oauth-protected-resource"; MCP clients then register (dynamic client registration), open the consent page, and exchange the code with PKCE. An API key also works as the bearer token.

Tools

  • search_publishers — Search MediaKit's live publishing inventory (guest posts and press release outlets) by country, language, category, service and price. Prices in GBP from the live pricing engine. (public)
  • get_publisher_details — Details, services, prices per niche and packages of one publisher. (public)
  • list_publishing_services — Service types (guest post, press release), how they are priced and fulfilled, niches and their multipliers, markets. (public)
  • search_packages — Country and language guest post packages with their volume discount. (public)
  • calculate_publishing_quote — Calculate the authoritative server-side price. Guest posts: publishers[] or package{key,size}, optional articles[] sent after payment. Press releases: release{} + publishers[] or auto{count,languages,countries,topics}; the release is checked by the editor and saved as a draft. Without authentication a guest post estimate is returned but not stored. (quotes:write)
  • get_quote — A stored quote with its items, total and expiry. (orders:read)
  • validate_article — Check an article (guest post) or a press release against the publication rules. Authenticated callers with content:validate also get the AI editor verdict (acceptable? niche?). (public)
  • submit_article — Send the article for a paid guest post placement of an order. It passes the editor check and is then published. (content:write)
  • create_publishing_order — Create an order from an open quote. Within the agent's authority it is placed (payment "invoice_link": a person pays on the hosted page; "balance": prepaid, autonomous); otherwise the owner is asked to approve (state AWAITING_APPROVAL). Creates a financial obligation. (orders:write)
  • get_payment_options — Payment methods: which are enabled for agents, which are autonomous, and the evaluated-but-disabled protocols (x402, ACP, UCP …) with reasons. (public)
  • start_checkout — Pay an unpaid order: "balance" debits the prepaid balance (within limits), "invoice_link" returns the hosted pay page for a person. (payments:write)
  • get_payment_status — Verified payment status of an order (provider-confirmed, never the agent's claim). (orders:read)
  • get_order_status — Order state and the progress of every publication. (orders:read)
  • get_published_urls — Live URLs of the published placements of an order. (orders:read)
  • download_publication_report — The publication report (JSON) with authenticated download links (JSON, CSV) and the invoice. (orders:read)
  • cancel_order — Cancel an unpaid order. (orders:write)
  • get_agent_account — The authenticated agent and its customer account. (catalog:read)
  • get_agent_spending_limits — The agent's mode, limits, spending so far and prepaid balance. (catalog:read)
  • request_spending_authorization — Ask the account owner (by e-mail) to allow autonomous buying up to an amount per order and per month. (quotes:write)
  • get_approval_status — State of an approval request (and the order it created). (orders:read)

Safety

Tools that create obligations (orders, checkout, cancel) are annotated destructiveHint; read tools readOnlyHint. Every financial tool checks the agent, its account, scope, resource ownership, limits and payment state on the server.