GitHub - asgardeo/asgardeo-mcp-server: MCP server to interact with your Asgardeo organization through LLM tools (original) (raw)

Asgardeo MCP Server

The Asgardeo MCP Server allows you to manage your Asgardeo organization seamlessly using LLM tools, enabling natural language interactions for various configuration tasks.

Important

Experimental Feature Notice
This software includes experimental functionality and is not intended for use in production environments. Features, APIs, and functionality may change as the implementation evolves without prior notice.

Key Use Cases

With tools like Claude Desktop, you can:

Demonstrations


How to Use

On Asgardeo

  1. Create an M2M Application: Set up an M2M application in your Asgardeo organization.
  2. Authorize Management APIs: Grant the following scopes to the application:
API Scopes
Application Management API (/api/server/v1/applications) internal_application_mgt_view, internal_application_mgt_update, internal_application_mgt_create
API Resource Management API (/api/server/v1/api-resources) internal_api_resource_update, internal_api_resource_create, internal_api_resource_view
Identity Provider Management API (/api/server/v1/identity-providers) internal_idp_view
Authenticators Management API (/api/server/v1/authenticators) internal_authenticator_view
Claim Management API (/api/server/v1/claim-dialects) internal_claim_meta_view
SCIM2 Users API (/scim2/Users) internal_user_mgt_create
OIDC Scope Management API (/api/server/v1/oidc/scopes) internal_oidc_scope_mgt_view
  1. Copy Credentials: Save the client ID and client secret of the M2M application.

On Your Machine

  1. Clone the Repository:

git clone

  1. Install Dependencies:
  2. Build the Executable:
  3. Configure Your MCP Client:

VS Code (GitHub Copilot)

Claude Desktop

Cursor


Available Tools

The Asgardeo MCP Server provides the following tools for interacting with your Asgardeo organization:

Application Management

Tool Name Description Parameters
list_applications Lists all applications in Asgardeo None
create_single_page_app Creates a new Single Page Application application_name (required): Name of the applicationredirect_url (required): Redirect URL for the application
create_webapp_with_ssr Creates a new web application with server-side rendering application_name (required): Name of the applicationredirect_url (required): Redirect URL for the application
create_mobile_app Creates a new Mobile Application application_name (required): Name of the applicationredirect_url (required): Redirect URL for the application
create_m2m_app Creates a new Machine-to-Machine Application application_name (required): Name of the application
get_application_by_name Gets details of an application by name application_name (required): Name of the application to search for
get_application_by_client_id Gets details of an application by client ID client_id (required): Client ID of the application
update_application_basic_info Updates basic information of an application id (required): ID of the applicationname, description, image_url, access_url, logout_return_url (optional)
update_application_oauth_config Updates OAuth/OIDC configurations of an application id (required): ID of the applicationredirect_urls, allowed_origins, user_access_token_expiry_time, application_access_token_expiry_time, refresh_token_expiry_time, etc. (optional)
update_application_claim_config Updates claim configurations of an application id (required): ID of the applicationclaims (required): List of requested claim URIs (Claim URIs should be specified using the default WSO2 claim dialect. Eg: http://wso2.org/claims/username)
authorize_api Authorizes an application to access an API appId (required): ID of the applicationid (required): ID of the API resourcepolicyIdentifier (required, default: "RBAC"): Authorization policyscopes (required): Scopes to authorize
list_authorized_api Lists authorized API resources of an application app_id (required): ID of the application
update_login_flow Updates login flow in an application based on a natural language prompt app_id (required): ID of the applicationuser_prompt (required): Natural language description of the desired login flow

API Resource Management

Tool Name Description Parameters
list_api_resources Lists API resources in your Asgardeo organization filter (optional): Filter expressionlimit (optional): Maximum results to return
search_api_resources_by_name Searches for API resources by name name (required): Name of the API resource to search for
get_api_resource_by_identifier Gets an API resource by its identifier identifier (required): Identifier of the API resource
create_api_resource Creates a new API resource identifier (required): Identifier for the API resourcename (required): Name of the API resourcerequiresAuthorization (required): Whether the API requires authorizationscopes (required): List of scopes for the API

User Management

Tool Name Description Parameters
create_user Creates a user in your Asgardeo organization username (required): Usernamepassword (required): Passwordemail (required): Email addressfirst_name (required): User's first namelast_name (required): User's last nameuserstore_domain (optional, default: "DEFAULT"): Userstore domain

Claim Management

Tool Name Description Parameters
list_claims Lists claims in your Asgardeo organization None

Example Prompts

Application Management

Create a new Single Page Application named "My Demo App" with redirect URL "https://example.com/callback".  
Update my application with ID "abc123" to have a new name "Updated App".  
Update the login flow of my application with ID "abc123" to Username and Password as the first step and Email OTP as the second step.  
Update the claim configuration of my application with ID "abc123" to include "username", and "last_name".  

API Resource Management

Create a new API resource named "Customer API" and authorize my application to access it with "read:customers" scopes.  

User Management

Create a test user with the username and email address 'test@example.com'.  

Claim Management

List all claims in my Asgardeo organization.  

Troubleshooting

Authentication & Permissions

Setup & Connection

Getting Help

If issues persist after troubleshooting:


Contributing

Contributions are welcome! Submit issues or pull requests via the GitHub repository.