MCP server for AI agents
Seldons runs a Model Context Protocol server at mcp.seldons.ai. It exposes the
same cross-border trade tools this site offers people — HS code estimates, landed cost and
retail pricing, certification checks, product page analysis — as tools an AI agent can call.
How do I connect?
Endpoint https://mcp.seldons.ai/mcp · Streamable HTTP · MCP protocol 2026-07-28.
Authentication is an Authorization: Bearer header. Without a key the server still
answers and lists the two free tools — including the export price calculator,
so you can judge the answers before getting a key.
Claude Code:
claude mcp add --transport http seldons https://mcp.seldons.ai/mcp \
--header "Authorization: Bearer sk_live_YOUR_KEY"
Any client that reads an mcpServers block — Claude Code's .mcp.json,
Claude Desktop's config file, Cursor's mcp.json:
{
"mcpServers": {
"seldons": {
"type": "http",
"url": "https://mcp.seldons.ai/mcp",
"headers": { "Authorization": "Bearer sk_live_YOUR_KEY" }
}
}
}
Leave the headers block out to connect without a key.
What tools are there?
| Tool | Credits | What it does |
|---|---|---|
check_business_number | 0 | Validates the format and checksum of a South Korean business registration number. No external lookup, so it is free. |
calculate_export_price | 0 | Recommended retail price in a destination market from factory cost and weight, after freight, duty, tax, fees and margin — with every assumption it had to make listed. |
lookup_hs_code | 5 | Estimates a 6-digit HS code from a product page, with confidence and alternatives. |
check_certifications | 5 | Which certifications a product needs, which the page shows, which look missing. |
analyze_product_page | 8 | What would stop a product page selling abroad, with the evidence quoted. |
Call tools/list for the full schemas. Every description says what the tool does
and where it stops being reliable — that second half is the part worth reading.
How does billing work?
Credits are prepaid and deducted after a tool runs, never before. Each tool costs a
fixed number of credits, listed above, and every paid response carries
_meta.credits_remaining so the agent can see its own balance and tell you.
An evaluation key starts with 100 credits — enough to judge the answers, not enough to run a
service on, which is the line we meant to draw.
What we do not charge for — this list is public on purpose:
- Authentication, validation and rate-limit failures
- Errors on our side, and timeouts
- Any call that comes back with
isError: true. If an analysis fails after we already paid the model, that is our loss, not yours - Repeats of a request we already answered, inside a five-minute window
Credits are deducted after the tool runs, never before. Every paid response carries
_meta.credits_remaining so the agent can see its own balance and tell you.
Idempotency. Agents retry. Send
params._meta["ai.seldons/requestId"] and a repeat inside five minutes replays the
first answer for free. Omit it and we derive one from the account, the tool and the arguments.
What do errors look like?
Tool failures come back as a normal result with isError: true, not as a JSON-RPC
error — that is what the MCP spec asks for, and it is the only way the model gets to read them
and correct itself.
{
"error": {
"code": "INSUFFICIENT_CREDITS",
"message": "Not enough credits for this call.",
"retryable": false,
"required": 3,
"remaining": 0
}
}
Codes: AUTH_REQUIRED · INSUFFICIENT_CREDITS ·
INVALID_INPUT · RATE_LIMITED · URL_UNREACHABLE ·
INTERNAL_ERROR · UPSTREAM_UNAVAILABLE.
retryable is always present. Without it an agent
either retries forever or treats a passing outage as permanent and answers from its own guess.
What are the rate limits?
Without a key, 10 calls a minute and 100 a day, counted per IP. With a key it depends on the plan, starting at 20 a minute and 500 a day. The ceilings come from the upstream sources we depend on, worked backwards — if our limit were looser than theirs, theirs would give out first and everyone would fail at once instead of one caller.
How do I get a key?
Buy a credit pack. Lemon Squeezy emails you a license key; paste it into
the claim page and it hands back your
sk_live_… key with the credits already on it. No account to create first, and
no waiting on us.
| Pack | Credits | Price | |
|---|---|---|---|
| Starter | 3,000 credits | $29 | Buy |
| Team | 20,000 credits | $149 | Buy |
| Scale | 100,000 credits | $599 | Buy |
Want to try the paid tools before buying? Tell us what you are building and we will issue an evaluation key with 100 credits — enough to judge the answers, not enough to run a service on. Ask for one here.
Credits do not expire and there is no subscription. Starter is about 375 product page analyses, or 1,000 export price calculations. A pack also sets how fast you may call — Starter runs at the starter tier, Team and Scale at the team tier:
| Plan | Calls / minute | Calls / day |
|---|---|---|
| Evaluation key | 20 | 500 |
| Starter | 60 | 5,000 |
| Team · Scale | 300 | 50,000 |
Buying again with the same email tops up the account you already have — you keep the key you are using rather than collecting a second one. Refunds take the credits back out; if you have already spent them the balance goes negative, which we would rather show you than hide.
Prices are in USD and Lemon Squeezy is the merchant of record, so VAT and GST are handled and invoiced by them, not by us.
A key looks like sk_live_…. We store only a hash of it, so if you lose it we
cannot show it to you again — we revoke it and issue a new one.
Why does this exist?
The tools on this site answer questions that come up when a brand sells across borders: what a product costs to land in another market, which certifications it needs, why a page that works at home does not work abroad. People use them free in a browser.
An agent doing the same work cannot use a browser form. It needs the same answers as data — with the assumptions labelled, the sources named, and a clear I don't know when a lookup fails. That last one matters more than it sounds: an agent that does not get a clean "unknown" will fill the gap with a guess and present it as an answer.
The web tools and this server call the same code. A number you get here is the number the calculator on this site would give you — that is checked on every build, not asserted.