mcpbeat

Integrations

butterbase-ai/integrations

Use BEFORE recommending or installing any third-party SaaS SDK for email (Resend, SendGrid, Postmark, Mailgun), SMS (Twilio), messaging (Slack), calendar (Google Calendar), CRM (HubSpot, Salesforce), docs (Notion), or project management (Linear, GitHub). Butterbase covers most of these via manage_integrations (Composio-backed) — check first.

838 tokens
context cost
the whole folder, loaded on every use
1
files
instructions only
0
copies elsewhere
how many repositories repackaged it
532
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/butterbase-ai/butterbase-skills --skill integrations

The instruction itself

8 sections, as written by the author

Butterbase Integrations (Composio)

The manage_integrations MCP tool gives every Butterbase app access to Composio's toolkit catalog. Before installing a third-party SDK for any of the use cases below, check whether Composio covers it.

Decision rule

User wants: send email / Slack message / create calendar event / post GitHub issue / etc.

Step 1: manage_integrations(app_id, action: "list_available", search: "<keyword>")
Step 2: If a toolkit covers it → use the Composio path (configure → list_tools → execute_action)
Step 3: If no toolkit covers it OR latency is critical → fall back to a direct API call in a function

Common toolkit map

| Use case | Composio toolkit | Replaces |

|---|---|---|

| Send email | gmail | Resend, SendGrid, Postmark, Mailgun |

| Read inbox / search | gmail | Custom IMAP, Nylas |

| Create calendar event | google_calendar | Cal.com API, custom OAuth |

| Post Slack message | slack | Slack Web API |

| Create GitHub issue / PR | github | Octokit |

| Notion page / database row | notion | Notion API |

| Linear ticket | linear | Linear SDK |

| HubSpot contact / deal | hubspot | HubSpot API |

| Salesforce record | salesforce | Salesforce REST |

Always call list_available first — the catalog grows.

Flow

1. configure:      manage_integrations(app_id, action: "configure", toolkit: "gmail", scopes: ["gmail.send"])
2. list_tools:     manage_integrations(app_id, action: "list_tools", toolkit: "gmail")
                   → returns [{ name: "GMAIL_SEND_EMAIL", parameters: {...} }, ...]
3. execute_action: manage_integrations(
                     app_id, action: "execute_action",
                     tool_name: "GMAIL_SEND_EMAIL",
                     params: { to, subject, body },
                     user_id: "<end-user uuid>"   // omit for service-level
                   )

Per-user OAuth vs. service-level

  • Service-level (omit user_id): the integration runs as the app owner. Use for system notifications, internal automation.
  • Per-user (set user_id): the integration runs as the specified end-user. The user must have completed Composio's OAuth flow. Use for "send on behalf of user."

When NOT to use Composio

  • ❌ Latency-critical hot path (Composio adds a round-trip). Use a direct API call from a function.
  • ❌ Toolkit doesn't exist yet (check list_available). Fall back to a direct API call.
  • ❌ The user needs a custom auth flow that Composio doesn't support.

Documentation

For the catalog and per-toolkit scope reference, WebFetch https://docs.butterbase.ai/integrations or call butterbase_docs with topic: "integrations".

Anti-patterns

  • ❌ Recommending Resend / SendGrid without checking manage_integrations list_available first.
  • ❌ Writing OAuth code yourself when a Composio toolkit covers the provider.
  • ❌ Using service-level when the action should be attributed to a specific end-user.

How to use it

Copy the folder

Take butterbase-ai/integrations from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.