base-escrow-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@base-escrow-mcpCreate an escrow for 0.1 ETH to seller 0x1234"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
base-escrow-mcp
MCP server for AI agents to create and manage P2P escrow deals on Base (ETH or ERC-20).
Install
npx -y base-escrow-mcpOr add to your MCP config:
{
"mcpServers": {
"base-escrow": {
"command": "npx",
"args": ["-y", "base-escrow-mcp"],
"env": {
"DEPLOYER_PRIVATE_KEY": "your-private-key",
"RPC_URL": "https://mainnet.base.org"
}
}
}
}Related MCP server: pact-mcp
Tools (8)
Tool | Description | Auth |
| Create a new escrow deal (ETH or ERC-20) | Key |
| Release funds to seller (buyer only) | Key |
| Refund funds to buyer | Key |
| Flag a dispute on a deal | Key |
| Get deal details by ID | None |
| Get all deals for a buyer address | None |
| Get all deals for a seller address | None |
| Get contract info (fee, total deals, treasury) | None |
How It Works
Buyer creates an escrow deal, depositing ETH or tokens into the contract
Seller delivers the goods/services off-chain
Buyer releases funds to seller, or refunds if seller fails to deliver
Either party can dispute — treasury resolves disputed deals
Environment Variables
DEPLOYER_PRIVATE_KEY— Required for write operations (create, release, refund, dispute)RPC_URL— Base RPC endpoint (default:https://mainnet.base.org)
Chain
Network: Base mainnet (chainId 8453)
Explorer: https://basescan.org
License
MIT
Available Tools
8 toolscreate_escrowA
Create a new P2P escrow deal on Base. For ETH deals, the ETH is locked in the contract. For ERC-20 deals, tokens are transferred from your wallet (approval handled automatically). A flat escrow fee is charged in ETH. Requires DEPLOYER_PRIVATE_KEY env var.
| Name | Required | Description | Default |
|---|---|---|---|
| token | No | ERC-20 token address. Omit or set to '0x0000000000000000000000000000000000000000' for ETH escrow | |
| amount | Yes | Amount to escrow (ETH in ether e.g. '0.01', or token amount in human-readable units) | |
| seller | Yes | Seller wallet address — receives funds when buyer releases | |
| description | Yes | Description of the deal / what is being traded |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses key behaviors: ETH is locked, ERC-20 tokens are transferred from wallet with automatic approval, a flat fee is charged in ETH, and a required env var. This is substantial and goes beyond simple 'create' boilerplate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences, each earning their place: main action, token-specific behavior, and required prerequisite/fee. No fluff, front-loaded with the purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has moderate complexity (two token types, fee, env var) and no output schema. The description covers the key semantics and prerequisites, though it doesn't mention the return value or whether an escrow ID is generated. Still, it's sufficient for an agent to understand what the tool does and when to call it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 meaning by explaining the token parameter's zero-address convention for ETH, the automatic approval handling, and the units for amount. This helps the agent understand how to set parameters correctly beyond the schema's raw field descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a new P2P escrow deal on Base, with specific behavior for ETH vs ERC-20. It distinguishes itself from all sibling tools (which are getters, release, refund, dispute) by focusing on the creation action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly implies when to use this tool (to create an escrow) and provides the prerequisites (DEPLOYER_PRIVATE_KEY). It doesn't explicitly mention alternatives or exclusions, but among siblings this is the only create/action tool, so the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dispute_escrowA
Flag a dispute on an active escrow deal. Either buyer or seller can call this. Funds stay locked until the treasury resolves the dispute. Requires DEPLOYER_PRIVATE_KEY env var.
| Name | Required | Description | Default |
|---|---|---|---|
| deal_id | Yes | Deal ID to dispute |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses two behavioral traits: funds remain locked until treasury resolution, and DEPLOYER_PRIVATE_KEY env var is required. This informs the agent of side effects and authentication needs, though it doesn't mention reversibility or invocation limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences, each adding critical information: purpose, eligibility/outcome, and environment prerequisite. No redundant language. The description is front-loaded with the primary verb and object.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with no output schema, the description covers purpose, eligibility, fund-locking consequence, and env var requirement. It leaves little ambiguity about invocation, though it doesn't describe the return value or failure modes, which is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema fully documents deal_id, and the description adds the constraint that it must be an active escrow deal, supplementing the schema's generic 'Deal ID to dispute.' This provides extra meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Flag a dispute on an active escrow deal.' This distinguishes it from sibling tools like release_escrow or refund_escrow, which handle normal completion paths. The verb 'Flag' and resource 'active escrow deal' are specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It notes 'Either buyer or seller can call this,' giving eligibility context. However, it doesn't explicitly contrast with alternatives like release_escrow or refund_escrow, so it stops short of full when/where-not guidance. The context is clear enough for the agent to infer when to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_buyer_dealsA
Get all escrow deal IDs where the given address is the buyer.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Buyer wallet address |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. 'Get' signals a read-only operation, and the return type is specified as 'escrow deal IDs'. It adds the scoping condition (buyer), which is useful. It does not cover pagination or auth, but for a simple query this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, no filler, information-dense. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity tool with one parameter and no output schema, the description adequately explains what is returned (deal IDs) and the filter (buyer address). No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter 'address' is fully described in the schema as 'Buyer wallet address', and the description repeats the same concept. No additional parameter semantics are provided beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action (get) on a specific resource (escrow deal IDs) filtered by buyer address. It distinguishes itself from the sibling get_seller_deals by explicitly mentioning 'buyer'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use: when you need deals where the address is the buyer. It does not explicitly mention alternatives like get_seller_deals, but the buyer/seller contrast is clear from sibling tools. Context is clear without exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dealB
Get details of an escrow deal by its ID. Returns buyer, seller, token, amount, status, creation time, and description.
| Name | Required | Description | Default |
|---|---|---|---|
| deal_id | Yes | Deal ID to look up |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden for behavioral disclosure. It does disclose the return fields (buyer, seller, token, amount, status, creation time, description), which is useful. However, it omits details like error handling, permissions, or side-effect information, leaving gaps in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that is front-loaded with the verb and resource. It includes useful return-field details without any unnecessary words, earning high marks for conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with one parameter and no output schema or annotations. The description covers purpose, parameter, and return fields. However, it fails to clarify behavior when the deal is not found, differentiate from 'get_escrow_info', or note any permissions. Given the lack of annotations, this feels incomplete for a robust agent decision.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% since the only parameter 'deal_id' has a description. The tool description adds no new semantics beyond repeating 'by its ID'. Baseline 3 is appropriate as the schema already documents the parameter adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: fetching details of an escrow deal by ID. It uses a specific verb and resource, and lists the returned fields. However, it does not distinguish itself from the sibling tool 'get_escrow_info', which may serve a similar purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidance is provided. The description does not state when to use this tool versus alternatives like 'get_buyer_deals' or 'get_escrow_info', nor does it mention any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_escrow_infoA
Get Escrow contract info — current fee, total deals created, treasury address, contract address. Use to verify the contract is live.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description itself must convey safety and side effects. 'Get' implies a read-only operation, but it doesn't explicitly state non-mutating behavior or disclose any potential side effects, auth requirements, or response format. It adds value by listing the specific fields returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no filler. The purpose is front-loaded and the list of returned values is compact yet informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple info tool with no parameters and no output schema, the description adequately covers what data is returned and the intended use. It doesn't elaborate on network specifics or address formats, but such details are not essential for basic usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the schema is fully described by the empty object. The description adds meaning by enumerating what information is returned, which is helpful given no output schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'Escrow contract info', followed by specific data points (fee, deals created, treasury address, contract address). This distinguishes it from sibling tools like get_deal or get_buyer_deals, which focus on individual deals or user-specific views.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says 'Use to verify the contract is live', giving a clear context. While it doesn't mention alternatives or exclusions, the use case is specific enough to infer when this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_seller_dealsA
Get all escrow deal IDs where the given address is the seller.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Seller wallet address |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of indicating behavior. 'Get' implies a read-only operation, and the return of deal IDs is stated. However, it adds no detail about pagination, error handling, or whether the address must be exactly the seller, making the transparency adequate but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no redundant words. It efficiently communicates the tool's purpose and scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description adequately specifies the return content (deal IDs) and the filtering condition. It is complete enough for an agent to understand what the tool returns and when to invoke it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description for the address parameter ('Seller wallet address') fully aligns with the tool description's use of 'seller'. Since schema description coverage is 100%, the tool description adds no additional parameter detail, matching the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: retrieving all escrow deal IDs for a given seller address. It uses a specific verb ('Get'), identifies the resource ('escrow deal IDs'), and specifies the filter (address as seller), which distinguishes it from sibling tools like get_buyer_deals.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool (when you need deals where the address is the seller) but does not explicitly mention alternatives or exclusions. Sibling tools like get_buyer_deals are not referenced, so guidance is only implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
refund_escrowA
Refund escrowed funds back to the buyer. Only the buyer can call this. Use when the seller fails to deliver. Requires DEPLOYER_PRIVATE_KEY env var.
| Name | Required | Description | Default |
|---|---|---|---|
| deal_id | Yes | Deal ID to refund |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the transparency burden. It discloses the caller restriction, the required DEPLOYER_PRIVATE_KEY env var, and the outcome (refunding funds to buyer). It does not cover failure states or lifecycle prerequisites, but the essential behavioral context is present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short, front-loaded sentences with no filler. Each sentence provides a distinct, necessary piece of information: the action, the usage condition, and the environment requirement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with one parameter and no output schema. The description adequately covers purpose, usage trigger, user restriction, and environment variable. Minor gaps exist around potential state prerequisites (e.g., whether a dispute must be active), but overall it is sufficient for confident invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% since the single required parameter deal_id is documented as 'Deal ID to refund'. The tool description adds context about refunding to buyer, but this is largely consistent with the schema and does not provide substantial additional parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Refund escrowed funds'), the target ('back to the buyer'), and the triggering condition ('when the seller fails to deliver'). This distinguishes it from sibling tools like release_escrow (pay seller) and dispute_escrow (open dispute).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use ('Use when the seller fails to deliver') and who can call it ('Only the buyer can call this'). It does not mention alternatives or when-not-to-use, but the context is clear enough for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
release_escrowA
Release escrowed funds to the seller. Only the buyer can call this. Marks the deal as complete. Requires DEPLOYER_PRIVATE_KEY env var.
| Name | Required | Description | Default |
|---|---|---|---|
| deal_id | Yes | Deal ID to release |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and discloses key behavioral traits: buyer-only restriction, state change to complete, and the DEPLOYER_PRIVATE_KEY prerequisite. It stops short of detailing irreversibility or failure modes, which would elevate it further.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no waste, front-loaded with the primary action. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter financial tool with no output schema, the description covers the actor, effect, and a critical prerequisite. Missing return value details are acceptable given the simple scope, though failure outcomes are not addressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already fully documents deal_id as 'Deal ID to release' (100% coverage), so the description adds no new parameter meaning. Baseline 3 applies because the schema handles it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('Release escrowed funds to the seller') and resource ('escrowed funds'), and distinguishes from siblings like refund_escrow (refund) and dispute_escrow by noting it marks the deal as complete and is buyer-only.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear context: who can call (only buyer), what it accomplishes (releases funds, marks complete), and a required environment variable. However, it does not explicitly contrast with alternative tools like refund_escrow or dispute_escrow, so it lacks explicit 'when/not' comparison.
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.
8 tool updates
v1.0.0- First observed
create_escrow - First observed
dispute_escrow - First observed
get_buyer_deals - First observed
get_deal - First observed
get_escrow_info - First observed
get_seller_deals - First observed
refund_escrow - First observed
release_escrow
TDQS
Each tool has a distinct purpose: get_deal retrieves by ID, get_buyer_deals and get_seller_deals filter by role, get_escrow_info provides contract metadata, and create/release/refund/dispute handle lifecycle actions. No two tools overlap ambiguously.
All query tools follow a get_* pattern, and all action tools use the *_escrow suffix. The verb-noun structure is consistent throughout, making the API predictable and easy to navigate.
With 8 tools, the server is well-scoped for an escrow management domain. Each tool covers a core operation or query without redundancy or bloat.
The tool set covers the full escrow lifecycle: creation, release, refund, and dispute, along with sufficient query capabilities (by ID, buyer, seller, and contract info). No obvious gaps exist for common use cases.
Maintenance
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
Agent-commerce MCP server for x402/USDC payments and affiliate splits on Base.
MCP server for Boson Protocol — on-chain agentic commerce for physical & digital goods.
Agent-to-agent escrow on Base. Post quests with ETH/USDC bounties and settle on-chain.
MCP server for AI agents to discover campaigns by humans and donate USDC directly on Base.
Related MCP Servers
- AlicenseAqualityBmaintenanceAn MCP server for creating, settling, disputing, and refunding escrows on EVM chains.814Apache 2.0
- AlicenseNot gradedqualityAmaintenanceMCP server for Pact, an escrow protocol for agent-to-agent commerce, enabling agents to create pacts, fund escrow, deliver work, and settle with an LLM evaluator as dispute backstop.17MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server for agentic commerce, enabling AI agents to discover services, make x402 payments with USDC across multiple chains, and manage crypto wallets and token swaps.3551MIT
- AlicenseNot gradedqualityCmaintenanceMCP server for Taskmarket that enables AI agents to discover, claim, submit, and track on-chain bounty tasks on the Base-based decentralized task marketplace, including wallet operations, pitch systems, and submission management.16MIT
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/lordbasilaiassistant-sudo/base-escrow-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server