MCPcopy
hub / github.com/casdoor/casdoor

github.com/casdoor/casdoor @v3.105.0 sqlite

repository ↗ · DeepWiki ↗ · release v3.105.0 ↗
6,654 symbols 24,185 edges 795 files 908 documented · 14%
README

Casdoor

Casdoor: AI-First Identity and Access Management (IAM) / AI MCP Gateway

<strong>An open-source, AI-first IAM / MCP gateway and authentication server with a web UI.</strong>


Supporting MCP, A2A, OAuth&nbsp;2.0, OIDC (OAuth&nbsp;2.x), SAML, CAS, LDAP, SCIM, WebAuthn, TOTP, MFA, Face ID,


Google Workspace, Azure AD, and more.







<a href="https://casdoor.ai/"><strong>Documentation and guides: casdoor.ai</strong></a>







<a href="https://casdoor.ai/docs/overview">
  <img src="https://img.shields.io/badge/documentation-casdoor.ai%2Fdocs-1890ff?style=flat-square&logo=readthedocs&logoColor=white" alt="Documentation">
</a>
<a href="https://github.com/casdoor/casdoor/releases/latest">
  <img src="https://img.shields.io/github/v/release/casdoor/casdoor?style=flat-square&color=blue" alt="GitHub Release">
</a>
<a href="https://hub.docker.com/r/casbin/casdoor">
  <img src="https://img.shields.io/docker/pulls/casbin/casdoor?style=flat-square&color=brightgreen" alt="Docker Pulls">
</a>
<a href="https://github.com/casdoor/casdoor/actions/workflows/build.yml">
  <img src="https://img.shields.io/github/actions/workflow/status/casdoor/casdoor/build.yml?style=flat-square&label=build" alt="Build Status">
</a>
<a href="https://goreportcard.com/report/github.com/casdoor/casdoor">
  <img src="https://goreportcard.com/badge/github.com/casdoor/casdoor?style=flat-square" alt="Go Report Card">
</a>
<a href="https://github.com/casdoor/casdoor/blob/master/LICENSE">
  <img src="https://img.shields.io/github/license/casdoor/casdoor?style=flat-square&color=orange" alt="License">
</a>







<a href="https://github.com/casdoor/casdoor/stargazers">
  <img src="https://img.shields.io/github/stars/casdoor/casdoor?style=flat-square&color=yellow" alt="GitHub Stars">
</a>
<a href="https://github.com/casdoor/casdoor/network/members">
  <img src="https://img.shields.io/github/forks/casdoor/casdoor?style=flat-square" alt="GitHub Forks">
</a>
<a href="https://github.com/casdoor/casdoor/issues">
  <img src="https://img.shields.io/github/issues/casdoor/casdoor?style=flat-square&color=red" alt="GitHub Issues">
</a>
<a href="https://discord.gg/5rPsrAzK7S">
  <img src="https://img.shields.io/discord/1022748306096537660?style=flat-square&logo=discord&label=Discord&color=5865F2" alt="Discord">
</a>
<a href="https://crowdin.com/project/casdoor-site">
  <img src="https://badges.crowdin.net/casdoor-site/localized.svg" alt="Crowdin">
</a>







<a href="https://casdoor.ai"><strong>Website</strong></a> ·
<a href="https://casdoor.ai/docs/overview"><strong>Documentation</strong></a> ·
<a href="https://door.casdoor.com"><strong>Live demo</strong></a> ·
<a href="https://discord.gg/5rPsrAzK7S"><strong>Discord</strong></a>

Table of contents


Why Casdoor

Casdoor is a UI-first identity provider and access management platform: one place to manage users, organizations, applications, and providers, with a modern web console. Authorization policies can be expressed with Casbin (ACL, RBAC, ABAC, and more). Unlike reverse-proxy-centric auth companions, Casdoor is a dedicated auth server with broad protocol support, designed to be straightforward to self-host and integrate—see casdoor.ai for documentation.


🌐 Live demos

Environment URL Description
Read-only door.casdoor.com Global demo; any modification or write operation will fail (read-only).
Writable demo.casdoor.com Full access for testing; data is reset about every 5 minutes.

Default demo admin login (where applicable): admin / 123 — use only for demos; change credentials on your own deployment.


🚀 Quick start

Pick one deployment method below. To keep behavior consistent with upstream, the steps are aligned with official docs.

🛠️ Source code (default)

  1. Install dependencies: Go 1.25 (follow go.mod), Node.js LTS (20), Yarn 1.x, and a supported database.
  2. Clone the repository:
git clone https://github.com/casdoor/casdoor.git
cd casdoor
  1. Configure database in conf/app.conf (at minimum set driverName, dataSourceName, and dbName; for MySQL create database casdoor first).
  2. Build frontend and start backend:
cd web
yarn install
yarn build
cd ..
go run main.go
  1. Open http://localhost:8000 and sign in with built-in/admin / 123 on a fresh install (change password immediately in production).

Official guide: Server installation

🐳 Docker

Use one of the official Docker paths:

  • All-in-one (SQLite quick trial):
docker run -p 8000:8000 casbin/casdoor-all-in-one
  • Docker Compose (with your conf/app.conf next to docker-compose.yml):
docker compose up

Then open http://localhost:8000 and sign in with built-in/admin / 123 on a fresh install.

Official guide: Try with Docker

☸️ Kubernetes Helm

With Helm v3 and a running Kubernetes cluster:

helm install casdoor oci://registry-1.docker.io/casbin/casdoor-helm-charts

