Metadata-Version: 2.4
Name: django-mcp-integration
Version: 1.0.5
Summary: Intégration MCP pour Django via FastMCP
Author-email: Cissé Anzoumana <anzcisse1@gmail.com>
License: MIT
Project-URL: Homepage, https://github.com/mosco23/django-mcp-integration
Project-URL: Documentation, https://github.com/mosco23/django-mcp-integration#readme
Project-URL: Bug Tracker, https://github.com/mosco23/django-mcp-integration/issues
Keywords: django,mcp,server,fastmcp,asgi,ai
Classifier: Development Status :: 4 - Beta
Classifier: Framework :: Django
Classifier: Framework :: Django :: 3.2
Classifier: Framework :: Django :: 4.0
Classifier: Framework :: Django :: 4.1
Classifier: Framework :: Django :: 4.2
Classifier: Framework :: Django :: 5.0
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: Django>=3.2
Requires-Dist: fastmcp>=2.13.0
Requires-Dist: uvicorn[standard]>=0.20.0
Requires-Dist: httpx>=0.24.0
Provides-Extra: dev
Requires-Dist: black>=23.0.0; extra == "dev"
Requires-Dist: flake8>=6.0.0; extra == "dev"
Requires-Dist: pytest>=7.0.0; extra == "dev"
Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
Requires-Dist: pytest-django>=4.5.0; extra == "dev"

# Django MCP Integration

Intégration transparente de MCP (Model Context Protocol) dans Django via FastMCP.

## Installation

```bash
pip install django-mcp-integration

```

## Configuration Django

- Modifier le fichier **settings.py**
```python
# settings.py

INSTALLED_APPS = [
    # ...
    'django_mcp_integration',
]


# Optionnel

MCP_SERVER_NAME = "Mon Serveur MCP"
MCP_HOST = "localhost"
MCP_PORT = 8000
MCP_HTTP_PATH = "/mcp/"
MCP_ENABLED  = True
MCP_SERVER_INSTRUCTIONS = None
MCP_SERVER_VERSION = "1.0.0"

```

- Modifier le fichier **asgi.py**
```python
# asgi.py


import os

# from django.core.asgi import get_asgi_application
from django_mcp_integration.handlers.asgi import get_mcp_asgi_application

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'my_project.settings')

application = get_mcp_asgi_application()

```

## Utiliser dans un outil

```python
# blog/tools.py or blog/mcp_tools.py
from django_mcp_integration import mcp_tool


@mcp_tool(
    name="add",
    description="make a + b",
)
async def add(a: int, b: int) -> int:
    return a + b


@mcp_tool(
    name="create_post",
    description="create post by IA"
)
class CreatePostTool:

    # optional
    def check_permission(self, obj):
        pass

    # required method
    async def execute(self, title: str, content: str):
        pass

```


## lancerment du server

```bash

uvicorn django_mcp_test.asgi:application

```

