项目简介
'mcp-django' 是一个遵循 Model Context Protocol (MCP) 标准的服务器实现,旨在将您的Django项目转化为LLM可理解和操作的上下文。它允许大型语言模型 (LLM) 客户端以结构化的方式获取Django项目的内部信息(如应用程序、模型、配置),并提供一个有状态的Python shell,使LLM能够直接执行Python代码,与Django环境进行深度交互,从而实现自动化开发、调试和数据操作。
主要功能点
- Django项目探索: 提供一系列只读的MCP资源,让LLM能够快速了解Django项目的结构,包括:
- 'django://project': Python环境和Django配置的详细信息。
- 'django://apps': 所有已安装的Django应用程序及其包含的模型列表。
- 'django://models': 项目中所有Django模型的详细信息,包括导入路径、源代码位置和字段类型。
- 有状态的Python Shell: 提供一个可供LLM调用的 'shell' 工具,允许在持久的Django环境中执行任意Python代码。这意味着变量和导入在多次调用之间会保持状态,便于LLM进行迭代式探索、测试和问题排查。
- 会话管理: 提供 'shell_reset' 工具,允许LLM在需要时清空当前Shell会话中的所有变量和历史记录,以便重新开始一个干净的交互。
- 多种传输协议支持: 支持通过标准输入输出 (STDIO)、HTTP 或 Server-Sent Events (SSE) 等多种方式与MCP客户端进行通信,适应不同的部署和集成场景。
安装步骤
- 环境准备: 确保您的系统已安装Python 3.10或更高版本,并且您的Django项目已准备就绪。
- 安装 'mcp-django': 打开命令行终端,运行以下命令:
pip install mcp-django # 或者如果您使用 uv 作为包管理器 # uv add mcp-django - (可选)添加到 'INSTALLED_APPS': 如果您希望通过Django的管理命令('python manage.py mcp')运行服务器,请将 'mcp_django' 添加到您的Django项目的 'settings.py' 文件中的 'INSTALLED_APPS' 列表中:
# myproject/settings.py INSTALLED_APPS = [ # ... 其他应用 "mcp_django", # ... ]
服务器配置
MCP服务器是供MCP客户端连接和使用的。以下是一个MCP客户端配置 'mcp-django' 服务器的示例(JSON格式),您需要根据您使用的MCP客户端(如Claude Code, Opencode等)进行相应的配置。
{ "mcpServers": { "django": { "command": "python", // 用于启动 mcp-django 服务器的 Python 解释器路径 "args": ["-m", "mcp_django"], // 启动 mcp-django 服务器所需的命令行参数 "cwd": "/path/to/your/django/project", // MCP服务器的运行目录,应设置为您的Django项目根目录 "env": { "DJANGO_SETTINGS_MODULE": "myproject.settings" // 您的Django项目设置模块的完整路径 } } } }
服务器启动参数说明: 您可以通过命令行参数在启动 'mcp-django' 服务器时进行配置:
- '--settings <module_path>': 指定您的Django项目设置模块(例如 'myproject.settings')。这会覆盖环境变量 'DJANGO_SETTINGS_MODULE'。
- '--pythonpath <path>': 将指定的路径添加到Python模块搜索路径中,这在您的Django项目模块不在标准路径时非常有用。
- '--debug': 启用详细的调试日志输出,有助于排查问题。
- '--transport <protocol>': 指定服务器使用的传输协议。可选值包括 'stdio' (默认,通过标准输入输出通信)、'http' (通过HTTP协议) 或 'sse' (通过Server-Sent Events协议)。
- '--host <ip_address>': 当使用 'http' 或 'sse' 传输时,指定服务器监听的IP地址(默认为 '127.0.0.1')。
- '--port <port_number>': 当使用 'http' 或 'sse' 传输时,指定服务器监听的端口号(默认为 '8000')。
- '--path <url_path>': 当使用 'http' 传输时,指定MCP服务的URL路径(默认为 '/mcp')。
基本使用方法
在您的Django项目根目录下,选择以下任一方式启动 'mcp-django' 服务器:
-
通过Python模块直接运行(推荐): 这是最常用的启动方式,无需修改 'INSTALLED_APPS'。
python -m mcp_django如果您需要指定Django设置模块或更改传输协议,可以这样运行:
python -m mcp_django --settings myproject.settings --transport http --host 0.0.0.0 --port 8000 --debug -
通过Django管理命令运行(需要已添加到 'INSTALLED_APPS'):
python manage.py mcp您也可以添加 '--debug' 参数:
python manage.py mcp --debug
服务器启动后,您的MCP客户端即可通过配置的 'command' 和 'args' 连接到 'mcp-django' 服务器。客户端可以读取例如 'django://models' 资源来获取项目模型信息,然后调用 'shell' 工具并传入Python代码来执行ORM查询或任何Django操作。
信息
分类
开发者工具