
Les applications web Python ont besoin de très peu de choses pour prendre en charge WebMCP. L’outil s’exécute dans le navigateur en quelques lignes de JavaScript, et votre application Django ou FastAPI fait le vrai travail derrière. Vous découvrez le sujet ? Commencez par ce qu’est WebMCP.
Un endpoint FastAPI
La validation des paramètres de requête bloque les mauvaises valeurs avant l’exécution de votre code, et un modèle de réponse limite ce qui sort du serveur :
from fastapi import APIRouter, Query
from pydantic import BaseModel
router = APIRouter()
class ProductOut(BaseModel):
name: str
price: float
url: str
@router.get('/agent/products', response_model=list[ProductOut])
async def search_products(q: str = Query(min_length=1, max_length=80)):
return await search_catalog(q, limit=5) # your own functionUne vue Django
from django.http import JsonResponse
from django.views.decorators.http import require_GET
from .models import Product
@require_GET
def agent_products(request):
q = request.GET.get('q', '').strip()[:80]
if not q:
return JsonResponse({'error': 'missing_query'}, status=400)
items = Product.objects.filter(published=True, name__icontains=q)[:5]
return JsonResponse(list(items.values('name', 'price', 'slug')), safe=False)Ajoutez aussi une limite de débit, par exemple au niveau du proxy ou avec les outils de limitation de votre framework.
Le script navigateur
Chargez ce script depuis votre template de base ou votre frontend :
const mc = document.modelContext || navigator.modelContext;
if (mc && mc.registerTool) {
mc.registerTool({
name: 'search_products',
description: 'Search published products. Returns name, price and link.',
inputSchema: {
type: 'object',
properties: { q: { type: 'string', description: 'Keywords' } },
required: ['q'],
},
annotations: { readOnlyHint: true },
execute: async ({ q }) => {
const res = await fetch('/agent/products?q=' + encodeURIComponent(q));
return await res.text();
},
});
}Sessions, CSRF et permissions
Les outils s’exécutent dans la page : les requêtes de même origine transportent donc les cookies du visiteur, et login_required ou vos dépendances FastAPI fonctionnent comme d’habitude. Pour les outils POST dans Django, envoyez le cookie csrftoken dans l’en-tête X-CSRFToken, et signalez l’outil avec consequentialHint: true.
Règles de sécurité
- Commencez en lecture seule. La recherche et les détails d’abord ; signalez-les avec
readOnlyHint. - Demandez avant d’agir. Signalez les actions de panier, de réservation et de formulaire avec
consequentialHint, pour que le visiteur confirme. - Vérifiez côté serveur. Le navigateur n’est pas une barrière de sécurité : validez chaque paramètre et chaque permission dans votre backend.
- Renvoyez le minimum. N’envoyez que ce qu’un client a le droit de voir, jamais de données d’administration ni les informations d’autres clients.
Testez
- Utilisez une version récente de Chrome avec WebMCP activé, via l’origin trial ou le flag de test.
- Appelez chaque outil avec des paramètres valides et invalides.
- Vérifiez que les visiteurs habituels ne voient aucune différence.
- Lancez le vérificateur WebMCP gratuit sur la page précise où se trouvent vos outils.
Quand un serveur MCP convient mieux
Si des applications d’IA doivent utiliser vos données sans ouvrir votre site, créez plutôt un serveur MCP. Consultez WebMCP ou MCP et notre service de développement de serveurs MCP. Pour la partie navigateur, découvrez nos services d’intégration WebMCP.
Questions fréquentes
Existe-t-il une bibliothèque Python pour WebMCP ?
WebMCP est une API du navigateur : l’outil lui-même est donc écrit en JavaScript. Python fournit l’endpoint qui se trouve derrière. Pour un serveur auquel les applications d’IA se connectent, utilisez plutôt un SDK MCP.
Comment gérer le CSRF dans Django ?
Pour les outils POST, lisez le cookie csrftoken de Django et envoyez-le dans l’en-tête X-CSRFToken. Les outils GET en lecture seule n’en ont pas besoin.
Cela fonctionne-t-il avec un frontend séparé ?
Oui. Enregistrez les outils dans votre frontend et appelez votre API Python. Si elle se trouve sur un autre domaine, configurez CORS et les identifiants avec soin.
Faut-il créer du WebMCP ou un serveur MCP en Python ?
Choisissez WebMCP pour aider les visiteurs de votre site, avec leur session. Choisissez un serveur MCP pour les applications d’IA qui se connectent sans ouvrir votre site.
Comment nous pouvons vous aider
- Services d’intégration WebMCPWebMCP development for any stack, from WordPress and Shopify to Next.js, Laravel and Django: search, FAQs and forms offered as secure tools for AI browser agents, with a free audit.
- Développement Python et FastAPIBackends Python haute performance et microservices FastAPI pour le SaaS, les API d'inférence IA, les pipelines ETL et les systèmes pilotés par événements.
- Services de développement de serveurs MCPServeurs Model Context Protocol (MCP) sur mesure qui exposent vos API, bases de données et outils internes à Claude, Cursor, ChatGPT et à toute IA compatible MCP.
Parlez de votre projet à un ingénieur
Dites-nous ce que vous construisez. Nous répondons sous un jour ouvrable avec un avis franc sur le périmètre, l’approche et l’effort.
Réservez un appel stratégique gratuitRédigé par l'équipe d'ingénierie d'UnlockLive IT. UnlockLive IT Limited travaille avec ses clients depuis son siège de Los Angeles et son bureau de Toronto et livre l'ingénierie depuis son centre de livraison de Dhaka. À propos de nous