imprest
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| RPC_URL | No | Ethereum RPC endpoint URL. | |
| AGENT_ID | No | Agent identity used in stdio mode. Defaults to the OS user. | |
| CHAIN_ID | No | Ethereum chain ID (e.g., 8453 for Base mainnet, 84532 for Base Sepolia). | |
| TRANSPORT | No | Transport type for the MCP server. 'stdio' for local, 'streamable-http' for hosted HTTP. | stdio |
| ENABLE_SENDS | No | Set to 'true' to enable sending transactions. Sends are off by default. | false |
| MAX_FEE_GWEI | No | Maximum gas fee cap in Gwei to protect against mispriced RPCs. | |
| IMPREST_API_KEYS | No | Comma-separated list of API keys with identities (e.g., 'sk-...:agent-name'). Required for HTTP transport. | |
| IMPREST_ADMIN_KEYS | No | Comma-separated list of admin API keys for the approval flow. Optional, for HTTP transport. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| request_paymentA | Request to pay an address. The spend policy decides whether it is allowed, blocked, or requires human approval. Use this whenever you need to send a payment; do not attempt to move funds any other way. Args:
recipient: destination 0x address
amount: amount to send, in whole units of |
| request_approvalA | Grant a token spender an allowance so a contract (a marketplace, subscription, or swap) can later pull funds. The policy decides whether it is allowed, blocked, or needs human approval. imprest approves an EXACT amount only — never an unlimited allowance, the vector behind most token drains. The allowance is capped by, and counts against, the same per-asset limits as a direct payment, and the TOTAL of live allowances across all spenders is itself capped (an allowance outlives budget windows, so it is tracked as a standing liability). Approving 0 revokes the spender's allowance and frees cap. Args:
spender: the 0x address being granted the allowance
amount: the allowance, in whole units of |
| pay_x402A | Fetch a paid HTTP resource, paying for it over the x402 protocol ("402 Payment Required"). Use this for pay-per-request APIs that quote a price in the 402 response; the spend policy decides whether the quoted price is allowed, blocked, or requires human approval. The payment is a signed one-time authorization for EXACTLY the quoted amount — never more — and it only happens if the quote passes policy. Args: url: the resource to fetch (https) max_amount: the most you expect this to cost, in whole token units (e.g. 0.01 for 1 cent of USDC). If the server demands more, the request is refused before policy even runs. reason: what the purchase is for (recorded in the audit log) |
| list_pending_approvalsA | (operator only) List payments/approvals waiting for a human decision. Requires an admin identity — an agent cannot see or clear its own pending approvals. Over stdio the local operator is the admin. |
| resolve_approvalA | (operator only) Approve or reject a pending payment and, on approval,
execute it. This is the resume path for A human approval overrides only the approval threshold — the hard limits (per-transaction cap, budgets, deny/allow list) are RE-CHECKED against the current ledger at approval time, so an approval that would now bust a budget is refused rather than forced through. Args: payment_id: the audit id of the pending row (from list_pending_approvals) approve: True to approve and execute, False to reject note: optional operator note recorded on the row |
| get_balanceA | Get the balance of an address (read-only). Args: address: the 0x address to check asset: "ETH" (native, default) or a token symbol such as "USDC" |
| get_gas_priceA | Get the current gas price in gwei (read-only). |
| get_audit_log | Return the full history of this agent's payment attempts and what the policy decided about each — approved, denied, or executed. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/Theoddalex/imprest'
If you have feedback or need assistance with the MCP directory API, please join our Discord server