agentdraft-mcp
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., "@agentdraft-mcp What time slots are available for me tomorrow?"
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.
agentdraft-mcp — MCP server for AgentDraft
An MCP server that exposes AgentDraft — the ops API for AI agents with inbox, conflict-free calendar, and audit tools — as a set of tools any MCP-aware AI client can call.
Use this if your agent runtime is Claude Desktop, Claude Code, Cursor,
Cline, an OpenAI Agents SDK app, or any other MCP host. The server is
a thin wrapper around the agentdraft
Python SDK — same auth, same errors, same semantics as the REST API
and the language SDKs.
Tools
Nine tools, grouped by what they coordinate:
Scheduling —
whoami,get_availability,create_hold,release_hold,commit_booking,cancel_booking.Human approval —
request_approval,get_approval,wait_for_approval. Open a gate before a consequential action and resume only when a person decides. The wait is clamped to 120 seconds; a timeout returnsstatus: "pending", never a false approval.
approval = await tools.request_approval(
action_type="deploy.production",
summary="Ship v0.2.0 to production",
evidence={"commit": "a1b2c3d", "migrations": 2},
)
result = await tools.wait_for_approval(approval["approval_id"], timeout_seconds=60)
if result["status"] != "approved":
raise SystemExit(f"stood down: {result['status']}")An interactive config generator for every supported host lives at https://agentdraft.io/for-agents/mcp.
Related MCP server: Generic MCP Server for Google Workspace
Install
pip install agentdraft-mcpRequires Python 3.10+ and a valid avs_live_… agent key from the
AgentDraft dashboard.
Upgrade
pip install -U agentdraft-mcpRelease notes: https://agentdraft.io/changelog
Configure your MCP client
agentdraft-mcp is on PyPI, so once it's installed the JSON config below
works on any MCP host right now — no extra downloads.
Claude Desktop / Claude Code — JSON config (recommended)
Edit ~/Library/Application Support/Claude/claude_desktop_config.json
(macOS) or the equivalent on Windows/Linux:
{
"mcpServers": {
"agentdraft": {
"command": "agentdraft-mcp",
"env": {
"AGENTDRAFT_API_KEY": "avs_live_..."
}
}
}
}Cursor / Cline / generic stdio host
{
"mcpServers": {
"agentdraft": {
"command": "python",
"args": ["-m", "agentdraft_mcp"],
"env": {
"AGENTDRAFT_API_KEY": "avs_live_..."
}
}
}
}For local development against a dev backend, also set
AGENTDRAFT_BASE_URL=http://localhost:8080.
Claude Desktop — .mcpb Desktop Extension (drag-drop)
Each release also ships a .mcpb Desktop Extension bundle on
GitHub Releases. Drag agentdraft-mcp.mcpb into Claude
Desktop → Settings → Extensions and paste your avs_live_… API key — no
JSON editing, no pip install.
Tools
Tool | Purpose |
| Confirm the API key and return the agent's identity, priority, scopes, and the owner's |
| List slots open to the calling agent in [start, end) |
| Reserve a slot tentatively (30 s TTL); optional |
| Release a hold so other agents can claim it |
| Finalize a booking — atomic compare-and-swap; optional |
| Cancel a committed booking the calling agent owns |
All times are ISO 8601 strings (2026-06-01T14:00:00Z). All write
tools accept an idempotency_key for safe retries. create_hold and
commit_booking also accept an optional title and invitee
({name, email, notes}) recording who the slot is for — surfaced to the
owner in the dashboard.
How conflicts surface
When two agents race for the same slot, exactly one wins. Losing agents receive a structured outranked payload — not a string error:
{
"error": "outranked",
"winning_booking_id": "bkg_…",
"winning_agent_id": "agt_…",
"winning_agent_priority": 1,
"your_priority": 3,
"message": "Your booking was outranked. Read winning_agent_id and propose an alternate slot rather than retrying."
}Your agent should branch on this and propose an alternate, not retry the same slot.
How this differs from the AgentDraft SDKs
Python/TS SDK | MCP server | |
Caller | App code you wrote | An AI client (Claude Desktop, etc.) |
Transport | HTTPS direct to api.agentdraft.io | stdio between the MCP host and this process |
Auth |
|
|
Semantics | Same | Same |
Errors | Typed Python exceptions | Structured JSON in the tool result |
Use the SDK when you are writing the agent. Use this MCP server when someone else's agent runtime (Claude Desktop, Cursor, Cline, generic MCP host) needs to call AgentDraft on a user's behalf without custom code.
Links
Protocol spec: https://agentdraft.io/spec
API docs: https://agentdraft.io/docs
Changelog: https://agentdraft.io/changelog
Python SDK:
agentdraftTypeScript SDK:
agentdraftIssues: https://github.com/ryabinski-labs/agentdraft-mcp/issues
Security
Found a vulnerability? See SECURITY.md. Do not open a public issue for a security report.
Contributing
See CONTRIBUTING.md. ryabinski-labs/agentdraft-mcp
is a published mirror of a directory in AgentDraft's private application
repository — issues and pull requests are read there, and land back through
the next release sync.
License
MIT — see LICENSE.
Available Tools
9 toolscancel_bookingA
Cancel a previously-committed booking owned by the calling agent. The slot becomes available to other agents immediately.
Inputs: booking_id (required). Returns: object
commit_bookingA
Finalize a booking. This is the atomic compare-and-swap at the slot level — exactly one agent succeeds per slot in any race window. Returns an outranked payload on 409.
Optional title and invitee ({name, email, notes}) record
who the slot is for; both are echoed back and shown to the owner in
the dashboard.
Set with_conferencing=True to attach a video meeting link to
the committed booking; the link is returned under conferencing.
Inputs: end (required), start (required), title, invitee, +3 more. Returns: object
create_holdA
Reserve a slot tentatively. Holds expire automatically (30s TTL by default). A subsequent commit_booking on the same slot promotes the hold to a final booking.
Optional title and invitee ({name, email, notes}) record
who the slot is for; both carry through to the eventual commit.
Returns an outranked payload if a higher-priority agent already holds or has committed the slot inside the bump window.
Inputs: end (required), start (required), title, invitee, +2 more. Returns: object
get_approvalA
Read the current state of one approval request: pending,
approved, denied, or expired, plus the reviewer's note once
resolved. Safe to poll; it never blocks.
Inputs: approval_id (required). Returns: object
get_availabilityA
List slots open to the calling agent within [start, end).
Times are ISO 8601 strings (2026-06-01T14:00:00Z). The result
is filtered through the user's focus blocks, buffer rules, and
any currently-active holds across sibling agents.
Inputs: end (required), start (required), include_holds, duration_minutes, +1 more. Returns: object
release_holdB
Release a previously-created hold so other agents can claim the slot before the TTL expires.
Inputs: hold_id (required). Returns: object
request_approvalA
Open a human sign-off request and return immediately.
action_type is a namespaced lowercase string such as
deploy.production, mailbox.send_external, or billing.refund.
summary is the one line a reviewer reads first; evidence is the
structured context they need to decide (target, amount, exact draft).
Returns {approval_id, status, expires_at}. Requires the
approvals:request scope.
Inputs: summary (required), action_type (required), evidence, ttl_seconds, +1 more. Returns: object
wait_for_approvalA
Wait for a human decision, bounded to 120 seconds.
The timeout is clamped to [1, 120] and the poll interval to
[1, 30] so no MCP host is left hanging. If the request is still
pending when the timeout lapses, the result carries
status: "pending" and timed_out: true; call get_approval or
wait_for_approval again to keep waiting. Proceed only when the
status is approved — denied, expired, and pending all mean stop.
Inputs: approval_id (required), timeout_seconds, poll_interval_seconds. Returns: object
whoamiA
Confirm the configured AGENTDRAFT_API_KEY is valid and return the calling agent's identity, priority, scopes, and the owner's timezone (so a client can render slots in the owner's zone).
Inputs: no named parameters. Returns: object
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 9 tools
Each tool targets a distinct resource+action: holds (create/release), bookings (commit/cancel), availability, identity, and approvals (request/get/wait). The only potentially close pair, get_approval vs wait_for_approval, is explicitly differentiated by non-blocking vs blocking behavior in their descriptions.
Nearly all tools follow a clean snake_case verb_noun pattern (get_availability, create_hold, commit_booking, request_approval). The single deviation is 'whoami', which is a fixed phrase rather than a verb_noun construction, but it is idiomatic and unambiguous.
Nine tools is well within the ideal 3-15 range and every tool maps to a concrete step in the booking or approval workflow. No tool feels redundant or filler.
The booking lifecycle is fully covered (availability, hold create/release, commit, cancel) and approvals support request/get/wait. Minor gaps remain: there is no list_approvals to enumerate pending requests and no way to withdraw/cancel an approval request, but agents can work around these with get_approval.
Maintenance
Related MCP Connectors
214 tools for AI agents over one MCP endpoint: image, video, audio, 3D, data, storage, mail, GPUs.
MCP server for your apps' tools and custom tools, plus hosted AI agents and approval-gated workflows
Email inboxes, webhook URLs, mock APIs and 170+ tools for coding agents over one MCP connection.
The OpenRouter for tools. One MCP connection gives any AI agent 254 hosted tools, pay per call.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceExposes identity, tools, workflows, guardrails, and evaluation as MCP tools — so any AI agent can read and write your ecosystem programmatically.15 npmMIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to send emails, create drafts in Gmail, and append content to Google Docs via standardized MCP tools.30 npmISC
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to register, send/receive email, store encrypted credentials, emit audit events, and query behavioral trust scores via MCP tools.2 npm5MIT
- AlicenseNot gradedqualityCmaintenanceEnables MCP clients to discover and create agents, durably submit messages with verifiable replies, and search source-linked local memory. Exposes eight authenticated tools with owner-approved OAuth, transcript-backed verification, and explicit control over history import and embedding.MIT