NestDaddy

Microsoft Entra SCIM

io.github.darrenjrobinson/entra-scim-mcp · v0.4.0

Microsoft Entra SCIM 2.0 Provisioning API: user and group lifecycle, with a local mock.

Connect Runs on your machine

Terminal
claude mcp add entra-scim-mcp -e ENTRA_TENANT_ID=<ENTRA_TENANT_ID> -e ENTRA_CLIENT_ID=<ENTRA_CLIENT_ID> -e ENTRA_CLIENT_SECRET=<ENTRA_CLIENT_SECRET> -e ENTRA_CLIENT_CERT_PATH=<ENTRA_CLIENT_CERT_PATH> -e ENTRA_CLIENT_CERT_PASSWORD=<ENTRA_CLIENT_CERT_PASSWORD> -e ENTRA_SCIM_BASE_URL=<ENTRA_SCIM_BASE_URL> -e ENTRA_SCIM_STATIC_TOKEN=<ENTRA_SCIM_STATIC_TOKEN> -e ENTRA_SCIM_DRY_RUN=<ENTRA_SCIM_DRY_RUN> -- npx -y [email protected]
claude_desktop_config.json
{
  "mcpServers": {
    "entra-scim-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "[email protected]"
      ],
      "env": {
        "ENTRA_TENANT_ID": "<ENTRA_TENANT_ID>",
        "ENTRA_CLIENT_ID": "<ENTRA_CLIENT_ID>",
        "ENTRA_CLIENT_SECRET": "<ENTRA_CLIENT_SECRET>",
        "ENTRA_CLIENT_CERT_PATH": "<ENTRA_CLIENT_CERT_PATH>",
        "ENTRA_CLIENT_CERT_PASSWORD": "<ENTRA_CLIENT_CERT_PASSWORD>",
        "ENTRA_SCIM_BASE_URL": "<ENTRA_SCIM_BASE_URL>",
        "ENTRA_SCIM_STATIC_TOKEN": "<ENTRA_SCIM_STATIC_TOKEN>",
        "ENTRA_SCIM_DRY_RUN": "<ENTRA_SCIM_DRY_RUN>"
      }
    }
  }
}
~/.cursor/mcp.json
{
  "mcpServers": {
    "entra-scim-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "[email protected]"
      ],
      "env": {
        "ENTRA_TENANT_ID": "<ENTRA_TENANT_ID>",
        "ENTRA_CLIENT_ID": "<ENTRA_CLIENT_ID>",
        "ENTRA_CLIENT_SECRET": "<ENTRA_CLIENT_SECRET>",
        "ENTRA_CLIENT_CERT_PATH": "<ENTRA_CLIENT_CERT_PATH>",
        "ENTRA_CLIENT_CERT_PASSWORD": "<ENTRA_CLIENT_CERT_PASSWORD>",
        "ENTRA_SCIM_BASE_URL": "<ENTRA_SCIM_BASE_URL>",
        "ENTRA_SCIM_STATIC_TOKEN": "<ENTRA_SCIM_STATIC_TOKEN>",
        "ENTRA_SCIM_DRY_RUN": "<ENTRA_SCIM_DRY_RUN>"
      }
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "entra-scim-mcp": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "[email protected]"
      ],
      "env": {
        "ENTRA_TENANT_ID": "<ENTRA_TENANT_ID>",
        "ENTRA_CLIENT_ID": "<ENTRA_CLIENT_ID>",
        "ENTRA_CLIENT_SECRET": "<ENTRA_CLIENT_SECRET>",
        "ENTRA_CLIENT_CERT_PATH": "<ENTRA_CLIENT_CERT_PATH>",
        "ENTRA_CLIENT_CERT_PASSWORD": "<ENTRA_CLIENT_CERT_PASSWORD>",
        "ENTRA_SCIM_BASE_URL": "<ENTRA_SCIM_BASE_URL>",
        "ENTRA_SCIM_STATIC_TOKEN": "<ENTRA_SCIM_STATIC_TOKEN>",
        "ENTRA_SCIM_DRY_RUN": "<ENTRA_SCIM_DRY_RUN>"
      }
    }
  }
}

Replace the values in angle brackets with your own. Keys stay on your machine; we never see them.

Tools

This server runs locally, so its tools are listed by your MCP client once it starts.

Environment variables

NameDescription
ENTRA_TENANT_ID
Optional
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.
ENTRA_CLIENT_ID
Optional
App registration (client) GUID. Required to authenticate against a live tenant; not needed for ENTRA_SCIM_DRY_RUN or ENTRA_SCIM_STATIC_TOKEN.
ENTRA_CLIENT_SECRET
Optional, secret
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.
ENTRA_CLIENT_CERT_PATH
Optional
Path to a PEM holding the certificate and its private key. Set exactly one of ENTRA_CLIENT_SECRET or ENTRA_CLIENT_CERT_PATH.
ENTRA_CLIENT_CERT_PASSWORD
Optional, secret
Password for the PEM, if it is encrypted.
ENTRA_SCIM_BASE_URL
Optional
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.
ENTRA_SCIM_STATIC_TOKEN
Optional, secret
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.
ENTRA_SCIM_DRY_RUN
Optional
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.

Details

Package[email protected] (NPM, stdio)
First published14 Oct 2026
Last updated14 Oct 2026
Registry nameio.github.darrenjrobinson/entra-scim-mcp

More other servers See all

Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.