MCP server for AI agent → human virtual assistant handoff. When your AI agent hits a task it can't complete (phone calls, 2FA-gated logins, physical-world actions, subjective QA), delegate it to a real human VA via the TaskBullet Agent API.
A Model Context Protocol server that gives any MCP-compatible AI client (Claude Desktop, Claude Code, Cursor, Continue, etc.) native tools to delegate tasks to a real human virtual assistant.
LLMs are brilliant at thinking. They are useless at:
- Making phone calls
- Logging into 2FA / captcha-gated portals
- Subjective quality review ("does this look good?")
- Physical-world actions (mail, deliveries, in-person errands)
- Long-tail manual data entry
This server bridges that gap. When your AI agent decides a task is beyond its reach, it calls delegate_task and a TaskBullet virtual assistant picks it up.
| Tool | Description |
|---|---|
delegate_task |
Send a new task to a human virtual assistant. Returns a taskId. |
list_tasks |
List recently delegated tasks, optionally filtered by status. |
get_task |
Poll the status and result of a specific task by taskId. |
You need a TaskBullet account and an API key.
- Sign up / log in at taskbullet.com
- Generate an API key at taskbullet.com/dashboard/settings/api-keys
- Wire up the server in your MCP client config (see below).
Edit claude_desktop_config.json (location varies by OS — see Anthropic's docs):
{
"mcpServers": {
"taskbullet": {
"command": "npx",
"args": ["-y", "@taskbullet/mcp-server"],
"env": {
"TASKBULLET_API_KEY": "tb_live_your_key_here"
}
}
}
}Restart Claude Desktop. You'll see the TaskBullet tools appear in the tools panel.
Any client that supports MCP servers via stdio will work. Point it at:
command: npx
args: -y @taskbullet/mcp-server
env: TASKBULLET_API_KEY=tb_live_...
For LangChain, CrewAI, AutoGen, or custom orchestration, you can either:
- Use this MCP server directly via an MCP client library, OR
- Call the underlying TaskBullet REST API (or the OpenAPI spec) directly.
You: Find me a flight from SFO to Austin next Tuesday under $300. If you can't book it directly, have someone book it for me.
Claude: I found a Delta flight at 8:15 AM for $278 but it requires phone booking due to a fare class restriction. Let me delegate the booking to your TaskBullet assistant.
[calls
delegate_taskwith title: "Book Delta DL1423 SFO→AUS Tue Jun 3, 8:15 AM, $278. Use my saved AmEx ending 4321. Email confirmation to me."]Booked task
atask_a3f9c2d1. Your assistant will pick this up and you'll get an email when it's confirmed.
| Variable | Required | Default | Purpose |
|---|---|---|---|
TASKBULLET_API_KEY |
✅ | — | Your tb_live_... API key |
TASKBULLET_API_BASE |
❌ | https://taskbullet.com/api/v1 |
Override for self-hosted or staging |
TASKBULLET_SOURCE_AGENT |
❌ | mcp-client |
Audit label for which agent originated the request |
You have two options:
- Poll — your agent calls
get_taskperiodically untilstatus === "completed". - Webhook — pass
webhookUrltodelegate_taskand TaskBullet POSTs a signed payload when the VA finishes. (See the webhook docs.)
- You pre-purchase a Bucket of Hours (no monthly retainer).
- Hours roll over for 90 days so bursty AI workloads don't waste capacity.
- Tasks delegated through this MCP server route to your matched, dedicated virtual assistant.
- You only spend bucket hours when the VA is actually working on a delegated task — the API itself is free.
Learn more at taskbullet.com.
MIT — see LICENSE.
Keywords: mcp server, model context protocol, claude, anthropic, ai agent handoff, human-in-the-loop, virtual assistant, AI delegation, autonomous agent, llm tools, agentic workflow