You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+21Lines changed: 21 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -26,6 +26,27 @@ For multi-package releases, use package names as subsections:
26
26
27
27
## [Unreleased]
28
28
29
+
After splitting into separate packages in v2025.8.1 for security isolation, we're consolidating back into a single package, for a few reasons:
30
+
31
+
- It seemed like a good idea, but it's early and the extra complexity adds unnecessary friction
32
+
- While production deployment would be nice eventually, the current focus is developer tooling and building a damn good MCP server for Django
33
+
34
+
The GitHub releases were previously using calendar versioning (e.g., v2025.8.1) while individual packages used semantic versioning. With the consolidation to a single package, GitHub releases will now use the package version directly. The consolidated package will be v0.10.0, continuing from the highest version among the previous packages (mcp-django-shell was at 0.9.0).
35
+
36
+
### Changed
37
+
38
+
-**BREAKING**: Consolidated mcp-django-shell functionality into main mcp-django package
39
+
- Shell tools are now included by default (no longer optional via extras)
Adds `django_shell` and `django_reset` tools for executing Python code.
61
-
62
-
```bash
63
-
# Includes shell tools for code execution
64
-
pip install "mcp-django[shell]"
65
-
66
-
# Or with uv
67
-
uv add "mcp-django[shell]"
68
-
```
69
-
70
52
> [!WARNING]
71
53
>
72
54
> **Seriously, only enable in development!**
@@ -83,18 +65,6 @@ uv add "mcp-django[shell]"
83
65
>
84
66
> I suggest using something like [django-read-only](https://github.com/adamchainz/django-read-only) if you need some CYA protection against this. Or, you know, don't use this in any sensitive environments.
85
67
86
-
### All
87
-
88
-
```bash
89
-
# Currently same as [shell]
90
-
pip install "mcp-django[all]"
91
-
92
-
# Or with uv
93
-
uv add "mcp-django[all]"
94
-
```
95
-
96
-
## Getting Started
97
-
98
68
Run the MCP server directly from your Django project directory:
99
69
100
70
```bash
@@ -179,29 +149,23 @@ Don't see your client? [Submit a PR](CONTRIBUTING.md) with setup instructions.
179
149
180
150
## Features
181
151
182
-
mcp-django provides an MCP server with Django project exploration resources and optional shell access for LLM assistants. The base package offers safe, read-only resources while the shell extra adds stateful code execution capabilities.
152
+
mcp-django provides an MCP server with Django project exploration resources and stateful shell access for LLM assistants.
183
153
184
154
It wouldn't be an MCP server README without a gratuitous list of features punctuated by emojis, so:
185
155
186
-
**Core (mcp-django):**
187
-
188
156
- 🔍 **Project exploration** - MCP resources for discovering apps, models, and configuration
189
157
- 🚀 **Zero configuration** - No schemas, no settings, just Django
190
-
- 🔒 **Safe by default** - Read-only resources, no code execution
191
-
- 🌐 **Multiple transports** - STDIO, HTTP, SSE support
192
-
193
-
**Shell (mcp-django[shell]):**
194
-
195
158
- 🐚 **Stateful shell** - `django_shell` executes Python code in your Django environment
196
159
- 🔄 **Persistent state** - Imports and variables stick around between calls
197
-
- 🧹 **Reset when needed** - `django_reset` clears the session when things get weird
160
+
- 🧹 **Reset when needed** - `django_shell_reset` clears the session when things get weird
198
161
- 🤖 **LLM-friendly** - Designed for LLM assistants that already know Python
199
162
- 📦 **Minimal dependencies** - Just FastMCP and Django (you already have Django)
200
163
- 🎯 **Does one thing well** - Runs code. That's it. That's the feature.
164
+
- 🌐 **Multiple transports** - STDIO, HTTP, SSE support
201
165
202
166
Inspired by Armin Ronacher's [Your MCP Doesn't Need 30 Tools: It Needs Code](https://lucumr.pocoo.org/2025/8/18/code-mcps/).
203
167
204
-
### Resources (mcp-django)
168
+
### Resources
205
169
206
170
Read-only resources are provided for project exploration without executing code (note that resource support varies across MCP clients):
207
171
@@ -211,12 +175,12 @@ Read-only resources are provided for project exploration without executing code
211
175
212
176
The idea is to give just enough information about the project to hopefully guide the LLM assistant and prevent needless shell exploration, allowing it to get straight to work.
213
177
214
-
### Tools (mcp-django-shell)
178
+
### Tools
215
179
216
-
When installed with the shell extra, two tools handle shell operations and session management:
180
+
Two tools handle shell operations and session management:
217
181
218
-
-`django_shell` - Execute Python code in a persistent Django shell session
219
-
-`django_reset` - Reset the session, clearing all variables and imports
182
+
-`shell` - Execute Python code in a persistent Django shell session
183
+
-`shell_reset` - Reset the session, clearing all variables and imports
220
184
221
185
Imports and variables persist between calls within the shell tool, so the LLM can work iteratively - exploring your models, testing queries, debugging issues.
Django shell tools for the [mcp-django](https://github.com/joshuadavidthomas/mcp-django) Model Context Protocol server.
4
-
5
-
## ⚠️ Security Warning
6
-
7
-
This package provides unrestricted shell access to your Django project. It executes arbitrary Python code with full access to your database and file system.
8
-
9
-
**NEVER install this in production environments!**
10
-
11
-
## Installation
12
-
13
-
This package is distributed as an optional extra of the main `mcp-django` package:
14
-
15
-
```bash
16
-
pip install "mcp-django[shell]"
17
-
```
18
-
19
-
## Features
20
-
21
-
The `mcp-django-shell` package adds two tools to the base MCP server:
22
-
23
-
-**`django_shell`** - Execute Python code in a persistent Django shell session
24
-
-**`django_reset`** - Reset the session, clearing all variables and imports
25
-
26
-
These tools enable LLM assistants to:
27
-
28
-
- Write and execute Python code directly in your Django environment
29
-
- Maintain state between calls (imports, variables persist)
30
-
- Query and modify your database using the Django ORM
31
-
- Debug and test code interactively
32
-
33
-
## Documentation
34
-
35
-
For full documentation, configuration, and usage instructions, see the main package:
mcp-django-shell is licensed under the MIT license. See the [LICENSE](https://github.com/joshuadavidthomas/mcp-django/blob/main/LICENSE) file for details.
3
+
> [!CAUTION]
4
+
> **This package is deprecated as of version 0.10.0**
5
+
>
6
+
> The shell functionality has been integrated into the main `mcp-django` package.
7
+
> Please uninstall `mcp-django-shell` and install `mcp-django>=0.10.0` instead.
0 commit comments