- Explore MCP Servers
- permit-mcp
Permit Mcp
What is Permit Mcp
permit-mcp is an access request management server that allows AI applications to facilitate authorized individuals and end users in requesting and managing access to resources using natural language.
Use cases
Use cases include managing access requests in AI assistants, facilitating resource access in production environments, and integrating with applications like the Family Food Ordering System.
How to use
The permit-mcp server can be used locally by individuals with the necessary credentials or deployed in a hosted environment where end-users can send access requests from within an AI application.
Key features
Key features include the ability to create, list, and approve/deny access requests, manage operation approval requests, and list resource instances.
Where to use
permit-mcp can be utilized in various fields such as AI applications, resource management systems, and any environment requiring controlled access to resources.
Clients Supporting MCP
The following are the main client software that supports the Model Context Protocol. Click the link to visit the official website for more information.
Overview
What is Permit Mcp
permit-mcp is an access request management server that allows AI applications to facilitate authorized individuals and end users in requesting and managing access to resources using natural language.
Use cases
Use cases include managing access requests in AI assistants, facilitating resource access in production environments, and integrating with applications like the Family Food Ordering System.
How to use
The permit-mcp server can be used locally by individuals with the necessary credentials or deployed in a hosted environment where end-users can send access requests from within an AI application.
Key features
Key features include the ability to create, list, and approve/deny access requests, manage operation approval requests, and list resource instances.
Where to use
permit-mcp can be utilized in various fields such as AI applications, resource management systems, and any environment requiring controlled access to resources.
Clients Supporting MCP
The following are the main client software that supports the Model Context Protocol. Click the link to visit the official website for more information.
Content
Permit.io Access Request MCP Server
The Permit MCP server creates and manages access to a resource from an AI application, enabling authorized individuals and end users to request and manage access to a resource using natural language.
Features
The Permit.io MCP server allows you to:
- Create, list, and approve/deny access requests
- Create, list, and approve/deny operation approval requests
- List resource instances.
Ways You Can Use the Server?
There are two ways the Permit MCP server can be used.
-
Locally:
The server can be run locally by individuals with the required credentials (environment variables), allowing them to view, approve, or deny access requests from end-users within an AI assistant like Claude Desktop. -
Hosted / Production Deployment:
The server can be used to provide tools that allow end-users to send access requests from within an AI application. In this setup, the MCP server and the LLM run in a secure environment where user queries are processed. You can find an implementation of this in the Family Food Ordering System example.
Prerequisite
- Python >= 3.10
uv>= 0.6.1
Installation
git clone <repository_url>
cd permit-mcp
# Create a virtual environment, activate it, and install dependencies
uv venv
source .venv/bin/activate # For Windows: .venv\Scripts\activate
uv pip install -e .
Environment Variables
To set up the server, you need to supply the environment variables defined in the .env.example file.
Create a .env file in the root directory and specify the following variables:
TENANT= # default RESOURCE_KEY= # The key of the resource you want to manage access for. PERMIT_PDP_URL= # defaults to the cloud PDP https://cloudpdp.api.permit.io PERMIT_API_KEY= PROJECT_ID= ENV_ID= ACCESS_ELEMENTS_CONFIG_ID= OPERATION_ELEMENTS_CONFIG_ID=
You can use the following resources to help you do that:
- PERMIT_PDP_URL
- PERMIT_API_KEY
- PROJECT_ID
- ENV_ID
- ACCESS_ELEMENTS_CONFIG_ID: The ID of the user management element.
- OPERATION_ELEMENTS_CONFIG_ID: The ID of the approval management element.
Run the Permit MCP Server With Claude Desktop
First, install Claude Desktop.
Then, configure Claude to use the server with the following configurations:
{
"mcpServers": {
"permit": {
"command": "uv",
"args": [
"--directory",
"/ABSOLUTE/PATH/TO/PARENT/FOLDER/src/permit_mcp",
"run",
"server.py"
]
}
}
}
Building Custom Server with Permit MCP Server
The Permit MCP server provides an easy way to import and exclude its tools within your custom MCP server by using its class.
from permit_mcp import PermitServer
# Initialize FastMCP instance
mcp = FastMCP("sever_name")
permit_server = PermitServer(
mcp, exclude_tools=['create_access_request', 'create_operation_approval'])
With this, all other tools aside from create_access_request and create_operation_approval will be available.
You can find a complete implementation in the Family Food Ordering System.
Best Practices
Make sure to specify user names when syncing or creating users in Permit. This will make it easier to identify which user submitted an access or approval request when reviewing the list of requests:
await permit.api.sync_user({
"key": user_id,
"first_name": firstname
})
When using a ReBAC authorization model, if the resource instance key is not the same as its name, be sure to include the instance’s name as an attribute, along with other necessary information, when creating it.
This will make it easier for both you and the LLM to identify that instance.
await permit.api.resource_instances.create({
"resource": "restaurants",
"key": restaurant_id,
"tenant": TENANT,
"attributes": {
"name": restaurant_name,
"allowed_for_children": bool(allowed_for_children)
}
})
Dev Tools Supporting MCP
The following are the main code editors that support the Model Context Protocol. Click the link to visit the official website for more information.










