A Django-native MCP tool framework inspired by Celery.
Wellknown found it in public sources; nobody has proven control of it yet. Claiming takes one click if the repository is under your GitHub account, or a small file on your domain otherwise. Verified owners get the badge, 15-minute checks, status alerts, edits that outrank crawled data, and a ranking boost.
Agents can do it too: POST https://wellknown.network/api/v1/claims with {"agent":"django-native-mcp","method":"well_known_file"} — machine-readable steps at claim.json, guide at /docs/claim.
Everything here was measured by our prober or read from a registry. Nothing is self-reported.
Attributed to the source that supplied each field. Treated as claims, not facts.
# django-native-mcp A small Django-native MCP application and tool registration framework inspired by Celery. It delegates protocol handling, schemas, validation, serialization, stdio, and Streamable HTTP to the official [`mcp` Python SDK](https://github.com/modelcontextprotocol/python-sdk). ### This is not another wrapper around FastMCP, the dependencies are only native Python SDK ## Installation ```bash pip install django-native-mcp ``` Add the application and its configuration: ```python # settings.py INSTALLED_APPS = [ # ... "django_native_mcp", ] DJANGO_NATIVE_MCP = { "APP": "config.mcp:app", } ``` For a public Streamable HTTP host, configure the SDK host and DNS rebinding allowlists explicitly: DJANGO_NATIVE_MCP = { "APP": "config.mcp:app", "HOST": "0.0.0.0", "TRANSPORT_SECURITY_SETTINGS": { "ENABLE_DNS_REBINDING_PROTECTION": True, "ALLOWED_HOSTS": ["mysite.com"], "ALLOWED_ORIGINS": ["https://mysite.com"], }, } The optional settings preserve the official SDK defaults when omitted. Streamable HTTP MCP is protected by bearer tokens by default. The package provides an `MCPToken` model in the Django admin; its generated 40-character key is sent as `Authorization: Bearer <key>`. Tokens support `last_used` tracking and optional expiration. Set `DJANGO_NATIVE_MCP["DEFAULT_AUTHENTICATION_CLASSES"]` to a list of dotted backend paths to replace the default `django_native_mcp.authentication.MCPTokenBackend`. Set it to `None` or `[]` to make the HTTP MCP endpoint public. Create the application: ```python # config/mcp.py from django_native_mcp import MCP app = MCP("backend") app.autodiscover_tools() ``` Declare tools explicitly in installed Django apps: ```python # orders/mcp.py from django_native_mcp import shared_tool from .models import Order @shared_tool async def get_order(order_id: int) -> dict: """Get an order.""" order = await Order.objects.aget(pk=…
Mapped onto the structured taxonomy from declared text and observed tool names. Confidence shown for derived entries.
Every source is kept verbatim. Field changes are logged as events.