Bavlio exposes two distinct MCP surfaces:Documentation Index
Fetch the complete documentation index at: https://bavlio.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Docs MCP — live today
Lets agents query the Bavlio documentation by tool calls (search, fetch page). Auto-generated from this site.
API-action MCP — roadmap
Lets agents take actions against the live Bavlio API (create campaigns, send email, search leads). Planned.
Docs MCP — live
Auto-published by the docs platform at:Quick install (Cursor)
Add to your Cursor MCP config:Quick install (Claude Desktop)
Open Claude Desktop’s MCP config and add:What this covers vs. doesn’t
Covers: every page on this site — Quickstart, Authentication, Errors, Pagination, Rate Limits, Webhooks, the full API Reference (190 endpoints with request/response schemas), and the OpenAPI spec. Doesn’t cover: taking actions against the API. Agents using only the docs MCP can read docs but can’t, for example, create a campaign or send an email. For that you need the API-action MCP below — or just call the REST API directly with abav_live_ key.
API-action MCP — roadmap
A separate MCP server that wraps the Bavlio REST API as agent-callable tools. Lets an agent create campaigns, send emails, search leads, etc. without writing HTTP plumbing.Planned install path
bav_live_ API key.
Planned tool surface
Initial tool set targets the most common agent workflows: campaign lifecycle, lead management, send + reply, plus the two stateless email primitives.| Tool | Read-only | Destructive | Idempotent | Description |
|---|---|---|---|---|
list_campaigns | yes | no | yes | List campaigns with optional status filter. |
create_campaign | no | no | no | Create a new campaign in DRAFT state. |
launch_campaign | no | no | yes | Launch a DRAFT campaign after preflight checks pass. |
pause_campaign | no | no | yes | Pause an active campaign. |
search_leads | yes | no | yes | Search leads in a campaign by name, company, or status. |
add_leads_to_campaign | no | no | no | Append leads to a campaign from a CSV/JSON payload. |
send_email | no | no | no | Send a transactional email via the BaviMail proxy. |
list_replies | yes | no | yes | List recent inbound replies (untrusted-content envelope). |
get_campaign_stats | yes | no | yes | Aggregate campaign metrics (sent, delivered, opened, replied). |
verify_email | yes | no | yes | SMTP-probe an email address; returns valid/invalid/risky. |
Design notes
- Untrusted-content envelope. Tools that surface third-party content (inbound replies) wrap responses in
{ __untrusted_third_party_content: true, content: ... }. The fence is a machine-readable signal that a trust boundary was crossed. Same pattern as@bavimail/mcp-server. - No client-side caching of API keys. The server reads the API key on every call; key rotation takes effect without restart.
- Tool annotations. Every tool ships with
readOnlyHint,destructiveHint, andidempotentHintper the MCP spec.