Granular permission gateway for MCP agents. Per-agent scopes for Google Drive, Gmail, Calendar.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
One-click editor setup isnβt available for this listing yet β we donβt have a confirmed install command, and weβd rather show nothing than point your editor at the wrong package or host. Follow the projectβs own setup instructions, linked above.
Never hand an AI agent a full OAuth scope again.
ScopeGate sits between your agents and the accounts they reach β yours or your clients'. You connect a service once, tick the exact actions an agent may call, and hand it an MCP endpoint that can do nothing else. Every call is logged; one click kills the key without touching the connection.
gmail:read_emails yes, gmail:send_email no. Finer than any provider's OAuth scopes.sg_β¦.Run it yourself in one command:
Open http://localhost:3000 β the admin login is printed in the container logs on first boot. Details in Quick Start.
@modelcontextprotocol/sdk (Streamable HTTP)Full feature parity with the hosted cloud version β nothing is cut for self-host.
Open http://localhost:3000. No .env file needed: a local
Postgres and a fresh BETTER_AUTH_SECRET are provisioned automatically, and the
generated admin login is printed once in the app container logs on first boot
(look for Generated admin login) β search it with docker compose logs app | grep -A4 "First run".
The password is also saved to the app_data volume so it survives restarts.
To connect real services (Gmail, LinkedIn, GitHub, β¦), copy .env.example to .env
and fill in the OAuth client id/secret for the providers you want β every block is
independent and optional, a provider without credentials simply doesn't show up.
| Variable | Description |
|---|---|
DATABASE_URL | PostgreSQL connection string |
BETTER_AUTH_SECRET | Secret key for session signing |
BETTER_AUTH_URL | App base URL (e.g. http://localhost:3000) |
ADMIN_EMAIL | Bootstrap admin email |
ADMIN_PASSWORD | Bootstrap admin password |
Open http://localhost:3000.
gmail:read_emails, calendar:create_event)A permission is a single action, not a service β gmail:read_emails can be granted
without gmail:send_email. Groups are derived from src/lib/provider-registry.ts
(27 providers: Google Workspace, Google Ads & Search Console, Meta, LinkedIn,
Twitter, Slack, Notion, Jira, HubSpot, Salesforce, Stripe, Airtable, β¦) and listed
in src/lib/mcp/permissions.ts. Adding a provider means editing the registry β
transport, token strategy and permission groups are all derived from it.
A few Google examples:
| Group | Actions |
|---|---|
| Gmail | gmail:read_emails, gmail:send_email, gmail:list_labels, gmail:search_emails |
| Google Calendar | calendar:list_events, calendar:create_event, calendar:update_event, calendar:delete_event |
| Google Drive | drive:list_files, drive:read_file, drive:create_file, drive:delete_file |
See LICENSE.
Factual signals from GitHub, npm, and our automated checks β not a rating.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/scopegate)<a href="https://allmcps.com/mcp/scopegate"><img src="https://allmcps.com/api/badge/scopegate?style=directory" alt="ScopeGate on AllMCPs" /></a>