UNPKG

node-red-contrib-mcp-server

Version:

A comprehensive Node-RED wrapper for Model Context Protocol (MCP) servers providing standardized AI agent tool interfaces, server lifecycle management, real-time communication capabilities, and visual MCP server creation

190 lines (189 loc) 5.7 kB
[ { "id": "mcp-external-example", "type": "tab", "label": "External MCP Server Example", "disabled": false, "info": "This flow demonstrates connecting to an external MCP server (like Omnispindle) and calling tools.\n\n**Setup:**\n1. Ensure Omnispindle MCP server is running on localhost:8000\n2. Deploy this flow\n3. Click the inject nodes to test different operations\n\n**Features:**\n- Auto-connect to MCP server with SSE\n- Handshake discovery shows available tools\n- Add todo using direct tool call\n- List todos using MCP Tool node\n- View all responses in debug output" }, { "id": "mcp-client-1", "type": "mcp-client", "z": "mcp-external-example", "name": "Omnispindle Client", "serverUrl": "http://localhost:8000", "connectionType": "sse", "autoConnect": true, "reconnect": true, "reconnectInterval": 5000, "timeout": 30000, "x": 200, "y": 120, "wires": [["debug-handshake", "debug-responses"]] }, { "id": "debug-handshake", "type": "debug", "z": "mcp-external-example", "name": "Handshake & Tools", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 450, "y": 80, "wires": [] }, { "id": "debug-responses", "type": "debug", "z": "mcp-external-example", "name": "All Responses", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "statusVal": "", "statusType": "auto", "x": 450, "y": 160, "wires": [] }, { "id": "inject-add-todo", "type": "inject", "z": "mcp-external-example", "name": "Add Todo", "props": [ { "p": "payload" }, { "p": "topic", "vt": "str" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "request", "payload": "{\"method\":\"add_todo_tool\",\"params\":{\"description\":\"Test todo from Node-RED\",\"project\":\"node-red-contrib-mcp-server\",\"priority\":\"Medium\"}}", "payloadType": "json", "x": 100, "y": 220, "wires": [["mcp-client-1"]] }, { "id": "inject-list-todos", "type": "inject", "z": "mcp-external-example", "name": "List Pending Todos", "props": [ { "p": "payload" }, { "p": "topic", "vt": "str" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "request", "payload": "{\"method\":\"list_todos_by_status_tool\",\"params\":{\"status\":\"pending\",\"limit\":10}}", "payloadType": "json", "x": 120, "y": 280, "wires": [["mcp-client-1"]] }, { "id": "mcp-tool-1", "type": "mcp-tool", "z": "mcp-external-example", "name": "List Project Todos", "serverUrl": "http://localhost:8000", "toolName": "list_project_todos_tool", "toolParams": "{\"project\":\"node-red-contrib-mcp-server\",\"limit\":5}", "outputMode": "result", "timeout": 30000, "x": 320, "y": 340, "wires": [["debug-tool-output"]] }, { "id": "inject-project-todos", "type": "inject", "z": "mcp-external-example", "name": "Get Project Todos", "props": [ { "p": "payload" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "payload": "", "payloadType": "date", "x": 120, "y": 340, "wires": [["mcp-tool-1"]] }, { "id": "debug-tool-output", "type": "debug", "z": "mcp-external-example", "name": "Tool Output", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 540, "y": 340, "wires": [] }, { "id": "comment-1", "type": "comment", "z": "mcp-external-example", "name": "External MCP Server Connection", "info": "This section shows how to connect to an external MCP server using SSE.\nThe client will automatically discover available tools on connection.", "x": 200, "y": 40, "wires": [] }, { "id": "comment-2", "type": "comment", "z": "mcp-external-example", "name": "Direct Tool Calls via Client", "info": "These inject nodes show how to call MCP tools directly through the client.\nUse the request topic with method and params in the payload.", "x": 150, "y": 180, "wires": [] }, { "id": "comment-3", "type": "comment", "z": "mcp-external-example", "name": "Dedicated Tool Node", "info": "The MCP Tool node provides a simplified interface for calling specific tools.\nPre-configure the tool name and parameters for easy reuse.", "x": 150, "y": 400, "wires": [] } ]