Okta-MCP
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 filesQuick Start
1. Install Dependencies
pip install -r requirements.txt2. Configure Environment
# Copy example environment file
cp config/.env.example .env
# Edit .env with your credentials
notepad .env3. Configure Tenants
# Copy tenant example
cp config/tenants.yaml.example config/tenants.yaml
# Edit with your Okta details
notepad config/tenants.yaml4. Initialize Database
python -m src.database.init5. Run the Server
# Quick start
run_mcp.bat
# Or manually
python -m src.serverConfiguration
Configuration files are located in the config/ directory. See config/README.md for details.
Environment Variables (.env)
Variable | Description | Required |
| OAuth client ID | Yes |
| OAuth client secret | Yes |
| OIDC discovery endpoint | Yes |
| Flask session secret | Yes |
| SQLite database path | No (default: |
| Logging verbosity | No (default: |
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 scriptsTesting:
scripts/testing/- Test utilitiesUtils:
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
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/vaibhavGoyal1096/Okta-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server