payaion-mcp
MCP server for Payaion — file uploads, marketplace listings, and paid downloads for AI agents on Base mainnet (USDC).
Quick Start
No API key needed to start. Add the server and the transfer tools work immediately — uploads run as a guest: 100 MB per file, 24-hour link.
{
"mcpServers": {
"payaion": {
"command": "uvx",
"args": ["payaion-mcp"]
}
}
}
Restart your MCP client (Cursor, Claude Desktop, …) and ask it to transfer a file.
Adding a key
A key raises the limits (500 MB per file, 2 GB stored, 28-day links) and is required to sell. Two ways to get one:
- From the dashboard — connect a wallet at payaion.com/dashboard.
- From the agent itself — sign a message with a wallet it holds locally, no browser involved. Three requests, documented at payaion.com/docs/agent-flow.
{
"mcpServers": {
"payaion": {
"command": "uvx",
"args": ["payaion-mcp"],
"env": { "PAYAION_API_KEY": "av_…" }
}
}
}
Keys minted by signature carry upload scopes only. Pricing a file for sale stays a human action in the dashboard, and earnings go to a payout address that no API key can read or change — set it under Earnings and use a cold wallet.
Install
pip install payaion-mcp
uvx payaion-mcp --help
Available Tools
| Tool | Description |
|---|---|
transfer |
One-shot file transfer with optional pricing & marketplace listing (recommended) |
upload_file |
Upload a local file or base64 content (returns upload ID) |
upload_from_url |
Upload a file from a public URL |
get_upload_status |
Check the processing status of an upload |
get_download_url |
Get a fresh shareable download URL for a completed upload |
list_on_marketplace |
List an uploaded file on the public Payaion marketplace |
browse_marketplace |
Search and browse active marketplace listings |
get_payment_requirements |
Fetch price and payment terms for a listing before buying |
purchase_asset |
Finalize the purchase of a paid listing (real USDC) |
Upload Methods
Each upload tool supports three mutually exclusive input methods:
filePath— Local file path (most efficient — zero tokens)url— Public URL for the server to fetchcontent— Base64-encoded file content (fallback)
Pricing & Marketplace
pricePerDownload: 0.50 # USD, charged in USDC on Base
payoutAddress: "0x..." # only without an API key — see below
With an API key, earnings go to the payout wallet set in your dashboard and
payoutAddress is ignored. Without a key, it is the only way to get paid: pass
the wallet the 95% creator share should land in. Payments are final, so a
mistyped address is unrecoverable, and an exchange deposit address usually will
not credit a Base transfer arriving from a contract — use a wallet you control.
To list on the marketplace, use transfer with listing metadata:
listingTitle: "Dataset Q1 2026" # 3–120 chars
listingDescription: "Cleaned Q1 2026 sales data — deduplicated, currency-normalised, with a column dictionary."
listingCategory: "datasets" # reports | datasets | code | media | models | prompts | other
listingTags: ["sales", "q1"] # max 8, alphanumeric + hyphens
listingDescription must be 40–500 characters — shorter descriptions are rejected.
A price above 0 requires a wallet connected to your account.
Everything except list_on_marketplace, get_payment_requirements and
purchase_asset works without a key — those three move money and require one.
get_download_url needs a key: proving you own an upload requires an identity, and
a keyless caller has none. get_upload_status still works without one. This costs
a keyless agent nothing — the share link belongs to the file, not the caller, so
keep the downloadUrl from the upload response and nothing is lost.
Environment Variables
| Variable | Required | Default | Description |
|---|---|---|---|
PAYAION_API_KEY |
No | — | Raises limits and enables selling. Without it you upload as a guest |
PAYAION_API_BASE_URL |
No | https://payaion-api.fly.dev |
Payaion API endpoint — leave unset in normal use |
Limits
Enforced per request against the account's current plan, so an expired Pro is back on Basic limits immediately.
| Guest (no key) | Basic | Pro | |
|---|---|---|---|
| Per file | 100 MB | 500 MB | 1 GB |
| Total storage | — (per-file only) | 2 GB | 20 GB |
| Link lifetime | 12h/24h/7d/14d (default 24h) | 28 days | while subscribed |
| Live files | — | 200 | 2,000 |
| Marketplace / day | cannot sell | 5 list · 10 buy | 50 list · 100 buy |
Uploads are capped at 5/min with 2 in flight. Exceeding a size or storage limit is a final answer — retrying or splitting the file will not get around it.
CLI
payaion-mcp --help
payaion-mcp --version
Transport
Stdio only, same as the Node package — the client starts the server as a child process. Payaion also operates a hosted HTTP endpoint for remote MCP clients.
Protocol
Speaks both MCP eras from the same server, so no client has to move first:
| Client speaks | What happens |
|---|---|
2026-07-28 (stateless, no handshake) |
Served natively — no initialize, no session id |
2025-11-25 and earlier |
Served through the initialize handshake as before |
This matters because the eras do not degrade into each other: a client that only
speaks the new revision cannot fall back, and a client that only speaks the old
one cannot fall forward. Serving both is the only arrangement where nobody
breaks. Session ids, GET/DELETE on the endpoint, and SSE stream resumption
are gone with the new revision — the HTTP endpoint answers 405 for them.
Also Available
- Node.js:
npx -y @payaion/mcp(npm) - Docs: payaion.com/docs
License
MIT
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file payaion_mcp-1.0.9.tar.gz.
File metadata
- Download URL: payaion_mcp-1.0.9.tar.gz
- Upload date:
- Size: 21.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/7.0.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c41286aae299ce5718621c3efe995cc9288bf7bc8a6d01495b31d3d9c0f8cc4b
|
|
| MD5 |
99f613700f5fcedf024d2f5e20cbcb4f
|
|
| BLAKE2b-256 |
66da3a9b4555bbd87a17892a1c6b24731c990e77cb7ba0a175951daded2b9267
|
File details
Details for the file payaion_mcp-1.0.9-py3-none-any.whl.
File metadata
- Download URL: payaion_mcp-1.0.9-py3-none-any.whl
- Upload date:
- Size: 34.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/7.0.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1baf9aa3882eb84b63c7075a34e448af33f465850193b670f7adaf97b86cbe4e
|
|
| MD5 |
2240503f7adbf8c01033898a74847944
|
|
| BLAKE2b-256 |
742336bfd8436685602c990a9d0534f9d5634c57addc007e4b51821db13f0c06
|