About run.pay
run.pay is an MCP marketplace where AI agents discover API services and pay per call through Stripe. Sellers can publish priced services, while agents can browse offerings and invoke them without creating marketplace accounts.
Key features
- 01Browse services and prices
- 02Call services with automatic Stripe payment
- 03Publish APIs with per-call pricing
- 04Test calls in sandbox mode
- 05Use a Python SDK
Use cases
- 01Validate phone numbers through an agent
- 02Extract data from URLs
- 03Generate PDFs on demand
- 04Sell API functions to agents
MCP support
The MCP server exposes tools to list available services and call a selected service, with payment handled through Stripe. It connects agents to the marketplace's paid API offerings.
Configuration
Remote servers need no local install. Pick your client, then copy the config or install in one click.
https://runpay-backend-visibility-production.up.railway.app/mcpclaude mcp add --transport http palabrex-runpay https://runpay-backend-visibility-production.up.railway.app/mcp{"mcpServers":{"palabrex-runpay":{"type":"http","url":"https://runpay-backend-visibility-production.up.railway.app/mcp"}}}Open in Cursor{"servers":{"palabrex-runpay":{"type":"http","url":"https://runpay-backend-visibility-production.up.railway.app/mcp"}}}Open in VS Code{"mcpServers":{"palabrex-runpay":{"type":"http","url":"https://runpay-backend-visibility-production.up.railway.app/mcp"}}}{"mcpServers":{"palabrex-runpay":{"serverUrl":"https://runpay-backend-visibility-production.up.railway.app/mcp"}}}Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.
Tools
2| Parameter | Type | Required | Description |
|---|---|---|---|
| search | string | No | |
| category | string | No |
Details
From the project READMErun.pay — Agent Marketplace
Stripe-native marketplace where AI agents autonomously discover and purchase API services. Pay-per-call, no accounts needed.
MCP Endpoint
https://runpay-backend-visibility-production.up.railway.app/mcp
Connect your agent
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"runpay": {
"url": "https://runpay-backend-visibility-production.up.railway.app/mcp"
}
}
}
Cursor
Add to .cursor/mcp.json:
{
"mcpServers": {
"runpay": {
"url": "https://runpay-backend-visibility-production.up.railway.app/mcp",
"transport": "http"
}
}
}
Available tools
| Tool | Description |
|---|---|
list_services | Browse all available services and prices |
call_service | Call a service and pay automatically via Stripe |
Available services
| Service | Price | Description |
|---|---|---|
| Phone Validator | $0.60/call | Validate phone numbers worldwide. Returns country, line type, E164 format |
| Phone Validator Batch | $5.00/batch | Validate up to 1000 numbers in one call |
| Web Scraper Pro | $0.60/call | Extract title, content, links, emails from any URL |
| Web Scraper Batch | $3.00/batch | Scrape up to 10 URLs in parallel |
| PDF Generator | $0.60/call | Generate professional PDFs (invoices, reports, contracts) |
| Screenshot API | $0.60/call | Capture any website as PNG with site accessibility check |
Python SDK
pip install requests
from runpay_sdk import RunPay
# Initialize (sandbox=True for testing without payment)
rp = RunPay(agent_id="my-agent-001", sandbox=False)
# Validate a phone number — $0.60
result = rp.validate_phone("+33612345678")
print(result['country']) # France
print(result['line_type']) # mobile
print(result['is_valid']) # True
# Validate 1000 numbers in one call — $5.00
result = rp.validate_phones_batch(["+33612345678", "+1234567890"])
print(f"{result['valid']}/{result['total']} valid")
# Scrape a website — $0.60
result = rp.scrape("https://example.com")
print(result['title'])
print(result['emails'])
# Scrape 10 URLs in parallel — $3.00
result = rp.scrape_batch(["https://site1.com", "https://site2.com"])
# Generate an invoice PDF — $0.60
result = rp.generate_pdf(
title="Invoice #001",
doc_type="invoice",
language="fr",
data={
"client": "Acme Corp\n123 Rue de Paris",
"invoice_number": "INV-001",
"tax_rate": 20,
"items": [
{"description": "Web Scraping", "qty": 10, "price": 0.60}
]
}
)
with open("invoice.html", "w") as f:
f.write(result['html'])
# Take a screenshot — $0.60
result = rp.screenshot("https://example.com")
print(result['screenshot_url'])
print(result['usage']['embed']) # <img> tag ready to use
Download SDK: runpay_sdk.py
How it works
- Sellers publish any API function and set a price per call
- AI agents discover services via MCP protocol automatically
- Stripe charges the agent per call automatically
- Sellers receive payouts directly via Stripe Connect
Sandbox mode (test without payment)
# No real payment — perfect for development
rp = RunPay(agent_id="my-agent-001", sandbox=True)
result = rp.validate_phone("+33612345678")
Or via API directly:
curl -X POST https://runpay-backend-visibility-production.up.railway.app/api/sandbox/call/SERVICE_ID \
-H "Content-Type: application/json" \
-d '{"agent_id":"my-agent","payload":{"phone":"+33612345678"}}'
Setup your agent wallet
Before calling paid services, your agent needs a payment card attached.
Sell your API
Publish any function and earn per agent call via Stripe.
Links
| 🌐 Site | getrunpay.com |
| 📖 Docs | getrunpay.com/docs.html |
| 📝 Sell your API | getrunpay.com/signup.html |
| 🤖 Agent Setup | getrunpay.com/agent-setup.html |
| 📊 Dashboard | https://dashboard.getrunpay.com |
| 🔍 Smithery | smithery.ai/servers/runpay/marketplace |
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.