Skip to main content
Nebula exposes 23 MCP tools that give your AI agent a full Stellar blockchain wallet with payments, yield, spending controls, and on-chain identity. Every tool is invoked directly from your agent’s chat interface — just say “Use <tool_name> from Nebula”. No code required. The sections below document every tool’s parameters, behavior, spending-limit status, and an example chat prompt you can paste directly.

All 23 tools at a glance

ToolCategorySubject to spending limits?
pingWalletNo
helpWalletNo
get_addressWalletNo
check_balanceWalletNo
wallet_dashboardWalletNo
request_fundingWalletNo
transfer_xlmTransfersYes
transfer_usdcTransfersYes
spending_reportSpending limitsNo
deploy_policyOn-chain policyNo
get_policy_statusOn-chain policyNo
set_policy_limitsOn-chain policyNo
x402_fetchx402 paymentsYes
mpp_open_sessionMPP sessionsYes (budget)
mpp_statusMPP sessionsNo
mpp_fetchMPP sessionsAgainst session budget
mpp_close_sessionMPP sessionsNo
get_treasury_statusTreasuryNo
set_liquidity_thresholdTreasuryNo
optimize_treasuryTreasuryNo
blend_check_ratesTreasuryNo
register_identityAgent identityNo
get_my_reputationAgent identityNo

Wallet & dashboard

These six tools cover the core wallet lifecycle: connectivity checks, balance queries, and funding your agent.
ToolParametersWhat it doesLimits?
pingHealth check — confirms the Nebula MCP server is running and returns the current timestamp.No
helpcategory? (string)Full feature guide for all tools by category, environment variables, quick-start prompts, and your current config status.No
get_addressReturns the wallet public key (G...) for the configured STELLAR_SECRET_KEY.No
check_balanceReturns XLM and USDC balances for the wallet on the configured network.No
wallet_dashboardRenders an interactive in-chat UI (MCP Apps) showing balances, spending limits, treasury status, active MPP session, and 8004 identity.No
request_fundingReturns a Friendbot link on testnet, or manual funding instructions on mainnet.No
help parameter details
category
string
Filter the guide to one topic. Accepted values: wallet, transfers, limits, policy, x402, mpp, treasury, identity.
Example prompts
Use ping from Nebula
Use get_address from Nebula
Use check_balance from Nebula
Use wallet_dashboard from Nebula
Use request_funding from Nebula
Use help from Nebula with category transfers

Transfers

Send XLM or USDC to any Stellar address. Both tools are checked against your spending limits before the transaction signs.
ToolParametersWhat it doesLimits?
transfer_xlmdestination (string), amount (string)Sends XLM to a Stellar address on the configured network.Yes
transfer_usdcdestination (string), amount (string)Sends USDC to a Stellar address. Requires a USDC trustline on the destination account.Yes
transfer_xlm / transfer_usdc parameter details
destination
string
required
Recipient Stellar public address starting with G.
amount
string
required
Amount to send as a decimal string, e.g. "1.5" for XLM or "0.50" for USDC.
Both transfer tools check your per-call cap (MAX_PER_CALL) and rolling 24-hour cap (MAX_PER_DAY) before signing. If either limit would be exceeded, the transfer is blocked and the reason is returned.
Example prompts
Use transfer_xlm from Nebula with destination GABCDE...XYZ and amount 5
Use transfer_usdc from Nebula with destination GABCDE...XYZ and amount 0.50

Spending limits

ToolParametersWhat it doesLimits?
spending_reportReturns the per-call cap, daily cap, amount spent in the rolling 24-hour window, any active MPP session reserved amount, and remaining budget. When POLICY_CONTRACT_ID is set, reads the on-chain policy instead of the off-chain env vars.No
Use spending_report any time you want to know how much budget your agent has consumed and what headroom remains.Example prompt
Use spending_report from Nebula

On-chain policy (Soroban)

Deploy a Soroban smart contract to enforce spending limits at the blockchain level. Once a POLICY_CONTRACT_ID is set, it overrides the off-chain MAX_PER_CALL and MAX_PER_DAY environment variables and creates an immutable on-chain audit trail.
ToolParametersWhat it doesLimits?
deploy_policymax_per_call? (string), max_per_day? (string)Deploys and initializes a new nebula-policy Soroban contract using the bundled WASM. Returns the POLICY_CONTRACT_ID to add to your MCP env.No
get_policy_statusReads the on-chain limits and rolling-window usage from the policy contract. Requires POLICY_CONTRACT_ID to be set.No
set_policy_limitsmax_per_call (string), max_per_day (string)Updates per-call and daily caps on the existing policy contract (owner only, no redeploy needed).No
deploy_policy parameter details
max_per_call
string
Initial per-call spending limit. Defaults to the MAX_PER_CALL environment variable if omitted.
max_per_day
string
Initial rolling 24-hour spending limit. Defaults to the MAX_PER_DAY environment variable if omitted.
set_policy_limits parameter details
max_per_call
string
required
New per-call limit in XLM/USDC units, e.g. "10".
max_per_day
string
required
New rolling 24-hour daily limit, e.g. "50".
After running deploy_policy, copy the returned contract ID into your MCP config as POLICY_CONTRACT_ID. From that point on, MAX_PER_CALL and MAX_PER_DAY env vars are ignored for enforcement.
Example prompts
Use deploy_policy from Nebula with max_per_call 10 and max_per_day 50
Use get_policy_status from Nebula
Use set_policy_limits from Nebula with max_per_call 20 and max_per_day 100

