Skip to main content
Glama
descope-sample-apps

descope-mcp-server

Official

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:

To confirm your Node.js installation, run:

node --version  # Expected output: v18.0.0 or later

Setup 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 claude

Manual Installation

  1. Clone the repository:

    git clone https://github.com/descope-sample-apps/descope-mcp-server.git
    cd descope-mcp-server
  2. Install the necessary dependencies:

    npm install
  3. Build 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.json

On Windows:

code %APPDATA%\Claude\claude_desktop_config.json

2. 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:

  1. Fully quit Claude Desktop (ensure it's not just minimized).

  2. Relaunch Claude Desktop.

  3. Check for the 🔌 icon to confirm the Descope server is connected.

Claude Desktop with Descope MCP Server x5

Running the server

First, build the project:

npm run build

1. Running the server on stdio

npm run start:stdio

2. Running the server on SSE

npm run start:sse

Available Tools

4 tools
create-userC

Create a new user in Descope project

ParametersJSON Schema
NameRequiredDescriptionDefault
loginIdYesPrimary login identifier for the user
additionalLoginIdsNoAdditional login identifiers
emailNoUser's email address
verifiedEmailNoWhether the email is pre-verified
phoneNoUser's phone number in E.164 format
verifiedPhoneNoWhether the phone is pre-verified
displayNameNoUser's display name
givenNameNoUser's given/first name
middleNameNoUser's middle name
familyNameNoUser's family/last name
pictureNoURL to user's profile picture
rolesNoGlobal role names to assign to the user
userTenantsNoTenant associations with specific roles
ssoAppIdsNoSSO application IDs to associate
customAttributesNoCustom attributes for the user

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
loginIdYesPrimary login identifier for the user
additionalLoginIdsNoAdditional login identifiers
emailNoUser's email address
verifiedEmailNoWhether the email is pre-verified
phoneNoUser's phone number in E.164 format
verifiedPhoneNoWhether the phone is pre-verified
displayNameNoUser's display name
givenNameNoUser's given/first name
middleNameNoUser's middle name
familyNameNoUser's family/last name
pictureNoURL to user's profile picture
rolesNoGlobal role names to assign to the user
userTenantsNoTenant associations with specific roles
ssoAppIdsNoSSO application IDs to associate
customAttributesNoCustom attributes for the user
inviteUrlNoCustom URL for the invitation link
sendMailNoSend invite via email (default follows project settings)
sendSMSNoSend invite via SMS (default follows project settings)
templateIdNoCustom template ID for the invitation
templateOptionsNoOptions for customizing the invitation template

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
loginIdsNoFilter by specific login IDs
actionsNoFilter by specific action types
excludedActionsNoActions to exclude from results
tenantsNoFilter by specific tenant IDs
noTenantsNoIf true, only show events without tenants
methodsNoFilter by authentication methods
geosNoFilter by geographic locations
hoursBackNoHours to look back (max 720 hours / 30 days)
limitNoNumber of audit logs to fetch (max 10)

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
textNoText to search for in user fields
emailsNoFilter by specific email addresses
phonesNoFilter by specific phone numbers
statusesNoFilter by user statuses ('enabled', 'disabled', or 'invited')
rolesNoFilter users by role names
tenantIdsNoFilter users by specific tenant IDs
ssoAppIdsNoFilter users by SSO application IDs
loginIdsNoFilter by specific login IDs
withTestUserNoInclude test users in results
testUsersOnlyNoReturn only test users
pageNoPage number for pagination
limitNoNumber of users per page (max 100)

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

C2.9/5.0
Disambiguation2/5

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.

Naming Consistency5/5

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.

Tool Count3/5

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.

Completeness2/5

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

ActivityInactive
ResponsivenessUnresponsive

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

Related MCP Servers

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/descope-sample-apps/descope-mcp-server-stdio'

If you have feedback or need assistance with the MCP directory API, please join our Discord server