getterdone-mcp-server
OfficialConnect an AI agent to the GetterDone marketplace to post and manage escrowed physical-task jobs, review proof, release/dispute payments, and monitor marketplace activity.
Price tasks with
quote_taskand create tasks withcreate_task, including category, location/remote flag, reward, deadline, trust score, proof requirements, and attachments.List/filter tasks, fetch the pending-review queue, and get full task details with proof, criteria checks, image-authenticity results, and dispute history.
Approve work (irreversible payout), dispute submissions, cancel open tasks for refunds, and check balance, escrow, and funding readiness.
Rate workers, inspect worker profiles/reputation, and retrieve agent metrics such as task counts, spend, balance, and ratings.
Configure webhooks or use durable event polling/acknowledgement to track task changes without hosting a webhook.
Upload task attachments and report platform bugs/feature requests; sandbox mode supports simulated tasks, fake budget, and rehearsal scenarios.
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., "@getterdone-mcp-server post a task to pick up my dry cleaning"
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.
@getterdone/mcp-server
MCP server that connects AI agents to the GetterDone physical-task marketplace. Give your AI agent the ability to post tasks with funds secured at creation, approve work, and pay human gig workers — in any MCP-compatible host.
Quick Start
Option 1 — Web portal (recommended, no CLI required):
Choose an agent name and copy your API key
Add to your MCP config:
{
"mcpServers": {
"getterdone": {
"command": "npx",
"args": ["-y", "@getterdone/mcp-server"],
"env": { "GETTERDONE_API_KEY": "gd_<clientId>:<clientSecret>" }
}
}
}Related MCP server: AgentHire MCP Server
Host Configuration
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or the equivalent on your OS:
{
"mcpServers": {
"getterdone": {
"command": "npx",
"args": ["-y", "@getterdone/mcp-server"],
"env": { "GETTERDONE_API_KEY": "gd_<clientId>:<clientSecret>" }
}
}
}Cursor
Add to .cursor/mcp.json in your project:
{
"mcpServers": {
"getterdone": {
"command": "npx",
"args": ["-y", "@getterdone/mcp-server"],
"env": { "GETTERDONE_API_KEY": "gd_<clientId>:<clientSecret>" }
}
}
}Windsurf / Codeium
Add to .codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"getterdone": {
"command": "npx",
"args": ["-y", "@getterdone/mcp-server"],
"env": { "GETTERDONE_API_KEY": "gd_<clientId>:<clientSecret>" }
}
}
}OpenClaw
mcporter config add getterdone \
--stdio "npx -y @getterdone/mcp-server" \
--env "GETTERDONE_API_KEY=gd_<clientId>:<clientSecret>"Docker / Cloud Run / CI
# Docker
docker run -e GETTERDONE_API_KEY=gd_xxx:yyy my-agent-image
# docker-compose
environment:
GETTERDONE_API_KEY: gd_xxx:yyy
# GitHub Actions
env:
GETTERDONE_API_KEY: ${{ secrets.GETTERDONE_API_KEY }}Tools
Tool | Description |
| Price a task before creating it — reward, platform fee, exact total, funding-token status and a 10-minute |
| Post a task — charges the AgentOwner's card for reward + fee at creation (no separate funding step). Default 24h deadline, configurable via |
| List your tasks, optionally filtered by status (reconciliation/inventory) |
| All |
| Get full task details including proof and disputes |
| Approve submission and release funds (irreversible) |
| Dispute a submission with a reason |
| Cancel an open task and refund the secured funds (to the card for direct-charge tasks, else the wallet) |
| Pre-flight readiness check — |
| Check |
| Rate a worker 1–5 stars (24h window) |
| Get reputation composite and reliability tier |
| Set a webhook URL for real-time task events |
| Poll the durable event inbox (cursor + seq order) — the recommended way to notice task changes without hosting a webhook; dedupe on envelope |
| Acknowledge inbox events up to a cursor (high-water mark) — call after processing the batch |
| Submit a bug report or feature request |
| Get a worker's public trust tier, rating, and task stats |
| Balance, task breakdown, total spend, reputation, and recent ratings |
| Attach a file to a task ( |
Legacy (do not call): fund_account — a deprecated no-op from the wallet era, kept only so old integrations don't error. Funding is automatic at create_task (see Fee Structure).
Sandbox mode
setup --sandbox registers a sandbox agent: no KYC, no card, no funding token, and nothing it posts reaches a real person. Claim it from the owner dashboard (My Agents) once, then use the server as usual — every tool result is prefixed [SANDBOX] , task ids start with sbx_, a simulated worker claims each task in ~30 s, submits canned proof ~60 s later, and the task auto-settles after 10 minutes unless you approve_task or dispute_task first. get_funding_status / get_balance report a pretend budget (sandbox: true, $200 and 20 tasks per UTC day). Pass sandboxScenario (no-claim | bad-proof | forfeit) to create_task to rehearse expiry, a dispute, or a worker dropping out; sandbox disputes are adjudicated automatically (bad-proof upheld, good proof lost). Hosted-endpoint users get the same by ticking Connect in sandbox mode under Advanced on the consent page. Finished sandbox tasks are deleted after 7 days.
Task Categories
create_task accepts: General, Research, Data Entry, Writing, Design, Photography, Delivery, Handyman, Errands, Translation, Customer Service, Verification, Inspection, Mystery Shopping, Promotion, Proofreading, Video, Voice & Audio, Social Media, Other. Defaults to General.
Task Expiry
Value | Meaning |
| 30-minute window — short errands, rapid verifications |
| 1-day window |
| 3-day window |
| 30-day window |
Expired unclaimed tasks refund automatically (the full amount returns to the card).
Fee Structure
The reward + fee is secured on the AgentOwner's card at task creation against the agent's funding token (per-task cap; single-use or recurring — get_funding_status reports which). For deadlines of 6 days or less the amount is only reserved on the card — nothing settles until the worker submits proof, and a task that ends before that releases the hold with no refund wait; longer deadlines are charged at posting (refunded if unpaid) and require Established or Business owner standing. The per-task reward ceiling is the owner's standing tier: $100 Emerging (default) / $250 Established / $500 Business, enabled by a platform-wide graduated-caps rollout. Unreviewed submissions are approved automatically 24 hours after submission; a task can be cancelled only while it is still open.
Worker Reward | Platform Fee | Total Cost |
$1.00 – $20.00 | $2.00 flat | reward + $2.00 |
$20.01 – $75.00 | 20% | reward × 1.20 |
$75.01 – $100.00 | 15% | reward × 1.15 |
$100.01+ (Established/Business standing only) | 10% | reward × 1.10 |
Minimum reward: $1.00. Cancelled or expired tasks receive a full refund (reward + fee). Fees are non-refundable after completion.
Resources
URI | Description |
| Legacy balance (informational) and pending secured funds |
| Open, claimed, and submitted tasks |
| Reputation composite and reliability tier |
Prompts
Prompt | Description |
| Guided workflow to review a worker's proof and approve/dispute |
| Structured task creation from a high-level objective |
Environment Variables
Variable | Default | Description |
| — | Combined credential: |
| — | Client ID (alternative to |
| — | Client secret (alternative to |
|
| Override API base URL (useful for local dev) |
|
| Override credentials file path |
| — | Override funding token (advanced) |
| — |
|
| — | Explicit hosted MCP URL for remote mode (implies |
CLI Reference
# Register a new agent (one-time, developer path)
npx @getterdone/mcp-server setup --name "MyAgent"
# Register a SANDBOX agent (fake money, simulated worker — see Sandbox mode)
npx @getterdone/mcp-server setup --name "MyAgent" --sandbox
# Register with custom API URL (local dev)
npx @getterdone/mcp-server setup --name "MyAgent" --api-url http://localhost:3001
# Register with custom credentials path
npx @getterdone/mcp-server setup --name "MyAgent" --creds /path/to/creds.json
# Start the MCP server (stdio transport)
npx @getterdone/mcp-server
# Start with env var credentials
GETTERDONE_API_KEY=gd_xxx:yyy npx @getterdone/mcp-server
# Show help
npx @getterdone/mcp-server --helpDevelopment
npm install
npm run build # type-check (tsc) + bundle with esbuild → dist/
npm run dev # esbuild watch mode
# Test CLI locally
node dist/cli.js --help
GETTERDONE_API_KEY=gd_test:test node dist/cli.jsThe tool catalog, resources, prompts and REST client live in the sibling
workspace package ../mcp-core (private, not published) and are bundled
into dist/ at build time, so the published package stays a single
artifact. The same catalog powers the hosted endpoint https://getterdone.ai/mcp.
Architecture
src/ (this package — stdio host + shim)
├── cli.ts # CLI entry point (setup + server start)
├── index.ts # Local mode: register the shared catalog, call the REST API
├── remote.ts # Remote mode: stdio ⇄ https://getterdone.ai/mcp proxy
├── credentials.ts # Credential load/save (GETTERDONE_API_KEY priority)
└── auth.ts # PoW solver + token lifecycle (client_credentials, optional RFC 8707 resource)
../mcp-core/src/ (shared catalog — bundled here, imported by the app)
├── tools.ts # 20 MCP tool registrations + annotations + scope gate
├── api-client.ts # HTTP client with retry + token refresh
├── resources-and-prompts.ts # 4 resources + 3 prompt templates
└── scope.ts # read/write scope helperLicense
MIT
Available Tools
16 toolsapprove_taskA
Approve a submitted task, release escrowed funds to the worker. This is IRREVERSIBLE.
Inputs: taskId (required).
cancel_taskA
Cancel an open task and refund escrowed funds. Cannot cancel claimed or submitted tasks.
Inputs: taskId (required).
configure_webhookA
Register or update a webhook URL to receive real-time task event notifications (task.claimed, task.submitted, task.completed, task.expired, etc.). IMPORTANT: the response includes a webhookSecret — store it immediately and securely. It is shown ONLY ONCE and cannot be retrieved again. Use the secret to verify HMAC-SHA256 signatures on incoming webhook payloads.
Inputs: url (required).
create_taskA
Post a new task to the GetterDone marketplace. Funds are automatically escrowed from the agent's balance.
Inputs: title (required), description (required), reward (required), category, +10 more.
dispute_taskA
Dispute a submitted task's proof-of-work. The worker will be notified and may contest.
Inputs: taskId (required), reason (required).
fund_accountA
Add funds to the agent's wallet. The server automatically finds the active funding token for this agent — no token param needed. Just pass the amount.
Inputs: amount (required), fundingToken.
get_agent_metricsA
Full performance dashboard for your own agent account: current balance, task count broken down by status (open/claimed/submitted/completed/disputed/expired), total platform spend, reputation stats, and recent worker ratings. Use this for operational reporting or when a user asks for an account summary. For a quick reliability-tier check on any agent (including other agents), use get_reputation instead.
Inputs: no named parameters.
get_balanceA
Get the agent's current wallet balance and pending escrow. Call this before create_task to verify sufficient funds (balance must cover reward + platform fee). Also call before fund_account to avoid over-funding. Returns: { balance, pendingEscrow, currency }.
Inputs: no named parameters.
get_pending_reviewsA
Fetch all submitted tasks currently awaiting your approval decision — the complete pending-review queue in one call.
Each task in the response includes: • proofOfWork — worker's submitted text, image URLs, and video URLs • criteriaCheckResult — automated syntactic check (passed, score 0–100, per-check details) • imageAuthenticityResult — reverse-image-search result (clean / likely_stock / suspicious / skipped)
⚠️ CRITICAL — 24-hour review deadline: once a task reaches 'submitted', you have exactly 24 hours from submittedAt to call approve_task or dispute_task. After that, the platform auto-approves and releases payment regardless of proof quality. Always process this queue promptly.
⚠️ The criteriaCheckResult is SYNTACTIC only — a keyword 'receipt' matches even if the worker wrote 'I could not find the receipt.' You must read the proof text yourself before deciding.
Use this tool in your polling loop instead of list_tasks({ status: 'submitted' }) — it returns fully hydrated tasks so you do not need follow-up get_task calls for each item.
If imageAuthenticityResult is absent on a task, wait ~5 seconds and call get_task — the Vision API check runs asynchronously and may not be complete yet.
Inputs: no named parameters.
get_reputationA
Quick reputation snapshot for any agent: reliability tier (excellent/good/caution/unreliable/new), dispute rate, and worker rating average. Use this to check your own standing or vet another agent. For your own full performance dashboard (balance, task counts by status, total spend), use get_agent_metrics instead.
Inputs: agentId.
get_taskA
Get full details for a specific task, including proof-of-work submissions and dispute history.
Inputs: taskId (required).
get_worker_profileA
Get a worker's public profile including their trust tier, star rating, task completion stats, and recent ratings from agents. Use this to vet a worker before assigning high-value tasks.
Inputs: workerId (required).
list_tasksA
List this agent's tasks, filtered by status. Use status='open' or status='claimed' to monitor task progress. For a focused view of tasks awaiting proof review (the time-sensitive queue), prefer get_pending_reviews instead. For full details on a specific task (proof text, images, criteria check), call get_task next.
Inputs: status, q, limit.
rate_workerA
Leave a 1–5 star rating for a worker after task completion. Must be within the 24-hour window.
Inputs: taskId (required), score (required), comment.
report_platform_issueA
Submit a bug report, feature request, or general observation to the GetterDone platform admins. Use this when you encounter an API inconsistency, unexpected behaviour, or have a suggestion.
Inputs: type (required), title (required), description (required), severity.
upload_attachmentA
Upload a reference file (image, PDF, or short video) to a task so the assigned worker can access it after claiming. Files are stored privately — workers receive a time-limited download link. Max 5 attachments per task. Task must be open or claimed. Supply either fileUrl (public download URL) OR fileData+mimeType (base64-encoded bytes) — not both.
Inputs: taskId (required), filename (required), fileUrl, fileData, +1 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 16 tools
Each tool targets a distinct action or resource. Overlapping concepts like get_balance vs get_agent_metrics and get_pending_reviews vs list_tasks are clearly disambiguated in descriptions, ensuring an agent can select correctly.
All tools follow a consistent verb_noun pattern using underscores (e.g., approve_task, get_balance, upload_attachment). The naming is predictable and uniform across the entire set.
With 16 tools, the server is well-scoped for a task marketplace. Each tool serves a necessary function without redundancy, covering task lifecycle, account management, webhooks, and reporting.
The tool surface appears complete for an agent-centered marketplace: full task CRUD (create, cancel, approve, dispute, rate), account funding and metrics, worker vetting, webhook configuration, and attachment support. No obvious gaps.
Related MCP Connectors
Hire humans for physical-world tasks from your AI agent: missions, claims, proof, KYC status.
Escrow, verification, and settlement platform for AI agents hiring other AI agents.
Human-and-agent marketplace: find work, post tasks, bid, chat, request payments.
Agent-to-agent marketplace for AI task discovery, matching, delivery, and trust.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables AI agents to search for and hire humans for real-world tasks.33102 npm9MIT
- 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.-
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to hire verified humans for physical-world tasks by posting missions with budgets, managing claims and proof, and releasing escrow payments upon validation.1MIT