@txn-dev/mcp-server
Click on "Deploy 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., "@@txn-dev/mcp-serverPay $0.50 from coordinator to summarizer for the report"
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.
@txn-dev/mcp-server
MCP server for txn.dev - let any AI assistant manage agent payments.
Works with Claude Desktop, Cursor, Windsurf, and any MCP-compatible client.
Setup
Add to your MCP client config:
{
"mcpServers": {
"txn": {
"command": "npx",
"args": ["-y", "@txn-dev/mcp-server"],
"env": {
"TXN_API_KEY": "txn_live_..."
}
}
}
}Get your API key at txn.dev/dashboard/api-keys. A txn_test_ key moves sandbox money through the same tools, so try it there first.
Claude Code, in one line:
claude mcp add txn -e TXN_API_KEY=txn_test_... -- npx -y @txn-dev/mcp-serverRelated MCP server: meshledger-mcp-server
Tools
Tool | Description |
| Create a new agent wallet |
| List all wallets in your org |
| Transfer funds between wallets, idempotently |
| Check a wallet's balance |
| Add money: a Stripe Checkout link for live wallets, sandbox credit for test wallets |
| Search people available for hire by skill, rate and rating |
| Escrow a budget and assign a person in one call |
| Post work to the public board and let people apply |
| List your jobs, optionally by status |
| A job's status, deliverable and escrow |
| Pick an applicant for a posted job |
| Accept delivered work and pay the person |
| Send work back with a reason before the acceptance window closes |
What you can do
Once connected, ask your AI assistant things like:
"Create a wallet called research-agent"
"How much is in the translator wallet?"
"Pay $0.50 from coordinator to summarizer for the report"
"List all my agent wallets and their balances"
"Fund the coordinator wallet with $20"
Environment Variables
Variable | Required | Description |
| Yes | Your txn.dev API key |
License
MIT
Available Tools
13 toolsassign_jobA
Choose which applicant does a job you posted. Everyone else who applied is told no. If they asked for more than the posted budget, pass agreed_amount to accept their price and the extra is escrowed too.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | The job to assign | |
| worker_id | Yes | The applicant you are choosing | |
| agreed_amount | No | Accept a counter-offer at this amount instead of the posted budget | |
| deliver_in_hours | No | How long they have to deliver. Default 72 hours. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose key non-obvious behaviors: all other applicants are rejected, and an above-budget agreed_amount is escrowed in addition. It omits irreversibility, authorization requirements, and what happens to funds already escrowed for the job, which are meaningful gaps for a commitment/mutation tool.
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 short sentences, front-loaded with the primary action and immediately followed by the side effect and the one conditional parameter that changes behavior. No filler.
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 4-parameter mutation tool with no annotations and no output schema, the description covers the essential side effects and the tricky counter-offer case. It does not describe the response or whether the assignment can be undone, which would matter for an escrow-affecting operation.
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 the baseline is 3, but the description adds consequence-level meaning the schema lacks: passing agreed_amount escrows the extra amount, not just 'accepting a counter-offer'. deliver_in_hours and the required ids are left to the schema, which is acceptable given full 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?
Names a specific verb and resource ('Choose which applicant does a job you posted') and states the primary consequence (other applicants are told no). It is clear in isolation, but with a sibling like hire_human present it does not explicitly distinguish itself from the direct-hire path, leaving some ambiguity about which tool applies in which situation.
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?
Gives a clear usage context: use it to pick one applicant for a job you posted, and the conditional branch for accepting a counter-offer above budget via agreed_amount. It does not name alternatives (hire_human, post_job) or state exclusions, so it stops short of full when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_walletB
Create a new agent wallet for sending and receiving payments
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Display name for the wallet (e.g. 'translation-agent') | |
| currency | No | Wallet currency. Defaults to usd |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility for behavioral disclosure. It does not mention whether the wallet is created on-chain, if it requires authentication, whether it incurs a cost, or what happens on success (e.g., returns wallet ID). For a creation tool with zero annotation coverage, this is a significant gap.
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 concise sentence that front-loads the core action. There is no wasted language.
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?
Given this is a creation tool with no annotations, no output schema, and no behavioral details in the description, the definition is incomplete. It omits critical context such as authentication needs, side effects, return values, and prerequisites, which an agent would need to invoke it correctly.
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 description coverage is 100%, so the schema already documents both parameters (name and currency) with clear descriptions and defaults. The tool description adds no additional parameter meaning beyond what the schema provides, so baseline 3 is appropriate.
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?
Clear verb+resource combination ('Create a new agent wallet') that distinguishes it from siblings like list_wallets or fund_wallet. The added phrase 'for sending and receiving payments' clarifies the purpose of the resource. No explicit sibling naming, but the action is unambiguous.
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 usage by stating the wallet is for sending and receiving payments, which suggests it is a setup step before those actions. However, it doesn't explicitly state when to use this tool versus alternatives or mention any prerequisite conditions (e.g., 'use before pay or fund_wallet').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dispute_jobA
Reject delivered work and say what is wrong with it. The person can then fix it and resubmit. The money stays in escrow: it is neither paid out nor returned to you, because delivered work cannot be taken back for free.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | The job whose delivery you are rejecting | |
| reason | Yes | Specifically what is wrong and what would make it acceptable |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses the key non-obvious side effect that funds remain in escrow (neither paid nor refunded) and that delivery is not reversible for free, plus that the counterparty can resubmit. It omits whether the dispute can be withdrawn, required permissions, and resulting job state.
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 short sentences, front-loaded with the action and reason, then the consequence. Every sentence earns its place with no repetition of the name or schema.
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 no-annotation, no-output-schema mutation tool with two fully documented params, the description covers purpose, financial consequence, and the counterparty's next step. It lacks only secondary details like dispute reversibility and resulting job status.
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 description coverage is 100%, so both parameters are already documented in the schema (job_id as the delivery being rejected, reason as what is wrong and what would be acceptable). The description adds no syntax or format detail beyond that, so the baseline of 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?
States a specific verb (reject) and resource (delivered work) plus the required accompanying action (say what is wrong). It implicitly contrasts with release_payment by noting the money is not paid out, so an agent can distinguish the dispute path from the accept path.
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?
Gives clear context for when to use it: when delivered work is defective and the counterparty should fix and resubmit. It does not explicitly name release_payment as the alternative or state exclusions (e.g., pre-delivery jobs), but the escrow framing makes the choice condition obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_humansB
Find real people available for hire for work an AI cannot finish alone: anything needing physical presence, a legal signature, local knowledge, licensed expertise, a human judgement call, or an account only a person can open. Returns each person's skills, rate floor, rating, and completed job count.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Free text search over name, headline, and bio | |
| limit | No | Max results, default 20 | |
| skills | No | Skill tags to match, e.g. ["photography", "notary", "translation"] | |
| max_budget | No | Only return people whose minimum job amount is at or below this | |
| min_rating | No | Only return people rated at or above this, out of 5 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses the return fields (skills, rate floor, rating, completed job count), which is useful. However it omits safety profile (is this read-only?), pagination/ordering, and what happens with no query. Adequate but incomplete for an unannotated tool.
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?
Front-loaded verb, then a compressed enumeration of qualifying conditions, then return fields. Two dense sentences. Some list items ('a human judgement call') are slightly softened by 'or' phrasing, but no fat.
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?
Covers purpose and return fields, but with no annotations and no output schema, an agent still cannot tell whether this is read-only, how results are ordered, or what to do when it finds no match. Adequate but leaves gaps for an unannotated discovery tool.
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 description coverage is 100%, so the schema already documents q, limit, skills, max_budget, and min_rating. The description adds return-field context ('rate floor') but does not explain parameter interactions or the semantics of free-text q. Baseline 3 is correct when the schema does the heavy lifting.
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?
States a specific verb+resource ('Find real people available for hire') and enumerates the use cases (physical presence, legal signature, local knowledge, etc.) that distinguish it from generic search. It does not directly name or contrast with the sibling hire_human or post_job, so it falls short of a 5.
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?
Implies when to use it via the enumeration of tasks 'an AI cannot finish alone', but never says when NOT to use it or which sibling (post_job, hire_human) handles the next step. No explicit routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fund_walletA
Generate a Stripe checkout link to add funds to an agent wallet. Returns a URL the user can open to complete payment.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Amount to fund in the wallet's currency (min $0.50, max $100,000) | |
| wallet_id | Yes | The wallet ID to fund |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose the key trait that this only generates a link rather than moving money directly. However, it omits whether the link expires, whether repeated calls create duplicate sessions, and any auth or rate-limit context.
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, zero filler, and the outcome (a URL the user opens to pay) is front-loaded right after the action statement.
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 two-parameter tool with fully documented params and no output schema, the description covers the essential return value (a URL). It stops short of covering link lifecycle or failure modes, but nothing critical to invoking it is missing.
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 description coverage is 100% and both parameters (amount with min/max, wallet_id) are already documented in the schema. The description adds no parameter-level detail beyond that, so the baseline of 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 names a specific verb and resource — 'Generate a Stripe checkout link to add funds to an agent wallet' — which is precise enough to separate it from siblings like pay, get_balance, and create_wallet without opening any schema.
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?
Usage is implied by 'add funds to an agent wallet', but there is no explicit guidance on when to choose this over pay or other funding paths, and no stated prerequisites (e.g., wallet must already exist).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_balanceC
Check the current balance of a specific agent wallet
| Name | Required | Description | Default |
|---|---|---|---|
| wallet_id | Yes | The wallet ID to check |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It conveys only that the value is 'current' (as opposed to historical), and says nothing about read-only safety, authentication requirements, or behavior for an unknown/invalid wallet ID.
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 short sentence with the resource and scope front-loaded and zero filler. It is efficient, though minimal to the point of leaving gaps that conciseness alone cannot justify.
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 one-parameter read tool with full schema coverage this is roughly adequate, but with no annotations and no output schema the description could usefully say what comes back (amount, currency, timestamp) and whether failures are possible.
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 description coverage is 100% for the single wallet_id parameter, so the baseline is 3. The description adds no syntax, format, or source detail beyond what the schema already documents.
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 gives a specific verb ('Check') and resource ('balance') scoped to 'a specific agent wallet', so an agent can distinguish it from list_wallets or fund_wallet at a glance. It stops short of naming any sibling or explicitly contrasting the per-wallet scope with the list variant.
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?
There is no statement of when to call this versus alternatives such as list_wallets or fund_wallet, and no prerequisites or exclusions are given. Usage is only implied by the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_jobA
Check on a job you posted or a person you hired: its status, who applied, what they delivered, and how much is still held in escrow. Call this before releasing payment so you can read the delivered work.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | The job to look at |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations and no output schema, the description carries the full burden and does disclose the payload (status, applicants, deliverables, escrow balance) plus its role in the payment workflow. It omits any statement about permissions or whether reading is side-effect free, but the 'Check on' framing reasonably implies a read.
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 filler, and the capability statement is front-loaded ahead of the usage cue. Every clause earns its place by naming distinct returned data or a workflow action.
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 one-parameter read tool with no output schema, the description compensates by enumerating the returned fields and its position relative to payment release. Missing only permissions/error context, which is minor at this complexity.
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?
Single required parameter at 100% schema coverage, so the schema already documents job_id ('The job to look at'). The description adds no format, ID source, or constraint detail beyond what the schema provides, which is the expected baseline here.
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?
States a specific verb ('Check on') and resource ('a job'), then enumerates what the retrieval covers: status, applicants, deliverables, escrowed funds. It clearly identifies this as a single-job inspection rather than a list operation, though it never names the sibling (list_jobs) it differs from.
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 ties itself to a workflow position: 'Call this before releasing payment so you can read the delivered work,' which links it to the release_payment sibling. It does not state when NOT to use it or point to alternatives for listing multiple jobs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hire_humanA
Hire a specific person to do a piece of work. The budget is moved into escrow immediately and is only paid out when you release it, so the money is committed but not spent. Find someone with find_humans first. The person is told the work was commissioned by an AI agent.
| Name | Required | Description | Default |
|---|---|---|---|
| from | Yes | Wallet ID the budget is escrowed from | |
| title | Yes | Short title for the work, e.g. 'Photograph 3 storefronts in Lisbon' | |
| budget | Yes | What the person is paid, before fees | |
| skills | No | Skill tags for this work | |
| worker_id | Yes | The person to hire, from find_humans | |
| description | Yes | Everything the person needs to do the job: what to deliver, in what format, and any constraints. Be specific — they cannot ask you follow-up questions mid-task. | |
| idempotency_key | No | Unique key so a retry does not hire twice | |
| deliver_in_hours | No | How long they have to deliver. Default 72 hours. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses that budget is moved into escrow immediately but only paid out on release, which pairs with the sibling release_payment, and warns that the counterparty is told an AI commissioned the work. It doesn't state auth requirements, cancellation/refund behavior, or what happens if no one delivers.
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 tight sentences, each earning its place: purpose, financial mechanics, prerequisite, and disclosure to the worker. Front-loaded with the core action and no filler.
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 an 8-parameter mutation tool with no annotations and no output schema, the description covers the critical unknowns (money commitment, escrow release, worker disclosure, discovery step). It stops short of describing what the call returns (e.g., a job ID) or what happens to escrowed funds on failure, which an agent might want.
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 all eight parameters are already documented in the schema with useful examples. The description adds escrow meaning for budget/from but no syntax or format detail beyond the structured fields, so the 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?
States a specific verb (hire) and resource (a specific person to do a piece of work), immediately distinguishing it from find_humans and from post_job, which would be used when no specific person is chosen. An agent can tell what it does from the first sentence alone.
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 names the prerequisite alternative ('Find someone with find_humans first'), which directs the agent to the right upstream tool. It does not explicitly contrast with post_job for open-market listings, but 'a specific person' implicitly signals the difference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_jobsA
List the jobs you have posted, newest first. Filter by status to find work waiting on you: 'delivered' is work you need to review and pay for.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Only return jobs in this state |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral burden. It usefully discloses scope ('you have posted') and default ordering ('newest first'), but says nothing about pagination, result caps, or auth requirements for a list endpoint.
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 tight sentences, front-loaded with purpose and ordering, then the filter rationale. No filler.
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-optional-param read tool with no annotations, the description covers purpose, ordering, and filter semantics well. The only gap is that with no output schema present, it doesn't hint at what a returned job record contains.
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 the baseline is 3, but the description adds real meaning beyond the enum's 'Only return jobs in this state' by explaining that 'delivered' equals work needing review and payment, which tells the agent why it would pick that value.
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?
States a specific verb ('List') and resource ('jobs you have posted') plus the ordering ('newest first'), which is enough to distinguish it from get_job (single job) and post_job (creation) without opening any schema.
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 gives clear context for when to apply the status filter ('to find work waiting on you') and calls out the 'delivered' state as actionable. It stops short of naming alternatives such as get_job for a specific job or other list siblings, so no exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_walletsB
List all agent wallets in your organization
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. 'List all' hints at a complete, unfiltered enumeration scoped to the organization, but says nothing about read-only status, authorization requirements, pagination, or what each wallet entry contains.
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 short sentence that front-loads the verb and resource with no filler. Appropriate sizing for a zero-parameter list operation.
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 zero-param, no-output-schema listing tool this is close to sufficient, but it omits return-shape hints (balance included? wallet IDs?) and any pagination or volume guidance. It is minimally adequate rather than complete.
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 there is no parameter semantics to explain and the baseline is 4. The description does not invent or misdescribe any inputs.
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?
States a specific verb and resource ('List all agent wallets') plus an organizational scope ('in your organization'), so the agent knows exactly what it retrieves. It does not explicitly contrast itself with get_balance, create_wallet, or fund_wallet, which is the only thing keeping it from a 5.
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?
There is no when-to-use guidance, no prerequisites, and no mention of alternatives such as get_balance for a single wallet. Usage is only inferable from the verb 'List', which is essentially a restatement of the tool's purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
payA
Transfer funds from one agent wallet to another. Use when an agent needs to pay for a completed task or service.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Destination wallet ID | |
| from | Yes | Source wallet ID | |
| memo | No | Description of what this payment is for | |
| amount | Yes | Amount to transfer (e.g. 0.50 for 50 cents) | |
| idempotency_key | No | Unique key to prevent duplicate payments on retry |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided so the description must carry behavioral burden. It implies a mutation (transfer), but doesn't mention whether the operation is irreversible, whether funds are held, authorization requirements, failure modes, or the significance of idempotency_key. It adds some context on mutability but leaves important behavior undisclosed.
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 short sentences front-load the core action and then provide use context, with no wasted words.
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 financial transfer with no annotations and no output schema, the description is incomplete: it omits error handling, partial failure semantics, and return behavior. It covers the core action but leaves significant gaps an agent would need to call it safely.
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 description coverage is 100%, so baseline is 3. The description adds no additional parameter meaning beyond what's already documented in the schema's 'amount' example and 'idempotency_key' purpose.
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?
States a specific verb and resource: 'Transfer funds from one agent wallet to another.' This distinguishes it from siblings like fund_wallet (deposits in), release_payment (escrow release), and get_balance (read), making the purpose unambiguous.
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 phrase 'Use when an agent needs to pay for a completed task or service' gives implied usage but doesn't say when not to use it or name alternatives like release_payment or fund_wallet. For an agent deciding between payment tools, this is minimal guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_jobA
Post a job to the public board and let people apply, instead of picking someone yourself. The budget is escrowed when you post. Use this when you do not know who should do the work; use hire_human when you already do. Review applicants with get_job, then choose one with assign_job.
| Name | Required | Description | Default |
|---|---|---|---|
| from | Yes | Wallet ID the budget is escrowed from | |
| title | Yes | Short title for the work | |
| budget | Yes | What the person is paid, before fees | |
| skills | No | Skill tags people can filter the board by | |
| description | Yes | Full brief: what to deliver, in what format, and any constraints | |
| idempotency_key | No | Unique key so a retry does not post twice | |
| expires_in_hours | No | How long the job stays open before it expires and refunds. Default 168. |
TDQS
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 a genuinely important behavioral trait beyond the schema: the budget is escrowed at post time, meaning funds move immediately. It does not cover permission/authorization requirements or what the caller receives back, but the escrow disclosure is the highest-value fact for a spend action.
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 sentences, zero filler, and the routing decision is front-loaded alongside the escrow warning. Each sentence carries a distinct piece of information: purpose, decision rule, follow-on steps.
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?
With no annotations and no output schema, the description covers purpose, the escrow consequence, and the surrounding tool workflow. It stops short of stating what is returned on success (e.g. a job identifier) or any permission prerequisites, which an agent would need for a clean call.
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 description coverage is 100%, so all seven parameters are already documented with meaning (escrow source wallet, budget before fees, skill tags, idempotency, expiry/refund default). The description adds no parameter-level detail beyond that, so the 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?
States a specific verb and resource ('post a job to the public board') plus the key differentiator: applicants apply rather than you selecting someone. An agent can distinguish this from hire_human without opening either schema.
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?
Explicit when-to-use ('when you do not know who should do the work') and the named alternative with its own condition ('use hire_human when you already do'). It also sketches the follow-on workflow via get_job and assign_job.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
release_paymentA
Accept delivered work and pay the person. This releases the escrow and cannot be undone, so read the deliverable with get_job first. If the work is not right, use dispute_job instead and they get a chance to fix it.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | The job to pay out | |
| rating | No | Rate the work 1-5. Ratings are what make the next hire easy, so leave one. | |
| comment | No | Short public note on how the work went |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden, and it does disclose the critical irreversible nature ('cannot be undone') plus the escrow-release side effect and a prerequisite read step. It stops short of stating permission/auth requirements or what happens if the job is not in a deliverable state.
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 short sentences with zero filler; the consequence (irreversible escrow release) is front-loaded before the alternative routing, which is the right priority order for a destructive action.
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 three-parameter mutation tool with no annotations and no output schema, the description covers the irreversible consequence, the alternative path, and a pre-check. Minor gaps remain around authorization and post-payout state changes, but nothing an agent needs to call it safely is missing.
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 description coverage is 100%, so all three parameters are already documented, including the rationale for leaving a rating. The description adds no parameter-level detail beyond the schema, so the baseline of 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?
States a specific verb and resource ('Accept delivered work and pay the person') and immediately names the mechanism ('releases the escrow'), which distinguishes it from the sibling pay and from dispute_job. An agent can select it correctly without opening the schema.
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?
Gives explicit when-to-use ('read the deliverable with get_job first') and an explicit when-not with a named alternative ('If the work is not right, use dispute_job instead'). Both the positive and negative routing conditions are spelled out.
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.
13 tool updates
v0.2.2- First observed
assign_job - First observed
create_wallet - First observed
dispute_job - First observed
find_humans - First observed
fund_wallet - First observed
get_balance - First observed
get_job - First observed
hire_human - First observed
list_jobs - First observed
list_wallets - First observed
pay - First observed
post_job - First observed
release_payment
TDQS
Scored across 13 tools
Tools are mostly distinct, but there is potential overlap between pay and release_payment (both move money), and between hire_human and post_job/assign_job (direct hire vs. job board). Descriptions clarify when to use each, but an agent may need to read carefully to avoid misselection.
Most tools follow a consistent verb_noun snake_case pattern (e.g., list_wallets, get_balance, create_wallet, find_humans, hire_human, post_job, release_payment, dispute_job). The single tool 'pay' is an outlier as a bare verb without a noun, slightly breaking the pattern.
With 13 tools, the set is well-scoped for a platform combining wallet management, payments, and human hiring with escrow. Each tool appears to earn its place without excessive redundancy.
Core workflows are covered: wallet creation/funding, payments, finding/hiring humans, job posting, escrow release, and dispute. However, notable gaps exist: no way to cancel a posted job or direct hire to reclaim escrow, no list of direct hires (only posted jobs), and no transaction history or wallet deletion, which could cause dead ends.
Maintenance
Related MCP Connectors
Escrow, verification, and settlement platform for AI agents hiring other AI agents.
Complete financial infrastructure for AI agents — payments, lending, escrow & more.
Marketplace and payment rail for AI agents: list, buy and settle with signed receipts.
Agent work marketplace — browse jobs, claim work, deliver results, get paid in USDC.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceEnables AI agents to perform financial transactions such as direct payments, escrows, and bounty management using natural language with zero code integration. It provides a comprehensive suite of tools for fund streaming, subscriptions, and reputation tracking to facilitate secure agent-to-agent commerce.5 npmMIT

meshledger-mcp-serverofficial
AlicenseAqualityDmaintenanceAI-to-AI economic marketplace with on-chain USDC escrow on Base L2. Agents browse skills, hire each other, manage jobs, release payments, and handle disputes via AI Judge. 15 MCP tools, reputation scoring.153MIT- AlicenseNot gradedqualityFmaintenanceEnables agents to post tasks, bid on work, manage escrow payments, confirm completion, and resolve disputes through simple tool calls.1MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to post real-world tasks, match them to people, and release payments through a delegation-based authorization system that enforces scoped, spend-capped permissions.-