{
  "name": "crawlforge-mcp-server",
  "version": "4.10.0",
  "mcpName": "io.github.mysleekdesigns/crawlforge-mcp-server",
  "description": "CrawlForge MCP Server - Professional Model Context Protocol server with 27 web scraping, crawling, deep-research, and autonomous-extraction tools. Returns clean Markdown and structured JSON for Claude, Cursor, and any MCP client. Defaults to local Ollama for LLM extraction (no API key needed); OpenAI/Anthropic available as opt-in. Includes a unified multi-format scrape tool, an autonomous agent, pre-built site templates, and Camoufox stealth browsing.",
  "main": "server.js",
  "bin": {
    "crawlforge": "src/cli/index.js",
    "crawlforge-setup": "setup.js",
    "crawlforge-mcp-server": "src/cli/index.js",
    "crawlforge-mcp": "server.js"
  },
  "scripts": {
    "start": "node server.js",
    "start:http": "node server.js --http",
    "setup": "node setup.js",
    "dev": "cross-env NODE_ENV=development node server.js",
    "test": "node tests/integration/mcp-protocol-compliance.test.js",
    "test:unit": "CRAWLFORGE_CREATOR_SECRET= node --test 'tests/unit/*.test.js'",
    "test:integration": "CRAWLFORGE_CREATOR_SECRET= node --test 'tests/integration/tools/*.test.js'",
    "test:coverage": "CRAWLFORGE_CREATOR_SECRET= c8 --reporter=text --reporter=lcov --include='src/**/*.js' --exclude='src/**/_*.js' --lines=60 --statements=60 --functions=55 --branches=45 node --test --test-force-exit 'tests/unit/*.test.js' 'tests/integration/tools/*.test.js'",
    "test:tools": "node test-tools.js",
    "test:real-world": "node test-real-world.js",
    "test:all": "bash run-all-tests.sh",
    "skills:gen": "node scripts/generate-skill-md.mjs",
    "postinstall": "echo '\nCrawlForge MCP Server installed!\n\nQuick start: run \"npx crawlforge init\" to configure your API key, install skills, and register the MCP server with your AI clients.\nOr run \"npx crawlforge-setup\" to configure your API key only.\n'",
    "docker:build": "docker build -t crawlforge .",
    "docker:dev": "docker-compose up crawlforge-dev",
    "docker:prod": "docker-compose up crawlforge-prod"
  },
  "keywords": [
    "mcp",
    "model-context-protocol",
    "web-scraping",
    "scraper",
    "html-parser",
    "metadata-extraction",
    "link-extraction",
    "content-processing",
    "document-analysis",
    "web-crawler",
    "search-engine",
    "text-summarization",
    "content-analysis",
    "nlp",
    "ai-tools",
    "automation",
    "data-extraction",
    "pdf-processing",
    "sitemap-parser",
    "performance-optimized",
    "llms-txt",
    "llms-txt-generator",
    "ai-compliance",
    "website-analysis",
    "mcp-server",
    "claude",
    "cursor",
    "ollama",
    "ai-agents",
    "deep-research",
    "stealth-browser",
    "html-to-markdown",
    "llm",
    "crawl",
    "batch-scrape",
    "screenshot"
  ],
  "author": {
    "name": "Simon Lacey",
    "email": "support@crawlforge.dev"
  },
  "license": "MIT",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/mysleekdesigns/crawlforge-mcp.git"
  },
  "bugs": {
    "url": "https://github.com/mysleekdesigns/crawlforge-mcp/issues"
  },
  "homepage": "https://crawlforge.dev",
  "type": "module",
  "engines": {
    "node": ">=18.0.0",
    "npm": ">=8.0.0"
  },
  "os": [
    "linux",
    "darwin",
    "win32"
  ],
  "cpu": [
    "x64",
    "arm64"
  ],
  "publishConfig": {
    "access": "public",
    "registry": "https://registry.npmjs.org/",
    "tag": "latest"
  },
  "files": [
    "server.js",
    "setup.js",
    "src/",
    "README.md",
    "LICENSE",
    "CLAUDE.md",
    "package.json"
  ],
  "dependencies": {
    "@googleapis/customsearch": "^5.0.1",
    "@modelcontextprotocol/sdk": "^1.29.0",
    "@mozilla/readability": "^0.6.0",
    "cheerio": "^1.1.2",
    "commander": "^12.1.0",
    "compromise": "^14.14.4",
    "diff": "^8.0.2",
    "dotenv": "^17.2.1",
    "franc": "^6.2.0",
    "isomorphic-dompurify": "^3.9.0",
    "jsdom": "^29.0.2",
    "lru-cache": "^11.1.0",
    "node-cron": "^3.0.3",
    "node-summarizer": "^1.0.7",
    "p-queue": "^8.1.0",
    "pdf-parse": "^1.1.1",
    "playwright": "^1.54.2",
    "robots-parser": "^3.0.1",
    "turndown": "^7.2.4",
    "turndown-plugin-gfm": "^1.0.2",
    "undici": "^7.24.0",
    "winston": "^3.11.0",
    "zod": "^3.23.8"
  },
  "optionalDependencies": {
    "camoufox": "^0.1.19"
  },
  "devDependencies": {
    "@jest/globals": "^30.3.0",
    "c8": "^11.0.0",
    "cross-env": "^10.0.0",
    "jest": "^30.3.0",
    "shx": "^0.4.0"
  },
  "overrides": {
    "undici": "^7.24.0",
    "underscore": "^1.13.8",
    "qs": "^6.14.2",
    "path-to-regexp": "^8.4.2",
    "@hono/node-server": "^1.19.13",
    "hono": "^4.12.4",
    "dompurify": "^3.4.0"
  }
}
