andrewlwn77/n8n-workflow-downloader-mcp
If you are the rightful owner of n8n-workflow-downloader-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
The n8n Workflow Downloader MCP Server is a tool designed to facilitate the downloading of n8n workflows using the Model Context Protocol (MCP).
download_n8n_workflow
Downloads an n8n workflow from a given URL and returns the complete JSON object.
n8n Workflow Downloader MCP Server
An MCP (Model Context Protocol) server that enables AI agents to download n8n workflows from URLs.
Features
- Download n8n workflows from URLs like
https://n8n.io/workflows/3442
- Returns the complete workflow JSON structure
- Includes metadata (workflow ID, name, URL)
- Handles errors gracefully
Installation
As a global npm package
npm install -g n8n-workflow-downloader-mcp
For development
git clone https://github.com/andrewlwn77/n8n-workflow-downloader-mcp.git
cd n8n-workflow-downloader-mcp
npm install
npm run build
Usage
With Claude Desktop or other MCP clients
Add to your MCP configuration:
Using npx (recommended):
{
"mcpServers": {
"n8n-workflow-downloader": {
"command": "npx",
"args": ["n8n-workflow-downloader-mcp"],
"transport": {
"type": "stdio"
},
"env": {
"PUPPETEER_EXECUTABLE_PATH": "/opt/google/chrome/google-chrome"
}
}
}
}
If installed globally via npm:
{
"mcpServers": {
"n8n-workflow-downloader": {
"command": "n8n-workflow-downloader",
"transport": {
"type": "stdio"
},
"env": {
"PUPPETEER_EXECUTABLE_PATH": "/opt/google/chrome/google-chrome"
}
}
}
}
If installed locally or from source:
{
"mcpServers": {
"n8n-workflow-downloader": {
"command": "node",
"args": ["./path/to/build/index.js"],
"transport": {
"type": "stdio"
},
"env": {
"PUPPETEER_EXECUTABLE_PATH": "/opt/google/chrome/google-chrome"
}
}
}
}
Environment Variables
PUPPETEER_EXECUTABLE_PATH
(optional): Path to Chrome/Chromium executable- If not set, Puppeteer will use its bundled Chromium
- Useful for systems with Chrome installed in non-standard locations
- Example:
/opt/google/chrome/google-chrome
,/usr/bin/chromium-browser
Available Tools
download_n8n_workflow
Downloads an n8n workflow from a given URL.
Input:
url
(string, required): The n8n workflow URL (e.g., https://n8n.io/workflows/3442)
Output:
workflow
: The complete n8n workflow JSON objectmetadata
: Object containing:id
: The workflow IDname
: The workflow nameurl
: The original URL
Example usage in Claude:
Please download the n8n workflow from https://n8n.io/workflows/3442
Development
# Install dependencies
npm install
# Build TypeScript
npm run build
# Watch mode for development
npm run dev
# Run tests
npm test
# Run specific test suites
npm run test:unit # Unit tests only
npm run test:integration # Integration tests only
# Run tests in watch mode
npm run test:watch
# Generate test coverage report
npm run test:coverage
# Test the server manually (for debugging/development)
node test-server.js
Testing
The project includes comprehensive test coverage:
-
Unit Tests (
tests/unit/
): Test individual modules in isolation- Downloader module validation and error handling
- URL parsing and validation
- Mock puppeteer interactions
-
Integration Tests (
tests/integration/
): Test the complete MCP server- Server initialization
- Tool listing and discovery
- End-to-end workflow download simulation
- Error handling and validation
Run npm test
to execute all tests, or use the specific test commands listed above.
Manual Testing
The test-server.js
script provides a quick way to manually test the MCP server:
- Initializes the server
- Lists available tools
- Demonstrates a tool call
- Shows real-time server output
This is useful for debugging and development, complementing the automated test suite.
Technical Details
- Uses Puppeteer to automate the workflow download process
- Intercepts clipboard operations to capture workflow JSON
- Built with TypeScript and the official MCP SDK
- Implements stdio transport for local communication
- Supports custom Chrome/Chromium executable paths via
PUPPETEER_EXECUTABLE_PATH
Requirements
- Node.js 16+
- Chrome/Chromium (for Puppeteer)