OpenFGA
An MCP server for managing authorization models with OpenFGA, an open-source authorization system.
Manage and query your OpenFGA server using AI agents and tooling. Unlock the power of OpenFGA and Auth0 FGA inside agentic tooling and intelligent workflows.
Features
Tools
Store Management
create_store
: Creates a new store.list_stores
: List all stores.get_store
: Get a store's details by its ID.delete_store
: Delete a store by its ID.
Authorization Model Management
create_model
: Use OpenFGA's DSL to create an authorization model.list_models
: List authorization models.get_model
: Get an authorization model's details by its ID.verify_model
: Verify a DSL representation of an authorization model.get_model_dsl
: Get the DSL from a specific authorization model from a particular store.
Relationship Tuples Management
-
check_permission
: Check if something has a relation to an object. This answers, can (user) do (relation) on (object)? -
grant_permission
: Grant permission to something on an object by creating a relationship tuple. -
revoke_permission
: Revoke permission from something on an object by deleting a relationship tuple. -
list_users
: Return a list of users that have a given relationship with a given object. -
list_objects
: Return a list of objects of a type that something has a relation to.
Configuration
The server requires the following configuration options:
Environment Variable | Default | Description |
---|---|---|
OPENFGA_MCP_API_URL | http://127.0.0.1:8080 | URL of your OpenFGA server |
The server accepts the following optional configuration options:
Environment Variable | Default | Description |
---|---|---|
OPENFGA_MCP_TRANSPORT | stdio | Transport to use for communication with the MCP server (stdio or http ) |
OPENFGA_MCP_TRANSPORT_HOST | 127.0.0.1 | The host to bind the MCP server to (only affects HTTP transport) |
OPENFGA_MCP_TRANSPORT_PORT | 8080 | The port to bind the MCP server to (only affects HTTP transport) |
OPENFGA_MCP_TRANSPORT_JSON | false | Whether the MCP server should use JSON responses (only affects HTTP transport) |
OPENFGA_MCP_API_READONLY | false | Whether the MCP server should be read-only |
OPENFGA_MCP_API_RESTRICT | false | Whether the MCP server should be restricted to the configured store and model IDs |
OPENFGA_MCP_API_STORE | null | OpenFGA Store ID the MCP server should use by default |
OPENFGA_MCP_API_MODEL | null | OpenFGA Model ID the MCP server should use by default |
Authentication
By default, the server will try to connect to the OpenFGA server without using authentication.
To use pre-shared key (token) authentication, the server accepts the following configuration options:
Environment Variable | Default | Description |
---|---|---|
OPENFGA_MCP_API_TOKEN | null | API token for use with your OpenFGA server |
To use Client Credentials authentication, the server accepts the following configuration options:
Environment Variable | Default | Description |
---|---|---|
OPENFGA_MCP_API_CLIENT_ID | null | Client ID for use with your OpenFGA server |
OPENFGA_MCP_API_CLIENT_SECRET | null | Client secret for use with your OpenFGA server |
OPENFGA_MCP_API_ISSUER | null | API issuer for use with your OpenFGA server |
OPENFGA_MCP_API_AUDIENCE | null | API audience for use with your OpenFGA server |
Installation
Docker (Recommended)
docker pull evansims/openfga-mcp:latest
Composer
composer global require evansims/openfga-mcp
Usage
Claude Desktop
Using Docker:
{
"mcpServers": {
"OpenFGA": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e",
"OPENFGA_MCP_API_URL=http://localhost:8080",
"evansims/openfga-mcp:latest"
]
}
}
}
Using PHP:
{
"mcpServers": {
"OpenFGA": {
"command": "php",
"args": ["/path/to/vendor/bin/openfga-mcp"],
"env": {
"OPENFGA_MCP_API_URL": "http://localhost:8080"
}
}
}
}
Claude Code
Cursor
Windsurf
Warp
Raycast
Contributing
Contributions are welcome! Please ensure all tests pass and linters are satisfied before submitting a pull request.
Related Servers
openapi-to-mcp
Expose API endpoints as strongly typed tools from an OpenAPI specification. Supports OpenAPI 2.0/3.0 in JSON or YAML format, from local or remote files.
MCP Advisor
Access the Model Context Protocol specification through prompts and resources.
MCP Spec Navigator
Navigate and explore the Model Context Protocol specification with dynamic markdown tree generation and intelligent section navigation.
refactor-mcp
Refactor code using regex-based search and replace.
MCP Server
A framework for AI-powered command execution and a plugin-based tool system. It can be run as a standalone service or embedded in other projects to expose a consistent API for invoking tools and managing tasks.
Alchemy MCP Server
Interact with Alchemy's blockchain APIs to query data without writing code.
Jinni
A tool to provide Large Language Models with project context by intelligently filtering and concatenating relevant files.
LLM API Benchmark MCP Server
Benchmark LLM APIs for throughput and Time To First Token (TTFT) under various concurrency levels.
Baby-SkyNet
An autonomous memory management system for Claude AI, featuring multi-provider LLM integration and a persistent memory database.
AI Sessions
Searching and access your AI coding sessions from Claude Code, Gemini CLI, opencode, and OpenAI Codex.