Getting Started with CrawlForge MCP
Get your first API response in under 5 minutes. CrawlForge MCP provides 30 specialized web scraping tools designed for AI applications.
What is CrawlForge MCP?
CrawlForge MCP is a powerful web scraping server built on the Model Context Protocol (MCP). It provides 30 specialized tools for extracting, analyzing, and processing web data—all accessible through a simple REST API or native MCP integration.
Whether you're building an AI research assistant, content aggregator, or data pipeline, CrawlForge MCP handles the complexity of web scraping so you can focus on building your application.
Why Choose CrawlForge?
Quick Start
aPackage Installation
Install globally:
npm install -g crawlforge-mcp-serverDependencies, including crawlforge-extractors, install automatically.
Quick setup wizard:
npx crawlforge-setupbClaude Desktop Configuration
Add to claude_desktop_config.json:
{
"mcpServers": {
"crawlforge": {
"command": "npx",
"args": ["-y", "crawlforge-mcp-server"]
}
}
}- macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
- Windows: %APPDATA%/Claude/claude_desktop_config.json
- Linux: ~/.config/Claude/claude_desktop_config.json
cCursor IDE Configuration
Add to ~/.cursor/mcp.json:
{
"mcpServers": {
"crawlforge": {
"type": "stdio",
"command": "crawlforge-mcp"
}
}
}dEnvironment Variables
export CRAWLFORGE_API_KEY="cf_live_your_api_key_here"
export CRAWLFORGE_API_URL="https://api.crawlforge.dev"eUsage Examples
"Search for the latest AI news"
"Extract all links from example.com"
"Crawl the documentation site and summarize it"
crawlforge-sdk on npm and crawlforge on PyPI, and cURL calls the REST API directly.cURL
curl -X POST https://www.crawlforge.dev/api/v1/tools/fetch_url \
-H "X-API-Key: cf_test_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com"}'TypeScript
npm install crawlforge-sdk// npm install crawlforge-sdk
import { CrawlForge } from 'crawlforge-sdk';
const client = new CrawlForge({ apiKey: process.env.CRAWLFORGE_API_KEY });
const result = await client.fetchUrl({ url: 'https://example.com' });
// result.data is untyped in crawlforge-sdk 0.1 — its shape is the response shown in the next step.
const { status, content_length } = result.data as { status: number; content_length: number };
console.log('Status:', status);
console.log('Content length:', content_length);
console.log('Credits used:', result.creditsUsed);
console.log('Credits remaining:', result.creditsRemaining);Python
pip install crawlforge# pip install crawlforge
from crawlforge import CrawlForge
client = CrawlForge() # reads CRAWLFORGE_API_KEY
result = client.fetch_url(url='https://example.com')
# result.data is a plain dict — its shape is the response shown in the next step.
print(f"Status: {result.data['status']}")
print(f"Content length: {result.data['content_length']}")
print(f"Credits used: {result.credits_used}")
print(f"Credits remaining: {result.credits_remaining}"){
"success": true,
"data": {
"url": "https://example.com",
"status": 200,
"status_text": "OK",
"content": "<!DOCTYPE html>...",
"content_length": 1256,
"content_type": "text/html; charset=UTF-8"
},
"credits_used": 1,
"credits_remaining": 999,
"processing_time": 245
}- success: Whether the request was successful
- data: The extracted content and metadata
- credits_used: Credits deducted for this request
- credits_remaining: Your remaining credit balance
The SDKs return the same envelope as result.data, creditsUsed / credits_used and creditsRemaining / credits_remaining, and raise a typed error instead of returning success: false.