Skip to main content

Tools Reference

The LedgerOS MCP server provides 12 tools organized by function.

Agent Tools

These tools are available with both API keys and agent tokens.

ledger_status

Get user verification status, balance, and spending eligibility.
{
  "userId": "user_xxx"
}
Response:
{
  "userId": "user_xxx",
  "verificationStatus": "approved",
  "balance": 50000,
  "currency": "USD",
  "canSpend": true
}

ledger_funding

Manage account funding. Check balance and get deposit instructions.

Actions

ActionDescriptionRequired Parameters
balanceCheck available fundsuserId
cryptoGet USDC deposit addressuserId
achBank transfer (coming soon)userId
wireWire transfer (coming soon)userId

Check balance

{
  "action": "balance",
  "userId": "user_xxx"
}
Response:
{
  "available": 50000,
  "currency": "USD"
}

Get crypto deposit address

{
  "action": "crypto",
  "userId": "user_xxx",
  "chain": "base"
}
Optional: chain - "base" (default), "ethereum", or "solana" Response:
{
  "method": "crypto",
  "address": "0x1234...abcd",
  "chain": "base",
  "asset": "USDC",
  "message": "Send USDC to this address on base to fund the account."
}

ACH / Wire (Coming Soon)

{
  "action": "ach",
  "userId": "user_xxx"
}
Response:
{
  "method": "ach",
  "status": "coming_soon",
  "message": "ACH bank transfers are not yet available. Use crypto deposits for now."
}

ledger_card

Manage virtual cards. Use the action parameter to specify the operation.

Actions

ActionDescriptionRequired Parameters
createCreate a new cardpurpose
listList all cards-
detailsGet PAN/CVV/expirycardId, summary
freezeFreeze a cardcardId
unfreezeUnfreeze a cardcardId
closeClose a cardcardId
updateUpdate card limitscardId

Create a card

{
  "action": "create",
  "purpose": "Buy office supplies on Amazon",
  "type": "single",
  "maxAmount": 5000
}
Optional parameters:
  • type: "single" (default) or "multi"
  • maxAmount: Maximum spend in cents (single-use)
  • limitPerDay: Daily limit in cents (multi-use)
  • limitPerMonth: Monthly limit in cents (multi-use)
  • ttlMinutes: Auto-expire after N minutes
  • requireIntent: Require intent before revealing details
  • policyId: Apply a policy template

Get card details

{
  "action": "details",
  "cardId": "card_xxx",
  "summary": "Purchasing office supplies",
  "expectedAmount": 4500
}
Response:
{
  "pan": "4111111111111234",
  "cvv": "123",
  "expiry": "12/27",
  "billingAddress": {
    "line1": "123 Main St",
    "city": "San Francisco",
    "state": "CA",
    "postalCode": "94102",
    "country": "US"
  }
}

List cards

{
  "action": "list",
  "status": "active"
}

Freeze/Unfreeze/Close

{
  "action": "freeze",
  "cardId": "card_xxx",
  "reason": "Suspicious activity"
}

ledger_intent

Declare spending intents. Required for cards with requireIntent: true.

Declare intent

{
  "action": "declare",
  "cardId": "card_xxx",
  "summary": "Order lunch on DoorDash",
  "expectedAmount": 2500,
  "expectedMerchant": "DoorDash"
}

List intents

{
  "action": "list",
  "cardId": "card_xxx",
  "status": "pending"
}

ledger_transactions

Query transaction history.

List transactions

{
  "cardId": "card_xxx",
  "limit": 10
}

Get single transaction

{
  "transactionId": "txn_xxx"
}

ledger_onboarding

Get KYC verification link for user identity verification.
{
  "userId": "user_xxx"
}
Response:
{
  "verificationUrl": "https://persona.com/verify/...",
  "message": "Share this link with the user to complete identity verification."
}
For deposit addresses and funding, use the ledger_funding tool.

ledger_challenges

Get pending 3DS authentication challenges.
{}
Response:
{
  "challenges": [
    {
      "challengeId": "chl_xxx",
      "cardId": "card_xxx",
      "otp": "847293",
      "merchantName": "Amazon",
      "amount": 2999,
      "expiresAt": 1704067200
    }
  ],
  "message": "Enter the OTP code on the merchant's 3DS verification page."
}

Admin Tools

These tools are only available with API keys (not agent tokens).

ledger_users

Manage users.

Create user

{
  "action": "create",
  "externalId": "your-user-id",
  "firstName": "John",
  "lastName": "Doe",
  "email": "[email protected]"
}
Optional: dateOfBirth, addressLine1, city, state, postalCode, country

Get user

{
  "action": "get",
  "userId": "user_xxx"
}

List users

{
  "action": "list",
  "limit": 20
}

ledger_agents

Manage AI agents.

Register agent

{
  "action": "register",
  "externalId": "my-shopping-agent",
  "userId": "user_xxx",
  "name": "Shopping Assistant",
  "description": "Helps users buy products online"
}

Get agent

{
  "action": "get",
  "agentId": "agent_xxx"
}

List agents

{
  "action": "list",
  "userId": "user_xxx"
}

Suspend agent

{
  "action": "suspend",
  "agentId": "agent_xxx"
}

ledger_policies

Manage card policy templates.

Create policy

{
  "action": "create",
  "name": "Standard Shopping",
  "type": "single",
  "maxAmount": 10000,
  "requireIntent": true
}

List policies

{
  "action": "list"
}

ledger_risk

Manage risk detection settings.

Get current config

{
  "action": "get"
}

Apply preset

{
  "action": "preset",
  "preset": "moderate"
}
Available presets: permissive, moderate, strict, paranoid

Update settings

{
  "action": "update",
  "velocityEnabled": true,
  "velocityMaxPerHour": 20,
  "velocityAction": "freeze_card",
  "dryRun": false
}

ledger_webhooks

Manage webhook endpoints.

Create webhook

{
  "action": "create",
  "url": "https://your-app.com/webhooks",
  "events": ["transaction.completed", "card.frozen"]
}

List webhooks

{
  "action": "list"
}

Delete webhook

{
  "action": "delete",
  "webhookId": "wh_xxx"
}