Skip to main content
Glama
kinance

circle-agent-stack-mcp

by kinance

circle-agent-stack-mcp

MCP server for Circle's Agent Stack. Create wallets, set spend policies, send USDC, and pay x402-priced endpoints — all from a tool call.

npx circle-agent-stack-mcp

Tools

Tool

What it does

circle_wallet_create

Create an agent wallet (dev/hosted/smart)

circle_wallet_list

List wallets with USDC balances

circle_balance

Balance + last 10 txns for a wallet

circle_policy_set

Set daily cap, x402 cap, allow/block lists

circle_transfer_usdc

Send USDC to an on-chain address

circle_x402_pay

Pay an x402-priced endpoint and return its response

Related MCP server: x402-mcp

Quickstart

You need the Circle CLI installed and authenticated:

npm install -g @circle-fin/circle-cli
circle login
export CIRCLE_API_KEY=your_key_here

Claude Desktop

{
  "mcpServers": {
    "circle": {
      "command": "npx",
      "args": ["-y", "circle-agent-stack-mcp"],
      "env": {
        "CIRCLE_API_KEY": "your_key_here"
      }
    }
  }
}

Claude Code

claude mcp add circle -- npx -y circle-agent-stack-mcp

Example

You: Create a dev wallet called eva-treasury, set a $5 daily cap and $0.10 x402 cap,
     then fetch today's BTC signal from the x402 endpoint at https://signals.example.co/btc

Claude:
→ circle_wallet_create("eva-treasury", type="dev")
  { wallet_id: "wal_abc123", address: "0x..." }

→ circle_policy_set("wal_abc123", daily_cap_usdc=5, x402_cap_usdc=0.10)
  { status: "applied" }

→ circle_x402_pay("wal_abc123", "https://signals.example.co/btc", max_price_usdc=0.10)
  { signal: "LONG", confidence: 0.72, price_paid_usdc: 0.05 }

Today's BTC signal: LONG (72% confidence). Paid $0.05.

Self-hosting with x402 paywall

http-server.ts wraps the same tools behind an x402 paywall — agents pay per call in USDC rather than using an API key. Useful if you want to expose Circle tooling as a paid service.

CIRCLE_PAYOUT_ADDRESS=0x... npm run start:http

To test the x402 flow locally, run the toy demo server in examples/x402-demo-server.mjs.

How it works

v0.1 shells out to the Circle CLI for all operations. This keeps auth handling out of this repo and avoids reimplementing the API client before the tool surface is validated. v0.2 will switch to direct HTTP via @circle-fin/circle-sdk.

Security

Your Circle API key has spend authority. Always:

  • Set daily_cap_usdc before enabling automated payments

  • Start on type="dev" wallets, not mainnet

  • Review the allowlist before moving to production

  • Don't commit CIRCLE_API_KEY

Roadmap

  • circle_nanopayment_stream — streaming x402 payments for per-token billing

  • circle_skills_list / circle_skills_call — Circle Skills marketplace

  • Direct HTTP API mode (v0.2) — remove CLI dependency

  • Multi-chain — EURC, CCTP cross-chain transfers

Available Tools

6 tools
circle_balanceA

Get USDC balance and the last 10 transactions for a specific wallet.

ParametersJSON Schema
NameRequiredDescriptionDefault
wallet_idYesWallet ID to check balance for

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It states the tool retrieves balance and transactions, implying a read operation, but does not explicitly confirm read-only nature or mention any side effects, rate limits, or authentication requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no unnecessary words. Every part earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter tool with no output schema, the description adequately covers the what (balance and transactions) and the limit (last 10). Missing details like return format or authentication are minor given the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (wallet_id described as 'Wallet ID to check balance for'). The description adds 'for a specific wallet' but does not provide new parameter-level semantics beyond what the schema already offers. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb (Get), resource (USDC balance and last 10 transactions), and scope (for a specific wallet). It effectively differentiates from sibling tools like circle_transfer_usdc (transfer) and circle_wallet_list (list wallets) by specifying the exact operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage requires a wallet_id but does not provide explicit guidance on when to use this tool versus alternatives (e.g., circle_wallet_list for all wallets). No exclusions or prerequisites are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

