{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_kt53svdqkd8p","handle":"django-rest-mcp","url":"https://wellknown.network/agents/django-rest-mcp","links":{"self":"https://wellknown.network/agents/django-rest-mcp/record.json","html":"https://wellknown.network/agents/django-rest-mcp","markdown":"https://wellknown.network/agents/django-rest-mcp/record.md","api":"https://wellknown.network/api/v1/agents/django-rest-mcp","status":"https://wellknown.network/api/v1/agents/django-rest-mcp/status","claim":"https://wellknown.network/agents/django-rest-mcp/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/django-rest-mcp/claim.json","badge":"https://wellknown.network/agents/django-rest-mcp/badge.svg","openapi":"https://wellknown.network/openapi.json"},"ard":{"identifier":"urn:air::server:django-rest-mcp","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"django-rest-mcp","summary":"MCP server for Django REST Framework — auto-discovers DRF views and exposes them as MCP tools","description":"# django-rest-mcp\n\nTurn the Django REST Framework API you already have into MCP tools, without rewriting a thing.\n\n## Why\n\nYou have a DRF API. You want an MCP client (Claude, an agent, your own tooling) to call it.\n\nThe usual way is to hand-write an MCP tool for every endpoint, re-describe your\nserializers as tool inputs, and re-check your permissions in a second place that\nquietly drifts from the real API.\n\nThis package skips that. Point it at your existing DRF router and every ViewSet\naction becomes an MCP tool, input types pulled straight from your serializers,\nevery call running through your real permissions and querysets. One source of\ntruth: your API. If `curl` can hit it, an MCP client can too.\n\nIt owns no models, no business logic, no views of its own. It is glue.\n\n## What you get\n\nRegister a `BookViewSet` under `books` and an MCP client sees six tools:\n\n```\nbooks_list   books_retrieve   books_create   books_update   books_partial_update   books_destroy\n```\n\nFor each one:\n\n- **Typed inputs**, generated from the action's serializer, so the model knows\n  exactly what fields to send.\n- **Runs as the authenticated user**, so your `permission_classes`, OAuth\n  scopes, object-level permissions, and `get_queryset()` filtering all apply\n  unchanged.\n- **Returns** whatever your API already returns.\n\n## Install\n\n```bash\npip install django-rest-mcp\n```\n\nPython 3.12+, Django 5.1+, DRF 3.14+, `mcp>=1.26`, `pydantic>=2`.\n\n## How\n\nYou already have a router. Three lines:\n\n```python\n# myapp/urls.py\nfrom django.urls import path\nfrom drf_mcp import DRFMCP\nfrom myapp.urls import router          # your existing DefaultRouter\n\nmcp = DRFMCP(\"myapp\")\nmcp.autodiscover(router)\n\nurlpatterns = [path(\"mcp/\", mcp.as_view()), ...]\n```\n\nThat exposes every standard action on every registered ViewSet. That's it.\n\n### Pick what to expose\n\n```python\nmcp.autodiscover(router, include=[\"books\"])       # only these basenames\nmcp.autodiscover(router, exclude=[\"internal\"])     # all but these\n\n# or…","publisher":null,"homepage":null,"repository":null,"version":"0.2.4","license":null,"protocols":["mcp"],"tags":["mcp"],"pricing":null,"endpoints":[{"url":"pypi:django-rest-mcp","type":"package_pypi","auth":null,"probeable":false}],"skills":null,"tools":null,"extra":null,"attribution":{"kind":"pypi","name":"pypi","summary":"pypi","version":"pypi","description":"pypi"}},"derived":{"capabilities":[{"slug":"security.identity","name":"Identity & Access","confidence":0.825,"provenance":"derived"}],"categories":["security"],"language":"en"},"observed":{"status":"unknown","statusReason":"Distributed as a package to run locally; no network endpoint to check.","lastOkAt":null,"lastProbedAt":null,"statusComputedAt":null,"reliability30d":null,"latestObservations":[],"tools":null,"package":{"name":"django-rest-mcp","registry":"pypi","observedAt":"2026-09-09T14:33:25.105Z","publishedAt":"2026-06-24T10:05:44.908330Z","latestVersion":"0.2.4"}},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"pypi","key":"django-rest-mcp","url":"https://pypi.org/project/django-rest-mcp/","firstSeenAt":"2026-09-09T14:31:49.984Z","fetchedAt":"2026-09-09T14:31:49.984Z","normalizedAt":"2026-09-09T14:31:49.984Z"}]},"firstSeenAt":"2026-09-09T14:31:49.984Z","updatedAt":"2026-09-09T14:33:25.105Z"}