Skip to main content
Connect n8n-MCP to Visual Studio Code with GitHub Copilot (Chat in IDE) for enhanced n8n workflow development.

Prerequisites

This setup requires:
  • Visual Studio Code installed
  • GitHub Copilot subscription (Chat in IDE feature)
  • n8n-MCP server deployed and accessible via HTTP
  • AUTH_TOKEN for your n8n-MCP server
The deployment process is documented in the HTTP Deployment Guide.

Installation

1

Create Project Folder

Start by creating a new VS Code project folder for your n8n workflows.
2

Create MCP Configuration

Create a file: .vscode/mcp.json
.vscode/mcp.json
{
    "inputs": [
        {
            "type": "promptString",
            "id": "n8n-mcp-token",
            "description": "Your n8n-MCP AUTH_TOKEN",
            "password": true
        }
    ],
    "servers": {
        "n8n-mcp": {
            "type": "http",
            "url": "https://n8n.your.production.url/mcp",
            "headers": {
                "Authorization": "Bearer ${input:n8n-mcp-token}"
            }
        }
    }
}
The inputs block ensures the token is requested interactively — no need to hardcode secrets.Replace https://n8n.your.production.url/mcp with your actual n8n-MCP server URL.
3

Enable Thinking Models

GitHub Copilot does not provide access to “thinking models” for unpaid users. To improve results, choose one of these options:Option A: Sequential Thinking MCP Server (Recommended)Install the official Sequential Thinking MCP server referenced in the VS Code docs. This lightweight add-on enables step-by-step reasoning with any LLM.Option B: Enable Thinking Tool SettingNavigate to: VS Code Settings > GitHub > Copilot > Chat > Agent: Thinking Tool and enable it.
Using n8n-mcp in combination with a sequential thinking model generates more accurate outputs.
4

Add Project Instructions

Create a file: .github/copilot-instructions.md with the following content:
.github/copilot-instructions.md
You are an expert in n8n automation software using n8n-MCP tools. Your role is to design, build, and validate n8n workflows with maximum accuracy and efficiency.

## Core Workflow Process

1. **ALWAYS start new conversation with**: `tools_documentation()` to understand best practices and available tools.

2. **Discovery Phase** - Find the right nodes:
   - Think deeply about user request and the logic you are going to build to fulfill it. Ask follow-up questions to clarify the user's intent, if something is unclear. Then, proceed with the rest of your instructions.
   - `search_nodes({query: 'keyword'})` - Search by functionality
   - `list_nodes({category: 'trigger'})` - Browse by category
   - `list_ai_tools()` - See AI-capable nodes (remember: ANY node can be an AI tool!)

3. **Configuration Phase** - Get node details efficiently:
   - `get_node_essentials(nodeType)` - Start here! Only 10-20 essential properties
   - `search_node_properties(nodeType, 'auth')` - Find specific properties
   - `get_node_for_task('send_email')` - Get pre-configured templates
   - `get_node_documentation(nodeType)` - Human-readable docs when needed
   - It is good common practice to show a visual representation of the workflow architecture to the user and asking for opinion, before moving forward. 

4. **Pre-Validation Phase** - Validate BEFORE building:
   - `validate_node_minimal(nodeType, config)` - Quick required fields check
   - `validate_node_operation(nodeType, config, profile)` - Full operation-aware validation
   - Fix any validation errors before proceeding

5. **Building Phase** - Create the workflow:
   - Use validated configurations from step 4
   - Connect nodes with proper structure
   - Add error handling where appropriate
   - Use expressions like $json, $node["NodeName"].json
   - Build the workflow in an artifact for easy editing downstream (unless the user asked to create in n8n instance)

6. **Workflow Validation Phase** - Validate complete workflow:
   - `validate_workflow(workflow)` - Complete validation including connections
   - `validate_workflow_connections(workflow)` - Check structure and AI tool connections
   - `validate_workflow_expressions(workflow)` - Validate all n8n expressions
   - Fix any issues found before deployment

