Skip to docs content
Browse documentation
On this page

Packages, integrations, and MCP servers

Packages are saved behavior. Integrations are account-owned logins. MCP servers are how agents connect. Use this when those three look interchangeable.

These three sit next to each other in the app and get used in the same sentences. They are not the same thing.

The short version

  • Packages are behavior: saved code with exports, jobs, webhooks, subscriptions (for example email.message.received), package apps, and helpers your agent calls through execute.
  • Integrations are organization-owned OAuth wiring: reusable logins (GitHub, Google, and any OAuth 2 provider you register) that packages use. A package may say it needs an integration. It does not own the connection: you connect, refresh and revoke that login on the Integrations page.
  • MCP servers are how agents connect: your agent connects to Minion as an MCP client, or Minion connects out to another MCP server. They are not package runtime. Prefer packages as the capability surface agents reach through Minion MCP.

A pasted API key is a secret, not an integration. Secrets stay yours; packages and execute refer to them by name.

Use this one when

  • Keep working code, a schedule, a webhook, or a helper export: a package
  • Sign in to GitHub or Google (or another OAuth provider) so that code can act as you: an integration
  • Point Claude, Cursor, or ChatGPT at Minion, or add another MCP server Minion can call: an MCP server

Jobs and schedules live on the package (minion.jobs in package.json). Do not hang a cron off an integration or an MCP connection.

One example that uses all three

You want GitHub issues to become a daily digest.

  1. Integration: connect GitHub on the Integrations page . That login is yours. Any package in the organization can use it; GitHub itself is not a package.
  2. Package: a helpers package calls GitHub through that integration (createAuthenticatedFetch), exposes an export, and declares a job in its package.json that posts the digest. Subscriptions can listen for events the same way.
  3. MCP: your agent is connected to Minion as an MCP client. It finds the package with search and calls the export with execute. It does not talk to GitHub's own MCP server, and the GitHub integration is not a package.

Adding GitHub as a remote MCP server on the MCP servers page is a different job: that exposes GitHub's tools as minion.mcp["github"]. Prefer the integration plus a package when you want owned helpers, jobs, or a stable export.

Next