descope-mcp-server
OfficialThe Descope MCP Server allows you to interact with Descope's Management APIs to manage and retrieve project-related information. You can:
Search audit logs: Retrieve audit log entries with filters for locations, action types, authentication methods, tenant IDs, and more
Search users: Find user records with filters like roles, email addresses, phone numbers, login IDs, statuses, and tenant IDs
Create users: Add new users to your Descope project, specifying details like email, phone, roles, and custom attributes
Invite users: Create and invite new users to your project with customizable invitation options
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@descope-mcp-serversearch for recent audit logs from the last 24 hours"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Descope MCP Server
Introduction
The Descope Model Context Protocol (MCP) server provides an interface to interact with Descope's Management APIs, enabling the search and retrieval of project-related information.
Related MCP server: Dify Management MCP
Available Tools
search-audits: Retrieves up to 10 audit log entries from your Descope project.search-users: Retrieves up to 10 user records from your Descope project.create-user: Creates a new user in your Descope project.invite-user: Invites a new user to your Descope project.
Requirements
Before proceeding, make sure you have the following:
Node.js (version 18 or later)
Claude Desktop installed on your system
A valid Descope Project ID and Management Key
Git installed
To confirm your Node.js installation, run:
node --version # Expected output: v18.0.0 or laterSetup Instructions
Installing via Smithery
To install Descope MCP Server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @descope-sample-apps/descope-mcp-server --client claudeManual Installation
Clone the repository:
git clone https://github.com/descope-sample-apps/descope-mcp-server.git cd descope-mcp-serverInstall the necessary dependencies:
npm installBuild the project:
npm run build
Configuration
1. Configure Claude Desktop to recognize the Descope MCP server
To locate the claude_desktop_config.json file, open the Claude Desktop app and enable Developer Mode from the top-left menu bar.
Once enabled, go to Settings (also in the top-left menu), navigate to the Developer section, and click the Edit Config button to access and edit claude_desktop_config.json.
Alternatively, to open the configuration file via terminal:
On macOS:
code ~/Library/Application\ Support/Claude/claude_desktop_config.jsonOn Windows:
code %APPDATA%\Claude\claude_desktop_config.json2. Add the Descope server configuration:
{
"mcpServers": {
"descope": {
"command": "node",
"args": ["/path/to/descope-mcp-server/build/index.js"],
"env": {
"DESCOPE_PROJECT_ID": "your-descope-project-id-here",
"DESCOPE_MANAGEMENT_KEY": "your-descope-management-key-here"
}
}
}
}Replace your-descope-project-id-here and your-descope-management-key-here with your actual Descope Project ID and Management Key from app.descope.com/settings/project and app.descope.com/settings/company/managementkeys.
3. Restart Claude Desktop
To apply the changes:
Fully quit Claude Desktop (ensure it's not just minimized).
Relaunch Claude Desktop.
Check for the 🔌 icon to confirm the Descope server is connected.
Running the server
First, build the project:
npm run build1. Running the server on stdio
npm run start:stdio2. Running the server on SSE
npm run start:sseAvailable Tools
4 toolscreate-userC
Create a new user in Descope project
| Name | Required | Description | Default |
|---|---|---|---|
| loginId | Yes | Primary login identifier for the user | |
| additionalLoginIds | No | Additional login identifiers | |
| No | User's email address | ||
| verifiedEmail | No | Whether the email is pre-verified | |
| phone | No | User's phone number in E.164 format | |
| verifiedPhone | No | Whether the phone is pre-verified | |
| displayName | No | User's display name | |
| givenName | No | User's given/first name | |
| middleName | No | User's middle name | |
| familyName | No | User's family/last name | |
| picture | No | URL to user's profile picture | |
| roles | No | Global role names to assign to the user | |
| userTenants | No | Tenant associations with specific roles | |
| ssoAppIds | No | SSO application IDs to associate | |
| customAttributes | No | Custom attributes for the user |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool creates a user but doesn't mention required permissions, whether the operation is idempotent, what happens on duplicate loginIds, or what the response contains. For a mutation tool with 15 parameters, this leaves critical behavioral traits undocumented.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, with zero wasted verbiage. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (15 parameters, nested objects, no output schema, and no annotations), the description is inadequate. It doesn't explain what happens after creation, error conditions, or system behavior. For a user creation tool in an authentication system, this leaves too many contextual gaps for reliable agent operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 15 parameters thoroughly. The description adds no additional parameter semantics beyond what's in the schema. This meets the baseline of 3 when the schema does the heavy lifting, but the description doesn't compensate with any extra context about parameter interactions or requirements.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create a new user') and the resource ('in Descope project'), providing a specific verb+resource combination. However, it doesn't differentiate from the sibling 'invite-user' tool, which likely serves a related purpose. The purpose is clear but lacks sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'invite-user'. There's no mention of prerequisites, context, or exclusions. The agent must infer usage from the tool name alone, which is insufficient for informed selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invite-userC
Create and invite a new user to the Descope project
| Name | Required | Description | Default |
|---|---|---|---|
| loginId | Yes | Primary login identifier for the user | |
| additionalLoginIds | No | Additional login identifiers | |
| No | User's email address | ||
| verifiedEmail | No | Whether the email is pre-verified | |
| phone | No | User's phone number in E.164 format | |
| verifiedPhone | No | Whether the phone is pre-verified | |
| displayName | No | User's display name | |
| givenName | No | User's given/first name | |
| middleName | No | User's middle name | |
| familyName | No | User's family/last name | |
| picture | No | URL to user's profile picture | |
| roles | No | Global role names to assign to the user | |
| userTenants | No | Tenant associations with specific roles | |
| ssoAppIds | No | SSO application IDs to associate | |
| customAttributes | No | Custom attributes for the user | |
| inviteUrl | No | Custom URL for the invitation link | |
| sendMail | No | Send invite via email (default follows project settings) | |
| sendSMS | No | Send invite via SMS (default follows project settings) | |
| templateId | No | Custom template ID for the invitation | |
| templateOptions | No | Options for customizing the invitation template |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. While it indicates this is a creation/invitation operation, it doesn't mention what permissions are required, whether this sends actual invitations versus just creating user records, what happens if the user already exists, or what the response contains. For a mutation tool with 20 parameters and no annotation coverage, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that states the core purpose without unnecessary words. It's appropriately sized and front-loaded with the essential information, making it easy for an agent to quickly understand what the tool does.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex mutation tool with 20 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain what happens after invocation (does it return the created user object? an invitation link?), what errors might occur, or any behavioral nuances. The agent would struggle to use this tool effectively without trial and error.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, meaning all 20 parameters are documented in the input schema itself. The description adds no additional parameter information beyond what's already in the schema descriptions, so it meets the baseline expectation but doesn't provide extra value regarding parameter usage or relationships.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create and invite') and target resource ('a new user to the Descope project'), providing a specific verb+resource combination. However, it doesn't distinguish this tool from the sibling 'create-user' tool, which appears to serve a similar purpose but without the invitation aspect.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'create-user' or other sibling tools. There's no mention of prerequisites, when this tool is appropriate versus other user management approaches, or any exclusions or limitations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search-auditsC
Search Descope project audit logs
| Name | Required | Description | Default |
|---|---|---|---|
| loginIds | No | Filter by specific login IDs | |
| actions | No | Filter by specific action types | |
| excludedActions | No | Actions to exclude from results | |
| tenants | No | Filter by specific tenant IDs | |
| noTenants | No | If true, only show events without tenants | |
| methods | No | Filter by authentication methods | |
| geos | No | Filter by geographic locations | |
| hoursBack | No | Hours to look back (max 720 hours / 30 days) | |
| limit | No | Number of audit logs to fetch (max 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure but offers minimal information. It doesn't indicate whether this is a read-only operation, what permissions might be required, whether results are paginated, or what format the audit logs will be returned in. The description merely restates the tool name without adding meaningful behavioral context beyond what's implied by 'Search'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise - a single four-word phrase that efficiently communicates the core function. There's no wasted language or unnecessary elaboration. The description is appropriately sized for a search tool with well-documented parameters in the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 9 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain what audit logs contain, how results are structured, whether there are rate limits, or what authentication might be required. The agent would need to rely heavily on trial-and-error or external knowledge to use this tool effectively, especially given the lack of output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with each parameter clearly documented in the schema itself. The tool description adds no additional parameter information beyond what's already in the schema descriptions. According to the scoring guidelines, when schema_description_coverage is high (>80%), the baseline score is 3 even with no parameter information in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Search') and resource ('Descope project audit logs'), making the tool's purpose immediately understandable. However, it doesn't differentiate this audit log search tool from the sibling 'search-users' tool, which searches a different resource type. The description is specific about what's being searched but doesn't clarify the distinction from similar search operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance about when to use this tool versus alternatives. There's no mention of prerequisites, appropriate contexts, or comparison with sibling tools like 'search-users'. The agent must infer usage from the tool name and parameters alone, which is insufficient for optimal tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search-usersC
Search for users in Descope project
| Name | Required | Description | Default |
|---|---|---|---|
| text | No | Text to search for in user fields | |
| emails | No | Filter by specific email addresses | |
| phones | No | Filter by specific phone numbers | |
| statuses | No | Filter by user statuses ('enabled', 'disabled', or 'invited') | |
| roles | No | Filter users by role names | |
| tenantIds | No | Filter users by specific tenant IDs | |
| ssoAppIds | No | Filter users by SSO application IDs | |
| loginIds | No | Filter by specific login IDs | |
| withTestUser | No | Include test users in results | |
| testUsersOnly | No | Return only test users | |
| page | No | Page number for pagination | |
| limit | No | Number of users per page (max 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but lacks behavioral details. It doesn't disclose whether this is a read-only operation, potential rate limits, authentication requirements, or what the return format looks like (e.g., paginated results). This leaves significant gaps for an agent to understand the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, with zero waste, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (12 parameters, no annotations, no output schema), the description is incomplete. It doesn't explain behavioral aspects like pagination handling, result format, or error conditions, leaving the agent with insufficient context to use the tool effectively beyond basic parameter input.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so the schema fully documents all 12 parameters. The description adds no additional parameter semantics beyond what's in the schema, meeting the baseline of 3 where schema does the heavy lifting without extra value from the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Search for') and resource ('users in Descope project'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'search-audits' beyond the resource name, missing explicit distinction in scope or function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'create-user' or 'invite-user', nor does it mention prerequisites or contextual constraints. The description only states what it does, not when it's appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
The tools 'create-user' and 'invite-user' have significant overlap in purpose, as both involve creating new users, which could cause confusion for an agent. The other tools target distinct resources (audits vs. users), but the core user creation ambiguity is problematic.
All tool names follow a consistent verb_noun pattern with hyphens (e.g., create-user, search-audits), making them predictable and readable. There are no deviations in naming style across the set.
With only 4 tools, the set feels thin for a user management and audit domain, potentially lacking operations like update-user, delete-user, or get-user. However, it covers basic creation and search functions, placing it in a borderline range.
For a user management server, there are significant gaps: no update, delete, or get operations for users, and audit functionality is limited to search only. This incomplete surface will likely cause agent failures in handling full user lifecycles.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Manage your WorkOS workspace in plain language: orgs, users, SSO, Directory Sync, and AuthKit.
Manage a Command+K workspace: widgets, conversations, MCP connections, and usage analytics.
Manage Chili Piper scheduling links, meetings, routing rules, and teams. Admin only. Experimental.
Manage websites, help documents and customer-support conversations with safe, scoped tools.
Related MCP Servers
- AlicenseBqualityAmaintenanceEnables interaction with the Admina API to manage and query organizational SaaS resources including devices, user identities, service integrations, and account information across multiple services.313266Apache 2.0
- FlicenseNot gradedqualityCmaintenanceAllows programmatic management of a Dify instance, including listing and creating datasets, managing applications, and tool providers.
- FlicenseNot gradedqualityDmaintenanceEnables programmatic management of a Dify instance, including datasets, apps, and tools.

ConfigCat MCP Serverofficial
AlicenseCqualityAmaintenanceProvides access to ConfigCat's management API for feature flag and configuration management, enabling CRUD operations on entities like feature flags, configs, environments, and products, as well as SDK documentation.9543217MIT
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/descope-sample-apps/descope-mcp-server-stdio'
If you have feedback or need assistance with the MCP directory API, please join our Discord server