Skip to main content
Glama
PayPls MCP Server

PayPls MCP Server

by natalieflora

PayPls MCP Server

MIT License npm version Circle USDC Hackathon 2026

MCP (Model Context Protocol) server that enables AI agents to manage Bitcoin and USDC payments through PayPls.

๐Ÿ† Built for the Circle USDC Hackathon 2026 โ€” View Submission

What is this?

โš ๏ธ Important: This MCP server does NOT enforce spending limits or approval requirements. All limits are configured and enforced by the PayPls backend. Configure your limits in the PayPls Dashboard before giving agents access to real funds.

This server allows AI assistants like Claude to:

  • ๐Ÿ’ฐ Check wallet balances (BTC and USDC)

  • ๐Ÿ“ค Send payments with human approval

  • ๐Ÿ“ฅ Generate receive addresses

  • ๐Ÿ” Track transaction status

All transactions can be configured to require human approval above certain thresholds, giving you control while enabling AI autonomy for small payments.

Related MCP server: AgentBTC MCP Server

Resource

URL

๐ŸŒ Landing Page

paypls.io

๐Ÿงช Testnet Dashboard

test.paypls.io

๐Ÿ“ก API (Production)

api.paypls.io

๐Ÿ“– Integration Guide

paypls.io/SKILL.md

๐Ÿ† Hackathon Submission

Moltbook

๐Ÿ’ป Source Code

GitHub

Installation

npm install -g @paypls/mcp-server

Or run directly with npx:

npx @paypls/mcp-server

Configuration

1. Get your API token

Sign up at paypls.io (or test.paypls.io for testnet) and generate an API token in Settings โ†’ API Keys.

2. Set environment variables

# Required: Your PayPls API token (starts with pp_)
PAYPLS_TOKEN=pp_your_token_here

# Optional: API URL (defaults to https://api.paypls.io)
# For testnet, use: https://paypls-api-dev.nfwalls.workers.dev
PAYPLS_API_URL=https://api.paypls.io

3. Configure Claude Desktop

Add to your Claude Desktop config file:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "paypls": {
      "command": "npx",
      "args": ["@paypls/mcp-server"],
      "env": {
        "PAYPLS_TOKEN": "pp_your_token_here"
      }
    }
  }
}

Or if installed globally:

{
  "mcpServers": {
    "paypls": {
      "command": "paypls-mcp",
      "env": {
        "PAYPLS_TOKEN": "pp_your_token_here"
      }
    }
  }
}

Available Tools

Tool

Description

wallet_balance

Check BTC or USDC balance of your wallet

wallet_send_btc

Send Bitcoin to an address

wallet_send_usdc

Send USDC to an EVM address

wallet_receive

Get an address to receive funds

wallet_tx_status

Check transaction status

Example Usage

Once configured, you can ask Claude things like:

  • "What's my Bitcoin balance?"

  • "Send 10,000 sats to tb1q... for the API subscription"

  • "Send $25 USDC to 0x... for the design work"

  • "Generate a receive address for my wallet"

  • "Check the status of transaction abc-123"

Security

  • Human approval: Configure auto-approve limits in the PayPls dashboard. Transactions above the limit require explicit approval via Telegram.

  • Justifications: Every send requires a justification that's logged and shown during approval.

  • Bucket isolation: Use separate buckets to limit agent access to specific funds.

  • Token permissions: API tokens can be scoped to specific buckets.

Handling Approval Flows

When a transaction exceeds auto-approve limits, the API returns:

{
  "status": "pending_approval",
  "transaction_id": "...",
  "message": "Awaiting human approval via Telegram",
  "expires_at": "2026-02-04T05:00:00Z"
}

Your agent should:

  1. Inform the user that approval is needed

  2. Optionally poll wallet_tx_status to check status

  3. NOT retry the same transaction (use idempotency_key instead)

Development

# Clone the repository
git clone https://github.com/n8m8/paypls-mcp.git
cd paypls-mcp

# Install dependencies
npm install

# Run in development mode
PAYPLS_TOKEN=pp_your_token npm run dev

# Build
npm run build

# Type check
npm run typecheck

API Endpoints Used

This MCP server communicates with the PayPls Agent API:

MCP Tool

API Endpoint

wallet_balance

GET /agent/balance

wallet_send_btc

POST /agent/send

wallet_send_usdc

POST /agent/send

wallet_receive

POST /agent/receive

wallet_tx_status

GET /agent/tx/:id

Full API documentation: paypls.io/SKILL.md

Environment Variables

Variable

Required

Default

Description

PAYPLS_TOKEN

Yes

-

Your PayPls API token (pp_xxx)

PAYPLS_API_URL

No

https://api.paypls.io

API endpoint URL

Testnet

Currently running on Bitcoin testnet (tbtc) and Ethereum Sepolia (USDC). Perfect for development and testing!

Testnet API: https://paypls-api-dev.nfwalls.workers.dev Testnet Dashboard: test.paypls.io

Support

License

MIT


Available Tools

6 tools
wallet_balanceA

Get the balance of a wallet bucket. Returns balance in the native unit (sats for BTC, dollars for USDC) plus approximate USD value.

Inputs: bucket_id, token.

wallet_list_bucketsA

List all wallet buckets you have access to, with their balances and auto-approve limits for both BTC and USDC.

Inputs: no named parameters.

wallet_receiveB

Get an address to receive funds into a bucket. Specify token type to get the appropriate address format.

Inputs: bucket_id, token.

wallet_send_btcA

Send Bitcoin to an address. May require human approval depending on amount and bucket settings. Always provide a clear justification.

Inputs: address (required), amount_sats (required), justification (required), bucket_id.

wallet_send_usdcA

Send USDC (stablecoin) to an address. May require human approval depending on amount. USDC is ideal for stable-value payments.

Inputs: address (required), amount_usdc (required), justification (required), bucket_id.

wallet_tx_statusB

Check the status of a transaction by its ID.

Inputs: transaction_id (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelogโ€ฆ

    TDQS

    A4/5.0

    Scored across 6 tools

    Disambiguation5/5

    Every tool has a clearly distinct purpose with no ambiguity. The tools are well-defined by their specific actions (balance, list, receive, send BTC, send USDC, transaction status) and target resources (wallets/buckets), making it easy for an agent to select the correct tool for any given task.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern with a 'wallet_' prefix, such as wallet_balance and wallet_send_btc. This uniformity enhances readability and predictability, allowing agents to easily understand and navigate the toolset.

    Tool Count5/5

    With 6 tools, the server is well-scoped for its wallet management domain. Each tool earns its place by covering essential operations like checking balances, listing buckets, receiving funds, sending different currencies, and checking transaction status, without being overly sparse or bloated.

    Completeness5/5

    The toolset provides complete CRUD/lifecycle coverage for wallet operations, including retrieval (balance, list), creation (receive), update (send actions), and status checks. There are no obvious gaps, ensuring agents can handle core workflows without dead ends.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      B
      quality
      D
      maintenance
      Payment & Transaction Tools that allow AI agents to send, receive, and request payments
      11
      25 npm
      2
      Apache 2.0
    • A
      license
      A
      quality
      B
      maintenance
      Connects AI agents to the PayBot payment infrastructure, enabling automated USDC transactions and payment status management. It provides tools for submitting payments, tracking transaction histories, and monitoring payment IDs via the Model Context Protocol.
      4
      20 npm
      Apache 2.0