After installation, access Casdoor through your cluster service/ingress. The official guide covers chart versions (including optional --version) and cluster-specific settings.

Official guide: Try with Helm


✨ Features

### 🔐 Authentication - **OAuth 2.0 / OIDC** — OpenID Connect and OAuth 2.x authorization - **SAML 2.0** — Enterprise SSO integration - **CAS** — Central Authentication Service - **LDAP** — Directory service integration - **WebAuthn / Passkeys** — Passwordless authentication - **TOTP / MFA** — Multi-factor authentication - **Face ID** — Biometric authentication ### 🏢 Enterprise - **SCIM 2.0** — User provisioning - **RBAC** — Role-based access control - **Social Login** — Google, GitHub, Azure AD, and more - **Custom providers** — Extensible identity providers - **User management** — Web UI for administration - **Audit logs** — Comprehensive logging - **Multi-tenancy** — Organization support
### 🤖 AI & MCP - **MCP Gateway** — Model Context Protocol support - **A2A Protocol** — Agent-to-Agent communication - **AI-First Design** — Built for AI applications ### 🛠️ Developer Experience - **RESTful API** — Complete API coverage - **SDKs** — Go, Java, Python, Node.js, and more - **Swagger UI** — Interactive API documentation - **Webhooks** — Event-driven integrations - **Customizable UI** — Brand theming support

Technology stack

Casdoor is built as a frontend–backend separated project:

  • Web UI: JavaScript and React (web/)
  • API server: Go with Beego, RESTful APIs (repository root)
  • Data: mainstream databases including MySQL, PostgreSQL, and others (overview)
  • Cache: optional Redis for session/cache-style deployments (configure as needed)

📖 Documentation

All product documentation, installation, and tutorials live at casdoor.ai/docs/overview. Start here, then use the sections below.

Install

Connect applications

APIs


🔌 Integrations

Casdoor integrates with common languages and frameworks:

Go Java Python Node.js React Vue Angular

Browse the full list: Integrations.


🤝 Community and support


🌍 Contributing

If you have questions about Casdoor, you can open an issue. Pull requests are welcome; we recommend opening an issue first so you can align with maintainers and the community before larger changes.

Please also read our contribution guidelines before contributing.

Translation and i18n


❤️ Donate

If you find Casdoor useful, please consider supporting its development:

Sponsors on Open Collective

Backers on Open Collective


📄 License

Casdoor is licensed under the Apache License 2.0.


Made with ❤️ By Casdoor

GitHub Stars

© 2026 Casdoor. Licensed under Apache License 2.0.

Extension points exported contracts — how you extend this code

SyncerProvider (Interface)
SyncerProvider defines the interface that all syncer implementations must satisfy. Different syncer types (Database, Key [10 …
object/syncer_interface.go
CredManager (Interface)
(no doc) [8 implementers]
cred/manager.go
PaymentProvider (Interface)
(no doc) [13 implementers]
pp/provider.go
EmailProvider (Interface)
(no doc) [7 implementers]
email/provider.go
IdProvider (Interface)
(no doc) [31 implementers]
idp/provider.go
LogProvider (Interface)
LogProvider is the common interface for all log providers. Push-based providers (e.g. PermissionLogProvider) receive in [4 …
log/provider.go
CaptchaProvider (Interface)
(no doc) [7 implementers]
captcha/provider.go
Rule (Interface)
(no doc) [5 implementers]
rule/rule.go

Core symbols most depended-on inside this repo

n
called by 2510
swagger/swagger-ui-bundle.js
n
called by 2510
swagger/swagger-ui-es-bundle.js
n
called by 2116
swagger/swagger-ui.js
n
called by 2116
swagger/swagger-ui-es-bundle-core.js
n
called by 1230
swagger/swagger-ui-standalone-preset.js
ResponseError
called by 1057
controllers/util.go
Error
called by 963
object/signin_error.go
o
called by 472
swagger/swagger-ui-bundle.js

Shape

Function 4,597
Method 1,317
Struct 512
Class 203
Interface 14
TypeAlias 7
FuncType 4

Languages

Go51%
TypeScript49%

Modules by API surface

swagger/swagger-ui-es-bundle.js471 symbols
swagger/swagger-ui-bundle.js471 symbols
swagger/swagger-ui-standalone-preset.js203 symbols
swagger/swagger-ui.js163 symbols
swagger/swagger-ui-es-bundle-core.js163 symbols
web/src/Setting.js93 symbols
object/user.go63 symbols
object/openclaw_transcript_sync.go42 symbols
mcpself/base.go40 symbols
object/openclaw_session_graph.go38 symbols
util/string.go37 symbols
object/user_util.go31 symbols

Dependencies from manifests, versioned

cel.dev/exprv0.25.1 · 1×
cloud.google.com/gov0.116.0 · 1×
cloud.google.com/go/authv0.13.0 · 1×
cloud.google.com/go/auth/oauth2adaptv0.2.6 · 1×
cloud.google.com/go/compute/metadatav0.9.0 · 1×
cloud.google.com/go/monitoringv1.21.2 · 1×
cloud.google.com/go/storagev1.47.0 · 1×
dario.cat/mergov1.0.0 · 1×
filippo.io/edwards25519v1.1.0 · 1×
github.com/Azure/azure-pipeline-gov0.2.3 · 1×
github.com/Azure/azure-storage-blob-gov0.15.0 · 1×

For agents

$ claude mcp add casdoor \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact