MCP server providing a stateful Django shell for AI assistants.
Project description
mcp-django-shell
A Model Context Protocol (MCP) server providing a stateful Django shell for AI assistants to interact with Django projects.
Requirements
- Python 3.10, 3.11, 3.12, 3.13
- Django 4.2, 5.1, 5.2
Installation
-
Install the package from PyPI.
python -m pip install mcp-django-shell # or if you like the new hotness uv add mcp-django-shell uv sync
-
Add to your Django project's
INSTALLED_APPS:DEBUG = ... if DEBUG: INSTALLED_APPS.append("mcp_django_shell")
[!WARNING]
Only enable in development!
Look, it should go without saying, but I will say it anyway - this gives full shell access to your Django project. Only enable and use this in development and in a project that does not have access to any production data. LLMs can go off the rails, get spooked by some random error, and in trying to fix things drop a production database.
Getting Started
mcp-django-shell provides a Django management command that MCP clients can connect to. Configure your client using one of the examples below.
Don't see your client? Submit a PR with setup instructions.
Claude Code
{
"mcpServers": {
"django_shell": {
"command": "python",
"args": ["manage.py", "mcp_shell"],
"cwd": "/path/to/your/django/project"
}
}
}
Opencode
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"django_shell": {
"type": "local",
"command": ["python", "manage.py", "mcp_shell"],
"enabled": true
}
}
}
Usage
mcp-django-shell provides an MCP server with a stateful Django shell for AI assistants. It sets up Django, maintains session state between calls, and lets the AI write and execute Python code directly against your project.
The MCP server comes with just two tools:
django_shell- Execute Python code in a persistent Django shell sessiondjango_reset- Reset the session, clearing all variables and imports
Imports and variables persist between calls, so the AI can work iteratively - exploring your models, testing queries, debugging issues.
It wouldn't be an MCP server README without a gratuitous list of features punctuated by emojis, so:
- 🐚 One tool -
django_shellexecutes Python code in your Django environment - 🔄 Persistent state - Imports and variables stick around between calls
- 🧹 Reset when needed -
django_resetclears the session when things get weird - 🚀 Zero configuration - No schemas, no settings, just Django
- 🤖 LLM-friendly - Designed for AI assistants that already know Python
- 📦 Minimal dependencies - Just FastMCP and Django (you already have Django)
- 🎯 Does one thing well - Runs code. That's it. That's the feature.
Inspired by Armin Ronacher's Your MCP Doesn't Need 30 Tools: It Needs Code.
Development
For detailed instructions on setting up a development environment and contributing to this project, see CONTRIBUTING.md.
For release procedures, see RELEASING.md.
License
mcp-django-shell is licensed under the MIT license. See the LICENSE file for more information.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mcp_django_shell-0.3.1.tar.gz.
File metadata
- Download URL: mcp_django_shell-0.3.1.tar.gz
- Upload date:
- Size: 8.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.8.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
57ecd41006767dd45d9087ee00f0ac7c3a78df26c2fe34a52ad43a61fec83ef2
|
|
| MD5 |
0ebe720ba7ddb2cf9ed2e673c6c8671a
|
|
| BLAKE2b-256 |
ba4368aa4dacbedd2fe3e87563f318ec16560c2d9f84d802ad7caa7df3110c09
|
File details
Details for the file mcp_django_shell-0.3.1-py3-none-any.whl.
File metadata
- Download URL: mcp_django_shell-0.3.1-py3-none-any.whl
- Upload date:
- Size: 9.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.8.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0ae569953db0f534c421c642f01b9ea6811759b7fa5c963a895f110fd226edc4
|
|
| MD5 |
9c2ee8b359a5fc7dbf31f2e007a26105
|
|
| BLAKE2b-256 |
c993da5332cb4ee8823ac5c42a67246e735924b45549edba5d75594aebd25adc
|