Okta-MCP
A production-ready MCP server for Identity and Access Management with Okta integration, providing user and group management, audit logging, and permission guardrails.
README
MCP Server for IAM Solutions
A production-ready Model Context Protocol (MCP) Server for Identity and Access Management solutions. Currently supports Okta with an extensible architecture for Azure ENTRA ID, Google Workspace, and more.
Features
- š Okta Integration - Full user and group management
- š Audit Logging - Real-time operation tracking
- š”ļø Permission Guardrails - Three-tier access control (admin/operator/viewer)
- š¾ Local Database - SQLite for audit trails and user caching
- ā” Async Support - Built for performance
- š Web Dashboard - Flask-based management UI
- š SCIM Support - SCIM 2.0 provisioning server
š Project Structure
MCP_Final/
āāā README.md # This file
āāā requirements.txt # Python dependencies
āāā run_mcp.bat # Quick start script
ā
āāā config/ # š Configuration files
ā āāā .env.example # Environment template
ā āāā tenants.yaml # Tenant configurations
ā āāā tenants.yaml.example # Tenant template
ā
āāā docs/ # š Documentation
ā āāā ARCHITECTURE.md # System architecture
ā āāā NGROK_SETUP.md # Ngrok setup guide
ā
āāā scripts/ # š§ Utility scripts
ā āāā migrations/ # Database migrations
ā āāā testing/ # Test utilities
ā āāā utils/ # General utilities
ā
āāā src/ # šÆ Core MCP server
āāā scim/ # š SCIM 2.0 server
āāā dashboard/ # š Web dashboard
āāā data/ # š¾ Database files
Quick Start
1. Install Dependencies
pip install -r requirements.txt
2. Configure Environment
# Copy example environment file
cp config/.env.example .env
# Edit .env with your credentials
notepad .env
3. Configure Tenants
# Copy tenant example
cp config/tenants.yaml.example config/tenants.yaml
# Edit with your Okta details
notepad config/tenants.yaml
4. Initialize Database
python -m src.database.init
5. Run the Server
# Quick start
run_mcp.bat
# Or manually
python -m src.server
Configuration
Configuration files are located in the config/ directory. See config/README.md for details.
Environment Variables (.env)
| Variable | Description | Required |
|---|---|---|
OIDC_CLIENT_ID |
OAuth client ID | Yes |
OIDC_CLIENT_SECRET |
OAuth client secret | Yes |
OIDC_DISCOVERY_URL |
OIDC discovery endpoint | Yes |
SECRET_KEY |
Flask session secret | Yes |
DATABASE_URL |
SQLite database path | No (default: ./data/mcp_server.db) |
LOG_LEVEL |
Logging verbosity | No (default: INFO) |
Tenant Configuration (config/tenants.yaml)
Configure multiple Okta tenants. See config/README.md for format.
Available MCP Tools
User Management
list_okta_users- List all users with optional filtersget_okta_user- Get user by ID or emailcreate_okta_user- Create new userupdate_okta_user- Update user profiledelete_okta_user- Deactivate/delete user (admin only)suspend_okta_user/unsuspend_okta_user- Manage user status
Group Management
list_okta_groups- List all groupsget_okta_group- Get group detailscreate_okta_group- Create new groupdelete_okta_group- Delete group (admin only)list_group_members- List users in a groupadd_user_to_group/remove_user_from_group- Manage membership
Audit Tools
query_audit_logs- Search audit historyget_user_audit_trail- User-specific activityexport_audit_report- Generate reports
Permission Levels
| Level | Read | Create | Update | Delete |
|---|---|---|---|---|
| Viewer | ā | ā | ā | ā |
| Operator | ā | ā | ā | ā |
| Admin | ā | ā | ā | ā |
Claude Desktop Integration
Add to your Claude Desktop config (%APPDATA%\Claude\claude_desktop_config.json):
{
"mcpServers": {
"iam-okta": {
"command": "python",
"args": ["-m", "src.server"],
"cwd": "C:\\path\\to\\MCP_Final"
}
}
}
Components
Core MCP Server (src/)
Main Model Context Protocol server providing Okta integration tools.
SCIM Server (scim/)
SCIM 2.0 provisioning server for automated user/group management.
Dashboard (dashboard/)
Web-based management UI with user administration, audit logs, and monitoring. See dashboard/README.md.
Utilities & Scripts
All utility scripts are in the scripts/ directory:
- Migrations:
scripts/migrations/- Database migration scripts - Testing:
scripts/testing/- Test utilities - Utils:
scripts/utils/- General utilities
See scripts/README.md for details.
Documentation
Complete documentation is in the docs/ directory:
- ARCHITECTURE.md - System architecture
- NGROK_SETUP.md - Ngrok configuration
See docs/README.md for the full documentation index.
License
MIT License
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.
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.
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.
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.