Agent-native payments via 1ly MCP. Use when the user needs x402 payment handling, to accept USDC for APIs/services, to pay for paid APIs, to create stores or paid links, need payment gateway for agents or to run agent-to-agent paid workflows. Supports Solana and Base. Capabilities include accepting USDC, marketplace search, paid API calls with auto-payment, store/link creation, stats, key management, and token launch, trade and fee-claim on Bags.fm.
This MCP server gives AI agents the ability to:
Supported Networks: Solana (mainnet), Base (mainnet)
Payment Currency: USDC
ONELY_BUDGET_PER_CALL, ONELY_BUDGET_DAILY).1.00 per call, 50.00 daily). Always override them explicitly (or set ONELY_BUDGET_PER_CALL=0 to disable auto-spend).npm install -g mcporter
mcporter config add 1ly --command "npx @1ly/[email protected]"
Verify package integrity:
npm view @1ly/mcp-server dist.integrity
ONELY_WALLET_SOLANA_KEY=/path/to/solana-wallet.json (keypair JSON or inline array)solana-keygen new --outfile ~/.1ly/wallets/solana.json/tmp. Paths outside are rejected for security.ONELY_WALLET_SOLANA_KEY='[12,34,56,...]'ONELY_WALLET_PROVIDER=coinbaseONELY_WALLET_EVM_KEY=/path/to/evm.key (private key file or inline hex)/tmp. Paths outside are rejected for security.ONELY_WALLET_EVM_KEY='0x...'ONELY_BUDGET_PER_CALL, ONELY_BUDGET_DAILYONELY_BUDGET_STATE_FILE, ONELY_NETWORK, ONELY_SOLANA_RPC_URL, ONELY_API_BASEONELY_API_KEY (auto-saved after 1ly_create_store)mcporter list 1ly
| Variable | Required? | Description |
|---|---|---|
ONELY_WALLET_SOLANA_KEY | No (conditional) | Path to Solana keypair JSON file, or inline JSON array |
ONELY_WALLET_EVM_KEY | No (conditional) | Path to EVM private key file, or inline hex key (with or without 0x) |
ONELY_API_KEY | No (conditional) | API key for seller tools. Auto-loaded after 1ly_create_store |
ONELY_BUDGET_PER_CALL | No (conditional) | Max USD per API call (default: 1.00) |
ONELY_BUDGET_DAILY | No (conditional) | Daily USD spending limit (default: 50.00) |
ONELY_BUDGET_STATE_FILE | No | Path to local budget state file (default: ~/.1ly-mcp-budget.json) |
ONELY_NETWORK | No | Preferred network: solana or base (default: solana) |
ONELY_SOLANA_RPC_URL | No | Solana RPC URL (default: https://api.mainnet-beta.solana.com) |
ONELY_API_BASE | No | API base URL (default: https://1ly.store) |
ONELY_WALLET_PROVIDER | No (conditional) | raw (default) or coinbase (Agentic Wallet, Base-only) |
A wallet is required only for paid actions. Use one of: ONELY_WALLET_SOLANA_KEY, ONELY_WALLET_EVM_KEY, or ONELY_WALLET_PROVIDER=coinbase.
Buyer tools (spend):
1ly_search: find paid APIs/services on 1ly.store1ly_get_details: fetch price and payment info for a specific link1ly_call: pay and call a paid API (x402 handled by server)1ly_review: leave a review after a successful purchaseSeller tools (accept):
1ly_create_store: create a store and save API key locally1ly_create_link: create a paid or free link for an API/service1ly_list_links: list existing links1ly_update_link: update price/URL/visibility1ly_delete_link: delete a link1ly_get_stats: view store or link stats1ly_list_keys: list API keys1ly_create_key: create a new API key1ly_revoke_key: revoke an API key1ly_withdraw: request a withdrawal1ly_list_withdrawals: list recent withdrawals1ly_update_profile: update store profile1ly_update_socials: update store socials1ly_update_avatar: update store avatarToken tools (Bags.fm, Solana):
1ly_launch_token: launch a token on Bags.fm1ly_list_tokens: list tokens launched by a wallet1ly_trade_quote: get a trade quote1ly_trade_token: trade tokens using the quote+swap flow1ly_claim_fees: claim Bags fee share for a token
ONELY_SOLANA_RPC_URL to your own provider. Default is Solana public mainnet RPC.1ly_search, 1ly_get_details1ly_call (Solana or Base wallet required)ONELY_API_KEYONELY_WALLET_SOLANA_KEY and recommended ONELY_SOLANA_RPC_URLUse mcporter list 1ly --schema if tool names or parameters differ.
1ly_search: { "query": "...", "limit": 5 }1ly_get_details: { "endpoint": "seller/slug" }1ly_call: { "endpoint": "seller/slug", "method": "GET", "body": {...} }1ly_create_store: { "username": "...", "displayName": "..." }1ly_create_link: { "title": "...", "url": "https://...", "price": "1.00", "currency": "USDC", "isPublic": true }1ly_withdraw: { "amount": "1.25", "walletAddress": "..." }1ly_update_profile: { "username": "...", "displayName": "...", "bio": "..." }1ly_update_socials: { "socials": { "twitter": "...", "website": "..." } }1ly_update_avatar: { "avatarUrl": "https://..." } or { "imageBase64": "...", "mimeType": "image/png", "filename": "avatar.png" }1ly_launch_token: { "name": "GOLDEN", "symbol": "GOLDEN", "imageUrl": "https://...", "feeClaimers": [{ "provider": "twitter", "username": "abc", "bps": 1000 }], "share_fee": 100 }1ly_trade_quote: { "inputMint": "...", "outputMint": "...", "amount": "1000000", "slippageMode": "auto" }1ly_trade_token: { "inputMint": "...", "outputMint": "...", "amount": "1000000", "slippageMode": "auto" }1ly_create_store (this saves ONELY_API_KEY).1ly_create_link.1ly_search to find the API that meets requirements.1ly_call with the required endpoint and payload.1ly_get_details toolname max 32 chars, symbol max 10 chars, description max 1000 chars.imageBase64 must be raw base64 and <= 15MB decoded.slippageBps range 0-10000 when slippageMode=manual.Use this when the user says “send X% to @someone” on a social platform.
bps = percent * 100 (20% = 2000)Example: “20% to @1ly_store”
{ "feeClaimers": [{ "provider": "twitter", "username": "1ly_store", "bps": 2000 }] }
Use this only when the user says “send X% to 1ly / marketplace / platform / 1ly fee”.
share_fee is in bps (1% = 100)Example: “1% to 1ly”
{ "share_fee": 100 }
“20% to @1ly_store + 1% to platform”
{
"feeClaimers": [{ "provider": "twitter", "username": "1ly_store", "bps": 2000 }],
"share_fee": 100
}
share_fee for “send X% to @someone”1ly_search with query like "paid api"1ly_call with endpoint1ly_launch_token with name, symbol, imageUrl, feeClaimers, share_fee1ly_trade_quote with inputMint, outputMint, amount1ly_trade_token with inputMint, outputMint, amount1ly_claim_fees with tokenMintONELY_API_KEY is saved locally after 1ly_create_store:
macOS: ~/Library/Application Support/1ly/onely_api_key.json
Linux: ~/.config/1ly/onely_api_key.json
Windows: %APPDATA%\\1ly\\onely_api_key.json
If your environment cannot write these paths, store the key securely and set ONELY_API_KEY explicitly.