Token导航 LogoToken导航TokenDH.com
Django MCP Inspector logo
安全风控stdio官方级别未说明来源级核验

Django MCP Inspector

MCP Server

该项目将FastMCP集成到Django ASGI应用程序中,支持OAuth2 Bearer令牌和基于会话的认证,适用于需要实时工具API与Django后台结合的场景。

工具数

1

提示词数

0

GitHub Stars

1

资源数

0
实时通信PythonFastMCP

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

andychoi

提供方

andychoi

最后核验

2026/5/17 20:23

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install -r requirements.txt

详细介绍

Django+快速MCP+MCP检查器

该项目将FastMCP与Django ASGI应用程序集成,支持OAuth2承载令牌和基于会话的身份验证。

该项目将FastMCP(模型上下文协议)集成到Django ASGI应用程序中。它实现了基于Node.js的MCP Inspector工具和Django支持的FastMCP工具之间的安全、可流式和经过身份验证的通信。

✅ 特征:

  • 通过Django OAuth工具包进行OAuth2和基于会话的身份验证
  • MCP检查器中继会话的代理令牌支持
  • MCP客户端通信的流式HTTP传输支持
  • OAuth发现的元数据端点
  • 用于混合承载+会话认证的可插拔中间件

非常适合使用MCP Inspector将Django admin/UX与实时工具API相结合的设置。

  • 测试管理员用户:demo/demo

📦 项目结构

.
├── djproject/
│   ├── settings.py
│   └── asgi.py  ← Mounts MCP app
├── mcp_app/
│   ├── auth_middleware.py
│   └── mcp_server.py
├── manage.py
└── requirements.txt

⚙️ 安装说明

1.安装要求

pip install -r requirements.txt

确保 django, django-oauth-toolkit,以及 fastmcp 包括在内。

2.Django设置

确保您的 INSTALLED_APPS 包括:

"oauth2_provider",
"mcp_app",

3.在中配置ASGI asgi.py

from starlette.applications import Starlette
from starlette.routing import Mount, Route
from starlette.middleware.cors import CORSMiddleware
from starlette.middleware import Middleware
from starlette.staticfiles import StaticFiles
from django.core.asgi import get_asgi_application
from pathlib import Path
from django.conf import settings

from mcp_app.mcp_server import djmcp as mcp_instance
from mcp_app.auth_middleware import CombinedAuthMiddleware
from mcp_app.metadata import oauth_authorization_server, oauth_protected_resource

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "djproject.settings")

django_application = get_asgi_application()

middleware = [
    Middleware(CORSMiddleware, allow_origins=["*"], allow_methods=["*"], allow_headers=["*"]),
    Middleware(CombinedAuthMiddleware),
]

mcp_asgi_app = mcp_instance.http_app(path="/", middleware=middleware)

application = Starlette(
    routes=[
        Route("/.well-known/oauth-authorization-server", oauth_authorization_server, methods=["GET", "OPTIONS"]),
        Route("/.well-known/oauth-protected-resource", oauth_protected_resource, methods=["GET", "OPTIONS"]),
        Mount("/mcp", mcp_asgi_app),
        Mount("/", django_application),
    ],
    lifespan=mcp_asgi_app.lifespan
)

if settings.STATIC_ROOT and Path(settings.STATIC_ROOT).exists():
    application.routes.insert(
        2,
        Mount("/static", StaticFiles(directory=settings.STATIC_ROOT), name="static")
    )

🔐 组合认证中间件

位于 mcp_app/auth_middleware.py.

  • 检查 Authorization: Bearer ... 并使用DOT进行验证
  • 回到Django sessionid 曲奇
  • 接受 x-mcp-proxy-session-token 用于受信任的代理转发请求

🛠️ MCP工具示例

from fastmcp import FastMCP

djmcp = FastMCP(name="django_mcp")

@djmcp.tool
def echo(message: str) -> str:
    return f'{{"Echo": "{message}"}}'

🧪 调试提示

  • 确保 is_valid() 来自DOT的数据在没有参数的情况下使用。
  • 中间件记录错误 logger.error(...) 如果响应失败。
  • 请注意: _StreamingResponse 对象不支持 .body().

______________________________________________________________________

许可证

该项目根据MIT许可证获得许可。请随时根据自己的需求进行调整和扩展。

目录标签

目录标签

实时通信PythonFastMCPDjango集成本地部署OAuth2认证ASGI应用

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

oauth

工具数量(toolCount,工具数)

1

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiooauth部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP