Use Poseidon from your agent

Poseidon is an MCP server. Give your agent the address and your key, and it can search winning ads on its own. Same key, same credits as the REST API.

Address: https://api.askposeidon.app/mcp (streamable HTTP). Header: Authorization: Bearer psd_…

Claude Code

claude mcp add --transport http poseidon https://api.askposeidon.app/mcp --header "Authorization: Bearer psd_..."

Any client that reads an `mcpServers` file with remote servers

{"mcpServers": {"poseidon": {"type": "http", "url": "https://api.askposeidon.app/mcp",
  "headers": {"Authorization": "Bearer psd_..."}}}}

VS Code

{"servers": {"poseidon": {"type": "http", "url": "https://api.askposeidon.app/mcp",
  "headers": {"Authorization": "Bearer psd_..."}}}}

Claude Desktop

{"mcpServers": {"poseidon": {"command": "npx", "args": ["-y", "mcp-remote", "https://api.askposeidon.app/mcp",
  "--header", "Authorization:${POSEIDON_AUTH}"], "env": {"POSEIDON_AUTH": "Bearer psd_..."}}}}

OpenAI agents (Responses API)

from openai import OpenAI

client = OpenAI()
r = client.responses.create(
    model="gpt-5",
    tools=[{
        "type": "mcp",
        "server_label": "poseidon",
        "server_url": "https://api.askposeidon.app/mcp",
        "headers": {"Authorization": "Bearer psd_..."},
        "require_approval": "never",
    }],
    input="What are the winning UGC formats for weight loss in France? Go look in Poseidon.",
)
print(r.output_text)

ChatGPT connectors are coming.

Tools

ToolWhat it doesCost
filtersFree. What Poseidon can filter on, with live counts: niches, Meta display formats, countries with reach data, age ranges, hook types (none measured yet), sort orders, the winner rule and the coverage note. Call it first.Free
search_winnersFind winning e-commerce ads from the Meta Ad Library (EU/UK delivered ads, confirmed e-commerce shops only). Winner = live 21+ days by default. Each result: the ad's link on the Ad Library, the brand and its shop link, format, days live, versions (Meta's count of ads sharing the creative), active or stopped, EU reach (Meta's total, the only number of people) with the day it was read, the share of Meta's age x gender breakdown in the country / segment you filtered on (a share, never people), and the verbatim hook when its script was cut into sections. A field we don't have is absent, never guessed. No media and no person-name search. Costs 5 credits per search (0 if nothing matches).
Arguments: niche, country, format, hook_type, age, gender, active, min_days_live, max_days_live, min_eu_reach, min_country_share, min_segment_share, min_versions, has_script, started_after, started_before, sort, limit, offset
5 credits
search_experimentsBrands' own A/B tests: ads of one brand launched within 14 days that share one element and differ in another (same video with different ad texts, same text with different videos, same script with a different hook). Each variant: its ads with Ad Library links, launch day, active or stopped, days live and EU reach (Meta's total) with read date, plus the text that differs. The outcome is measured (a variant still running while another stopped, or 2x+ the reach), and absent when nothing is clear yet. Costs 5 credits (0 if nothing matches).
Arguments: niche, country, kind, with_outcome, limit, offset
5 credits
get_adOne ad in full: Ad Library link, brand and shop, ad copy, format, dates, versions, EU reach history (Meta's total per read day; countries and age x gender as shares of Meta's breakdown), the verbatim script sentence by sentence with each sentence's section (Hook, Problem, Proof, Offer, CTA…, and who labelled it), change history and the source of every field. Costs 2 credits.
Arguments: ad_id
2 credits
get_brandA brand: its Ad Library page link, shop (link, platform), how it was found, its ads in Poseidon (counts by format, winners, median days live, ads with reach) and its 10 longest-running ads. Give page_id or the shop domain. Costs 5 credits.
Arguments: page_id, domain
5 credits
get_weightsWeights of formats, hook types and targets from measured signals only (days live, EU reach, reach growth, versions), each with its sample size, median and top 10%. Weights under the minimum sample are never shown. Until the weighting engine runs this returns nothing. 10 credits per query (0 if nothing is returned).
Arguments: dimension, value, signal, niche, country, limit
10 credits
accountFree. Your credits left (they never expire), prices, last calls and credit movements.Free