From 36a026ff713071ab5b9959f60d7ad0209ddefb06 Mon Sep 17 00:00:00 2001 From: xavix-yo Date: Sat, 18 Jul 2026 21:52:30 +0100 Subject: [PATCH] Add Firecrawl connector - mcp_local via npx -y firecrawl-mcp - API key come env FIRECRAWL_API_KEY (secret:true) - Requires NODE runtime - Verify via Node.js: Firecrawl scrape API probe - Icona PNG fornita dall'utente --- connectors/connectors.json | 22 +++++++++++++ connectors/firecrawl/connector.json | 47 ++++++++++++++++++++++++++++ connectors/firecrawl/icon_lg.png | Bin 0 -> 6858 bytes connectors/firecrawl/icon_sm.png | Bin 0 -> 6858 bytes 4 files changed, 69 insertions(+) create mode 100644 connectors/firecrawl/connector.json create mode 100644 connectors/firecrawl/icon_lg.png create mode 100644 connectors/firecrawl/icon_sm.png diff --git a/connectors/connectors.json b/connectors/connectors.json index db5e03e..c042c76 100644 --- a/connectors/connectors.json +++ b/connectors/connectors.json @@ -151,6 +151,28 @@ } ] }, + { + "id": "firecrawl", + "name": "Firecrawl", + "type": "mcp_local", + "scope": "global", + "icon_small": "firecrawl/icon_sm.png", + "icon_large": "firecrawl/icon_lg.png", + "user_description": "Web scraping, crawling, search, deep research, and autonomous browsing \u2014 extract content from any website.", + "requires": [ + "NODE" + ], + "tags": ["scraping", "crawling", "search", "mcp", "local", "browser", "research"], + "auth": { + "type": "api_key" + }, + "folder": "firecrawl", + "files": [ + {"path": "connector.json", "sha256": "4045efdef62b89e124043051f34a43d09b9ad6665dc683583e8f2a7355379b16", "size": 2441}, + {"path": "icon_sm.png", "sha256": "3a4be30d4c16ce93a1d132e063dfdffb8bd27b6c97715c9f3b12414439aaeb01", "size": 6858}, + {"path": "icon_lg.png", "sha256": "3a4be30d4c16ce93a1d132e063dfdffb8bd27b6c97715c9f3b12414439aaeb01", "size": 6858} + ] + }, { "id": "ssh", "name": "SSH Remote Access", diff --git a/connectors/firecrawl/connector.json b/connectors/firecrawl/connector.json new file mode 100644 index 0000000..170a95e --- /dev/null +++ b/connectors/firecrawl/connector.json @@ -0,0 +1,47 @@ +{ + "id": "firecrawl", + "name": "Firecrawl", + "version": "1.0.0", + "type": "mcp_local", + "launch_command": "npx -y firecrawl-mcp", + "transport": "stdio", + "requires": ["NODE"], + "dependencies": [], + "env": [{ + "name": "FIRECRAWL_API_KEY", + "label": "Firecrawl API key", + "description": "Create one at https://www.firecrawl.dev (dashboard \u2192 API Keys).", + "required": true, + "secret": true, + "example": "fc-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }], + "setup_instructions": [ + "Ensure Node.js is installed.", + "Get an API key from https://www.firecrawl.dev/app/api-keys.", + "No pip install needed \u2014 Firecrawl MCP runs via npx." + ], + "docs": [{ + "lang": "en", + "description": "Web scraping, crawling, search, deep research, and autonomous browsing \u2014 extract content from any website via Firecrawl. Scrape single URLs into clean Markdown, map site structures, crawl entire domains with scheduling, search the web, extract structured data with LLM-powered extraction, and run autonomous research agents. Includes monitoring for crawl changes.", + "llm_short_description": "Scrape, crawl, search, research and extract web data via Firecrawl. 26 tools. Requires API key + Node.js." + }], + "auth": { + "type": "api_key" + }, + "mcp_config": { + "command": "npx", + "args": ["-y", "firecrawl-mcp"], + "env": { + "FIRECRAWL_API_KEY": "{SECRET:FIRECRAWL_API_KEY}" + } + }, + "verify": { + "command": "node -e \"const k = process.env.FIRECRAWL_API_KEY; if (!k || k.length < 10) { process.exit(1); } try { fetch('https://api.firecrawl.dev/v1/scrape', {method:'POST', headers:{'Content-Type':'application/json','Authorization':'Bearer '+k}, body:JSON.stringify({url:'https://example.com',formats:['markdown']})}).then(r=>r.json()).then(d=>{if(d.success) {console.log(JSON.stringify({ok:true,message:'Firecrawl API key valid \u2014 scrape probe successful'}))} else {console.log(JSON.stringify({ok:false,message:d.error||'API probe failed'}));process.exit(1)}}).catch(e=>{console.log(JSON.stringify({ok:false,message:e.message}));process.exit(1)}) } catch(e) { console.log(JSON.stringify({ok:false,message:e.message})); process.exit(1) }\"", + "timeout_secs": 20 + }, + "homepage": "https://www.firecrawl.dev", + "icon_small": "icon_sm.png", + "icon_large": "icon_lg.png", + "scope": "global", + "tags": ["scraping", "crawling", "search", "mcp", "local", "browser", "research"] +} diff --git a/connectors/firecrawl/icon_lg.png b/connectors/firecrawl/icon_lg.png new file mode 100644 index 0000000000000000000000000000000000000000..c0725d955fefab3a9e153761c412b4fc6d136cfe GIT binary patch literal 6858 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 literal 0 HcmV?d00001 diff --git a/connectors/firecrawl/icon_sm.png b/connectors/firecrawl/icon_sm.png new file mode 100644 index 0000000000000000000000000000000000000000..c0725d955fefab3a9e153761c412b4fc6d136cfe GIT binary patch literal 6858 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 literal 0 HcmV?d00001