Okta MCP Server (Remote)

Okta MCP Server (Remote)

Wraps Okta's stdio MCP server to be accessible remotely via Streamable HTTP with OAuth authentication, and adds native Okta Admin API tools for application management.

Category
Visit Server

README

Okta MCP server — remote deployment for Claude.ai

Runs Okta's stdio-only okta-mcp-server as a remote, OAuth-protected Streamable HTTP connector on Google Cloud Run, so it can be used from Claude.ai over the internet.

A thin FastMCP wrapper (wrapper/server.py) does three things: bridges the stdio server to Streamable HTTP, enforces Okta OAuth on the front door (token introspection), and adds a few native Admin API tools the upstream package can't currently serve.

See docs/DEPLOYMENT.md for the full Okta + Cloud Run + Claude.ai setup and troubleshooting.

What this adds over the upstream package

The base okta-mcp-server is a stdio-only server meant to run locally under Claude Desktop / an IDE. This repo turns it into a shared, internet-reachable connector and fills some gaps:

  • Remote transport. A FastMCP wrapper (wrapper/server.py) proxies the stdio server and re-exposes it over Streamable HTTP on 0.0.0.0:$PORT, which is what Claude.ai's remote connectors speak. Upstream offers no HTTP mode.
  • OAuth front door. Every request is authenticated against your Okta org authorization server via RFC 7662 token introspection, with the OAuth discovery metadata Claude.ai expects. Access is gated by assignment to the Claude.ai Connector app.
  • Headless backend auth. The proxied server runs with the browserless Private Key JWT flow (not the interactive device flow), suitable for a container.
  • Cloud Run deployment. Dockerfile, deploy/deploy.sh (gcloud) and terraform/ provision the service, a least-privilege runtime service account, and Secret Manager wiring; docs/DEPLOYMENT.md is the runbook.
  • Native Admin API tools. Application search, assignment listing, group assignment management, and provisioning-feature management — capabilities the base package lacks or can't serve reliably. They return raw JSON (working around a bug where the upstream SDK models reject some app subtypes) and surface Okta error bodies instead of raising. Listed below.

Tools

All the upstream okta-mcp-server tools are exposed via the proxy, filtered by OKTA_SCOPES. In addition, the wrapper adds these native tools — thin wrappers over the Okta Management API that return raw JSON (bypassing the upstream SDK models, which reject some app subtypes). On an Okta error they return the error body (e.g. E0000007, E0000006) rather than raising.

Native tools are not part of the upstream package, so they do not appear in the backend's get_scope_status.

Tool Okta endpoint Scope
find_applications GET /api/v1/apps okta.apps.read
list_application_users GET /api/v1/apps/{id}/users okta.apps.read
list_application_group_assignments GET /api/v1/apps/{id}/groups okta.apps.read
list_application_features GET /api/v1/apps/{id}/features okta.apps.read
assign_group_to_application PUT /api/v1/apps/{id}/groups/{groupId} okta.apps.manage
remove_group_from_application DELETE /api/v1/apps/{id}/groups/{groupId} okta.apps.manage
confirm_remove_group_from_application DELETE /api/v1/apps/{id}/groups/{groupId} okta.apps.manage
update_application_feature PUT /api/v1/apps/{id}/features/{name} okta.apps.manage

remove_group_from_application is destructive (it can trigger deprovisioning), so it asks for confirmation via elicitation and falls back to confirm_remove_group_from_application (requires confirmation="REMOVE") when the client can't show a prompt.

Deploy

./deploy/deploy.sh          # first pass
PUBLIC_BASE_URL="https://<run.app-url>" ./deploy/deploy.sh   # second pass

Layout: wrapper/server.py (the wrapper), Dockerfile, requirements.txt, deploy/deploy.sh (gcloud) or terraform/ (IaC), docs/DEPLOYMENT.md (runbook).

Licence & attribution

Licensed under the Apache License 2.0, © 2026 Rittman Analytics Limited.

This is an independent wrapper, not a fork. It builds on Okta's okta-mcp-server — also Apache 2.0 — which it installs as a dependency and runs as a subprocess (see requirements.txt); none of its source is copied into this repo. See NOTICE for details.

Recommended Servers

playwright-mcp

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.

Official
Featured
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

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.

Official
Featured
TypeScript
Kagi MCP Server

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.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

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.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured