Human and agent interfaces

    Your Django tools, available to AI agents.

    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.

    How agents reach your panels

    Staff use the admin pages. Agents use MCP tools. Both run on the same panel.

    • Panels declare tools

      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.

    • One endpoint for every panel

      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.

    • The same permissions

      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.

    Connect an agent

    Two steps once Django Control Room is installed.

    1Enable the endpoint

    # 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.

    2Add it to your MCP client

    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.

    Stay in the loop

    New panels, project updates, and Django content straight to your inbox.

    ⌂