MCP Integrations
Prometheal connects agents to external services via the Model Context Protocol. MCP clients run on the Prometheal server — sandboxes never see credentials.
How it works: Admins add integrations in Settings > Integrations, enter credentials, then bind them to agents. When an agent uses an MCP tool, Prometheal spawns the MCP server process with decrypted credentials and proxies the call.
Google Workspace
Package: @pegasusheavy/google-mcpGives agents: Google Drive, Docs, Sheets, Slides, Gmail, Calendar, and more
Prerequisites
- A Google account
- A Google Cloud project (free tier is fine)
Step 1: Create a GCP project
- Go to Google Cloud Console
- Click Select a project > New Project, give it a name, and create it
Step 2: Enable Google APIs
Important: You must enable each API individually in the GCP console. If you skip this, agents will get errors like "API has not been used in project X before or it is disabled" when trying to use those tools.
- In your project, go to APIs & Services > Library
- Search for and enable each API you want agents to access:
- Google Drive API (required — needed for all file operations)
- Google Docs API (for reading/creating/editing docs)
- Google Sheets API (for reading/creating/editing spreadsheets)
- Google Slides API (for presentations)
- Gmail API (for email)
- Google Calendar API (for calendar)
Each API has its own enable page. Click into it and click Enable. It takes effect within a minute or two.
Step 3: Create OAuth credentials
- Go to APIs & Services > Credentials
- Click Create Credentials > OAuth client ID
- If prompted, configure the OAuth consent screen first:
- User type: External (or Internal if using Google Workspace)
- Fill in app name and your email
- Add scopes for the APIs you enabled
- Add your Google account as a test user (required while in "Testing" mode)
- Back in Credentials, create an OAuth client ID:
- Application type: Web application
- Under Authorized redirect URIs, add:
https://your-prometheal-url/api/integrations/INTEGRATION_ID/oauth/callback(You'll get the exact integration ID after step 4 — you can update the redirect URI then) - Click Create
- Copy the Client ID and Client Secret
Step 4: Add in Prometheal
- Log in as Admin
- Go to Settings > Integrations
- Click Google Workspace from the catalog
- Enter the Client ID and Client Secret from step 3
- Click Create & Test
Step 5: Update the GCP redirect URI
Now that the integration is created, you have its ID. Go back to the GCP console and update the authorized redirect URI to:
https://your-prometheal-url/api/integrations/<INTEGRATION_ID>/oauth/callbackYou can find the integration ID in the Prometheal URL or API response.
Step 6: Authorize with Google
- In the integration list, click the Authorize button next to Google Workspace
- You'll be redirected to Google's consent screen
- Sign in and grant access to the requested APIs
- Google redirects you back to Prometheal — you'll see a success toast
The OAuth tokens are stored encrypted in Prometheal's database. They auto-refresh — no manual token rotation needed.
Step 7: Bind to an agent
- Go to the agent's settings page
- Under Integrations, attach Google Workspace
- Save
Available tools
Once connected, agents get access to tools like:
google_drive_search,google_drive_list,google_drive_readgoogle_docs_read,google_docs_create,google_docs_editgoogle_sheets_read,google_sheets_writegoogle_slides_read,google_slides_creategoogle_calendar_list,google_calendar_creategoogle_gmail_search,google_gmail_read,google_gmail_sendgoogle_auth_status(check if authenticated)
Troubleshooting
| Problem | Fix |
|---|---|
| "API has not been used in project X" | You need to enable that specific API in GCP. Go to APIs & Services > Library, search for it (e.g., "Google Sheets API"), and click Enable. See Step 2. |
| OAuth redirect error | Make sure the redirect URI in GCP matches exactly: {APP_URL}/api/integrations/{ID}/oauth/callback |
| "Access blocked: app not verified" | Normal for testing mode — click Advanced > Go to (app name) |
| OAuth consent screen error | Add your account as a test user in GCP console |
| Token expired errors | Tokens auto-refresh. If issues persist, click Authorize again to re-authenticate |
| Integration shows ERROR | Click Authorize to complete the OAuth flow, then Test to verify |
GitHub
Package: @modelcontextprotocol/server-githubGives agents: Repos, issues, pull requests, code search, file contents
Setup
- Go to github.com/settings/tokens
- Create a Personal Access Token (classic or fine-grained)
- Classic: select
repo,read:orgscopes - Fine-grained: select the repositories and permissions you want
- Classic: select
- In Prometheal, go to Settings > Integrations > GitHub
- Paste the token
- Optionally restrict by owner/repo in the scope fields
- Bind to an agent
Slack
Package: @anthropic/mcp-server-slackGives agents: Read channels, search messages, post updates
Setup
- Go to api.slack.com/apps and create a new app
- Under OAuth & Permissions, add bot scopes:
channels:history,channels:read,chat:write,users:read,search:read
- Install the app to your workspace
- Copy the Bot User OAuth Token (
xoxb-...) - Find your Team ID in Slack workspace settings (or from the URL)
- In Prometheal, go to Settings > Integrations > Slack
- Enter the bot token and team ID
- Bind to an agent
PostgreSQL
Package: @modelcontextprotocol/server-postgresGives agents: Query databases
Setup
- In Prometheal, go to Settings > Integrations > PostgreSQL
- Enter your connection string:
postgresql://user:pass@host:5432/dbname - Bind to an agent
Security note: Consider using a read-only database user. The agent can run any SQL the connection allows.
Filesystem
Package: @modelcontextprotocol/server-filesystemGives agents: Read and write files on the host
Setup
- In Prometheal, go to Settings > Integrations > Filesystem
- Enter the allowed directory (e.g.,
/home/user/documents) - Bind to an agent
Security note: The agent gets full read/write access to the specified directory and all subdirectories. Choose carefully.
Notion
Package: @notionhq/notion-mcp-serverGives agents: Read pages, databases, and blocks
Setup
- Go to notion.so/my-integrations
- Create a new internal integration
- Copy the Internal Integration Secret (
ntn_...) - In Notion, share the pages/databases you want agents to access with the integration
- In Prometheal, go to Settings > Integrations > Notion
- Paste the token
- Bind to an agent
Brave Search
Package: @modelcontextprotocol/server-brave-searchGives agents: Web search
Setup
- Go to brave.com/search/api and get an API key
- In Prometheal, go to Settings > Integrations > Brave Search
- Paste the API key
- Bind to an agent
Sentry
Package: @sentry/mcp-serverGives agents: Query errors, manage issues
Setup
- Go to sentry.io/settings/auth-tokens
- Create a User Auth Token with
org:readandproject:readscopes - In Prometheal, go to Settings > Integrations > Sentry
- Paste the token
- Bind to an agent
Puppeteer
Package: @modelcontextprotocol/server-puppeteerGives agents: Browser automation, screenshots, web scraping
Setup
- In Prometheal, go to Settings > Integrations > Puppeteer
- No credentials needed — just add and bind to an agent
Note: Puppeteer runs a headless browser on the Prometheal host, not inside the sandbox.
Custom MCP Servers
You can connect any MCP-compatible server:
- In Prometheal, go to Settings > Integrations
- Click Add Custom Integration
- Choose transport type:
- stdio: Enter the shell command (e.g.,
npx -y my-mcp-server) - HTTP: Enter the server URL
- stdio: Enter the shell command (e.g.,
- Add any required credentials (passed as environment variables to stdio servers)
- Bind to an agent