
API MCP server
io.fusionauth/mcp-api·v0.1.14·1 starsPreview release of FusionAuth API MCP server
1 stars342 downloads/wk
Reviews
Write oneNobody has reviewed API yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
API tools (100, 75 write)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
createAPIKeywrite actionCreates an API key. You can optionally specify a unique Id for the key, if not provided one will be generated. an API key can only be created with equal or lesser authority. An API key cannot create another API key unless it is granted to that API key. If an API key is locked to a tenant, it can only create API Keys for that same tenant.
createAPIKeyWithIdwrite actionCreates an API key. You can optionally specify a unique Id for the key, if not provided one will be generated. an API key can only be created with equal or lesser authority. An API key cannot create another API key unless it is granted to that API key. If an API key is locked to a tenant, it can only create API Keys for that same tenant.
createApplicationwrite actionCreates an application. You can optionally specify an Id for the application, if not provided one will be generated.
createApplicationRolewrite actionCreates a new role for an application. You must specify the Id of the application you are creating the role for. You can optionally specify an Id for the role inside the ApplicationRole object itself, if not provided one will be generated.
createApplicationRoleWithIdwrite actionCreates a new role for an application. You must specify the Id of the application you are creating the role for. You can optionally specify an Id for the role inside the ApplicationRole object itself, if not provided one will be generated.
createApplicationWithIdwrite actionCreates an application. You can optionally specify an Id for the application, if not provided one will be generated.
createConnectorwrite actionCreates a connector. You can optionally specify an Id for the connector, if not provided one will be generated.
createConnectorWithIdwrite actionCreates a connector. You can optionally specify an Id for the connector, if not provided one will be generated.
createConsentwrite actionCreates a user consent type. You can optionally specify an Id for the consent type, if not provided one will be generated.
createConsentWithIdwrite actionCreates a user consent type. You can optionally specify an Id for the consent type, if not provided one will be generated.
createEmailTemplatewrite actionCreates an email template. You can optionally specify an Id for the template, if not provided one will be generated.
createEmailTemplateWithIdwrite actionCreates an email template. You can optionally specify an Id for the template, if not provided one will be generated.
createEntitywrite actionCreates an Entity. You can optionally specify an Id for the Entity. If not provided one will be generated.
createEntityTypewrite actionCreates a Entity Type. You can optionally specify an Id for the Entity Type, if not provided one will be generated.
createEntityTypePermissionwrite actionCreates a new permission for an entity type. You must specify the Id of the entity type you are creating the permission for. You can optionally specify an Id for the permission inside the EntityTypePermission object itself, if not provided one will be generated.
createEntityTypePermissionWithIdwrite actionCreates a new permission for an entity type. You must specify the Id of the entity type you are creating the permission for. You can optionally specify an Id for the permission inside the EntityTypePermission object itself, if not provided one will be generated.
createEntityTypeWithIdwrite actionCreates a Entity Type. You can optionally specify an Id for the Entity Type, if not provided one will be generated.
createEntityWithIdwrite actionCreates an Entity. You can optionally specify an Id for the Entity. If not provided one will be generated.
createFormwrite actionCreates a form. You can optionally specify an Id for the form, if not provided one will be generated.
createFormFieldwrite actionCreates a form field. You can optionally specify an Id for the form, if not provided one will be generated.
createFormFieldWithIdwrite actionCreates a form field. You can optionally specify an Id for the form, if not provided one will be generated.
createFormWithIdwrite actionCreates a form. You can optionally specify an Id for the form, if not provided one will be generated.
createGroupwrite actionCreates a group. You can optionally specify an Id for the group, if not provided one will be generated.
createGroupMembersWithIdwrite actionCreates a member in a group.
createGroupWithIdwrite actionCreates a group. You can optionally specify an Id for the group, if not provided one will be generated.
createOAuthScopewrite actionCreates a new custom OAuth scope for an application. You must specify the Id of the application you are creating the scope for. You can optionally specify an Id for the OAuth scope on the URL, if not provided one will be generated.
createOAuthScopeWithIdwrite actionCreates a new custom OAuth scope for an application. You must specify the Id of the application you are creating the scope for. You can optionally specify an Id for the OAuth scope on the URL, if not provided one will be generated.
deleteAPIKeyWithIdwrite actionDeletes the API key for the given Id.
deleteApplicationRoleWithIdwrite actionHard deletes an application role. This is a dangerous operation and should not be used in most circumstances. This permanently removes the given role from all users that had it.
deleteApplicationWithIdwrite actionHard deletes an application. This is a dangerous operation and should not be used in most circumstances. This will delete the application, any registrations for that application, metrics and reports for the application, all the roles for the application, and any other data associated with the application. This operation could take a very long time, depending on the amount of data in your database.
deleteConnectorWithIdwrite actionDeletes the connector for the given Id.
deleteConsentWithIdwrite actionDeletes the consent for the given Id.
deleteEmailTemplateWithIdwrite actionDeletes the email template for the given Id.
deleteEntityGrantWithIdwrite actionDeletes an Entity Grant for the given User or Entity.
deleteEntityTypePermissionWithIdwrite actionHard deletes a permission. This is a dangerous operation and should not be used in most circumstances. This permanently removes the given permission from all grants that had it.
deleteEntityTypeWithIdwrite actionDeletes the Entity Type for the given Id.
deleteEntityWithIdwrite actionDeletes the Entity for the given Id.
deleteFormFieldWithIdwrite actionDeletes the form field for the given Id.
deleteFormWithIdwrite actionDeletes the form for the given Id.
deleteGroupMembersWithIdwrite actionRemoves users as members of a group.
deleteGroupWithIdwrite actionDeletes the group for the given Id.
deleteOAuthScopeWithIdwrite actionHard deletes a custom OAuth scope. OAuth workflows that are still requesting the deleted OAuth scope may fail depending on the application's unknown scope policy.
patchAPIKeyWithIdwrite actionUpdates an API key with the given Id.
patchApplicationRoleWithIdwrite actionUpdates, via PATCH, the application role with the given Id for the application.
patchApplicationWithIdwrite actionUpdates, via PATCH, the application with the given Id.
patchConnectorWithIdwrite actionUpdates, via PATCH, the connector with the given Id.
patchConsentWithIdwrite actionUpdates, via PATCH, the consent with the given Id.
patchEmailTemplateWithIdwrite actionUpdates, via PATCH, the email template with the given Id.
patchEntityTypePermissionWithIdwrite actionPatches the permission with the given Id for the entity type.
patchEntityTypeWithIdwrite actionUpdates, via PATCH, the Entity Type with the given Id.
patchEntityWithIdwrite actionUpdates, via PATCH, the Entity with the given Id.
patchFormFieldWithIdwrite actionPatches the form field with the given Id.
patchFormWithIdwrite actionPatches the form with the given Id.
patchGroupWithIdwrite actionUpdates, via PATCH, the group with the given Id.
patchOAuthScopeWithIdwrite actionUpdates, via PATCH, the custom OAuth scope with the given Id for the application.
retrieveAPIKeyWithIdRetrieves an authentication API key for the given Id.
retrieveApplicationRetrieves all the applications that are currently inactive. OR Retrieves the application for the given Id or all the applications if the Id is null.
retrieveApplicationWithIdRetrieves the application for the given Id or all the applications if the Id is null.
retrieveConnectorWithIdRetrieves the connector with the given Id.
retrieveConsentWithIdRetrieves the Consent for the given Id.
retrieveEmailTemplatewrite actionRetrieves the email template for the given Id. If you don't specify the Id, this will return all the email templates.
retrieveEmailTemplatePreviewWithIdwrite actionCreates a preview of the email template provided in the request. This allows you to preview an email template that hasn't been saved to the database yet. The entire email template does not need to be provided on the request. This will create the preview based on whatever is given.
retrieveEmailTemplateWithIdwrite actionRetrieves the email template for the given Id. If you don't specify the Id, this will return all the email templates.
retrieveEntityGrantWithIdRetrieves an Entity Grant for the given Entity and User/Entity.
retrieveEntityTypeWithIdRetrieves the Entity Type for the given Id.
retrieveEntityWithIdRetrieves the Entity for the given Id.
retrieveFormFieldWithIdRetrieves the form field with the given Id.
retrieveFormWithIdRetrieves the form with the given Id.
retrieveGroupWithIdRetrieves the group for the given Id.
retrieveIdentityProviderByTypeWithIdRetrieves one or more identity provider for the given type. For types such as Google, Facebook, Twitter and LinkedIn, only a single identity provider can exist. For types such as OpenID Connect and SAMLv2 more than one identity provider can be configured so this request may return multiple identity providers.
retrieveJsonWebKeySetWithIdReturns public keys used by FusionAuth to cryptographically verify JWTs using the JSON Web Key format.
retrieveOAuthScopeWithIdRetrieves a custom OAuth scope.
retrieveOauthConfigurationWithIdRetrieves the Oauth2 configuration for the application for the given Application Id.
retrieveOpenIdConfigurationWithIdReturns the well known OpenID Configuration JSON document
retrieveSystemHealthWithIdRetrieves the FusionAuth system health. This API will return 200 if the system is healthy, and 500 if the system is un-healthy.
searchApplicationsWithIdSearches applications with the specified criteria and pagination.
searchConsentsWithIdSearches consents with the specified criteria and pagination.
searchEmailTemplatesWithIdwrite actionSearches email templates with the specified criteria and pagination.
searchEntitiesByIdsWithIdRetrieves the entities for the given Ids. If any Id is invalid, it is ignored.
searchEntitiesWithIdSearches entities with the specified criteria and pagination.
searchEntityGrantsWithIdSearches Entity Grants with the specified criteria and pagination.
searchEntityTypesWithIdSearches the entity types with the specified criteria and pagination.
searchGroupMembersWithIdSearches group members with the specified criteria and pagination.
searchGroupsWithIdSearches groups with the specified criteria and pagination.
sendEmailWithIdwrite actionSend an email using an email template Id. You can optionally provide <code>requestData</code> to access key value pairs in the email template.
updateAPIKeyWithIdwrite actionUpdates an API key with the given Id.
updateApplicationRoleWithIdwrite actionUpdates the application role with the given Id for the application.
updateApplicationWithIdwrite actionUpdates the application with the given Id. OR Reactivates the application with the given Id.
updateConnectorWithIdwrite actionUpdates the connector with the given Id.
updateConsentWithIdwrite actionUpdates the consent with the given Id.
updateEmailTemplateWithIdwrite actionUpdates the email template with the given Id.
updateEntityTypePermissionWithIdwrite actionUpdates the permission with the given Id for the entity type.
updateEntityTypeWithIdwrite actionUpdates the Entity Type with the given Id.
updateEntityWithIdwrite actionUpdates the Entity with the given Id.
updateFormFieldWithIdwrite actionUpdates the form field with the given Id.
updateFormWithIdwrite actionUpdates the form with the given Id.
updateGroupMembersWithIdwrite actionCreates a member in a group.
updateGroupWithIdwrite actionUpdates the group with the given Id.
updateOAuthScopeWithIdwrite actionUpdates the OAuth scope with the given Id for the application.
upsertEntityGrantWithIdwrite actionCreates or updates an Entity Grant. This is when a User/Entity is granted permissions to an Entity.
Public scan report
scanner v0.1.9 · 2026-09-27 · same rubric, same numbers if you re-run it
- Code scan4 source files scanned20/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitystatic API keys via environment variables6/15
- Maintenancelast push 40 days ago12/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year9/10
Findings (1)
- mediumeval / new Function used
exec.evalbuild/index.js: …(jsonSchema); const zodSchema = eval(zodSchemaString); if (typeof zod…
How API compares
Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 72/100
- higher than 38% of 48,255 servers
- Tools
- 100
- the typical server has 7
- Tools that change things
- 75%
- typical: 0%. Fewer write tools means less an agent can break
- GitHub stars
- 1
- more than 65% of 28,688 servers
- Downloads a week
- 342
- more than 83% of 12,191 servers with a package
What its tools let an agent do: 25 read · 27 create · 32 change · 15 delete · 1 send or post
Install API in Claude Code, Cursor or VS Code
Runs npx -y @fusionauth/mcp-api on your machine. Read the scan report first; the gateway never runs local packages.
claude mcp add mcp-api -- npx -y @fusionauth/mcp-api
What the publisher says
From the API repository's README, as published. We do not edit it. Read it on GitHub
Preview FusionAuth API MCP Server (fusionauth-mcp-api)
A preview release of an MCP server for the FusionAuth API. Built with the excellent github.com/harsha-iiiv/openapi-mcp-generator
⚠️ Not for Production Use!
Using this MCP server requires providing the MCP client with a FusionAuth API key. Only use this for dev and test instances. FusionAuth is not responsible for potentially leaking sensitive information.
<!-- tag::forDocSite[] -->
Prerequisites
- A running FusionAuth instance
- Node.js
Configuration
First, set up a limited API key in the FusionAuth instance. Here's documentation on creating an API key and configuring the correct permissions for an API key.
Next, configure your MCP client to use the FusionAuth API MCP server.
For example, to add to Claude Desktop, edit ~/Library/Application Support/Claude/claudedesktopconfig.json to include the fusionauth-mcp-api key below.
If you don't have any previous MCP servers installed, it would look like this:
{
"mcpServers": {
"fusionauth-mcp-api": {
"command": "npx",
"args": [
"@fusionauth/mcp-api"
],
"env": {
"API_KEY_APIKEYAUTH": "<your fusionauth api key>",
"API_BASE_URL": "http://localhost:9011",
"USE_TOOLS": "retrieve,search"
}
}
}
}The USE_TOOLS env variable above essentially restricts the available tools to read-only operations. You can omit this variable to allow full access, but you will need a model that can handle about 200k tokens.
Consult your MCP client's documentation to determine exactly how to add an MCP server to your client.
Example Prompts
- "which tools do you have access to?" should show you all the FusionAuth API tools
- "how many fusionauth applications do I have?"
- "how many users do I have in my fusionauth instance?"
- "add a user with an email address of test@example.com and a password of 'password'" (requires less restricted tools)
Restricting Tools
The default MCP Server has a tool for every API endpoint of FusionAuth. Over 300 of them! However, the tools, descriptions, requests, and responses combine to nearly 200k tokens, which can exceed the context window of many MCP clients.
You can restrict which tools this MCP server makes available by setting the USE_TOOLS env variable as shown above.
Each tool is defined by its prefix. The default prefixes are:
- create
- delete
- patch
- update
- retrieve
- search
There is also an other tool bucket that contains every tool with another prefix. The all tool bucket includes all tools and is the default value.
For example, if you don't need to use any delete or patch methods, the following setting reduces the tool list by 20%.
USE_TOOLS="create,update,retrieve,search,other"If you only want to allow read-only operations, use the following configuration:
USE_TOOLS="retrieve,search"This also reduces the tool list size by 66%.
Securing Your MCP Server
There are three different approaches to secure your MCP server and you should combine them to enable secure access to your FusionAuth instance while still meeting your functionality needs. In order of granularity (from coarse to fine-grained):
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
API: common questions
- Is API MCP server safe?
- Mostly: it is graded B (72/100). Read the API safety report
- How do I install API?
- It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
- Does API need an API key?
- Yes. The registry entry asks for
API_KEY_APIKEYAUTH. - Is API maintained?
- The last commit was 78 days ago (2026-08-18). The latest release is v0.1.14.
- How does API compare with other MCP servers?
- safety score 72/100 (higher than 38% of 48,255 servers); tools 100 (the typical server has 7); tools that change things 75% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.