Connect your agent to Exepal in one step.
One MCP server and one REST API carry every tool. Pick your client or framework below and copy one snippet. The cheap tools work straight away with 20 free calls a day; a free key gives you your own allowance and prepaid credit for the rest.
Add https://api.exepal.com/mcp to your assistant, or POST to https://api.exepal.com/v1/… from code.
Your agent picks the tool from its description and price. You get one JSON answer.
Free daily calls, then prepaid credit on a free key, or USDC per call with x402. Failed calls cost nothing.
Your key (optional)
Paste your key and every snippet on this page fills it in. It stays in this browser. No key yet? Get one free in ten seconds, or leave YOUR_KEY out and use the free trial.
1 · Add Exepal to your assistant or IDE
Remote MCP over Streamable HTTP, nothing to install or run locally.
Run once in your terminal. Every Exepal tool shows up in Claude Code with its price.
claude mcp add --transport http exepal "https://api.exepal.com/mcp?key=YOUR_KEY"Claude desktop or claude.ai: Settings → Connectors → Add custom connector, name it Exepal and paste this URL. (Custom connectors depend on your Claude plan.)
https://api.exepal.com/mcp?key=YOUR_KEYOne click, or paste into ~/.cursor/mcp.json.
{
"mcpServers": {
"exepal": { "url": "https://api.exepal.com/mcp?key=YOUR_KEY" }
}
}One click, run the command, or add it to .vscode/mcp.json to share with your team.
code --add-mcp '{"name":"exepal","type":"http","url":"https://api.exepal.com/mcp?key=YOUR_KEY"}'
// .vscode/mcp.json
{
"servers": {
"exepal": { "type": "http", "url": "https://api.exepal.com/mcp?key=YOUR_KEY" }
}
}Paste into ~/.codeium/windsurf/mcp_config.json.
{
"mcpServers": {
"exepal": { "serverUrl": "https://api.exepal.com/mcp?key=YOUR_KEY" }
}
}Turn on Developer mode (Settings → Apps & Connectors → Advanced), then create a connector with this URL and no authentication. Availability depends on your ChatGPT plan.
https://api.exepal.com/mcp?key=YOUR_KEYPaste into ~/.gemini/settings.json.
{
"mcpServers": {
"exepal": { "httpUrl": "https://api.exepal.com/mcp?key=YOUR_KEY" }
}
}Paste into ~/.codex/config.toml.
[mcp_servers.exepal]
url = "https://api.exepal.com/mcp?key=YOUR_KEY"Any MCP client that speaks Streamable HTTP. No OAuth, no session. The key is optional; you can also send it as Authorization: Bearer.
URL https://api.exepal.com/mcp
Transport Streamable HTTP (stateless, JSON responses)
Auth none · optional key: ?key=YOUR_KEY or Authorization: Bearer YOUR_KEY
Payment free daily calls, prepaid credit, or x402 USDC per call2 · Or call it from code
Plain HTTPS with JSON in and out, or let your framework load every tool over MCP.
curl -X POST https://api.exepal.com/v1/read \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_KEY" \
-d '{"url":"https://example.com"}'const res = await fetch("https://api.exepal.com/v1/domain", {
method: "POST",
headers: { "Content-Type": "application/json", Authorization: "Bearer YOUR_KEY" },
body: JSON.stringify({ domain: "stripe.com" }),
});
console.log(await res.json());import requests
r = requests.post(
"https://api.exepal.com/v1/email",
headers={"Authorization": "Bearer YOUR_KEY"},
json={"email": "jane@gmial.com"},
timeout=60,
)
print(r.json())pip install langchain langchain-mcp-adapters langchain-anthropic. Every Exepal tool becomes a LangChain tool.
import asyncio
from langchain_mcp_adapters.client import MultiServerMCPClient
from langchain.agents import create_agent
async def main():
client = MultiServerMCPClient({
"exepal": {
"transport": "streamable_http",
"url": "https://api.exepal.com/mcp",
"headers": {"Authorization": "Bearer YOUR_KEY"},
}
})
tools = await client.get_tools()
agent = create_agent("anthropic:claude-sonnet-5-5", tools)
out = await agent.ainvoke({"messages": [{"role": "user", "content": "Is stripe.com protected against email spoofing?"}]})
print(out["messages"][-1].content)
asyncio.run(main())npm i ai @ai-sdk/mcp @ai-sdk/anthropic. Works with any AI SDK model.
import { createMCPClient } from "@ai-sdk/mcp";
import { generateText, isStepCount } from "ai";
import { anthropic } from "@ai-sdk/anthropic";
const exepal = await createMCPClient({
transport: { type: "http", url: "https://api.exepal.com/mcp", headers: { Authorization: "Bearer YOUR_KEY" } },
});
try {
const { text } = await generateText({
model: anthropic("claude-sonnet-5-5"),
tools: await exepal.tools(),
stopWhen: isStepCount(5),
prompt: "Read https://example.com and summarise it in two lines.",
});
console.log(text);
} finally {
await exepal.close();
}pip install openai-agents
import asyncio
from agents import Agent, Runner
from agents.mcp import MCPServerStreamableHttp
async def main():
async with MCPServerStreamableHttp(
name="exepal",
params={"url": "https://api.exepal.com/mcp", "headers": {"Authorization": "Bearer YOUR_KEY"}},
) as exepal:
agent = Agent(name="Researcher", instructions="Use Exepal tools for web and data lookups.", mcp_servers=[exepal])
result = await Runner.run(agent, "Does jane@gmial.com look deliverable?")
print(result.final_output)
asyncio.run(main())npm i @modelcontextprotocol/sdk. For paying with a wallet instead of a key, see x402 over MCP.
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
const mcp = new Client({ name: "my-agent", version: "1.0.0" });
await mcp.connect(new StreamableHTTPClientTransport(new URL("https://api.exepal.com/mcp?key=YOUR_KEY")));
const { tools } = await mcp.listTools();
const res = await mcp.callTool({ name: "domain", arguments: { domain: "stripe.com" } });
console.log(res.structuredContent);No key, no account: an agent with a wallet pays each call in USDC on Base. npm i @x402/fetch @x402/evm viem
import { wrapFetchWithPaymentFromConfig } from "@x402/fetch";
import { ExactEvmScheme } from "@x402/evm";
import { privateKeyToAccount } from "viem/accounts";
const pay = wrapFetchWithPaymentFromConfig(fetch, {
schemes: [{ network: "eip155:8453", client: new ExactEvmScheme(privateKeyToAccount(process.env.WALLET_KEY)) }],
});
const res = await pay("https://api.exepal.com/v1/company-enrich", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ domain: "stripe.com" }),
});
console.log(await res.json());3 · Choose how to pay
Free daily calls
20 calls a day per person. Automatic over MCP; over HTTP send X-Exepal-Trial: 1 or your key.
Free key + prepaid credit
A free key gives you your own 20 free calls a day. Add credit and the same key pays for every tool at the listed price.
x402 in USDC
The first response is a 402 with the price; an x402 client pays on Base and retries. How it works.
Card on Apify
AI visibility, creator vetting, company enrichment, ad scoring and SERP monitoring also run as Apify Actors, billed per event to your card.
For agents, crawlers and code generators
| Path | What it is |
|---|---|
| exepal.com/llms.txt | Plain-language guide for language models: every tool, price and how to pay. |
| exepal.com/tools.json | The catalog as JSON: inputs, outputs, prices, status. CORS open. |
| api.exepal.com/openapi.json | OpenAPI 3.1 for every endpoint; generate a client in any language. |
| api.exepal.com/schemas.json | Input and output JSON Schema per tool, the same ones MCP returns. |
| /.well-known/mcp/server-card.json | MCP server card for directories. |
| /.well-known/x402 | x402 discovery document. |
GET https://api.exepal.com/balance | Your key's free calls left today and credit (send the key as Bearer). |
Every call is charged only on success, answers are cached so repeats are fast, and errors come back as JSON with a reason. Full details in the docs. Stuck? Write to contact@laxmankafle.com.