MCP servers

Let Claude Code and Cursor read your Firebase, RevenueCat, OneSignal, and Expo projects without leaving the editor.

The kit ships a .mcp.json at the project root with seven Model Context Protocol servers already declared. Where agents.md tells an agent how the code is organised, MCP lets it reach the services behind that code: query Firestore, check a subscriber's entitlement, send a test push, or start an EAS build, all from a prompt.

The file

.mcp.json
{
  "mcpServers": {
    "heroui-native": {
      "command": "npx",
      "args": ["-y", "@heroui/native-mcp@latest"]
    },
    "firebase": {
      "command": "npx",
      "args": [
        "-y",
        "firebase-tools@15.4.0",
        "mcp",
        "--only",
        "auth,firestore,functions,crashlytics,remoteconfig"
      ]
    },
    "onesignal": {
      "type": "http",
      "url": "https://api.onesignal.com/mcp/oauth"
    },
    "airbridge": {
      "type": "http",
      "url": "https://mcp.airbridge.io/mcp"
    },
    "expo": {
      "type": "http",
      "url": "https://mcp.expo.dev/mcp"
    },
    "revenuecat": {
      "type": "http",
      "url": "https://mcp.revenuecat.ai/mcp"
    },
    "plunk": {
      "command": "npx",
      "args": ["-y", "@plunk/mcp"],
      "env": {
        "PLUNK_API_KEY": "${PLUNK_API_KEY}"
      }
    }
  }
}

Two transports appear here:

  • stdio (command + args) runs the server locally through npx. Nothing is installed up front; the package is fetched on first use.
  • http (type: "http" + url) connects to a hosted server. These prompt you to sign in through OAuth the first time an agent calls them.

What each server gives you

ServerTransportUse it for
heroui-nativestdioGenerating and editing HeroUI Native components in the kit's own design language.
firebasestdioAuth, Firestore, Functions, Crashlytics, and Remote Config.
onesignalhttpCreating segments and sending test notifications.
airbridgehttpReading install attribution and campaign performance.
expohttpExpo and EAS docs, plus builds and submissions.
revenuecathttpProducts, entitlements, and subscriber state while you build the paywall.
plunkstdioDrafting and sending transactional or marketing email.

The Firebase server is deliberately scoped with --only. It can reach auth, firestore, functions, crashlytics, and remoteconfig, and nothing else. Add a service to that list only when you actually need it.

Enable it in your editor

Claude Code reads .mcp.json from the project root. Open the project and approve the servers when prompted, or list them explicitly:

claude mcp list

Cursor reads the same format from .cursor/mcp.json. Symlink or copy the file:

mkdir -p .cursor && cp .mcp.json .cursor/mcp.json

Then enable the servers under Settings → MCP.

Credentials

Only plunk needs a key in the file itself. Add it to your shell profile or .env.local so the ${PLUNK_API_KEY} reference resolves:

export PLUNK_API_KEY="sk_..."

firebase uses whatever account firebase login already authenticated. The four HTTP servers each run their own OAuth flow on first call, so no secrets live in the repo.

These servers talk to your real projects. A prompt that asks an agent to delete a Firestore collection will delete it. Point them at a development Firebase project and a RevenueCat sandbox while you are building.

Removing a server

Delete its entry from .mcp.json. Nothing else in the kit depends on the file, so removing a server only removes what agents can reach. See Customize AI rules for the agents.md side of the setup.

On this page