Productboard MCP — Curve & Flex
Enables reading and writing Productboard data via MCP tools, with Google OAuth login, per-user allowlist, and workspace binding for secure, audited access.
README
Productboard MCP — Curve & Flex
Custom MCP server exposing read/write tools over the Productboard v2 API, with Google-OAuth 2.1 login, a per-email allowlist, and per-user workspace binding (Curve + Flex served from one Cloud Run service).
This is the canonical source. Baseline captured from the source of the
May 26 2026 production deploy and committed as v1 (July 2026). Earlier local
prototypes live in ../_Archive/ — do not edit those; they are pre-OAuth and
out of date.
Layout
src/server.py— the MCP tools (the tool surface Claude sees)src/productboard.py— Productboard v2 API client (auth, retries, pagination, notes)src/auth.py— the MCP's own OAuth 2.1 (Google IDP + JWT). NOT Productboard auth.src/allowlist.py— who may use the MCP + their workspace bindingDockerfile,requirements.txt,deploy.sh— build & deployROADMAP.md— forward plan
Deploy
./deploy.sh # READ_ONLY=true (write tools disabled) — default
READ_ONLY=false ./deploy.sh # enable write tools
Target: project productboard-mcp, region us-central1, service
productboard-mcp (gcloud run deploy --source=.). Secrets — the per-workspace
Productboard API tokens, the OAuth client secret, and the JWT signing key — are
mounted from Secret Manager. Never store them here.
Rules
- No secrets in the repo. Tokens live in Secret Manager;
src/allowlist.pyis the only access config in-tree, and git history is its audit trail. - Safe surface by design: no create-feature tool, no permanent delete (soft-delete
via
archived). Keep it that way. - Write access is per-user: only allowlist entries with
writer: Truecan call the write tools, even when the service runsREAD_ONLY=false(the env var stays as the global kill switch). Currently: Luke only.
Revocation
- One user, immediately: set
tokens_valid_afteron their allowlist entry (or remove the entry), commit, redeploy. Takes effect on their next request — permissions are re-derived from the allowlist on every call, not frozen into tokens. - Everyone at once (break-glass): bump the
TOKEN_VERSIONenv var (gcloud run services update productboard-mcp --region=us-central1 --update-env-vars=TOKEN_VERSION=<n+1>). All outstanding tokens die instantly; users re-auth via Google. No code change, no key rotation. - Refresh tokens live 7 days; offboarding must still remove the allowlist entry (leaver-checklist item — disabling the Google account alone does NOT cut existing sessions).
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.