Human and agent interfaces
DCR panels can expose MCP tools. Connect Claude, Cursor, or any MCP client to one endpoint, and it calls the same operations your staff use, under the same permissions.
You ask your agent
Why did payment 4812 fail? Retry it if the customer updated their card.
billing_ops__get_payment
Card declined. Card updated 2 hours ago.
billing_ops__retry_payment
Payment 4812 succeeded.
Staff use the admin pages. Agents use MCP tools. Both run on the same panel.
A panel registers MCP tools next to its pages, each with a description and a JSON Schema for its input. Handlers run your Django code.
The control room serves every installed panel's tools from a single endpoint in your admin, behind a bearer token. It stays off until you enable it.
Agents act as a dedicated staff user. Each tool has its own agent scope, so you choose which tools an agent can call, separately from what staff can do.
Two steps once Django Control Room is installed.
# settings.py
DJ_CONTROL_ROOM_SETTINGS = {
"MCP_ENABLED": True,
"MCP_TOKEN": os.environ.get("DCR_MCP_TOKEN"),
"MCP_USERNAME": "mcp-agent",
}Use a staff account that is not a superuser, so scopes still apply. Outside development, serve the endpoint over HTTPS and rotate the token like any other credential.
claude mcp add --transport http dj-control-room \
http://localhost:8000/admin/dj-control-room/mcp/ \
--header "Authorization: Bearer $DCR_MCP_TOKEN"Any MCP client that supports Streamable HTTP with a custom header will work.
New panels, project updates, and Django content straight to your inbox.