Skip to main content
Glama
vaibhavGoyal1096

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 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 filters

  • get_okta_user - Get user by ID or email

  • create_okta_user - Create new user

  • update_okta_user - Update user profile

  • delete_okta_user - Deactivate/delete user (admin only)

  • suspend_okta_user / unsuspend_okta_user - Manage user status

Group Management

  • list_okta_groups - List all groups

  • get_okta_group - Get group details

  • create_okta_group - Create new group

  • delete_okta_group - Delete group (admin only)

  • list_group_members - List users in a group

  • add_user_to_group / remove_user_from_group - Manage membership

Audit Tools

  • query_audit_logs - Search audit history

  • get_user_audit_trail - User-specific activity

  • export_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:

See docs/README.md for the full documentation index.

License

MIT License

Latest Blog Posts

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