Django Chainsaw runs on your own machine — the client starts it, so there is no endpoint to ping. 174 installs a week from pypi. Last commit 9 Oct 2026.
Finds what will hurt in a Django project: cascades, N+1, unsafe migrations, tenant leaks.
We read the source, 14 h ago · rules 995398eba69f
What this server is able to do. For an MCP server this is often the job itself — a terminal server runs commands because that is what it is for. Listed so you know what you are plugging in, not as an accusation.
module = __import__(settings.SETTINGS_MODULE, fromlist=["__file__"])
result = subprocess.run(
for path in root.rglob("*.py"):
Is this your server and something here is wrong? Tell us — corrections are free and do not require a plan.
We found places where it runs commands, builds paths or queries from values it is given. None of that is a flaw by itself — it becomes one when the code changes, and code changes quietly between releases. We re-read it on every one.
This server runs on your own machine — install it with the package manager and the client starts it for you. Package name taken from the official registry entry.
claude mcp add django-chainsaw-mcp -e 'DJANGO_CHAINSAW_PROJECT_PATH=<DJANGO_CHAINSAW_PROJECT_PATH>' -e 'DJANGO_CHAINSAW_SETTINGS_MODULE=<DJANGO_CHAINSAW_SETTINGS_MODULE>' -- uvx django-chainsaw-mcp
{
"mcpServers": {
"django-chainsaw-mcp": {
"command": "uvx",
"args": [
"django-chainsaw-mcp"
],
"env": {
"DJANGO_CHAINSAW_PROJECT_PATH": "<DJANGO_CHAINSAW_PROJECT_PATH>",
"DJANGO_CHAINSAW_SETTINGS_MODULE": "<DJANGO_CHAINSAW_SETTINGS_MODULE>"
}
}
}
}
[mcp_servers.django-chainsaw-mcp]
command = "uvx"
args = ["django-chainsaw-mcp"]
env = { DJANGO_CHAINSAW_PROJECT_PATH = "<DJANGO_CHAINSAW_PROJECT_PATH>", DJANGO_CHAINSAW_SETTINGS_MODULE = "<DJANGO_CHAINSAW_SETTINGS_MODULE>" }
{
"mcpServers": {
"django-chainsaw-mcp": {
"command": "uvx",
"args": [
"django-chainsaw-mcp"
],
"env": {
"DJANGO_CHAINSAW_PROJECT_PATH": "<DJANGO_CHAINSAW_PROJECT_PATH>",
"DJANGO_CHAINSAW_SETTINGS_MODULE": "<DJANGO_CHAINSAW_SETTINGS_MODULE>"
}
}
}
}
{
"servers": {
"django-chainsaw-mcp": {
"type": "stdio",
"command": "uvx",
"args": [
"django-chainsaw-mcp"
],
"env": {
"DJANGO_CHAINSAW_PROJECT_PATH": "<DJANGO_CHAINSAW_PROJECT_PATH>",
"DJANGO_CHAINSAW_SETTINGS_MODULE": "<DJANGO_CHAINSAW_SETTINGS_MODULE>"
}
}
}
}
Put your own values in place of
<DJANGO_CHAINSAW_PROJECT_PATH> (Absolute path to the Django project to analyse - the directory containing manage.py, or whichever directory the settings module is importable from. This server must run in an interpreter that can import that project, so install it into the project's own environment rather than an isolated one), <DJANGO_CHAINSAW_SETTINGS_MODULE> (Dotted path to the settings module, for example myproject.settings. Point it at the settings the site actually runs on: a base or partial module can import cleanly and load no models, and the server says so when that happens).
The author’s registry entry marks them as required.
What breaks when you upgrade a package, and what to use instead - from official docs.
Stops secrets, cross-tenant queries and unsafe migrations before they merge.
Indexes your Next.js project so an agent finds the file that owns a task in one call.
Names every statement in a Rails, Django or raw SQL migration that takes a table-blocking Postgres l
Ask a Downtrace project what changed in a Node.js backend in production, and why.
Find relevant Reddit threads, research a product website and manage LeadFast alert integrations.
Run WhatsApp, Instagram and Telegram AI assistants: projects, prompts, leads, chats, analytics.
Audit a landlord's CAM reconciliation against the lease. Finds overcharges with clause citations.
Answers built from our own checks of this server.