Connects Claude to the OneLogin API with 148 tools across identity management, applications, authentication, and security. You can list and modify users, assign roles, manage MFA settings, configure SAML and OAuth apps, set up risk rules, and pull event logs. Works with OAuth2 credentials passed through environment variables or a config file. Useful when you're managing user provisioning workflows, debugging authentication issues, or automating security policy changes across your identity platform. Supports multiple environments so you can test changes before hitting production.
A Model Context Protocol server providing comprehensive access to the OneLogin API. Enables Claude Desktop, OpenCode, and other MCP clients to manage users, apps, roles, authentication, and security settings.
This server provides tools covering a comprehensive set of supported OneLogin API endpoints:
All tools include comprehensive descriptions with warnings, best practices, and return data specifications.
https://github.com/user-attachments/assets/512abc44-6bb4-42e4-bb47-c0bc16f29beb
Configure credentials directly in Claude Desktop config - no separate setup required.
Edit the config file:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.jsonSingle environment:
{
"mcpServers": {
"onelogin": {
"command": "npx",
"args": ["-y", "@onelogin/onelogin-mcp"],
"env": {
"ONELOGIN_URL": "https://mycompany.onelogin.com",
"ONELOGIN_CLIENT_ID": "your_client_id",
"ONELOGIN_CLIENT_SECRET": "your_client_secret"
}
}
}
}
Multiple environments (production/test separation):
{
"mcpServers": {
"onelogin-prod": {
"command": "npx",
"args": ["-y", "@onelogin/onelogin-mcp"],
"env": {
"ONELOGIN_URL": "https://company.onelogin.com",
"ONELOGIN_CLIENT_ID": "prod_client_id",
"ONELOGIN_CLIENT_SECRET": "prod_secret"
}
},
"onelogin-test": {
"command": "npx",
"args": ["-y", "@onelogin/onelogin-mcp"],
"env": {
"ONELOGIN_URL": "https://company-test.onelogin.com",
"ONELOGIN_CLIENT_ID": "test_client_id",
"ONELOGIN_CLIENT_SECRET": "test_secret"
}
}
}
}
Optional environment variables:
ONELOGIN_USE_PREPROD: Set to "true" for preprod environmentsONELOGIN_LEGACY_KEY: Legacy API key (rarely needed)ONELOGIN_SERVER: Server name for logging (defaults to "default")Restart Claude Desktop completely after configuration.
For OpenCode users, add to ~/.config/opencode/mcp.json:
Single environment:
{
"mcpServers": {
"onelogin": {
"command": "npx",
"args": ["-y", "@onelogin/onelogin-mcp"],
"env": {
"ONELOGIN_URL": "https://mycompany.onelogin.com",
"ONELOGIN_CLIENT_ID": "your_client_id",
"ONELOGIN_CLIENT_SECRET": "your_client_secret"
}
}
}
}
Multiple environments:
{
"mcpServers": {
"onelogin-prod": {
"command": "npx",
"args": ["-y", "@onelogin/onelogin-mcp"],
"env": {
"ONELOGIN_URL": "https://company.onelogin.com",
"ONELOGIN_CLIENT_ID": "prod_client_id",
"ONELOGIN_CLIENT_SECRET": "prod_secret"
}
},
"onelogin-test": {
"command": "npx",
"args": ["-y", "@onelogin/onelogin-mcp"],
"env": {
"ONELOGIN_URL": "https://company-test.onelogin.com",
"ONELOGIN_CLIENT_ID": "test_client_id",
"ONELOGIN_CLIENT_SECRET": "test_secret"
}
}
}
}
Restart OpenCode after configuration.
Alternative method using a configuration file:
npm install -g @onelogin/onelogin-mcp
npx onelogin-mcp-setup
Enter your OneLogin server details when prompted:
https://mycompany.onelogin.com)Configuration is stored in ~/.config/onelogin-mcp/servers.json.
Edit the config file:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.jsonSingle environment:
{
"mcpServers": {
"onelogin": {
"command": "npx",
"args": ["-y", "@onelogin/onelogin-mcp"]
}
}
}
Multiple environments (reference servers by name):
{
"mcpServers": {
"onelogin-prod": {
"command": "npx",
"args": ["-y", "@onelogin/onelogin-mcp"],
"env": {
"ONELOGIN_SERVER": "Production"
}
},
"onelogin-test": {
"command": "npx",
"args": ["-y", "@onelogin/onelogin-mcp"],
"env": {
"ONELOGIN_SERVER": "Test"
}
}
}
}
Use natural language to interact with OneLogin:
List all users with email ending in @example.com
Get details for user ID 12345
Create a user john.doe@example.com with firstname John, lastname Doe
Assign roles [123, 456] to user 789
Generate MFA token for user 101112
List all SAML apps
Claude will select the appropriate tool, call the OneLogin API, and present results.
This server provides 148 tools organized into 6 major categories:
Identity & Access (59 tools)
Applications (18 tools)
Authentication (21 tools)
Security (37 tools)
Customization (6 tools)
Monitoring (7 tools)
The server supports two configuration methods:
ONELOGIN_URL, ONELOGIN_CLIENT_ID, and ONELOGIN_CLIENT_SECRET in your MCP client config (see Installation above)npx onelogin-mcp-setup to store credentials in ~/.config/onelogin-mcp/servers.jsonEnvironment variables take precedence over the configuration file. See the Installation section above for complete configuration examples.
ONELOGIN_USE_PREPROD: Set to "true" for preprod environmentsONELOGIN_LEGACY_KEY: Legacy API key (rarely needed)ONELOGIN_SERVER: Server name for logging (defaults to "default") or to select a named server from servers.jsonAll tools return structured responses:
{
"success": true,
"request_id": "68F194DE-0A0D05A2-55F8-0A0F6C42-01BB-62EAE-0008",
"status": 200,
"data": {
// Tool-specific data
}
}
The request_id matches the x-request-id HTTP header for tracing in Datadog and OneLogin logs.
index.jsClaude cannot find the Bun runtime. Solutions:
# Verify Bun is installed
which bun
# If not found, install Bun
curl -fsSL https://bun.sh/install | bash
# Or use full path in config
{
"command": "/Users/yourname/.bun/bin/bun",
"args": ["run", "/path/to/index.js"]
}
ONELOGIN_URL, ONELOGIN_CLIENT_ID, and ONELOGIN_CLIENT_SECRET in Claude Desktop config~/.config/onelogin-mcp/servers.jsonUsing environment variables: Each MCP server entry has its own credentials - verify you're talking to the correct server instance in Claude.
Using servers.json: Check the ONELOGIN_SERVER environment variable in Claude Desktop config matches a server name in servers.json.
onelogin-mcp/
├── index.js # MCP server entry point
├── setup.js # Interactive credential setup
├── lib/
│ ├── config.js # Credential management
│ ├── onelogin-api.js # OAuth2 client with token caching
│ └── tools/
│ ├── registry.js # Tool registry and dispatcher
│ ├── users.js # User management (10 tools)
│ ├── roles.js # Role management (13 tools)
│ ├── privileges.js # Privilege management (11 tools)
│ ├── apps.js # App management (7 tools)
│ ├── mfa.js # MFA management (11 tools)
│ ├── mappings.js # User mappings (14 tools)
│ ├── smart-hooks.js # Smart Hooks (8 tools)
│ ├── risk-rules.js # Risk rules (6 tools)
│ ├── api-authorization.js # OAuth scopes (17 tools)
│ ├── sessions.js # Session tokens (5 tools)
│ ├── brands.js # Branding (6 tools)
│ ├── connectors.js # App catalog (3 tools)
│ ├── reports.js # Analytics (3 tools)
│ ├── rate-limits.js # API throttling (2 tools)
│ ├── saml.js # SAML assertions (2 tools)
│ ├── invite-links.js # Password resets (2 tools)
│ ├── oauth-tokens.js # OAuth tokens (2 tools)
│ ├── events.js # Audit logs (2 tools)
│ └── groups.js # User groups (6 tools)
├── package.json
├── CONTRIBUTING.md
├── PROGRESS.md
└── README.md
See CONTRIBUTING.md for guidelines on adding new tools.
Key conventions:
tools array and handlers objectTo publish a new version to npm:
Merge your changes to the main branch
Create a GitHub Release:
v1.1.0)Automatic Publishing: The GitHub Action will:
v prefix)package.json with the new version@onelogin/onelogin-mcpVersion Format: Use semantic versioning (MAJOR.MINOR.PATCH)
MAJOR: Breaking API changesMINOR: New features, backward compatiblePATCH: Bug fixes, backward compatibleManual Publishing (if needed):
MIT
ONELOGIN_URL*Your OneLogin instance URL (e.g. https://mycompany.onelogin.com)
ONELOGIN_CLIENT_ID*secretOneLogin OAuth2 API client ID
ONELOGIN_CLIENT_SECRET*secretOneLogin OAuth2 API client secret
com.exploit-intel/eip-mcp
dmontgomery40/pentest-mcp
pantheon-security/notebooklm-mcp-secure
cyanheads/pentest-mcp-server
io.github.akhilucky/ai-firewall-mcp