circle_policy_setA

Set spend controls on a Circle wallet: daily cap, per-x402-call cap, and address allow/block lists. Always set a daily_cap before enabling automated payments.

ParametersJSON Schema
NameRequiredDescriptionDefault
wallet_idYesWallet ID to apply the policy to
daily_cap_usdcYesMaximum USDC spend per 24h rolling window
x402_cap_usdcYesMaximum USDC per single x402 micropayment
allowlistNoOn-chain addresses this wallet may send to (empty = no restriction)
blocklistNoOn-chain addresses this wallet may never send to

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It only states the action ('set spend controls') without disclosing behavioral traits like destructive potential, idempotency, authorization needs, or whether changes override or merge with existing policies.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with purpose and key items. Every sentence adds value without extraneous content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Description covers the essence but lacks details on return values (no output schema) and behavior on duplicate calls (overwrite vs merge). For a 5-parameter tool with moderate complexity, it is adequate but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with clear parameter descriptions. The description reiterates the parameter types (daily cap, per-call cap, lists) but adds no new meaning beyond what the schema already provides. Baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states verb 'Set' and resource 'spend controls on a Circle wallet' with specific items: daily cap, per-x402-call cap, allow/block lists. It distinguishes from sibling tools like balance, transfer, and wallet creation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Includes a usage hint ('Always set a daily_cap before enabling automated payments') but does not explicitly specify when to use this tool versus alternatives or when not to use it. Guidance is implied but not comprehensive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

circle_transfer_usdcA

Send USDC from a Circle agent wallet to an on-chain address. Confirm wallet policy allows the recipient address and the amount is within daily cap before calling.

ParametersJSON Schema
NameRequiredDescriptionDefault
wallet_idYesSource wallet ID
to_addressYesRecipient on-chain address (0x...)
amount_usdcYesAmount in USDC (e.g. 5.00 = five dollars)
memoNoOptional transfer memo

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It correctly identifies the action as sending USDC (destructive) and mentions preconditions. However, it doesn't disclose details like fees, irreversibility, or synchronous behavior. Adequate but not comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero waste. First sentence states purpose, second gives usage instruction. Efficiently conveys key information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description covers action and precondition but lacks detail on expected response, failure modes, or side effects. For a financial transfer, more completeness would be beneficial but the description is minimally adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with clear descriptions for all 4 parameters. The tool description adds no additional meaning beyond the schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Send', the resource 'USDC', and the context 'from a Circle agent wallet to an on-chain address'. It distinguishes from sibling tools (e.g., circle_balance for balance, circle_x402_pay for different payment method).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit preconditions: confirm wallet policy allows the recipient and amount is within daily cap. This guides when to use, though it doesn't explicitly state when not to use or mention alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

circle_wallet_createA

Create a new Circle agent wallet. Returns the wallet ID and on-chain address. Start with type='dev' for testnet exploration.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesHuman-readable wallet name (e.g. 'eva-treasury')
typeNoWallet type: 'dev' for testnet, 'hosted' for custodial, 'smart' for on-chain programmabledev

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must cover behavioral traits. It states the return value (wallet ID and address), which is good, but it does not disclose whether the operation is idempotent, irreversible, requires any permissions, or has side effects on existing resources. The transparency is adequate but not thorough.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with exactly two sentences. The first sentence immediately states the action and output, and the second provides a key usage recommendation. Every word earns its place with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has only two parameters, no output schema, and no annotations, the description covers the essential information: what it does, what it returns, and a practical hint. It is missing details on error handling, idempotency, or limits, but for a creation tool with low complexity, it is reasonably complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage for both parameters. The description adds a practical tip for the 'type' parameter ('Start with type='dev'') and an example for 'name', but these do not significantly extend the semantic meaning beyond what the schema already provides. The baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Create a new Circle agent wallet') and the output ('Returns the wallet ID and on-chain address'). This directly distinguishes it from sibling tools like 'circle_wallet_list' (list) or 'circle_transfer_usdc' (transfer), which serve different purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description advises to 'Start with type='dev' for testnet exploration', which is a helpful usage hint. However, it does not explicitly contrast this tool with alternatives, nor does it specify when to avoid using it (e.g., if a wallet already exists). The guidance is present but limited.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