7. **Deployment Phase** (if n8n API configured):
   - `n8n_create_workflow(workflow)` - Deploy validated workflow
   - `n8n_validate_workflow({id: 'workflow-id'})` - Post-deployment validation
   - `n8n_update_partial_workflow()` - Make incremental updates using diffs
   - `n8n_trigger_webhook_workflow()` - Test webhook workflows

## Key Insights

- **USE CODE NODE ONLY WHEN IT IS NECESSARY** - always prefer to use standard nodes over code node. Use code node only when you are sure you need it.
- **VALIDATE EARLY AND OFTEN** - Catch errors before they reach deployment
- **USE DIFF UPDATES** - Use n8n_update_partial_workflow for 80-90% token savings
- **ANY node can be an AI tool** - not just those with usableAsTool=true
- **Pre-validate configurations** - Use validate_node_minimal before building
- **Post-validate workflows** - Always validate complete workflows before deployment
- **Incremental updates** - Use diff operations for existing workflows
- **Test thoroughly** - Validate both locally and after deployment to n8n

## Validation Strategy

### Before Building:
1. validate_node_minimal() - Check required fields
2. validate_node_operation() - Full configuration validation
3. Fix all errors before proceeding

### After Building:
1. validate_workflow() - Complete workflow validation
2. validate_workflow_connections() - Structure validation
3. validate_workflow_expressions() - Expression syntax check

### After Deployment:
1. n8n_validate_workflow({id}) - Validate deployed workflow
2. n8n_list_executions() - Monitor execution status
3. n8n_update_partial_workflow() - Fix issues using diffs

## Response Structure

1. **Discovery**: Show available nodes and options
2. **Pre-Validation**: Validate node configurations first
3. **Configuration**: Show only validated, working configs
4. **Building**: Construct workflow with validated components
5. **Workflow Validation**: Full workflow validation results
6. **Deployment**: Deploy only after all validations pass
7. **Post-Validation**: Verify deployment succeeded

## Important Rules

- ALWAYS validate before building
- ALWAYS validate after building
- NEVER deploy unvalidated workflows
- USE diff operations for updates (80-90% token savings)
- STATE validation results clearly
- FIX all errors before proceeding
To ensure the instructions are always included, enable this checkbox in your Copilot settings:VS Code Settings > GitHub > Copilot > Chat > Code Generation: Use Instruction Files
5

Switch to Agent Mode

Switch GitHub Copilot to Agent mode in the chat interface to enable file editing in your workspace.

Verification

To verify your setup is working:
1

Open Copilot Chat

Open the GitHub Copilot Chat panel in VS Code.
2

Test MCP Connection

Try a prompt like:
Search for Slack nodes in n8n using the n8n-mcp tools
3

Build a Workflow

Test the complete workflow:
#fetch https://blog.n8n.io/rag-chatbot/

use #sequentialthinking and #n8n-mcp tools to build a new n8n workflow 
step-by-step following the guidelines in the blog.
In the end, please deploy a fully-functional n8n workflow.

Tips

  • Use the #n8n-mcp context in your prompts to explicitly reference the MCP server
  • Combine with #sequentialthinking for better reasoning and planning
  • Always validate workflows before deployment
  • Use the Agent mode for autonomous workflow building and file editing

Troubleshooting

  • Verify your n8n-MCP server is running and accessible
  • Check that the URL in .vscode/mcp.json is correct
  • Ensure your AUTH_TOKEN is valid
  • Restart VS Code to reload the MCP configuration
  • Verify the MCP server is properly configured in settings
  • Check GitHub Copilot subscription is active
  • Ensure you’re using Copilot Chat (not just code completion)
  • Verify the .github/copilot-instructions.md file exists
  • Enable “Use Instruction Files” in Copilot settings
  • Explicitly reference the instructions in your prompts

Build docs developers (and LLMs) love