{
"httpRequest": {
"method": "POST",
"path": "/v1/messages",
"body": {
"contentType": "application/json",
"type": "JSON",
"json": {
"model": "claude-sonnet-4-5",
"temperature": 0,
"stream": false,
"max_tokens": 16000,
"tools": [
{
"name": "get_best_practices",
"description": "Retrieve best practices documentation for specific workflow techniques.\n\nUse this tool after categorizing a user's prompt to get relevant guidance on:\n- Recommended nodes and their purposes\n- Common pitfalls to avoid\n- Performance and resource management tips\n- Implementation patterns and best practices\n- General tips on building workflows that utilise the provided techniques\n\nThis helps build better workflows by applying proven patterns and avoiding common mistakes.",
"input_schema": {
"type": "object",
"properties": {
"techniques": {
"type": "array",
"items": {
"type": "string",
"enum": [
"scheduling",
"chatbot",
"form_input",
"scraping_and_research",
"monitoring",
"enrichment",
"triage",
"content_generation",
"document_processing",
"data_extraction",
"data_analysis",
"data_transformation",
"data_persistence",
"notification",
"knowledge_base",
"human_in_the_loop"
]
},
"minItems": 1,
"description": "List of workflow techniques to retrieve best practices for"
}
},
"required": ["techniques"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
},
{
"name": "search_nodes",
"description": "Search for n8n nodes by name or find sub-nodes that output specific connection types. Use this before adding nodes to find the correct node types.\n\nSearch modes:\n1. Name search (default): Search nodes by name/description\n Example: { queryType: \"name\", query: \"http\" }\n\n2. Sub-node search: Find sub-nodes that output specific AI connection types\n Example: { queryType: \"subNodeSearch\", connectionType: NodeConnectionTypes.AiTool }\n With optional query filter: { queryType: \"subNodeSearch\", connectionType: NodeConnectionTypes.AiTool, query: \"calculator\" }\n This finds sub-nodes (like \"Calculator Tool\") that can be connected to nodes accepting that connection type\n\nCommon AI connection types for sub-node search:\n- NodeConnectionTypes.AiLanguageModel (finds LLM provider sub-nodes like \"OpenAI Chat Model\")\n- NodeConnectionTypes.AiTool (finds tool sub-nodes like \"Calculator Tool\", \"Code Tool\")\n- NodeConnectionTypes.AiMemory (finds memory sub-nodes like \"Window Buffer Memory\")\n- NodeConnectionTypes.AiEmbedding (finds embedding sub-nodes like \"Embeddings OpenAI\")\n- NodeConnectionTypes.AiVectorStore (finds vector store sub-nodes)\n- NodeConnectionTypes.AiDocument (finds document loader sub-nodes)\n- NodeConnectionTypes.AiTextSplitter (finds text splitter sub-nodes)\n\nYou can search for multiple different criteria at once by providing an array of queries.",
"input_schema": {
"type": "object",
"properties": {
"queries": {
"type": "array",
"items": {
"type": "object",
"properties": {
"queryType": {
"type": "string",
"enum": ["name", "subNodeSearch"],
"description": "Type of search to perform"
},
"query": {
"type": "string",
"description": "Search term to filter results"
},
"connectionType": {
"type": "string",
"enum": [
"ai_agent",
"ai_chain",
"ai_document",
"ai_embedding",
"ai_languageModel",
"ai_memory",
"ai_outputParser",
"ai_retriever",
"ai_reranker",
"ai_textSplitter",
"ai_tool",
"ai_vectorStore",
"main"
],
"description": "For subNodeSearch: connection type like ai_languageModel, ai_tool, etc."
}
},
"required": ["queryType"],
"additionalProperties": false
},
"minItems": 1,
"description": "Array of search queries to find different types of nodes"
}
},
"required": ["queries"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
},
{
"name": "get_node_details",
"description": "Get detailed information about a specific n8n node type including properties, available connections, and up to 5 example configurations. Use this before adding nodes to understand their input/output structure.",
"input_schema": {
"type": "object",
"properties": {
"nodeName": {
"type": "string",
"description": "The exact node type name (e.g., n8n-nodes-base.httpRequest)"
},
"nodeVersion": {
"type": "number",
"description": "The exact node version"
},
"withParameters": {
"type": "boolean",
"default": false,
"description": "Whether to include node parameters in the output"
},
"withConnections": {
"type": "boolean",
"default": true,
"description": "Whether to include node supported connections in the output"
}
},
"required": ["nodeName", "nodeVersion"],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
},
{
"name": "submit_discovery_results",
"description": "Submit the final discovery results",
"input_schema": {
"type": "object",
"properties": {
"nodesFound": {
"type": "array",
"items": {
"type": "object",
"properties": {
"nodeName": {
"type": "string",
"description": "The internal name of the node (e.g., n8n-nodes-base.gmail)"
},
"version": {
"type": "number",
"description": "The version number of the node (e.g., 1, 1.1, 2, 3, 3.2, etc.)"
},
"reasoning": {
"type": "string",
"description": "Why this node is relevant for the workflow"
},
"connectionChangingParameters": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Parameter name (e.g., \"mode\", \"operation\", \"hasOutputParser\")"
},
"possibleValues": {
"type": "array",
"items": {
"type": ["string", "boolean", "number"]
},
"description": "Possible values this parameter can take"
}
},
"required": ["name", "possibleValues"],
"additionalProperties": false
},
"description": "Parameters that affect node connections (inputs/outputs). ONLY include if parameter appears in or