circle_wallet_listA

List all Circle agent wallets and their USDC balances.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral transparency. It only states the action and result, but does not disclose authentication needs, rate limits, whether it returns all wallets or only active ones, or any side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no wasted words. It is front-loaded and easily scannable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has zero parameters, no output schema, and a simple list operation, the description fully covers what the tool does and what it returns. No gaps are evident.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, and schema coverage is 100%. Per guidelines, 0 parameters yields a baseline of 4. No additional parameter info is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'List all Circle agent wallets and their USDC balances,' which is a specific verb+resource combination. It clearly distinguishes from sibling tools like circle_balance (single balance) and circle_transfer_usdc (transfer).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. The description does not mention conditions for use, prerequisites, or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

circle_x402_payA

Pay an x402-priced HTTP endpoint using USDC from a Circle wallet, then return the response body. The server negotiates price, pays atomically, and fetches the content in one step. Use max_price_usdc as a safety cap — the call fails if the endpoint quotes higher.

ParametersJSON Schema
NameRequiredDescriptionDefault
wallet_idYesCircle wallet ID to pay from
endpoint_urlYesThe x402-priced HTTP endpoint URL to call
max_price_usdcYesRefuse if the endpoint quotes more than this price in USDC
methodNoHTTP method for the paid requestGET
bodyNoRequest body for POST calls (JSON string)

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses that the server negotiates price, pays atomically, and fetches content in one step, and explains the failure behavior when the quote exceeds max_price_usdc. It does not mention irreversibility or timing, but is fairly transparent for a payment tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no wasted words. The first sentence clearly states the main purpose, and the second adds a critical constraint. Concise and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Even without an output schema, the description explains the return value (response body). It covers all necessary context for an agent to understand inputs, behavior, and failure mode. No gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds slight context (e.g., max_price_usdc as safety cap, body for POST), but mostly restates what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('pay') and resource ('x402-priced HTTP endpoint'), and clearly distinguishes from sibling tools like circle_transfer_usdc (plain USDC transfer) and circle_balance (balance check).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use the tool (paying an x402 endpoint) and mentions max_price_usdc as a safety cap. It does not explicitly state when not to use it or name alternatives, but the sibling list provides implicit differentiation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 6 tool updatesv0.1.1
    • First observedcircle_balance
    • First observedcircle_policy_set
    • First observedcircle_transfer_usdc
    • First observedcircle_wallet_create
    • First observedcircle_wallet_list
    • First observedcircle_x402_pay

TDQS

A4/5.0
Disambiguation5/5

Each tool targets a distinct action: balance check, policy setting, USDC transfer, wallet creation, wallet listing, and x402 payment. There is no overlap in purpose.

Naming Consistency5/5

All tools follow a consistent snake_case naming pattern with 'circle_' prefix and verb_noun structure (e.g., circle_balance, circle_policy_set). No style mixing.

Tool Count5/5

6 tools is well-scoped for managing Circle agent wallets, covering creation, listing, balance, transfers, policy, and x402 payments. Neither too few nor too many.

Completeness4/5

Covers core wallet operations (create, list, balance, transfer, policy, x402) but lacks update or delete wallet functionality. Minor gap for full lifecycle.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP server for AgentPay — the payment gateway for autonomous AI agents. Fund a wallet once, give your agent the key, and it discovers, provisions, and pays for tool APIs on its own. One key, every tool.
    112
    1
    MIT
  • A
    license
    C
    quality
    D
    maintenance
    MCP server bringing 100+ x402-paid APIs to AI agents (Claude, Cursor, MCP-aware clients). Auto-discovers tools from CDP Bazaar; handles USDC micropayments on Base.
    100
    60
    1
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/kinance/circle-agent-stack-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server