entra-scim-mcp
A Model Context Protocol server that exposes Microsoft Entra SCIM 2.0 Provisioning API operations as MCP tools for AI agents. It supports discovering tenant capabilities, provisioning users and groups, managing membership, and handling custom security attributes. It also includes a local mock server for testing without Azure setup.
Package and access
Local package with source-attributed installation metadata. Koskamo does not execute packages during review.
Checks and signals
Each line is separate evidence, not a trust score.
- Popularity 2 GitHub stars
What you can do with it
- Provision, read, update, and deprovision users
- Create, update, and delete groups and manage membership
- Discover tenant SCIM capabilities
- Manage custom security attributes
Source and maintenance
- Last repository push
- Maintenance checked
Packages and installation
Source-provided package data. Koskamo has not executed or live-probed this package.
entra-scim-mcp 0.4.0
{
"version": "0.4.0",
"transport": "stdio",
"identifier": "entra-scim-mcp",
"registryType": "npm",
"registryBaseUrl": "https://registry.npmjs.org",
"environmentVariables": [
{
"name": "ENTRA_TENANT_ID",
"description": "Directory (tenant) GUID. Required to authenticate against a live tenant; not needed for ENTRA_SCIM_DRY_RUN or ENTRA_SCIM_STATIC_TOKEN, which supply their own placeholder."
},
{
"name": "ENTRA_CLIENT_ID",
"description": "App registration (client) GUID. Required to authenticate against a live tenant; not needed for ENTRA_SCIM_DRY_RUN or ENTRA_SCIM_STATIC_TOKEN."
},
{
"name": "ENTRA_CLIENT_SECRET",
"description": "Client secret value. For a live tenant set exactly one of ENTRA_CLIENT_SECRET or ENTRA_CLIENT_CERT_PATH; a certificate is preferred for anything long-lived."
},
{
"name": "ENTRA_CLIENT_CERT_PATH",
"description": "Path to a PEM holding the certificate and its private key. Set exactly one of ENTRA_CLIENT_SECRET or ENTRA_CLIENT_CERT_PATH."
},
{
"name": "ENTRA_CLIENT_CERT_PASSWORD",
"description": "Password for the PEM, if it is encrypted."
},
{
"name": "ENTRA_SCIM_BASE_URL",
"description": "Override the SCIM base URL (default https://graph.microsoft.com/rp/scim). Point it at the bundled mock to try the tools without a tenant."
},
{
"name": "ENTRA_SCIM_STATIC_TOKEN",
"description": "Use a fixed bearer token instead of Azure AD. Refuses any microsoft.com/microsoft.us host and requires ENTRA_SCIM_BASE_URL; intended for the local mock only."
},
{
"name": "ENTRA_SCIM_DRY_RUN",
"description": "Set to 1 to run every client-side validation and return the request that would have been sent, without sending it or acquiring a token."
}
]
}Tools
Reported by the attributed source; not independently observed by Koskamo.
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · repository · passed · metadata changed · updated
- · backfill · recorded · Pre-expansion baseline; unobserved rich metadata remains unknown
Connect from your client
Each snippet configures the same source-provided package; replace placeholders before use.
Cursor
{
"mcpServers": {
"entra-scim-mcp": {
"command": "npx",
"args": [
"-y",
"entra-scim-mcp@0.4.0"
],
"env": {
"ENTRA_TENANT_ID": "<YOUR_ENTRA_TENANT_ID>",
"ENTRA_CLIENT_ID": "<YOUR_ENTRA_CLIENT_ID>",
"ENTRA_CLIENT_SECRET": "<YOUR_ENTRA_CLIENT_SECRET>",
"ENTRA_CLIENT_CERT_PATH": "<YOUR_ENTRA_CLIENT_CERT_PATH>",
"ENTRA_CLIENT_CERT_PASSWORD": "<YOUR_ENTRA_CLIENT_CERT_PASSWORD>",
"ENTRA_SCIM_BASE_URL": "<YOUR_ENTRA_SCIM_BASE_URL>",
"ENTRA_SCIM_STATIC_TOKEN": "<YOUR_ENTRA_SCIM_STATIC_TOKEN>",
"ENTRA_SCIM_DRY_RUN": "<YOUR_ENTRA_SCIM_DRY_RUN>"
}
}
}
}Cline
{
"mcpServers": {
"entra-scim-mcp": {
"command": "npx",
"args": [
"-y",
"entra-scim-mcp@0.4.0"
],
"env": {
"ENTRA_TENANT_ID": "<YOUR_ENTRA_TENANT_ID>",
"ENTRA_CLIENT_ID": "<YOUR_ENTRA_CLIENT_ID>",
"ENTRA_CLIENT_SECRET": "<YOUR_ENTRA_CLIENT_SECRET>",
"ENTRA_CLIENT_CERT_PATH": "<YOUR_ENTRA_CLIENT_CERT_PATH>",
"ENTRA_CLIENT_CERT_PASSWORD": "<YOUR_ENTRA_CLIENT_CERT_PASSWORD>",
"ENTRA_SCIM_BASE_URL": "<YOUR_ENTRA_SCIM_BASE_URL>",
"ENTRA_SCIM_STATIC_TOKEN": "<YOUR_ENTRA_SCIM_STATIC_TOKEN>",
"ENTRA_SCIM_DRY_RUN": "<YOUR_ENTRA_SCIM_DRY_RUN>"
}
}
}
}VS Code
{
"servers": {
"entra-scim-mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"entra-scim-mcp@0.4.0"
],
"env": {
"ENTRA_TENANT_ID": "<YOUR_ENTRA_TENANT_ID>",
"ENTRA_CLIENT_ID": "<YOUR_ENTRA_CLIENT_ID>",
"ENTRA_CLIENT_SECRET": "<YOUR_ENTRA_CLIENT_SECRET>",
"ENTRA_CLIENT_CERT_PATH": "<YOUR_ENTRA_CLIENT_CERT_PATH>",
"ENTRA_CLIENT_CERT_PASSWORD": "<YOUR_ENTRA_CLIENT_CERT_PASSWORD>",
"ENTRA_SCIM_BASE_URL": "<YOUR_ENTRA_SCIM_BASE_URL>",
"ENTRA_SCIM_STATIC_TOKEN": "<YOUR_ENTRA_SCIM_STATIC_TOKEN>",
"ENTRA_SCIM_DRY_RUN": "<YOUR_ENTRA_SCIM_DRY_RUN>"
}
}
}
}Claude Desktop
{
"mcpServers": {
"entra-scim-mcp": {
"command": "npx",
"args": [
"-y",
"entra-scim-mcp@0.4.0"
],
"env": {
"ENTRA_TENANT_ID": "<YOUR_ENTRA_TENANT_ID>",
"ENTRA_CLIENT_ID": "<YOUR_ENTRA_CLIENT_ID>",
"ENTRA_CLIENT_SECRET": "<YOUR_ENTRA_CLIENT_SECRET>",
"ENTRA_CLIENT_CERT_PATH": "<YOUR_ENTRA_CLIENT_CERT_PATH>",
"ENTRA_CLIENT_CERT_PASSWORD": "<YOUR_ENTRA_CLIENT_CERT_PASSWORD>",
"ENTRA_SCIM_BASE_URL": "<YOUR_ENTRA_SCIM_BASE_URL>",
"ENTRA_SCIM_STATIC_TOKEN": "<YOUR_ENTRA_SCIM_STATIC_TOKEN>",
"ENTRA_SCIM_DRY_RUN": "<YOUR_ENTRA_SCIM_DRY_RUN>"
}
}
}
}Let your agent find its tools
Find servers like entra-scim-mcp from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.