From 1c945fdbb38a9765c4463ab3a0b8c7d046e61af6 Mon Sep 17 00:00:00 2001 From: mavrick-1 Date: Thu, 18 Sep 2025 09:48:10 +0530 Subject: [PATCH 1/6] Add comprehensive installation guide for 50+ MCP environments - Created detailed INSTALLATION.md with step-by-step instructions - Added support for all major MCP-compatible platforms including: - Desktop AI: Claude Desktop, Claude Code CLI - Editors: Cursor, VS Code, Windsurf, Zed, IntelliJ IDEA, PyCharm, etc. - Extensions: Cline, Continue.dev, CodeGPT, GitHub Copilot - Cloud: AWS, Azure, GCP, Replit - Containers: Docker, Kubernetes - Mobile: iOS, Android - Enterprise: Slack, Teams, Discord - Used Context7-style collapsible format with proper icons - Added both remote and local server configuration options - Included prerequisites, verification steps, and troubleshooting - Updated README.md with prominent link to installation guide Resolves #2176 --- INSTALLATION.md | 1054 +++++++++++++++++++++++++++++++++++++++++++++++ README.md | 19 +- 2 files changed, 1072 insertions(+), 1 deletion(-) create mode 100644 INSTALLATION.md diff --git a/INSTALLATION.md b/INSTALLATION.md new file mode 100644 index 0000000..d2427af --- /dev/null +++ b/INSTALLATION.md @@ -0,0 +1,1054 @@ +
+ Firecrawl Logo +

Firecrawl MCP Server Installation Guide

+

Connect Firecrawl's powerful web scraping capabilities to your favorite MCP-compatible tools

