MCP Streamable HTTP Demo
Allows LangChain agents to use MCP tools (calculate, text_stats) over Streamable HTTP for calculations and text analysis.
Integrates with LangGraph to enable agents to leverage MCP tools for arithmetic and text statistics.
Provides an n8n AI Agent setup using MCP over Streamable HTTP, allowing workflows to call the calculate and text_stats tools.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Streamable HTTP DemoCalculate 5+7 and give text stats for 'hello world'"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
TP5 - Serveur MCP Streamable HTTP avec LangChain et n8n
Ce projet implémente un exemple complet autour du Model Context Protocol (MCP) :
un serveur MCP exposé en Streamable HTTP ;
deux tools MCP utilisables par des clients externes ;
un test avec
@modelcontextprotocol/inspector;un agent LangChain connecté au serveur MCP ;
une configuration n8n AI Agent utilisant le même endpoint MCP.
L'objectif est de reproduire l'esprit de la démo vidéo avec un projet local clair, testable et réutilisable.
Aperçu
flowchart LR
User["Utilisateur"] --> Agent["Agent LangChain ou n8n"]
Agent --> MCPClient["Client MCP Streamable HTTP"]
MCPClient --> Server["Serveur MCP Node.js"]
Server --> Calc["Tool: calculate"]
Server --> Stats["Tool: text_stats"]Le serveur expose l'endpoint suivant :
http://127.0.0.1:3000/mcpL'endpoint /mcp n'est pas une page web classique. Il reçoit des requêtes MCP en POST. Pour une vérification navigateur simple, utiliser plutôt :
http://127.0.0.1:3000/healthFonctionnalités
Le serveur MCP expose deux tools :
Tool | Description | Exemple |
| Exécute une opération arithmétique simple sur une liste de nombres. | addition, soustraction, multiplication, division |
| Analyse un texte et retourne des statistiques. | caractères, mots, lignes, temps de lecture |
Le projet contient également :
Fichier | Rôle |
| Serveur MCP Streamable HTTP |
| Client MCP minimal pour valider le serveur |
| Agent LangChain utilisant les tools MCP |
| Guide de configuration n8n |
| Script de génération des captures du README |
Prérequis
Node.js récent, testé avec Node.js
v24.14.1.npm.
Une clé OpenAI valide uniquement pour lancer l'agent LangChain ou l'agent n8n.
Installer les dépendances :
npm installCréer le fichier d'environnement :
Copy-Item .env.example .envPuis modifier .env :
OPENAI_API_KEY=your_new_openai_key
OPENAI_MODEL=gpt-4o-mini
MCP_SERVER_URL=http://127.0.0.1:3000/mcp
MCP_HOST=127.0.0.1
MCP_PORT=3000Important : ne jamais commiter .env. La clé OpenAI donnée dans l'énoncé a été exposée et doit être révoquée/remplacée.
Lancer le serveur MCP
npm run serverSortie attendue :
MCP server ready: http://127.0.0.1:3000/mcpVérifier l'état du serveur :
Invoke-RestMethod http://127.0.0.1:3000/healthSortie attendue :
{
"status": "ok",
"mcpEndpoint": "/mcp"
}Tester le serveur MCP
Dans un premier terminal, garder le serveur actif :
npm run serverDans un second terminal, lancer le smoke test :
npm run smokeLe test liste les tools disponibles puis appelle calculate.
Tester avec MCP Inspector
Lister les tools avec l'Inspector CLI :
npm run inspector:list-toolsSortie attendue : un JSON contenant calculate et text_stats.
Appeler directement un tool avec l'Inspector :
npx --yes @modelcontextprotocol/inspector --cli http://127.0.0.1:3000/mcp --transport http --method tools/call --tool-name calculate --tool-arg operation=add --tool-arg "numbers=[2,3,4]"Résultat attendu :
{
"operation": "add",
"numbers": [2, 3, 4],
"result": 9
}Note Windows : la version actuelle de l'Inspector CLI peut afficher le bon JSON puis terminer avec une assertion Node/libuv. Si le JSON des tools apparaît correctement, l'appel MCP a réussi.
Utiliser l'Inspector UI
Lancer l'interface graphique :
npm run inspectorConfigurer ensuite :
Transport: Streamable HTTP
URL: http://127.0.0.1:3000/mcpActions à vérifier dans l'UI :
Cliquer sur
Connect.Ouvrir l'onglet
Tools.Vérifier que
calculateettext_statssont listés.Appeler
calculateavec :
{
"operation": "multiply",
"numbers": [6, 7]
}Résultat attendu : 42.
Agent LangChain
L'agent LangChain charge les tools MCP via le protocole Streamable HTTP, puis les donne au modèle OpenAI.
Avant de lancer l'agent :
Le serveur MCP doit être actif.
.envdoit contenir une cléOPENAI_API_KEYvalide.
Commande :
npm run agentPrompt personnalisé :
npm run agent -- "Calcule 42 / 6 puis analyse le texte: Bonjour depuis MCP."Comportement attendu :
l'agent charge
2 MCP tools;il utilise
calculatepour le calcul ;il utilise
text_statssi le prompt demande une analyse de texte ;il répond en langage naturel avec les résultats.
Agent n8n
Le guide complet est disponible ici :
Résumé de la configuration du node MCP Client Tool :
Endpoint: http://127.0.0.1:3000/mcp
Server Transport: HTTP Streamable
Authentication: None
Tools to Include: AllSi n8n tourne dans Docker, remplacer 127.0.0.1 par :
http://host.docker.internal:3000/mcpEt lancer le serveur MCP avec :
$env:MCP_HOST="0.0.0.0"; npm run serverScripts npm
Script | Description |
| Démarre le serveur MCP |
| Liste les tools et appelle |
| Lance l'Inspector UI |
| Liste les tools via l'Inspector CLI |
| Lance l'agent LangChain |
Dépannage
/mcp affiche une erreur dans le navigateur
C'est normal. /mcp attend des requêtes MCP en POST. Utiliser /health pour un test navigateur.
OPENAI_API_KEY is missing
Le fichier .env contient encore le placeholder. Remplacer :
OPENAI_API_KEY=replace_with_your_rotated_keypar une vraie clé OpenAI.
401 Incorrect API key
La clé OpenAI est invalide, révoquée ou mal copiée. Générer une nouvelle clé et mettre à jour .env.
Port 3000 déjà utilisé
Changer le port dans .env :
MCP_PORT=3001
MCP_SERVER_URL=http://127.0.0.1:3001/mcpPuis relancer :
npm run servern8n ne se connecte pas au MCP
Si n8n est lancé en Docker, 127.0.0.1 désigne le conteneur n8n, pas la machine hôte. Utiliser host.docker.internal et lancer le serveur avec MCP_HOST=0.0.0.0.
Sécurité
Ne jamais publier
.env.Révoquer toute clé API partagée dans un chat, un dépôt Git ou une capture.
Préférer une clé dédiée au TP.
En production, ajouter une couche d'authentification devant le serveur MCP.
Structure du projet
TP5/
├── docs/
│ ├── n8n-agent.md
│ └── screenshots/
│ ├── health-endpoint.png
│ ├── inspector-tools.png
│ └── smoke-test.png
├── scripts/
│ └── create-screenshots.ps1
├── src/
│ ├── agent-langchain.js
│ ├── mcp-server.js
│ └── mcp-smoke-test.js
├── .env.example
├── package.json
└── README.mdThis server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/flamekk/Model-Context-Protocol'
If you have feedback or need assistance with the MCP directory API, please join our Discord server