mcp s
MCP server from pomerium/mcp-servers
claude mcp add --transport stdio pomerium-mcp-servers docker run -i pomerium/mcp-servers:main \ --env POMERIUM_CONFIG="path/to/pomerium-config.yaml" \ --env NOTION_CLIENT_ID="your-notion-client-id" \ --env NOTION_CLIENT_SECRET="your-notion-client-secret"
How to use
This MCP server collection provides streaming HTTP MCP servers that integrate with Pomerium to add authentication, authorization, and OAuth 2.1 workflows for internal MCP endpoints. The Notion server demonstrates how to proxy requests to Notion on behalf of an authenticated user, including scopes and token handling, while the SQLite server offers a simple readonly MCP endpoint that queries a SQLite database. Each server is designed to run behind Pomerium, which handles TLS termination and token exchange, enabling external clients to securely call internal MCP endpoints. To use them, deploy the servers behind your Pomerium gateway and configure routes that map external MCP client requests to the internal MCP server paths (for example /mcp). The system will issue External Tokens (TE) to clients and manage Internal Tokens (TI) for upstream OAuth providers as needed.
How to install
Prerequisites:
- Linux or macOS host
- Docker and Docker Compose installed
- A domain with TLS termination via Pomerium (or access to port 443 for TLS, as required by your setup)
Installation steps:
-
Install Docker and Docker Compose on your host.
-
Clone this repository or pull the needed Docker images:
- git clone https://github.com/pomerium/mcp-servers
- cd mcp-servers
-
Prepare your pomerium-config.yaml to route external MCP clients to the internal MCP servers. Example placeholders: routes:
- from: https://my-mcp-server.example.com to: http://localhost:8080/mcp name: Notion MCP mcp: {}
-
Start the services (example using Docker):
- docker compose up -d
- Or run individual servers directly: docker run -d --name mcp-notion -e NOTION_CLIENT_ID=... -e NOTION_CLIENT_SECRET=... pomerium/mcp-servers:main docker run -d --name mcp-sqlite -e SQLITE_DB_PATH=/data/database.db pomerium/mcp-servers:main
-
Verify the MCP endpoints are reachable behind Pomerium at the configured routes and that TLS certificates are issued if using public domains.
Prereq tips:
- Ensure port 443 is accessible publicly if you rely on Let's Encrypt TLS.
- Update pomerium-config.yaml to include the appropriate routes and mcp settings for each server you deploy.
Additional notes
Notes and tips:
- The repository demonstrates how to pair MCP servers with Pomerium for OAuth 2.1 flows; external clients will receive TE tokens, while Pomerium manages TI tokens with upstream providers.
- For Notion integration, ensure you configure the Notion OAuth client and scopes correctly in Notion and in Pomerium.
- If you run locally without public TLS, you may need to use a self-signed cert or a local CA, but public MCP clients require valid TLS certificates.
- The mcp_config entries assume the Docker image pomerium/mcp-servers:main; adjust image tags as needed for stability or features.
- When deploying multiple MCP servers, keep separate environment variable sets per server to avoid cross-contamination.
Related MCP Servers
trpc-agent-go
trpc-agent-go is a powerful Go framework for building intelligent agent systems using large language models (LLMs) and tools.
station
Station is our open-source runtime that lets teams deploy agents on their own infrastructure with full control.
tiger-cli
Tiger CLI is the command-line interface for Tiger Cloud. It includes an MCP server for helping coding agents write production-level Postgres code.
gopls
MCP server for golang projects development: Expand AI Code Agent ability boundary to have a semantic understanding and determinisic information for golang projects.
kubernetes
A Model Context Protocol (MCP) server for the Kubernetes API.
gcp-cost
💰 An MCP server that enables AI assistants to estimate Google Cloud costs, powered by Cloud Billing Catalog API and built with Genkit for Go