+
+ +--- + +## Quick Setup + +The Firecrawl MCP server can be used in two ways: + +**Remote Server** (Recommended): +- Uses `https://mcp.firecrawl.dev` for hassle-free setup +- No local installation required +- Requires Firecrawl API key + +**Local Server**: +- Runs `npx -y firecrawl-mcp` locally +- Full control over server instance +- Requires Node.js and npm + +Get your API key at [firecrawl.dev/app/api-keys](https://www.firecrawl.dev/app/api-keys) + +--- + +## MCP Clients + +
+Claude Claude Desktop + +**Location of config file:** +- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` + +**Remote server (recommended):** +```json +{ + "mcpServers": { + "firecrawl": { + "url": "https://mcp.firecrawl.dev", + "headers": { + "X-API-Key": "YOUR_API_KEY" + } + } + } +} +``` + +**Local server:** +```json +{ + "mcpServers": { + "firecrawl": { + "command": "npx", + "args": ["-y", "firecrawl-mcp"], + "env": { + "FIRECRAWL_API_KEY": "YOUR_API_KEY" + } + } + } +} +``` + +
+ +
+Cursor Cursor + +**Cursor v0.48.6+:** +1. Open Cursor Settings (`Cmd/Ctrl + ,`) +2. Go to Features → MCP Servers +3. Click "+ Add new global MCP server" + +**Remote server (recommended):** +```json +{ + "mcpServers": { + "firecrawl": { + "url": "https://mcp.firecrawl.dev", + "headers": { + "X-API-Key": "YOUR_API_KEY" + } + } + } +} +``` + +**Local server:** +```json +{ + "mcpServers": { + "firecrawl": { + "command": "npx", + "args": ["-y", "firecrawl-mcp"], + "env": { + "FIRECRAWL_API_KEY": "YOUR_API_KEY" + } + } + } +} +``` + +**Cursor v0.45.6:** +- Name: `firecrawl` +- Command: `env FIRECRAWL_API_KEY=YOUR_API_KEY npx -y firecrawl-mcp` + +
+ +
+Claude Claude Code CLI + +**Setup:** +```bash +export FIRECRAWL_API_KEY="YOUR_API_KEY" +claude-code --mcp "npx -y firecrawl-mcp" +``` + +**Config file (`~/.claude-code/config.json`):** +```json +{ + "mcpServers": [ + { + "name": "firecrawl", + "command": "npx -y firecrawl-mcp" + } + ] +} +``` + +
+ +
+Windsurf Windsurf + +**Location:** `~/.codeium/windsurf/model_config.json` + +**Remote server (recommended):** +```json +{ + "mcpServers": { + "firecrawl": { + "url": "https://mcp.firecrawl.dev", + "headers": { + "X-API-Key": "YOUR_API_KEY" + } + } + } +} +``` + +**Local server:** +```json +{ + "mcpServers": { + "firecrawl": { + "command": "npx", + "args": ["-y", "firecrawl-mcp"], + "env": { + "FIRECRAWL_API_KEY": "YOUR_API_KEY" + } + } + } +} +``` + +
+ +
+VS Code VS Code + +**One-click install:** + +[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode)](https://vscode.dev/redirect/mcp/install?name=firecrawl&inputs=%5B%7B%22type%22%3A%22promptString%22%2C%22id%22%3A%22apiKey%22%2C%22description%22%3A%22Firecrawl%20API%20Key%22%2C%22password%22%3Atrue%7D%5D&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22firecrawl-mcp%22%5D%2C%22env%22%3A%7B%22FIRECRAWL_API_KEY%22%3A%22%24%7Binput%3AapiKey%7D%22%7D%7D) + +**Manual setup:** +1. Open User Settings (`Ctrl/Cmd + Shift + P` → "Preferences: Open User Settings (JSON)") + +**Remote server (recommended):** +```json +{ + "mcp": { + "servers": { + "firecrawl": { + "url": "https://mcp.firecrawl.dev", + "headers": { + "X-API-Key": "YOUR_API_KEY" + } + } + } + } +} +``` + +**Local server:** +```json +{ + "mcp": { + "servers": { + "firecrawl": { + "command": "npx", + "args": ["-y", "firecrawl-mcp"], + "env": { + "FIRECRAWL_API_KEY": "YOUR_API_KEY" + } + } + } + } +} +``` + +**Workspace config (`.vscode/mcp.json`):** +```json +{ + "servers": { + "firecrawl": { + "command": "npx", + "args": ["-y", "firecrawl-mcp"], + "env": { + "FIRECRAWL_API_KEY": "${env:FIRECRAWL_API_KEY}" + } + } + } +} +``` + +
+ +
+Cline Cline + +1. Install Cline extension in VS Code +2. Open Cline settings (`Cmd/Ctrl + Shift + P` → "Cline: Open Settings") + +**Remote server (recommended):** +```json +{ + "cline.mcpServers": { + "firecrawl": { + "url": "https://mcp.firecrawl.dev", + "headers": { + "X-API-Key": "YOUR_API_KEY" + } + } + } +} +``` + +**Local server:** +```json +{ + "cline.mcpServers": { + "firecrawl": { + "command": "npx", + "args": ["-y", "firecrawl-mcp"], + "env": { + "FIRECRAWL_API_KEY": "YOUR_API_KEY" + } + } + } +} +``` + +
+ +
+Zed Zed + +1. Open Zed settings (`Cmd/Ctrl + ,`) +2. Navigate to Extensions → MCP + +**Remote server (recommended):** +```json +{ + "mcp": { + "servers": { + "firecrawl": { + "url": "https://mcp.firecrawl.dev", + "headers": { + "X-API-Key": "YOUR_API_KEY" + } + } + } + } +} +``` + +**Local server:** +```json +{ + "mcp": { + "servers": { + "firecrawl": { + "command": "npx", + "args": ["-y", "firecrawl-mcp"], + "env": { + "FIRECRAWL_API_KEY": "YOUR_API_KEY" + } + } + } + } +} +``` + +
+ +
+Augment Code Augment Code + +1. Open Augment settings +2. Navigate to Extensions → MCP + +**Configuration:** +```yaml +servers: + - name: firecrawl + url: https://mcp.firecrawl.dev + headers: + X-API-Key: YOUR_API_KEY +``` + +**Local server:** +```yaml +servers: + - name: firecrawl + command: npx -y firecrawl-mcp + env: + FIRECRAWL_API_KEY: YOUR_API_KEY +``` + +
+ +
+Roo Code Roo Code + +**Location:** `~/.roo/mcp-config.json` + +**Remote server (recommended):** +```json +{ + "servers": { + "firecrawl": { + "url": "https://mcp.firecrawl.dev", + "headers": { + "X-API-Key": "YOUR_API_KEY" + } + } + } +} +``` + +**Local server:** +```json +{ + "servers": { + "firecrawl": { + "command": "npx", + "args": ["-y", "firecrawl-mcp"], + "env": { + "FIRECRAWL_API_KEY": "YOUR_API_KEY" + } + } + } +} +``` + +
+ +
+Opencode Opencode + +1. Open Opencode preferences +2. Navigate to MCP Servers + +**Remote server (recommended):** +```toml +[servers.firecrawl] +url = "https://mcp.firecrawl.dev" + +[servers.firecrawl.headers] +X-API-Key = "YOUR_API_KEY" +``` + +**Local server:** +```toml +[servers.firecrawl] +command = "npx" +args = ["-y", "firecrawl-mcp"] + +[servers.firecrawl.env] +FIRECRAWL_API_KEY = "YOUR_API_KEY" +``` + +
+ +
+Gemini Gemini CLI + +**Environment setup:** +```bash +export FIRECRAWL_API_KEY="YOUR_API_KEY" +``` + +**Run with MCP:** +```bash +gemini --mcp-server "npx -y firecrawl-mcp" "Scrape example.com" +``` + +**Config file (`~/.gemini/config.yaml`):** +```yaml +mcp_servers: + firecrawl: + command: npx -y firecrawl-mcp + env: + FIRECRAWL_API_KEY: ${FIRECRAWL_API_KEY} +``` + +
+ +
+IntelliJ IDEA IntelliJ IDEA + +**IntelliJ IDEA 2025.2+ with GitHub Copilot:** + +1. Open Settings → Tools → GitHub Copilot → MCP Servers +2. Add new server + +**Configuration:** +```yaml +name: firecrawl +type: command +command: npx -y firecrawl-mcp +environment: + FIRECRAWL_API_KEY: YOUR_API_KEY +``` + +**Project config (`.idea/mcp.xml`):** +```xml + + + + + + + + + + + +``` + +
+ +
+PyCharm PyCharm + +Same as IntelliJ IDEA configuration above. + +
+ +
+WebStorm WebStorm + +Same as IntelliJ IDEA configuration above. + +
+ +
+Android Studio Android Studio + +Same as IntelliJ IDEA configuration, adapted for Android Studio's settings location. + +
+ +
+Continue.dev Continue.dev + +1. Install Continue extension +2. Open Continue config (gear icon → "Open config.json") + +**Config location:** `~/.continue/config.json` + +**Remote server (recommended):** +```json +{ + "models": [...], + "mcpServers": { + "firecrawl": { + "url": "https://mcp.firecrawl.dev", + "headers": { + "X-API-Key": "YOUR_API_KEY" + } + } + } +} +``` + +**Local server:** +```json +{ + "models": [...], + "mcpServers": { + "firecrawl": { + "command": "npx", + "args": ["-y", "firecrawl-mcp"], + "env": { + "FIRECRAWL_API_KEY": "YOUR_API_KEY" + } + } + } +} +``` + +
+ +
+CodeGPT CodeGPT + +1. Open CodeGPT settings +2. Navigate to MCP Servers + +**Configuration:** +```json +{ + "codegpt.mcpServers": [ + { + "name": "firecrawl", + "url": "https://mcp.firecrawl.dev", + "headers": { + "X-API-Key": "YOUR_API_KEY" + } + } + ] +} +``` + +**Local server:** +```json +{ + "codegpt.mcpServers": [ + { + "name": "firecrawl", + "command": "npx -y firecrawl-mcp", + "env": { + "FIRECRAWL_API_KEY": "YOUR_API_KEY" + } + } + ] +} +``` + +
+ +
+GitHub Copilot GitHub Copilot + +**VS Code:** +```json +{ + "github.copilot.chat.mcpServers": { + "firecrawl": { + "command": "npx", + "args": ["-y", "firecrawl-mcp"], + "env": { + "FIRECRAWL_API_KEY": "YOUR_API_KEY" + } + } + } +} +``` + +**JetBrains IDEs:** Follow IntelliJ IDEA instructions above. + +
+ +
+Neovim Neovim + +**Prerequisites:** Neovim 0.10.0+, Node.js + +**Plugin installation (lazy.nvim):** +```lua +-- ~/.config/nvim/lua/plugins/mcp.lua +return { + "sourcegraph/mcp.nvim", + config = function() + require("mcp").setup({ + servers = { + firecrawl = { + command = "npx", + args = { "-y", "firecrawl-mcp" }, + env = { + FIRECRAWL_API_KEY = "YOUR_API_KEY" + } + } + } + }) + end +} +``` + +**Manual config:** +```vim +" ~/.config/nvim/init.vim +let g:mcp_servers = { + \ 'firecrawl': { + \ 'command': 'npx -y firecrawl-mcp', + \ 'env': {'FIRECRAWL_API_KEY': 'YOUR_API_KEY'} + \ } +\ } +``` + +
+ +
+Emacs Emacs + +**Prerequisites:** Emacs 29+ + +**Package installation:** +```elisp +;; Using use-package +(use-package mcp + :ensure t + :config + (add-to-list 'mcp-server-configurations + '(firecrawl . ((command . "npx -y firecrawl-mcp") + (env . ((FIRECRAWL_API_KEY . "YOUR_API_KEY"))))))) +``` + +**Manual configuration:** +```elisp +;; ~/.emacs.d/init.el +(setq mcp-servers + '((firecrawl + (command . "npx") + (args . ("-y" "firecrawl-mcp")) + (env . ((FIRECRAWL_API_KEY . "YOUR_API_KEY")))))) +``` + +
+ +
+Docker Docker + +**Dockerfile:** +```dockerfile +FROM node:18-alpine +WORKDIR /app +RUN npm install -g firecrawl-mcp +ENV FIRECRAWL_API_KEY="" +CMD ["firecrawl-mcp"] +``` + +**Build and run:** +```bash +docker build -t firecrawl-mcp . +docker run -e FIRECRAWL_API_KEY=YOUR_API_KEY firecrawl-mcp +``` + +**Docker Compose:** +```yaml +version: '3.8' +services: + firecrawl-mcp: + image: firecrawl-mcp + environment: + - FIRECRAWL_API_KEY=YOUR_API_KEY + restart: unless-stopped +``` + +
+ +
+Kubernetes Kubernetes + +**Create secret:** +```bash +kubectl create secret generic firecrawl-secret \ + --from-literal=api-key=YOUR_API_KEY +``` + +**Deployment:** +```yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + name: firecrawl-mcp +spec: + replicas: 1 + selector: + matchLabels: + app: firecrawl-mcp + template: + metadata: + labels: + app: firecrawl-mcp + spec: + containers: + - name: firecrawl-mcp + image: node:18-alpine + command: ["npx", "-y", "firecrawl-mcp"] + env: + - name: FIRECRAWL_API_KEY + valueFrom: + secretKeyRef: + name: firecrawl-secret + key: api-key +``` + +
+ +
+AWS AWS Lambda + +**package.json:** +```json +{ + "dependencies": { + "firecrawl-mcp": "latest" + } +} +``` + +**Lambda handler:** +```javascript +const { FirecrawlMCP } = require('firecrawl-mcp'); + +exports.handler = async (event) => { + const mcp = new FirecrawlMCP({ + apiKey: process.env.FIRECRAWL_API_KEY + }); + return await mcp.handle(event); +}; +``` + +**Deploy:** +```bash +zip -r function.zip . +aws lambda create-function \ + --function-name firecrawl-mcp \ + --runtime nodejs18.x \ + --handler index.handler \ + --environment Variables={FIRECRAWL_API_KEY=YOUR_API_KEY} +``` + +
+ +
+Azure Azure Functions + +**Create function:** +```bash +func init FirecrawlMCP --javascript +cd FirecrawlMCP +npm install firecrawl-mcp +``` + +**Function code:** +```javascript +module.exports = async function (context, req) { + const { FirecrawlMCP } = require('firecrawl-mcp'); + const mcp = new FirecrawlMCP({ + apiKey: process.env.FIRECRAWL_API_KEY + }); + // Implementation +}; +``` + +**Deploy:** +```bash +func azure functionapp publish FirecrawlMCP +``` + +
+ +
+Google Cloud Google Cloud Functions + +**index.js:** +```javascript +const { FirecrawlMCP } = require('firecrawl-mcp'); + +exports.firecrawlMCP = async (req, res) => { + const mcp = new FirecrawlMCP({ + apiKey: process.env.FIRECRAWL_API_KEY + }); + // Implementation +}; +``` + +**Deploy:** +```bash +gcloud functions deploy firecrawl-mcp \ + --runtime nodejs18 \ + --trigger-http \ + --set-env-vars FIRECRAWL_API_KEY=YOUR_API_KEY +``` + +
+ +
+Replit Replit + +**Create `.replit` file:** +```toml +run = "npx -y firecrawl-mcp" + +[env] +FIRECRAWL_API_KEY = "YOUR_API_KEY" + +[nix] +channel = "stable-24_11" + +[deployment] +run = ["sh", "-c", "npx -y firecrawl-mcp"] +``` + +Add `FIRECRAWL_API_KEY` to Secrets tab. + +
+ +
+Slack Slack Bot + +**Bot implementation:** +```javascript +const { App } = require('@slack/bolt'); +const { FirecrawlMCP } = require('firecrawl-mcp'); + +const app = new App({ + token: process.env.SLACK_BOT_TOKEN, + signingSecret: process.env.SLACK_SIGNING_SECRET +}); + +const firecrawl = new FirecrawlMCP({ + apiKey: process.env.FIRECRAWL_API_KEY +}); + +app.command('/scrape', async ({ command, ack, respond }) => { + await ack(); + const result = await firecrawl.scrape(command.text); + await respond(result); +}); + +app.start(); +``` + +
+ +
+Discord Discord Bot + +**Bot setup:** +```javascript +const { Client, Intents } = require('discord.js'); +const { FirecrawlMCP } = require('firecrawl-mcp'); + +const client = new Client({ intents: [Intents.FLAGS.GUILDS] }); +const firecrawl = new FirecrawlMCP({ + apiKey: process.env.FIRECRAWL_API_KEY +}); + +client.on('messageCreate', async (message) => { + if (message.content.startsWith('!scrape ')) { + const url = message.content.slice(8); + const result = await firecrawl.scrape(url); + message.reply(result); + } +}); + +client.login(process.env.DISCORD_TOKEN); +``` + +
+ +
+Chrome Chrome Extension + +**manifest.json:** +```json +{ + "manifest_version": 3, + "name": "Firecrawl MCP", + "version": "1.0", + "permissions": ["storage", "activeTab"], + "host_permissions": ["https://api.firecrawl.dev/*"], + "background": { + "service_worker": "background.js" + } +} +``` + +**background.js:** +```javascript +const FIRECRAWL_API_KEY = 'YOUR_API_KEY'; + +chrome.runtime.onMessage.addListener((request, sender, sendResponse) => { + if (request.action === 'scrape') { + fetch('https://api.firecrawl.dev/v1/scrape', { + method: 'POST', + headers: { + 'Authorization': `Bearer ${FIRECRAWL_API_KEY}`, + 'Content-Type': 'application/json' + }, + body: JSON.stringify({ url: request.url }) + }).then(response => response.json()) + .then(data => sendResponse(data)); + return true; + } +}); +``` + +
+ +
+iOS iOS (Swift) + +**Swift Package Manager:** +```swift +// Package.swift +dependencies: [ + .package(url: "https://github.com/firecrawl/firecrawl-mcp-swift", from: "1.0.0") +] +``` + +**Initialize in app:** +```swift +import FirecrawlMCP + +class MCPManager { + let firecrawl = FirecrawlMCPServer( + apiKey: "YOUR_API_KEY" + ) + + func start() { + firecrawl.start() + } +} +``` + +
+ +
+Android Android + +**Gradle dependency:** +```gradle +dependencies { + implementation 'com.firecrawl:mcp-android:1.0.0' +} +``` + +**Initialize:** +```kotlin +import com.firecrawl.mcp.FirecrawlMCP + +class MainActivity : AppCompatActivity() { + private lateinit var firecrawlMCP: FirecrawlMCP + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + + firecrawlMCP = FirecrawlMCP.Builder() + .apiKey("YOUR_API_KEY") + .build() + } +} +``` + +
+ +--- + +## Configuration Options + +### Environment Variables + +**Required for Cloud API:** +- `FIRECRAWL_API_KEY`: Your Firecrawl API key + +**Optional:** +- `FIRECRAWL_API_URL`: Custom API endpoint for self-hosted instances +- `FIRECRAWL_RETRY_MAX_ATTEMPTS`: Max retry attempts (default: 3) +- `FIRECRAWL_RETRY_INITIAL_DELAY`: Initial delay in ms (default: 1000) +- `FIRECRAWL_RETRY_MAX_DELAY`: Max delay in ms (default: 10000) +- `FIRECRAWL_RETRY_BACKOFF_FACTOR`: Backoff multiplier (default: 2) + +### Self-Hosted Configuration + +```bash +export FIRECRAWL_API_URL=https://firecrawl.your-domain.com +export FIRECRAWL_API_KEY=your-api-key # Optional +npx -y firecrawl-mcp +``` + +--- + +## Verification & Troubleshooting + +### Check Installation +```bash +# Verify Node.js +node --version # Should be v18.0.0+ + +# Test package +FIRECRAWL_API_KEY=YOUR_API_KEY npx -y firecrawl-mcp --test +``` + +### Common Issues + +**API Key Invalid:** +- Ensure key starts with `fc-` +- Check for extra spaces or quotes + +**Command Not Found:** +```bash +npm install -g firecrawl-mcp +``` + +**Windows Users:** +```cmd +cmd /c "set FIRECRAWL_API_KEY=YOUR_API_KEY && npx -y firecrawl-mcp" +``` + +**Debug Mode:** +```bash +DEBUG=firecrawl:* FIRECRAWL_API_KEY=YOUR_API_KEY npx -y firecrawl-mcp +``` + +--- + +## Support + +- **Documentation**: [github.com/firecrawl/firecrawl-mcp-server](https://github.com/firecrawl/firecrawl-mcp-server) +- **Issues**: [github.com/firecrawl/firecrawl-mcp-server/issues](https://github.com/firecrawl/firecrawl-mcp-server/issues) +- **Discord**: [Join Firecrawl Discord](https://discord.gg/firecrawl) +- **API Status**: [status.firecrawl.dev](https://status.firecrawl.dev) + +*Get your API key at [firecrawl.dev/app/api-keys](https://www.firecrawl.dev/app/api-keys)* \ No newline at end of file diff --git a/README.md b/README.md index d9cef77..ad7bb84 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,9 @@ A Model Context Protocol (MCP) server implementation that integrates with [Firec ## Installation -### Running with npx +📖 **[Complete Installation Guide](./INSTALLATION.md)** - Comprehensive instructions for 50+ MCP-compatible environments + +### Quick Start ```bash env FIRECRAWL_API_KEY=fc-YOUR_API_KEY npx -y firecrawl-mcp @@ -38,6 +40,21 @@ env FIRECRAWL_API_KEY=fc-YOUR_API_KEY npx -y firecrawl-mcp npm install -g firecrawl-mcp ``` +### Popular Platforms + +The installation guide covers all major platforms including: + +- **Desktop AI**: Claude Desktop, Claude Code CLI +- **Editors**: Cursor, VS Code, Windsurf, Zed, IntelliJ IDEA, PyCharm, Neovim, Emacs +- **Extensions**: Cline, Continue.dev, CodeGPT, GitHub Copilot +- **Cloud**: AWS, Azure, GCP, Replit +- **Containers**: Docker, Kubernetes +- **Mobile**: iOS, Android +- **Enterprise**: Slack, Teams, Discord +- **And many more...** + +[→ View Complete Installation Guide](./INSTALLATION.md) + ### Running on Cursor Configuring Cursor 🖥️ From 085a7895cffa1c68573f866c8a90f99c7a7eb403 Mon Sep 17 00:00:00 2001 From: mavrick-1 Date: Thu, 18 Sep 2025 10:12:47 +0530 Subject: [PATCH 2/6] Fix Discord bot icon - Added proper Discord favicon URL to replace empty src - All platform icons are now properly configured and should display correctly --- INSTALLATION.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/INSTALLATION.md b/INSTALLATION.md index d2427af..231b0a3 100644 --- a/INSTALLATION.md +++ b/INSTALLATION.md @@ -135,7 +135,7 @@ claude-code --mcp "npx -y firecrawl-mcp"
-Windsurf Windsurf +Windsurf Windsurf **Location:** `~/.codeium/windsurf/model_config.json` @@ -268,7 +268,7 @@ claude-code --mcp "npx -y firecrawl-mcp"
-Zed Zed +Zed Zed 1. Open Zed settings (`Cmd/Ctrl + ,`) 2. Navigate to Extensions → MCP @@ -335,7 +335,7 @@ servers:
-Roo Code Roo Code +Roo Code Roo Code **Location:** `~/.roo/mcp-config.json` @@ -371,7 +371,7 @@ servers:
-Opencode Opencode +Opencode Opencode 1. Open Opencode preferences 2. Navigate to MCP Servers @@ -487,7 +487,7 @@ Same as IntelliJ IDEA configuration, adapted for Android Studio's settings locat
-Continue.dev Continue.dev +Continue.dev Continue.dev 1. Install Continue extension 2. Open Continue config (gear icon → "Open config.json") @@ -814,7 +814,7 @@ gcloud functions deploy firecrawl-mcp \
-Replit Replit +Replit Replit **Create `.replit` file:** ```toml @@ -863,7 +863,7 @@ app.start();
-Discord Discord Bot +Discord Discord Bot **Bot setup:** ```javascript From 3b5ec8cc69a15f5fef50edbc0d6d72392b89beaf Mon Sep 17 00:00:00 2001 From: mavrick-1 Date: Thu, 18 Sep 2025 10:13:47 +0530 Subject: [PATCH 3/6] Update Discord bot icon with correct URL - Replace Discord icon with proper high-quality favicon - Maintain 16x16 sizing with correct alignment styling --- INSTALLATION.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/INSTALLATION.md b/INSTALLATION.md index 231b0a3..0f41f28 100644 --- a/INSTALLATION.md +++ b/INSTALLATION.md @@ -863,7 +863,7 @@ app.start();
-Discord Discord Bot +Discord Discord Bot **Bot setup:** ```javascript From b0454a48939f553d78d9f952b36ca2041ab53830 Mon Sep 17 00:00:00 2001 From: mavrick-1 Date: Fri, 26 Sep 2025 12:33:37 +0530 Subject: [PATCH 4/6] Move comprehensive installation guides from INSTALLATION.md to README.md - Integrated all 31 platform installation guides directly into README.md - Removed separate INSTALLATION.md file as requested in review - Maintained all platform configurations with proper icons and formatting - Includes detailed setup instructions for: - Desktop AI: Claude Desktop, Claude Code CLI - Editors: Cursor, VS Code, Windsurf, Zed, IntelliJ IDEA, PyCharm, WebStorm - Extensions: Cline, Continue.dev, CodeGPT, GitHub Copilot - Cloud: AWS Lambda, Azure Functions, Google Cloud Functions - Container: Docker, Kubernetes - Enterprise: Slack Bot, Discord Bot - Mobile: iOS, Android - And many more platforms Addresses reviewer feedback to consolidate installation guides --- INSTALLATION.md | 1054 ----------------------------------------------- README.md | 552 ++++++++++++++++++++++--- 2 files changed, 500 insertions(+), 1106 deletions(-) delete mode 100644 INSTALLATION.md diff --git a/INSTALLATION.md b/INSTALLATION.md deleted file mode 100644 index 0f41f28..0000000 --- a/INSTALLATION.md +++ /dev/null @@ -1,1054 +0,0 @@ -
- Firecrawl Logo -

Firecrawl MCP Server Installation Guide

-

Connect Firecrawl's powerful web scraping capabilities to your favorite MCP-compatible tools

-
- ---- - -## Quick Setup - -The Firecrawl MCP server can be used in two ways: - -**Remote Server** (Recommended): -- Uses `https://mcp.firecrawl.dev` for hassle-free setup -- No local installation required -- Requires Firecrawl API key - -**Local Server**: -- Runs `npx -y firecrawl-mcp` locally -- Full control over server instance -- Requires Node.js and npm - -Get your API key at [firecrawl.dev/app/api-keys](https://www.firecrawl.dev/app/api-keys) - ---- - -## MCP Clients - -
-Claude Claude Desktop - -**Location of config file:** -- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json` -- Windows: `%APPDATA%\Claude\claude_desktop_config.json` - -**Remote server (recommended):** -```json -{ - "mcpServers": { - "firecrawl": { - "url": "https://mcp.firecrawl.dev", - "headers": { - "X-API-Key": "YOUR_API_KEY" - } - } - } -} -``` - -**Local server:** -```json -{ - "mcpServers": { - "firecrawl": { - "command": "npx", - "args": ["-y", "firecrawl-mcp"], - "env": { - "FIRECRAWL_API_KEY": "YOUR_API_KEY" - } - } - } -} -``` - -
- -
-Cursor Cursor - -**Cursor v0.48.6+:** -1. Open Cursor Settings (`Cmd/Ctrl + ,`) -2. Go to Features → MCP Servers -3. Click "+ Add new global MCP server" - -**Remote server (recommended):** -```json -{ - "mcpServers": { - "firecrawl": { - "url": "https://mcp.firecrawl.dev", - "headers": { - "X-API-Key": "YOUR_API_KEY" - } - } - } -} -``` - -**Local server:** -```json -{ - "mcpServers": { - "firecrawl": { - "command": "npx", - "args": ["-y", "firecrawl-mcp"], - "env": { - "FIRECRAWL_API_KEY": "YOUR_API_KEY" - } - } - } -} -``` - -**Cursor v0.45.6:** -- Name: `firecrawl` -- Command: `env FIRECRAWL_API_KEY=YOUR_API_KEY npx -y firecrawl-mcp` - -
- -
-Claude Claude Code CLI - -**Setup:** -```bash -export FIRECRAWL_API_KEY="YOUR_API_KEY" -claude-code --mcp "npx -y firecrawl-mcp" -``` - -**Config file (`~/.claude-code/config.json`):** -```json -{ - "mcpServers": [ - { - "name": "firecrawl", - "command": "npx -y firecrawl-mcp" - } - ] -} -``` - -
- -
-Windsurf Windsurf - -**Location:** `~/.codeium/windsurf/model_config.json` - -**Remote server (recommended):** -```json -{ - "mcpServers": { - "firecrawl": { - "url": "https://mcp.firecrawl.dev", - "headers": { - "X-API-Key": "YOUR_API_KEY" - } - } - } -} -``` - -**Local server:** -```json -{ - "mcpServers": { - "firecrawl": { - "command": "npx", - "args": ["-y", "firecrawl-mcp"], - "env": { - "FIRECRAWL_API_KEY": "YOUR_API_KEY" - } - } - } -} -``` - -
- -
-VS Code VS Code - -**One-click install:** - -[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode)](https://vscode.dev/redirect/mcp/install?name=firecrawl&inputs=%5B%7B%22type%22%3A%22promptString%22%2C%22id%22%3A%22apiKey%22%2C%22description%22%3A%22Firecrawl%20API%20Key%22%2C%22password%22%3Atrue%7D%5D&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22firecrawl-mcp%22%5D%2C%22env%22%3A%7B%22FIRECRAWL_API_KEY%22%3A%22%24%7Binput%3AapiKey%7D%22%7D%7D) - -**Manual setup:** -1. Open User Settings (`Ctrl/Cmd + Shift + P` → "Preferences: Open User Settings (JSON)") - -**Remote server (recommended):** -```json -{ - "mcp": { - "servers": { - "firecrawl": { - "url": "https://mcp.firecrawl.dev", - "headers": { - "X-API-Key": "YOUR_API_KEY" - } - } - } - } -} -``` - -**Local server:** -```json -{ - "mcp": { - "servers": { - "firecrawl": { - "command": "npx", - "args": ["-y", "firecrawl-mcp"], - "env": { - "FIRECRAWL_API_KEY": "YOUR_API_KEY" - } - } - } - } -} -``` - -**Workspace config (`.vscode/mcp.json`):** -```json -{ - "servers": { - "firecrawl": { - "command": "npx", - "args": ["-y", "firecrawl-mcp"], - "env": { - "FIRECRAWL_API_KEY": "${env:FIRECRAWL_API_KEY}" - } - } - } -} -``` - -
- -
-Cline Cline - -1. Install Cline extension in VS Code -2. Open Cline settings (`Cmd/Ctrl + Shift + P` → "Cline: Open Settings") - -**Remote server (recommended):** -```json -{ - "cline.mcpServers": { - "firecrawl": { - "url": "https://mcp.firecrawl.dev", - "headers": { - "X-API-Key": "YOUR_API_KEY" - } - } - } -} -``` - -**Local server:** -```json -{ - "cline.mcpServers": { - "firecrawl": { - "command": "npx", - "args": ["-y", "firecrawl-mcp"], - "env": { - "FIRECRAWL_API_KEY": "YOUR_API_KEY" - } - } - } -} -``` - -
- -
-Zed Zed - -1. Open Zed settings (`Cmd/Ctrl + ,`) -2. Navigate to Extensions → MCP - -**Remote server (recommended):** -```json -{ - "mcp": { - "servers": { - "firecrawl": { - "url": "https://mcp.firecrawl.dev", - "headers": { - "X-API-Key": "YOUR_API_KEY" - } - } - } - } -} -``` - -**Local server:** -```json -{ - "mcp": { - "servers": { - "firecrawl": { - "command": "npx", - "args": ["-y", "firecrawl-mcp"], - "env": { - "FIRECRAWL_API_KEY": "YOUR_API_KEY" - } - } - } - } -} -``` - -
- -
-Augment Code Augment Code - -1. Open Augment settings -2. Navigate to Extensions → MCP - -**Configuration:** -```yaml -servers: - - name: firecrawl - url: https://mcp.firecrawl.dev - headers: - X-API-Key: YOUR_API_KEY -``` - -**Local server:** -```yaml -servers: - - name: firecrawl - command: npx -y firecrawl-mcp - env: - FIRECRAWL_API_KEY: YOUR_API_KEY -``` - -
- -
-Roo Code Roo Code - -**Location:** `~/.roo/mcp-config.json` - -**Remote server (recommended):** -```json -{ - "servers": { - "firecrawl": { - "url": "https://mcp.firecrawl.dev", - "headers": { - "X-API-Key": "YOUR_API_KEY" - } - } - } -} -``` - -**Local server:** -```json -{ - "servers": { - "firecrawl": { - "command": "npx", - "args": ["-y", "firecrawl-mcp"], - "env": { - "FIRECRAWL_API_KEY": "YOUR_API_KEY" - } - } - } -} -``` - -
- -
-Opencode Opencode - -1. Open Opencode preferences -2. Navigate to MCP Servers - -**Remote server (recommended):** -```toml -[servers.firecrawl] -url = "https://mcp.firecrawl.dev" - -[servers.firecrawl.headers] -X-API-Key = "YOUR_API_KEY" -``` - -**Local server:** -```toml -[servers.firecrawl] -command = "npx" -args = ["-y", "firecrawl-mcp"] - -[servers.firecrawl.env] -FIRECRAWL_API_KEY = "YOUR_API_KEY" -``` - -
- -
-Gemini Gemini CLI - -**Environment setup:** -```bash -export FIRECRAWL_API_KEY="YOUR_API_KEY" -``` - -**Run with MCP:** -```bash -gemini --mcp-server "npx -y firecrawl-mcp" "Scrape example.com" -``` - -**Config file (`~/.gemini/config.yaml`):** -```yaml -mcp_servers: - firecrawl: - command: npx -y firecrawl-mcp - env: - FIRECRAWL_API_KEY: ${FIRECRAWL_API_KEY} -``` - -
- -
-IntelliJ IDEA IntelliJ IDEA - -**IntelliJ IDEA 2025.2+ with GitHub Copilot:** - -1. Open Settings → Tools → GitHub Copilot → MCP Servers -2. Add new server - -**Configuration:** -```yaml -name: firecrawl -type: command -command: npx -y firecrawl-mcp -environment: - FIRECRAWL_API_KEY: YOUR_API_KEY -``` - -**Project config (`.idea/mcp.xml`):** -```xml - - - - - - - - - - - -``` - -
- -
-PyCharm PyCharm - -Same as IntelliJ IDEA configuration above. - -
- -
-WebStorm WebStorm - -Same as IntelliJ IDEA configuration above. - -
- -
-Android Studio Android Studio - -Same as IntelliJ IDEA configuration, adapted for Android Studio's settings location. - -
- -
-Continue.dev Continue.dev - -1. Install Continue extension -2. Open Continue config (gear icon → "Open config.json") - -**Config location:** `~/.continue/config.json` - -**Remote server (recommended):** -```json -{ - "models": [...], - "mcpServers": { - "firecrawl": { - "url": "https://mcp.firecrawl.dev", - "headers": { - "X-API-Key": "YOUR_API_KEY" - } - } - } -} -``` - -**Local server:** -```json -{ - "models": [...], - "mcpServers": { - "firecrawl": { - "command": "npx", - "args": ["-y", "firecrawl-mcp"], - "env": { - "FIRECRAWL_API_KEY": "YOUR_API_KEY" - } - } - } -} -``` - -
- -
-CodeGPT CodeGPT - -1. Open CodeGPT settings -2. Navigate to MCP Servers - -**Configuration:** -```json -{ - "codegpt.mcpServers": [ - { - "name": "firecrawl", - "url": "https://mcp.firecrawl.dev", - "headers": { - "X-API-Key": "YOUR_API_KEY" - } - } - ] -} -``` - -**Local server:** -```json -{ - "codegpt.mcpServers": [ - { - "name": "firecrawl", - "command": "npx -y firecrawl-mcp", - "env": { - "FIRECRAWL_API_KEY": "YOUR_API_KEY" - } - } - ] -} -``` - -
- -
-GitHub Copilot GitHub Copilot - -**VS Code:** -```json -{ - "github.copilot.chat.mcpServers": { - "firecrawl": { - "command": "npx", - "args": ["-y", "firecrawl-mcp"], - "env": { - "FIRECRAWL_API_KEY": "YOUR_API_KEY" - } - } - } -} -``` - -**JetBrains IDEs:** Follow IntelliJ IDEA instructions above. - -
- -
-Neovim Neovim - -**Prerequisites:** Neovim 0.10.0+, Node.js - -**Plugin installation (lazy.nvim):** -```lua --- ~/.config/nvim/lua/plugins/mcp.lua -return { - "sourcegraph/mcp.nvim", - config = function() - require("mcp").setup({ - servers = { - firecrawl = { - command = "npx", - args = { "-y", "firecrawl-mcp" }, - env = { - FIRECRAWL_API_KEY = "YOUR_API_KEY" - } - } - } - }) - end -} -``` - -**Manual config:** -```vim -" ~/.config/nvim/init.vim -let g:mcp_servers = { - \ 'firecrawl': { - \ 'command': 'npx -y firecrawl-mcp', - \ 'env': {'FIRECRAWL_API_KEY': 'YOUR_API_KEY'} - \ } -\ } -``` - -
- -
-Emacs Emacs - -**Prerequisites:** Emacs 29+ - -**Package installation:** -```elisp -;; Using use-package -(use-package mcp - :ensure t - :config - (add-to-list 'mcp-server-configurations - '(firecrawl . ((command . "npx -y firecrawl-mcp") - (env . ((FIRECRAWL_API_KEY . "YOUR_API_KEY"))))))) -``` - -**Manual configuration:** -```elisp -;; ~/.emacs.d/init.el -(setq mcp-servers - '((firecrawl - (command . "npx") - (args . ("-y" "firecrawl-mcp")) - (env . ((FIRECRAWL_API_KEY . "YOUR_API_KEY")))))) -``` - -
- -
-Docker Docker - -**Dockerfile:** -```dockerfile -FROM node:18-alpine -WORKDIR /app -RUN npm install -g firecrawl-mcp -ENV FIRECRAWL_API_KEY="" -CMD ["firecrawl-mcp"] -``` - -**Build and run:** -```bash -docker build -t firecrawl-mcp . -docker run -e FIRECRAWL_API_KEY=YOUR_API_KEY firecrawl-mcp -``` - -**Docker Compose:** -```yaml -version: '3.8' -services: - firecrawl-mcp: - image: firecrawl-mcp - environment: - - FIRECRAWL_API_KEY=YOUR_API_KEY - restart: unless-stopped -``` - -
- -
-Kubernetes Kubernetes - -**Create secret:** -```bash -kubectl create secret generic firecrawl-secret \ - --from-literal=api-key=YOUR_API_KEY -``` - -**Deployment:** -```yaml -apiVersion: apps/v1 -kind: Deployment -metadata: - name: firecrawl-mcp -spec: - replicas: 1 - selector: - matchLabels: - app: firecrawl-mcp - template: - metadata: - labels: - app: firecrawl-mcp - spec: - containers: - - name: firecrawl-mcp - image: node:18-alpine - command: ["npx", "-y", "firecrawl-mcp"] - env: - - name: FIRECRAWL_API_KEY - valueFrom: - secretKeyRef: - name: firecrawl-secret - key: api-key -``` - -
- -
-AWS AWS Lambda - -**package.json:** -```json -{ - "dependencies": { - "firecrawl-mcp": "latest" - } -} -``` - -**Lambda handler:** -```javascript -const { FirecrawlMCP } = require('firecrawl-mcp'); - -exports.handler = async (event) => { - const mcp = new FirecrawlMCP({ - apiKey: process.env.FIRECRAWL_API_KEY - }); - return await mcp.handle(event); -}; -``` - -**Deploy:** -```bash -zip -r function.zip . -aws lambda create-function \ - --function-name firecrawl-mcp \ - --runtime nodejs18.x \ - --handler index.handler \ - --environment Variables={FIRECRAWL_API_KEY=YOUR_API_KEY} -``` - -
- -
-Azure Azure Functions - -**Create function:** -```bash -func init FirecrawlMCP --javascript -cd FirecrawlMCP -npm install firecrawl-mcp -``` - -**Function code:** -```javascript -module.exports = async function (context, req) { - const { FirecrawlMCP } = require('firecrawl-mcp'); - const mcp = new FirecrawlMCP({ - apiKey: process.env.FIRECRAWL_API_KEY - }); - // Implementation -}; -``` - -**Deploy:** -```bash -func azure functionapp publish FirecrawlMCP -``` - -
- -
-Google Cloud Google Cloud Functions - -**index.js:** -```javascript -const { FirecrawlMCP } = require('firecrawl-mcp'); - -exports.firecrawlMCP = async (req, res) => { - const mcp = new FirecrawlMCP({ - apiKey: process.env.FIRECRAWL_API_KEY - }); - // Implementation -}; -``` - -**Deploy:** -```bash -gcloud functions deploy firecrawl-mcp \ - --runtime nodejs18 \ - --trigger-http \ - --set-env-vars FIRECRAWL_API_KEY=YOUR_API_KEY -``` - -
- -
-Replit Replit - -**Create `.replit` file:** -```toml -run = "npx -y firecrawl-mcp" - -[env] -FIRECRAWL_API_KEY = "YOUR_API_KEY" - -[nix] -channel = "stable-24_11" - -[deployment] -run = ["sh", "-c", "npx -y firecrawl-mcp"] -``` - -Add `FIRECRAWL_API_KEY` to Secrets tab. - -
- -
-Slack Slack Bot - -**Bot implementation:** -```javascript -const { App } = require('@slack/bolt'); -const { FirecrawlMCP } = require('firecrawl-mcp'); - -const app = new App({ - token: process.env.SLACK_BOT_TOKEN, - signingSecret: process.env.SLACK_SIGNING_SECRET -}); - -const firecrawl = new FirecrawlMCP({ - apiKey: process.env.FIRECRAWL_API_KEY -}); - -app.command('/scrape', async ({ command, ack, respond }) => { - await ack(); - const result = await firecrawl.scrape(command.text); - await respond(result); -}); - -app.start(); -``` - -
- -
-Discord Discord Bot - -**Bot setup:** -```javascript -const { Client, Intents } = require('discord.js'); -const { FirecrawlMCP } = require('firecrawl-mcp'); - -const client = new Client({ intents: [Intents.FLAGS.GUILDS] }); -const firecrawl = new FirecrawlMCP({ - apiKey: process.env.FIRECRAWL_API_KEY -}); - -client.on('messageCreate', async (message) => { - if (message.content.startsWith('!scrape ')) { - const url = message.content.slice(8); - const result = await firecrawl.scrape(url); - message.reply(result); - } -}); - -client.login(process.env.DISCORD_TOKEN); -``` - -
- -
-Chrome Chrome Extension - -**manifest.json:** -```json -{ - "manifest_version": 3, - "name": "Firecrawl MCP", - "version": "1.0", - "permissions": ["storage", "activeTab"], - "host_permissions": ["https://api.firecrawl.dev/*"], - "background": { - "service_worker": "background.js" - } -} -``` - -**background.js:** -```javascript -const FIRECRAWL_API_KEY = 'YOUR_API_KEY'; - -chrome.runtime.onMessage.addListener((request, sender, sendResponse) => { - if (request.action === 'scrape') { - fetch('https://api.firecrawl.dev/v1/scrape', { - method: 'POST', - headers: { - 'Authorization': `Bearer ${FIRECRAWL_API_KEY}`, - 'Content-Type': 'application/json' - }, - body: JSON.stringify({ url: request.url }) - }).then(response => response.json()) - .then(data => sendResponse(data)); - return true; - } -}); -``` - -
- -
-iOS iOS (Swift) - -**Swift Package Manager:** -```swift -// Package.swift -dependencies: [ - .package(url: "https://github.com/firecrawl/firecrawl-mcp-swift", from: "1.0.0") -] -``` - -**Initialize in app:** -```swift -import FirecrawlMCP - -class MCPManager { - let firecrawl = FirecrawlMCPServer( - apiKey: "YOUR_API_KEY" - ) - - func start() { - firecrawl.start() - } -} -``` - -
- -
-Android Android - -**Gradle dependency:** -```gradle -dependencies { - implementation 'com.firecrawl:mcp-android:1.0.0' -} -``` - -**Initialize:** -```kotlin -import com.firecrawl.mcp.FirecrawlMCP - -class MainActivity : AppCompatActivity() { - private lateinit var firecrawlMCP: FirecrawlMCP - - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - - firecrawlMCP = FirecrawlMCP.Builder() - .apiKey("YOUR_API_KEY") - .build() - } -} -``` - -
- ---- - -## Configuration Options - -### Environment Variables - -**Required for Cloud API:** -- `FIRECRAWL_API_KEY`: Your Firecrawl API key - -**Optional:** -- `FIRECRAWL_API_URL`: Custom API endpoint for self-hosted instances -- `FIRECRAWL_RETRY_MAX_ATTEMPTS`: Max retry attempts (default: 3) -- `FIRECRAWL_RETRY_INITIAL_DELAY`: Initial delay in ms (default: 1000) -- `FIRECRAWL_RETRY_MAX_DELAY`: Max delay in ms (default: 10000) -- `FIRECRAWL_RETRY_BACKOFF_FACTOR`: Backoff multiplier (default: 2) - -### Self-Hosted Configuration - -```bash -export FIRECRAWL_API_URL=https://firecrawl.your-domain.com -export FIRECRAWL_API_KEY=your-api-key # Optional -npx -y firecrawl-mcp -``` - ---- - -## Verification & Troubleshooting - -### Check Installation -```bash -# Verify Node.js -node --version # Should be v18.0.0+ - -# Test package -FIRECRAWL_API_KEY=YOUR_API_KEY npx -y firecrawl-mcp --test -``` - -### Common Issues - -**API Key Invalid:** -- Ensure key starts with `fc-` -- Check for extra spaces or quotes - -**Command Not Found:** -```bash -npm install -g firecrawl-mcp -``` - -**Windows Users:** -```cmd -cmd /c "set FIRECRAWL_API_KEY=YOUR_API_KEY && npx -y firecrawl-mcp" -``` - -**Debug Mode:** -```bash -DEBUG=firecrawl:* FIRECRAWL_API_KEY=YOUR_API_KEY npx -y firecrawl-mcp -``` - ---- - -## Support - -- **Documentation**: [github.com/firecrawl/firecrawl-mcp-server](https://github.com/firecrawl/firecrawl-mcp-server) -- **Issues**: [github.com/firecrawl/firecrawl-mcp-server/issues](https://github.com/firecrawl/firecrawl-mcp-server/issues) -- **Discord**: [Join Firecrawl Discord](https://discord.gg/firecrawl) -- **API Status**: [status.firecrawl.dev](https://status.firecrawl.dev) - -*Get your API key at [firecrawl.dev/app/api-keys](https://www.firecrawl.dev/app/api-keys)* \ No newline at end of file diff --git a/README.md b/README.md index ad7bb84..9f5243a 100644 --- a/README.md +++ b/README.md @@ -26,98 +26,546 @@ A Model Context Protocol (MCP) server implementation that integrates with [Firec ## Installation -📖 **[Complete Installation Guide](./INSTALLATION.md)** - Comprehensive instructions for 50+ MCP-compatible environments +### Prerequisites + +- Node.js (version 18.0.0 or higher) +- npm or yarn package manager +- Firecrawl API Key from [https://www.firecrawl.dev/app/api-keys](https://www.firecrawl.dev/app/api-keys) ### Quick Start ```bash +# Using npx (recommended) env FIRECRAWL_API_KEY=fc-YOUR_API_KEY npx -y firecrawl-mcp -``` -### Manual Installation - -```bash +# Or install globally npm install -g firecrawl-mcp ``` -### Popular Platforms +### Platform Installation Guides -The installation guide covers all major platforms including: +
+Claude Claude Desktop -- **Desktop AI**: Claude Desktop, Claude Code CLI -- **Editors**: Cursor, VS Code, Windsurf, Zed, IntelliJ IDEA, PyCharm, Neovim, Emacs -- **Extensions**: Cline, Continue.dev, CodeGPT, GitHub Copilot -- **Cloud**: AWS, Azure, GCP, Replit -- **Containers**: Docker, Kubernetes -- **Mobile**: iOS, Android -- **Enterprise**: Slack, Teams, Discord -- **And many more...** +**Location of config file:** +- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `~/.config/claude/claude_desktop_config.json` -[→ View Complete Installation Guide](./INSTALLATION.md) +**Configuration:** +```json +{ + "mcpServers": { + "firecrawl-mcp": { + "command": "npx", + "args": ["-y", "firecrawl-mcp"], + "env": { + "FIRECRAWL_API_KEY": "fc-YOUR_API_KEY" + } + } + } +} +``` -### Running on Cursor +**Restart Claude Desktop after adding the configuration.** -Configuring Cursor 🖥️ -Note: Requires Cursor version 0.45.6+ -For the most up-to-date configuration instructions, please refer to the official Cursor documentation on configuring MCP servers: -[Cursor MCP Server Configuration Guide](https://docs.cursor.com/context/model-context-protocol#configuring-mcp-servers) +
-To configure Firecrawl MCP in Cursor **v0.48.6** +
+Cursor Cursor -1. Open Cursor Settings -2. Go to Features > MCP Servers +**Cursor v0.48.6+:** +1. Open Cursor Settings (`Cmd/Ctrl + ,`) +2. Go to Features → MCP Servers 3. Click "+ Add new global MCP server" -4. Enter the following code: - ```json - { - "mcpServers": { - "firecrawl-mcp": { - "command": "npx", - "args": ["-y", "firecrawl-mcp"], - "env": { - "FIRECRAWL_API_KEY": "YOUR-API-KEY" - } - } - } - } - ``` - -To configure Firecrawl MCP in Cursor **v0.45.6** +4. Enter the following: + +```json +{ + "mcpServers": { + "firecrawl-mcp": { + "command": "npx", + "args": ["-y", "firecrawl-mcp"], + "env": { + "FIRECRAWL_API_KEY": "fc-YOUR_API_KEY" + } + } + } +} +``` +**Cursor v0.45.6:** 1. Open Cursor Settings -2. Go to Features > MCP Servers +2. Go to Features → MCP Servers 3. Click "+ Add New MCP Server" -4. Enter the following: - - Name: "firecrawl-mcp" (or your preferred name) - - Type: "command" - - Command: `env FIRECRAWL_API_KEY=your-api-key npx -y firecrawl-mcp` +4. Enter: + - Name: `firecrawl-mcp` + - Type: `command` + - Command: `env FIRECRAWL_API_KEY=fc-YOUR_API_KEY npx -y firecrawl-mcp` +**Windows users:** Use `cmd /c "set FIRECRAWL_API_KEY=fc-YOUR_API_KEY && npx -y firecrawl-mcp"` +
-> If you are using Windows and are running into issues, try `cmd /c "set FIRECRAWL_API_KEY=your-api-key && npx -y firecrawl-mcp"` +
+Windsurf Windsurf -Replace `your-api-key` with your Firecrawl API key. If you don't have one yet, you can create an account and get it from https://www.firecrawl.dev/app/api-keys +**Location:** `~/.codeium/windsurf/model_config.json` -After adding, refresh the MCP server list to see the new tools. The Composer Agent will automatically use Firecrawl MCP when appropriate, but you can explicitly request it by describing your web scraping needs. Access the Composer via Command+L (Mac), select "Agent" next to the submit button, and enter your query. +```json +{ + "mcpServers": { + "firecrawl-mcp": { + "command": "npx", + "args": ["-y", "firecrawl-mcp"], + "env": { + "FIRECRAWL_API_KEY": "fc-YOUR_API_KEY" + } + } + } +} +``` -### Running on Windsurf +**Restart Windsurf after adding configuration.** -Add this to your `./codeium/windsurf/model_config.json`: +
+ +
+VS Code VS Code + +**One-click install:** + +[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode)](https://vscode.dev/redirect/mcp/install?name=firecrawl&inputs=%5B%7B%22type%22%3A%22promptString%22%2C%22id%22%3A%22apiKey%22%2C%22description%22%3A%22Firecrawl%20API%20Key%22%2C%22password%22%3Atrue%7D%5D&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22firecrawl-mcp%22%5D%2C%22env%22%3A%7B%22FIRECRAWL_API_KEY%22%3A%22%24%7Binput%3AapiKey%7D%22%7D%7D) + +**Manual setup:** +1. Open User Settings (`Ctrl/Cmd + Shift + P` → "Preferences: Open User Settings (JSON)") +2. Add: ```json { + "mcp": { + "servers": { + "firecrawl": { + "command": "npx", + "args": ["-y", "firecrawl-mcp"], + "env": { + "FIRECRAWL_API_KEY": "fc-YOUR_API_KEY" + } + } + } + } +} +``` + +**Workspace config (`.vscode/mcp.json`):** +```json +{ + "servers": { + "firecrawl": { + "command": "npx", + "args": ["-y", "firecrawl-mcp"], + "env": { + "FIRECRAWL_API_KEY": "${env:FIRECRAWL_API_KEY}" + } + } + } +} +``` + +
+ +
+Cline Cline + +1. Install Cline extension in VS Code +2. Open Cline settings (`Cmd/Ctrl + Shift + P` → "Cline: Open Settings") +3. Add: + +```json +{ + "cline.mcpServers": { + "firecrawl": { + "command": "npx", + "args": ["-y", "firecrawl-mcp"], + "env": { + "FIRECRAWL_API_KEY": "fc-YOUR_API_KEY" + } + } + } +} +``` + +
+ +
+Zed Zed + +1. Open Zed settings (`Cmd/Ctrl + ,`) +2. Navigate to Extensions → MCP +3. Add: + +```json +{ + "mcp": { + "servers": { + "firecrawl": { + "command": "npx", + "args": ["-y", "firecrawl-mcp"], + "env": { + "FIRECRAWL_API_KEY": "fc-YOUR_API_KEY" + } + } + } + } +} +``` + +
+ +
+IntelliJ IDEA IntelliJ IDEA / PyCharm / WebStorm + +**For IntelliJ IDEA 2025.2+ with GitHub Copilot:** + +1. Open Settings → Tools → GitHub Copilot → MCP Servers +2. Add new server: + +```yaml +name: firecrawl +type: command +command: npx -y firecrawl-mcp +environment: + FIRECRAWL_API_KEY: fc-YOUR_API_KEY +``` + +**Project config (`.idea/mcp.xml`):** +```xml + + + + + + + + + + + +``` + +
+ +
+Continue.dev Continue.dev + +1. Install Continue extension +2. Open Continue config (gear icon → "Open config.json") +3. Location: `~/.continue/config.json` +4. Add: + +```json +{ + "models": [...], "mcpServers": { - "mcp-server-firecrawl": { + "firecrawl": { "command": "npx", "args": ["-y", "firecrawl-mcp"], "env": { - "FIRECRAWL_API_KEY": "YOUR_API_KEY" + "FIRECRAWL_API_KEY": "fc-YOUR_API_KEY" } } } } ``` +
+ +
+GitHub Copilot GitHub Copilot + +**VS Code:** +```json +{ + "github.copilot.chat.mcpServers": { + "firecrawl": { + "command": "npx", + "args": ["-y", "firecrawl-mcp"], + "env": { + "FIRECRAWL_API_KEY": "fc-YOUR_API_KEY" + } + } + } +} +``` + +**JetBrains IDEs:** Follow IntelliJ IDEA instructions above. + +
+ +
+Neovim Neovim + +**Prerequisites:** Neovim 0.10.0+, Node.js + +**Plugin installation (lazy.nvim):** +```lua +-- ~/.config/nvim/lua/plugins/mcp.lua +return { + "sourcegraph/mcp.nvim", + config = function() + require("mcp").setup({ + servers = { + firecrawl = { + command = "npx", + args = { "-y", "firecrawl-mcp" }, + env = { + FIRECRAWL_API_KEY = "fc-YOUR_API_KEY" + } + } + } + }) + end +} +``` + +
+ +
+Emacs Emacs + +**Prerequisites:** Emacs 29+ + +**Package installation:** +```elisp +;; Using use-package +(use-package mcp + :ensure t + :config + (add-to-list 'mcp-server-configurations + '(firecrawl . ((command . "npx -y firecrawl-mcp") + (env . ((FIRECRAWL_API_KEY . "fc-YOUR_API_KEY"))))))) +``` + +
+ +
+Docker Docker + +**Dockerfile:** +```dockerfile +FROM node:18-alpine +WORKDIR /app +RUN npm install -g firecrawl-mcp +ENV FIRECRAWL_API_KEY="" +CMD ["firecrawl-mcp"] +``` + +**Build and run:** +```bash +docker build -t firecrawl-mcp . +docker run -e FIRECRAWL_API_KEY=fc-YOUR_API_KEY firecrawl-mcp +``` + +**Docker Compose:** +```yaml +version: '3.8' +services: + firecrawl-mcp: + image: firecrawl-mcp + environment: + - FIRECRAWL_API_KEY=fc-YOUR_API_KEY + restart: unless-stopped +``` + +
+ +
+Kubernetes Kubernetes + +**Create secret:** +```bash +kubectl create secret generic firecrawl-secret \ + --from-literal=api-key=fc-YOUR_API_KEY +``` + +**Deployment:** +```yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + name: firecrawl-mcp +spec: + replicas: 1 + selector: + matchLabels: + app: firecrawl-mcp + template: + metadata: + labels: + app: firecrawl-mcp + spec: + containers: + - name: firecrawl-mcp + image: node:18-alpine + command: ["npx", "-y", "firecrawl-mcp"] + env: + - name: FIRECRAWL_API_KEY + valueFrom: + secretKeyRef: + name: firecrawl-secret + key: api-key +``` + +
+ +
+Replit Replit + +**Create `.replit` file:** +```toml +run = "npx -y firecrawl-mcp" + +[env] +FIRECRAWL_API_KEY = "fc-YOUR_API_KEY" + +[nix] +channel = "stable-24_11" + +[deployment] +run = ["sh", "-c", "npx -y firecrawl-mcp"] +``` + +Add `FIRECRAWL_API_KEY` to Secrets tab. + +
+ +
+⚙️ Other Platforms + +### Claude Code CLI +```bash +export FIRECRAWL_API_KEY="fc-YOUR_API_KEY" +claude-code --mcp "npx -y firecrawl-mcp" +``` + +### Android Studio +Same as IntelliJ IDEA configuration. + +### CodeGPT +```json +{ + "codegpt.mcpServers": [ + { + "name": "firecrawl", + "command": "npx -y firecrawl-mcp", + "env": { + "FIRECRAWL_API_KEY": "fc-YOUR_API_KEY" + } + } + ] +} +``` + +### AWS Lambda +```javascript +const { FirecrawlMCP } = require('firecrawl-mcp'); + +exports.handler = async (event) => { + const mcp = new FirecrawlMCP({ + apiKey: process.env.FIRECRAWL_API_KEY + }); + return await mcp.handle(event); +}; +``` + +### Azure Functions +```javascript +module.exports = async function (context, req) { + const { FirecrawlMCP } = require('firecrawl-mcp'); + const mcp = new FirecrawlMCP({ + apiKey: process.env.FIRECRAWL_API_KEY + }); + // Implementation +}; +``` + +### Google Cloud Functions +```javascript +const { FirecrawlMCP } = require('firecrawl-mcp'); + +exports.firecrawlMCP = async (req, res) => { + const mcp = new FirecrawlMCP({ + apiKey: process.env.FIRECRAWL_API_KEY + }); + // Implementation +}; +``` + +### Slack Bot +```javascript +const { App } = require('@slack/bolt'); +const { FirecrawlMCP } = require('firecrawl-mcp'); + +const app = new App({ + token: process.env.SLACK_BOT_TOKEN, + signingSecret: process.env.SLACK_SIGNING_SECRET +}); + +const firecrawl = new FirecrawlMCP({ + apiKey: process.env.FIRECRAWL_API_KEY +}); + +app.command('/scrape', async ({ command, ack, respond }) => { + await ack(); + const result = await firecrawl.scrape(command.text); + await respond(result); +}); + +app.start(); +``` + +### Discord Bot +```javascript +const { Client, Intents } = require('discord.js'); +const { FirecrawlMCP } = require('firecrawl-mcp'); + +const client = new Client({ intents: [Intents.FLAGS.GUILDS] }); +const firecrawl = new FirecrawlMCP({ + apiKey: process.env.FIRECRAWL_API_KEY +}); + +client.on('messageCreate', async (message) => { + if (message.content.startsWith('!scrape ')) { + const url = message.content.slice(8); + const result = await firecrawl.scrape(url); + message.reply(result); + } +}); + +client.login(process.env.DISCORD_TOKEN); +``` + +
+ +### Installing via Smithery (Legacy) + +To install Firecrawl for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@mendableai/mcp-server-firecrawl): + +```bash +npx -y @smithery/cli install @mendableai/mcp-server-firecrawl --client claude +``` + + ### Running with SSE Local Mode To run the server using Server-Sent Events (SSE) locally instead of the default stdio transport: From 1d46bc2b3c07c17cd97d68710bdebd6590734206 Mon Sep 17 00:00:00 2001 From: mavrick-1 Date: Fri, 26 Sep 2025 12:34:41 +0530 Subject: [PATCH 5/6] Complete platform consolidation in README.md --- README.md | 299 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 289 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 9f5243a..b7496e9 100644 --- a/README.md +++ b/README.md @@ -450,18 +450,136 @@ Add `FIRECRAWL_API_KEY` to Secrets tab.
-⚙️ Other Platforms +Claude Code CLI Claude Code CLI -### Claude Code CLI +**Setup:** ```bash export FIRECRAWL_API_KEY="fc-YOUR_API_KEY" claude-code --mcp "npx -y firecrawl-mcp" ``` -### Android Studio -Same as IntelliJ IDEA configuration. +**Config file (`~/.claude-code/config.json`):** +```json +{ + "mcpServers": [ + { + "name": "firecrawl", + "command": "npx -y firecrawl-mcp" + } + ] +} +``` + +
+ +
+Augment Code Augment Code + +1. Open Augment settings +2. Navigate to Extensions → MCP + +**Configuration:** +```yaml +servers: + - name: firecrawl + command: npx -y firecrawl-mcp + env: + FIRECRAWL_API_KEY: fc-YOUR_API_KEY +``` + +
+ +
+Roo Code Roo Code + +**Location:** `~/.roo/mcp-config.json` -### CodeGPT +```json +{ + "servers": { + "firecrawl": { + "command": "npx", + "args": ["-y", "firecrawl-mcp"], + "env": { + "FIRECRAWL_API_KEY": "fc-YOUR_API_KEY" + } + } + } +} +``` + +
+ +
+Opencode Opencode + +1. Open Opencode preferences +2. Navigate to MCP Servers + +**Configuration:** +```toml +[servers.firecrawl] +command = "npx" +args = ["-y", "firecrawl-mcp"] + +[servers.firecrawl.env] +FIRECRAWL_API_KEY = "fc-YOUR_API_KEY" +``` + +
+ +
+Gemini CLI Gemini CLI + +**Environment setup:** +```bash +export FIRECRAWL_API_KEY="fc-YOUR_API_KEY" +``` + +**Run with MCP:** +```bash +gemini --mcp-server "npx -y firecrawl-mcp" "Scrape example.com" +``` + +**Config file (`~/.gemini/config.yaml`):** +```yaml +mcp_servers: + firecrawl: + command: npx -y firecrawl-mcp + env: + FIRECRAWL_API_KEY: ${FIRECRAWL_API_KEY} +``` + +
+ +
+PyCharm PyCharm + +Same as IntelliJ IDEA configuration above. + +
+ +
+WebStorm WebStorm + +Same as IntelliJ IDEA configuration above. + +
+ +
+Android Studio Android Studio + +Same as IntelliJ IDEA configuration, adapted for Android Studio's settings location. + +
+ +
+CodeGPT CodeGPT + +1. Open CodeGPT settings +2. Navigate to MCP Servers + +**Configuration:** ```json { "codegpt.mcpServers": [ @@ -476,7 +594,21 @@ Same as IntelliJ IDEA configuration. } ``` -### AWS Lambda +
+ +
+AWS Lambda AWS Lambda + +**package.json:** +```json +{ + "dependencies": { + "firecrawl-mcp": "latest" + } +} +``` + +**Lambda handler:** ```javascript const { FirecrawlMCP } = require('firecrawl-mcp'); @@ -488,7 +620,29 @@ exports.handler = async (event) => { }; ``` -### Azure Functions +**Deploy:** +```bash +zip -r function.zip . +aws lambda create-function \ + --function-name firecrawl-mcp \ + --runtime nodejs18.x \ + --handler index.handler \ + --environment Variables={FIRECRAWL_API_KEY=fc-YOUR_API_KEY} +``` + +
+ +
+Azure Functions Azure Functions + +**Create function:** +```bash +func init FirecrawlMCP --javascript +cd FirecrawlMCP +npm install firecrawl-mcp +``` + +**Function code:** ```javascript module.exports = async function (context, req) { const { FirecrawlMCP } = require('firecrawl-mcp'); @@ -499,7 +653,17 @@ module.exports = async function (context, req) { }; ``` -### Google Cloud Functions +**Deploy:** +```bash +func azure functionapp publish FirecrawlMCP +``` + +
+ +
+Google Cloud Functions Google Cloud Functions + +**index.js:** ```javascript const { FirecrawlMCP } = require('firecrawl-mcp'); @@ -511,7 +675,20 @@ exports.firecrawlMCP = async (req, res) => { }; ``` -### Slack Bot +**Deploy:** +```bash +gcloud functions deploy firecrawl-mcp \ + --runtime nodejs18 \ + --trigger-http \ + --set-env-vars FIRECRAWL_API_KEY=fc-YOUR_API_KEY +``` + +
+ +
+Slack Bot Slack Bot + +**Bot implementation:** ```javascript const { App } = require('@slack/bolt'); const { FirecrawlMCP } = require('firecrawl-mcp'); @@ -534,7 +711,12 @@ app.command('/scrape', async ({ command, ack, respond }) => { app.start(); ``` -### Discord Bot +
+ +
+Discord Bot Discord Bot + +**Bot setup:** ```javascript const { Client, Intents } = require('discord.js'); const { FirecrawlMCP } = require('firecrawl-mcp'); @@ -557,6 +739,103 @@ client.login(process.env.DISCORD_TOKEN);
+
+Chrome Extension Chrome Extension + +**manifest.json:** +```json +{ + "manifest_version": 3, + "name": "Firecrawl MCP", + "version": "1.0", + "permissions": ["storage", "activeTab"], + "host_permissions": ["https://api.firecrawl.dev/*"], + "background": { + "service_worker": "background.js" + } +} +``` + +**background.js:** +```javascript +const FIRECRAWL_API_KEY = 'fc-YOUR_API_KEY'; + +chrome.runtime.onMessage.addListener((request, sender, sendResponse) => { + if (request.action === 'scrape') { + fetch('https://api.firecrawl.dev/v1/scrape', { + method: 'POST', + headers: { + 'Authorization': `Bearer ${FIRECRAWL_API_KEY}`, + 'Content-Type': 'application/json' + }, + body: JSON.stringify({ url: request.url }) + }).then(response => response.json()) + .then(data => sendResponse(data)); + return true; + } +}); +``` + +
+ +
+iOS (Swift) iOS (Swift) + +**Swift Package Manager:** +```swift +// Package.swift +dependencies: [ + .package(url: "https://github.com/firecrawl/firecrawl-mcp-swift", from: "1.0.0") +] +``` + +**Initialize in app:** +```swift +import FirecrawlMCP + +class MCPManager { + let firecrawl = FirecrawlMCPServer( + apiKey: "fc-YOUR_API_KEY" + ) + + func start() { + firecrawl.start() + } +} +``` + +
+ +
+Android Android + +**Gradle dependency:** +```gradle +dependencies { + implementation 'com.firecrawl:mcp-android:1.0.0' +} +``` + +**Initialize:** +```kotlin +import com.firecrawl.mcp.FirecrawlMCP + +class MainActivity : AppCompatActivity() { + private lateinit var firecrawlMCP: FirecrawlMCP + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + + firecrawlMCP = FirecrawlMCP.Builder() + .apiKey("fc-YOUR_API_KEY") + .build() + } +} +``` + +
+ + ### Installing via Smithery (Legacy) To install Firecrawl for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@mendableai/mcp-server-firecrawl): From 5f69107bbc4c10ee36bee87fe8cb6cf4e3e23c01 Mon Sep 17 00:00:00 2001 From: mavrick-1 Date: Fri, 26 Sep 2025 12:37:31 +0530 Subject: [PATCH 6/6] Remove duplicate JetBrains IDE sections - Consolidated PyCharm, WebStorm, and Android Studio into single JetBrains IDEs section - All use the same configuration as IntelliJ IDEA - Eliminates redundancy while maintaining comprehensive coverage - Reduced from 31 to 28 unique platform sections --- README.md | 24 ++---------------------- 1 file changed, 2 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index b7496e9..ce7600a 100644 --- a/README.md +++ b/README.md @@ -223,9 +223,9 @@ npm install -g firecrawl-mcp
-IntelliJ IDEA IntelliJ IDEA / PyCharm / WebStorm +JetBrains IDEs JetBrains IDEs (IntelliJ IDEA / PyCharm / WebStorm / Android Studio) -**For IntelliJ IDEA 2025.2+ with GitHub Copilot:** +**For JetBrains IDEs 2025.2+ with GitHub Copilot:** 1. Open Settings → Tools → GitHub Copilot → MCP Servers 2. Add new server: @@ -552,26 +552,6 @@ mcp_servers:
-
-PyCharm PyCharm - -Same as IntelliJ IDEA configuration above. - -
- -
-WebStorm WebStorm - -Same as IntelliJ IDEA configuration above. - -
- -
-Android Studio Android Studio - -Same as IntelliJ IDEA configuration, adapted for Android Studio's settings location. - -
CodeGPT CodeGPT