x402 payments

Your agent can autonomously pay for HTTP APIs that return a 402 Payment Required response with USDC via the x402 protocol — no human intervention needed.
ToolParametersWhat it doesLimits?
x402_fetchurl (string)GETs a URL. On HTTP 402, parses the payment terms, pays USDC automatically, and retries the request with the payment header. Subject to spending limits.Yes
x402_fetch parameter details
url
string
required
The URL to fetch. Must be a valid HTTP or HTTPS URL. The tool handles the full request → 402 → pay → retry flow automatically.
x402 payments count against your MAX_PER_CALL and MAX_PER_DAY limits just like direct transfers. Use spending_report to check remaining budget before making a series of paid API calls.
Example prompt
Use x402_fetch from Nebula with url https://api.example.com/premium-data

MPP sessions (streaming / high-frequency)

MPP (Micro-Payment Protocol) sessions let your agent make many micro-payments with a single on-chain deposit, settling everything in one final transaction. This is ideal for high-frequency API calls where per-request on-chain transactions would be too slow or expensive. Typical flow: mpp_open_sessionmpp_fetch (repeat as needed) → mpp_close_session
ToolParametersWhat it doesLimits?
mpp_open_sessionbudget (string), recipient? (string)Deploys a one-way payment channel Soroban contract and deposits the session budget on-chain. The budget counts against spending limits.Yes (budget)
mpp_statusReturns the active session’s channel address, total budget, committed spend so far, and remaining balance.No
mpp_fetchurl (string)Fetches an MPP-gated URL using off-chain signed commitments — no per-request on-chain transaction. Rejects payments that would exceed session budget.Against session budget
mpp_close_sessionSettles the session on-chain: pays the accumulated committed amount to the recipient and refunds any unused deposit.No
mpp_open_session parameter details
budget
string
required
Total session budget in USDC, e.g. "1.0". This amount is deposited on-chain immediately and counted against MAX_PER_CALL and MAX_PER_DAY.
recipient
string
Recipient Stellar public address (G...) for channel payouts. Defaults to the MPP_RECIPIENT environment variable.
mpp_fetch parameter details
url
string
required
MPP channel-gated URL to fetch. Payments are made via off-chain cumulative commitments — no on-chain transaction per call.
Only one MPP session can be active at a time. Call mpp_close_session before opening a new one.
Example prompts
Use mpp_open_session from Nebula with budget 1.0 and recipient GABCDE...XYZ
Use mpp_status from Nebula
Use mpp_fetch from Nebula with url https://stream.example.com/data
Use mpp_close_session from Nebula

Treasury & yield (Blend)

Nebula’s background rebalancer automatically moves idle funds into Blend lending pools to earn yield, withdrawing when your liquid balance drops below a threshold. The tools below let you inspect and control that process.
ToolParametersWhat it doesLimits?
get_treasury_statusShows liquid balance, Blend deposit amount, supply APY, liquidity threshold, rebalance interval, and last rebalance details.No
set_liquidity_thresholdthreshold (string)Sets the minimum liquid balance. Funds above this threshold are auto-deposited to Blend on the next rebalance cycle.No
optimize_treasuryTriggers a single rebalance immediately (deposit excess or withdraw to threshold), without waiting for the next automatic cycle.No
blend_check_ratesReturns the current Blend supply APY rates on testnet (read-only, no transaction).No
set_liquidity_threshold parameter details
threshold
string
required
Minimum liquid balance to keep on hand, e.g. "10" for 10 XLM. Funds above this level are eligible for Blend deposit.
Treasury rebalancing is not subject to agent spending limits. TREASURY_MAX_PER_REBALANCE is a separate cap that limits how much the rebalancer can move in a single transaction.
Example prompts
Use get_treasury_status from Nebula
Use set_liquidity_threshold from Nebula with threshold 20
Use optimize_treasury from Nebula
Use blend_check_rates from Nebula

Agent identity (Stellar8004)

Register your agent on-chain with a unique identity NFT and track its reputation across clients.
ToolParametersWhat it doesLimits?
register_identityMints an ERC-8004 agent NFT for this wallet using the Stellar8004 contracts. Idempotent — safe to call even if already registered.No
get_my_reputationReturns this agent’s feedback count, average score, and number of unique clients from the on-chain reputation registry.No
Use AGENT8004_NAME, AGENT8004_DESCRIPTION, and AGENT8004_IMAGE_URL environment variables to set your agent’s display metadata before calling register_identity.
Example prompts
Use register_identity from Nebula
Use get_my_reputation from Nebula