Skip to content

feat: add LobsterMail toolkit — email infrastructure for AI agents#2947

Open
ibussieres wants to merge 2 commits intoComposioHQ:nextfrom
ibussieres:feat/add-lobstermail-toolkit
Open

feat: add LobsterMail toolkit — email infrastructure for AI agents#2947
ibussieres wants to merge 2 commits intoComposioHQ:nextfrom
ibussieres:feat/add-lobstermail-toolkit

Conversation

@ibussieres
Copy link

Summary

Add LobsterMail as a new toolkit integration for Composio. LobsterMail is agent-first email infrastructure — AI agents can self-provision inboxes, send/receive email, search messages, manage conversation threads, and configure webhooks via a simple REST API.

This PR includes:

  • Custom tool example (ts/examples/lobstermail-toolkit/) — 9 Composio tools wrapping the LobsterMail API, ready to use today
  • Full OpenAPI 3.1.0 spec (contrib/lobstermail/openapi.yaml) — for native toolkit integration on the Composio backend
  • Toolkit FAQ doc (docs/content/toolkits/faq/lobstermail.md)

Tools registered

Slug Description
LOBSTERMAIL_CREATE_INBOX Create a new email inbox
LOBSTERMAIL_LIST_INBOXES List all inboxes on the account
LOBSTERMAIL_SEND_EMAIL Send an email from a verified inbox
LOBSTERMAIL_LIST_EMAILS List emails in an inbox
LOBSTERMAIL_GET_EMAIL Get a single email with full body
LOBSTERMAIL_SEARCH_EMAILS Search emails with filters
LOBSTERMAIL_LIST_THREADS List conversation threads
LOBSTERMAIL_CREATE_WEBHOOK Register a webhook for email events
LOBSTERMAIL_GET_ACCOUNT Get account details and usage

Why LobsterMail?

AI agents frequently need email capabilities (receiving confirmations, sending outreach, monitoring for replies). Unlike Gmail/Outlook integrations that require human OAuth flows, LobsterMail is designed for programmatic use — agents can create accounts and inboxes via API with zero human interaction.

Authentication

Bearer token (Authorization: Bearer lm_sk_...). Agents can self-provision via POST /v1/signup.

Links

Request

We'd love for LobsterMail to be added as a native toolkit on the Composio backend (similar to AgentMail). The OpenAPI spec in contrib/lobstermail/openapi.yaml is production-ready and covers all endpoints. Happy to work with the team on any adjustments needed.

🤖 Generated with Claude Code

Add LobsterMail as a new toolkit integration for Composio. LobsterMail provides
agent-first email infrastructure: AI agents can self-provision inboxes, send and
receive email, search messages, manage threads, and configure webhooks.

Includes:
- Custom tool example (ts/examples/lobstermail-toolkit/) with 9 tools
- Full OpenAPI 3.1.0 spec (contrib/lobstermail/openapi.yaml)
- Toolkit FAQ documentation (docs/content/toolkits/faq/lobstermail.md)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@vercel
Copy link

vercel bot commented Mar 18, 2026

@ibussieres is attempting to deploy a commit to the Composio Team on Vercel.

A member of the Team first needs to authorize it.

- Replace invalid `email.delivered` webhook event with all 9 valid events
  from the OpenAPI spec (email.received, email.sent, email.bounced, etc.)
- Remove unsupported `from` filter from LOBSTERMAIL_LIST_EMAILS, replace
  with actual API params (direction, since, unread)
- Add missing `pro` to tierName enum in OpenAPI spec (tier 3)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

method: 'POST',
body: JSON.stringify(body),
});
},
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Send email sends empty body when text/html omitted

Medium Severity

The LOBSTERMAIL_SEND_EMAIL tool's Zod schema makes both text and html optional with no refinement requiring at least one. The API spec explicitly states "At least one of text or html is required." When an AI agent calls this tool providing only from, to, and subject, the execute function sends body: {} to the API, resulting in a confusing 400 validation error. Additionally, the truthiness checks if (input.text) and if (input.html) silently drop empty strings, so text: "" also results in an empty body object.

Fix in Cursor Fix in Web

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant