{"apiVersion":"v1","directorySlug":"palmyr-mcp-e8cd058c04","title":"Palmyr","description":"Phone, email, compute, domains — paid with USDC via x402. Give your AI agent superpowers.","pageUrl":"https://www.mcpbundles.com/skills/palmyr-mcp-e8cd058c04","connectPath":"importable","connectAction":"import_server","catalogListing":false,"bundleSlug":null,"listingKind":"remote_mcp","kind":"provider","transportUrl":"https://palmyr.ai/mcp","hostedMcpUrl":null,"toolCount":33,"toolInventoryStatus":"observed","refreshedAt":"2026-11-03T13:26:00.516172+00:00","registryName":"ai.palmyr/palmyr-mcp-e8cd058c04","registryVersion":"2026.11.3","registryEligible":true,"tools":[{"name":"palmyr_pricing","description":"List every paid Palmyr capability and its live x402 price (USDC on Solana/Base). Free — no payment required.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"title":"Palmyr pricing","logicalName":"palmyr_pricing","displayName":"Palmyr pricing","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"palmyr_capabilities","description":"List the i402 capabilities Palmyr can plan and execute (the intent-resolver catalog). Free — no payment required.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"title":"Palmyr capabilities","logicalName":"palmyr_capabilities","displayName":"Palmyr capabilities","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"i402_plan","description":"State an intent, get a priced execution plan. The i402 orchestrator turns a natural-language outcome into an ordered list of x402 calls your agent signs and runs. Costs 0.10 USDC per plan, paid per-action via x402.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["intent","budget_usdc"],"properties":{"intent":{"type":"string"},"params":{"type":"object","additionalProperties":{}},"payment":{"type":"string"},"quality":{"type":"string"},"budget_usdc":{"type":"number"},"constraints":{"type":"object","additionalProperties":{}},"deadline_seconds":{"type":"number"},"allow_budget_exceeded":{"type":"boolean"}},"additionalProperties":false},"title":"i402 plan (intent resolver)","logicalName":"i402_plan","displayName":"i402 plan (intent resolver)","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"card_buy","description":"Buy a USA prepaid Visa card loaded with EXACTLY the requested balance ($5–$1000). Dynamic x402 price = amount + fee (3% min 0.50 USDC) — the 402 instructions carry the exact total. Returns 202 with an operation_id: poll card_status until ready (~10s), then fetch the number with card_get. US merchants only; non-reloadable (spend across transactions until depleted); max 6 cards per agent per rolling 24h (issuer limit).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["amount"],"properties":{"amount":{"type":"number"},"payment":{"type":"string"}},"additionalProperties":false},"title":"Buy prepaid Visa card","logicalName":"card_buy","displayName":"Buy prepaid Visa card","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"card_status","description":"Poll a card purchase started by card_buy (free). done=true when status is 'ready' (fetch details with card_get) or 'failed' (payment auto-refunded — see refund_status).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["card_id"],"properties":{"card_id":{"type":"string"}},"additionalProperties":false},"title":"Check card purchase status","logicalName":"card_status","displayName":"Check card purchase status","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"card_get","description":"Retrieve a prepaid card you own: full card number, CVV, expiry, live balance. Owner-verified (0.01 USDC ownership proof; the paying wallet must be the card's buyer).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["card_id"],"properties":{"card_id":{"type":"string"},"payment":{"type":"string"}},"additionalProperties":false},"title":"Get card number/CVV","logicalName":"card_get","displayName":"Get card number/CVV","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"card_list","description":"List cards owned by the paying wallet: status, last4, balance (never full numbers — those are per-card via card_get). 0.01 USDC ownership proof.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"payment":{"type":"string"}},"additionalProperties":false},"title":"List your prepaid cards","logicalName":"card_list","displayName":"List your prepaid cards","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"email_create_inbox","description":"Provision an email inbox at {name}@palmyr.ai (or a custom domain you own), keyed to your wallet. Costs 2.00 USDC, paid per-action via x402.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["name"],"properties":{"name":{"type":"string"},"domain":{"type":"string"},"payment":{"type":"string"},"walletAddress":{"type":"string"},"solanaPublicKey":{"type":"string"}},"additionalProperties":false},"title":"Create email inbox","logicalName":"email_create_inbox","displayName":"Create email inbox","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"email_create_temp","description":"Provision a cheap, disposable, receive-only email inbox — ideal for receiving a one-off verification or order-confirmation email during a checkout/signup flow. The address (a natural-looking handle on a dedicated inbox domain) is returned in the response. Auto-expires (default 24h). Reads return plaintext to the owning wallet (no E2E key to manage). Costs 0.50 USDC, paid per-action via x402.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"payment":{"type":"string"},"ttl_seconds":{"type":"number"}},"additionalProperties":false},"title":"Create disposable temp inbox","logicalName":"email_create_temp","displayName":"Create disposable temp inbox","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"email_extend_temp","description":"Rent another 7 days on a live disposable temp inbox — each call pushes expires_at exactly 7 days further (fixed, stackable, no cap). Owner-only; expired temp inboxes cannot be revived (buy a new one via email_create_temp). Costs 0.50 USDC, paid per-action via x402.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["inbox_id"],"properties":{"payment":{"type":"string"},"inbox_id":{"type":"string"}},"additionalProperties":false},"title":"Extend disposable temp inbox","logicalName":"email_extend_temp","displayName":"Extend disposable temp inbox","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"email_send","description":"Send an email from an inbox you own. Costs 0.08 USDC, paid per-action via x402.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["inbox_id","to","subject","body"],"properties":{"to":{"type":"string"},"body":{"type":"string"},"html":{"type":"string"},"payment":{"type":"string"},"subject":{"type":"string"},"inbox_id":{"type":"string"}},"additionalProperties":false},"title":"Send email","logicalName":"email_send","displayName":"Send email","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"email_read_messages","description":"Read decrypted messages from an inbox you own (payment wallet must match the inbox). Costs 0.02 USDC, paid per-action via x402.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["inbox_id"],"properties":{"limit":{"type":"number"},"cursor":{"type":"string"},"payment":{"type":"string"},"inbox_id":{"type":"string"}},"additionalProperties":false},"title":"Read email messages","logicalName":"email_read_messages","displayName":"Read email messages","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"phone_buy_number","description":"Provision a real phone number (SMS + voice) for your agent. Costs 3.00 USDC, paid per-action via x402.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["country"],"properties":{"country":{"type":"string"},"payment":{"type":"string"},"areaCode":{"type":"string"}},"additionalProperties":false},"title":"Buy phone number","logicalName":"phone_buy_number","displayName":"Buy phone number","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"phone_send_sms","description":"Send an SMS from a phone number you own. Costs 0.05 USDC, paid per-action via x402.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["number_id","to","body"],"properties":{"to":{"type":"string"},"body":{"type":"string"},"payment":{"type":"string"},"number_id":{"type":"string"}},"additionalProperties":false},"title":"Send SMS","logicalName":"phone_send_sms","displayName":"Send SMS","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"phone_read_messages","description":"Read SMS messages received on a phone number you own. Costs 0.02 USDC, paid per-action via x402.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["number_id"],"properties":{"payment":{"type":"string"},"number_id":{"type":"string"}},"additionalProperties":false},"title":"Read SMS messages","logicalName":"phone_read_messages","displayName":"Read SMS messages","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"wait_for_otp","description":"Wait for an SMS verification code / OTP to arrive on a Palmyr phone number you own, and return the parsed code. Blocks up to timeout_s (default 60, max 90) checking every ~2s — one call replaces hand-rolled polling of phone_read_messages during account signups and 2FA flows. Messages that arrived up to lookback_s seconds (default 10) BEFORE the call also match, so a code that landed early is not missed — pass lookback_s=0 when reusing a number across signups so a stale code can't be re-served. D","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["number_id"],"properties":{"pattern":{"type":"string"},"payment":{"type":"string"},"number_id":{"type":"string"},"timeout_s":{"type":"number"},"lookback_s":{"type":"number"}},"additionalProperties":false},"title":"Wait for SMS verification code (OTP)","logicalName":"wait_for_otp","displayName":"Wait for SMS verification code (OTP)","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"phone_temp_number","description":"Lease a cheap, instant, receive-only US phone number from a pool to receive one SMS verification code — the phone analogue of a disposable temp email inbox. $0.20 for 30 min (ttl_seconds, clamped 300–1800), returned to the pool at expiry; call wait_for_otp to catch the code. Good for one-time SMS verification and phone-gated signups. Works with major sites like Google, X, and Discord; some (Telegram, WhatsApp, OpenAI) may reject it as a VoIP number — for strict sites, buy a dedicated number with","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"payment":{"type":"string"},"ttl_seconds":{"type":"number"}},"additionalProperties":false},"title":"Lease disposable temp phone number","logicalName":"phone_temp_number","displayName":"Lease disposable temp phone number","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"phone_extend_temp","description":"Rent another 30 minutes on a live disposable temp number — each call pushes expires_at 30 min further (stackable up to 24h total lease). Owner-only; expired temp leases cannot be revived (lease a fresh one via phone_temp_number). Costs 0.20 USDC, paid per-action via x402.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["number_id"],"properties":{"payment":{"type":"string"},"number_id":{"type":"string"}},"additionalProperties":false},"title":"Extend disposable temp phone number","logicalName":"phone_extend_temp","displayName":"Extend disposable temp phone number","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"twitter_post","description":"Post a tweet from an X account you control (via injected session cookies). Costs 0.001 USDC, paid per-action via x402.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["account_id","cookies","text"],"properties":{"text":{"type":"string"},"cookies":{"type":"array"},"payment":{"type":"string"},"account_id":{"type":"string"},"community_id":{"type":"string"},"proxy_session_id":{"type":"string"}},"additionalProperties":false},"title":"Post to X (Twitter)","logicalName":"twitter_post","displayName":"Post to X (Twitter)","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"tiktok_post","description":"Post a video to a TikTok account you control (from video_base64 or video_url), immediately or scheduled. Async: returns an operation to poll with tiktok_operation_status. Costs 0.01 USDC, paid per-action via x402.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["account_id","caption"],"properties":{"caption":{"type":"string"},"cookies":{"type":"array"},"country":{"type":"string"},"payment":{"type":"string"},"privacy":{"type":"string"},"video_url":{"type":"string"},"account_id":{"type":"string"},"schedule_at":{"type":"string"},"video_base64":{"type":"string"},"proxy_session_id":{"type":"string"}},"additionalProperties":false},"title":"Post to TikTok","logicalName":"tiktok_post","displayName":"Post to TikTok","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"tiktok_operation_status","description":"Poll an async TikTok operation started by tiktok_post / tiktok_analytics / tiktok_cancel_scheduled (free). done=true when status is 'posted' / 'done' (carries video_url or the op's result) or 'failed' (payment auto-refunded — see refund_status).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["operation_id"],"properties":{"operation_id":{"type":"string"}},"additionalProperties":false},"title":"Check TikTok operation status","logicalName":"tiktok_operation_status","displayName":"Check TikTok operation status","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"tiktok_connect","description":"Attach a TikTok account by logging in ON THE SERVER, into that account's own persistent browser profile: returns a connect_url to hand a human, who scans the QR in the TikTok app. The recommended path — the browser that authenticates is the browser that later acts, and every other TikTok tool then works with `cookies` omitted (no jar to move). The paying wallet becomes the account's owner. Async: poll tiktok_connect_status with the returned token. Costs 0.01 USDC, paid per-action via x402.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["account_id"],"properties":{"tag":{"type":"string"},"country":{"type":"string"},"payment":{"type":"string"},"account_id":{"type":"string"},"proxy_session_id":{"type":"string"}},"additionalProperties":false},"title":"Connect a TikTok account (server-side login)","logicalName":"tiktok_connect","displayName":"Connect a TikTok account (server-side login)","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"tiktok_connect_status","description":"Poll a server-side login started by tiktok_connect (free). done=true when state is 'completed' (the account is live and usable with cookies omitted) or 'failed'.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["token"],"properties":{"token":{"type":"string"}},"additionalProperties":false},"title":"Check TikTok connect status","logicalName":"tiktok_connect_status","displayName":"Check TikTok connect status","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"tiktok_accounts","description":"List the TikTok accounts the paying wallet owns, with session health (status, profile_present, hours_since_success, last_error_code) — i.e. which of your accounts are still logged in. Costs 0.001 USDC, paid per-action via x402.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"tag":{"type":"string"},"payment":{"type":"string"}},"additionalProperties":false},"title":"List your TikTok accounts","logicalName":"tiktok_accounts","displayName":"List your TikTok accounts","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"tiktok_analytics","description":"Scrape per-post analytics (views, likes, comments, shares) for a TikTok account you control, and record a sample so tiktok_series can answer 'is it still growing'. Async: returns an operation to poll with tiktok_operation_status. Costs 0.005 USDC, paid per-action via x402.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["account_id"],"properties":{"cookies":{"type":"array"},"country":{"type":"string"},"payment":{"type":"string"},"account_id":{"type":"string"},"proxy_session_id":{"type":"string"}},"additionalProperties":false},"title":"Fetch TikTok analytics","logicalName":"tiktok_analytics","displayName":"Fetch TikTok analytics","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"tiktok_series","description":"Read the stored per-post history for an account you own: the full time series for one video (video_id), per-video growth over a window (hours), or the latest sample per video (neither). Samples come from tiktok_analytics runs, so history exists only for what you have scraped. Costs 0.001 USDC, paid per-action via x402.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["account_id"],"properties":{"hours":{"type":"number"},"payment":{"type":"string"},"video_id":{"type":"string"},"account_id":{"type":"string"}},"additionalProperties":false},"title":"Read TikTok engagement history","logicalName":"tiktok_series","displayName":"Read TikTok engagement history","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"tiktok_hooks","description":"Which caption openings actually earn views. Pass account_id or tag to measure YOUR accounts against their own median (0.001 USDC). Pass niche to report what is working in that niche across TikTok, needing no posting history — the answer for a brand-new account (0.05 USDC; tiktok_niches lists them, free). The two are never blended. Pass caption to classify a draft before posting. Paid per-action via x402 — the 402 challenge carries the exact price for the arguments you sent.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"tag":{"type":"string"},"niche":{"type":"string"},"caption":{"type":"string"},"payment":{"type":"string"},"account_id":{"type":"string"},"recency_days":{"type":"number"},"maturity_days":{"type":"number"}},"additionalProperties":false},"title":"TikTok hook analysis","logicalName":"tiktok_hooks","displayName":"TikTok hook analysis","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"tiktok_niches","description":"List the niches tiktok_hooks can report on, with how fresh each corpus is. Free — an agent should not pay to learn what it may ask for.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"title":"List TikTok niches","logicalName":"tiktok_niches","displayName":"List TikTok niches","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"tiktok_scheduled","description":"List the posts you have queued with tiktok_post(schedule_at), and whether each is still pending, due, or confirmed published. Palmyr's own record — TikTok exposes no way to read pending posts back, so edits made directly in TikTok Studio are invisible to it. Costs 0.001 USDC, paid per-action via x402.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"payment":{"type":"string"},"account_id":{"type":"string"},"include_done":{"type":"boolean"}},"additionalProperties":false},"title":"List scheduled TikTok posts","logicalName":"tiktok_scheduled","displayName":"List scheduled TikTok posts","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"tiktok_cancel_scheduled","description":"Cancel a post queued with tiktok_post(schedule_at). TikTok has no 'unschedule', so this deletes the held video — the cancellation is recorded only once that succeeded. Async: returns an operation to poll with tiktok_operation_status. Costs 0.001 USDC, paid per-action via x402.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["operation_id","account_id"],"properties":{"cookies":{"type":"array"},"country":{"type":"string"},"payment":{"type":"string"},"account_id":{"type":"string"},"operation_id":{"type":"string"},"proxy_session_id":{"type":"string"}},"additionalProperties":false},"title":"Cancel a scheduled TikTok post","logicalName":"tiktok_cancel_scheduled","displayName":"Cancel a scheduled TikTok post","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"domain_check","description":"Check domain availability and per-TLD pricing. Pass a full domain (example.com) or a bare name to scan popular TLDs. Free — no payment required.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["domain"],"properties":{"domain":{"type":"string"}},"additionalProperties":false},"title":"Check domain availability","logicalName":"domain_check","displayName":"Check domain availability","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"domain_register","description":"Register a domain to your wallet. Priced per TLD — the exact quote is returned in the 402 challenge, paid per-action via x402.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["domain"],"properties":{"domain":{"type":"string"},"payment":{"type":"string"}},"additionalProperties":false},"title":"Register domain","logicalName":"domain_register","displayName":"Register domain","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"compute_deploy","description":"Deploy a cloud VPS keyed to your wallet (optionally auto-installs OpenClaw/skills). Priced per server type — the exact quote is returned in the 402 challenge, paid per-action via x402.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["name","serverType"],"properties":{"name":{"type":"string"},"image":{"type":"string"},"install":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"payment":{"type":"string"},"location":{"type":"string"},"serverType":{"type":"string"},"sshPublicKey":{"type":"string"}},"additionalProperties":false},"title":"Deploy VPS","logicalName":"compute_deploy","displayName":"Deploy VPS","annotations":{"untrustedContentHint":true,"readOnlyHint":true}}],"toolSource":"directory_preview","agentAction":"both","installLinks":[{"id":"cursor","label":"Cursor","href":"cursor://anysphere.cursor-deeplink/mcp/install?name=Palmyr&config=eyJ1cmwiOiAiaHR0cHM6Ly9wYWxteXIuYWkvbWNwIn0%3D"},{"id":"vscode","label":"VS Code","href":"vscode:mcp/install?%7B%22name%22%3A%22Palmyr%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fpalmyr.ai%2Fmcp%22%7D"},{"id":"vscode-insiders","label":"VS Code Insiders","href":"vscode-insiders:mcp/install?%7B%22name%22%3A%22Palmyr%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fpalmyr.ai%2Fmcp%22%7D"},{"id":"claude-web","label":"Claude.ai","href":"https://claude.ai/customize/connectors?modal=add-custom-connector&connectorName=Palmyr&connectorUrl=https%3A%2F%2Fpalmyr.ai%2Fmcp"},{"id":"codex","label":"Codex","copyText":"codex mcp add \"Palmyr\" --url \"https://palmyr.ai/mcp\""},{"id":"chatgpt","label":"ChatGPT","href":"https://www.mcpbundles.com/docs/integrations/chatgpt"}],"catalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/palmyr-mcp-e8cd058c04","callUrl":"https://www.mcpbundles.com/api/directory/v1/servers/palmyr-mcp-e8cd058c04/tools/{tool}","mcpServerUrl":"https://palmyr.ai/mcp","liveCatalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/palmyr-mcp-e8cd058c04?live=1"}