mcpField
P
PulpMiner

PulpMiner

Remote
pulpminer.comBrowser Automation1Updated 2w ago

About PulpMiner

PulpMiner MCP Server turns webpage content into JSON and can save extraction setups as reusable REST APIs for AI assistants using MCP clients. It also supports fetching data from and listing saved APIs.

Key features

  1. 01Convert webpages to JSON
  2. 02Generate JSON in a specified format
  3. 03Save reusable REST APIs
  4. 04Fetch and list saved APIs
  5. 05Check API keys

Use cases

  1. 01Extract structured data from webpages
  2. 02Save a page extraction setup as an API
  3. 03Query a saved API with dynamic URL variables
  4. 04Check PulpMiner credential configuration

MCP support

It provides MCP clients with tools to convert webpages to JSON, save APIs, fetch API data, list APIs, and validate keys; it supports stdio and Streamable HTTP.

Configuration

Remote servers need no local install. Pick your client, then copy the config or install in one click.

Endpointhttps://mcp.pulpminer.com/mcp
Copy install command
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.

All endpoints
Streamable HTTPhttps://mcp.pulpminer.com/mcpAuth required
Packages
npmpulpminer-mcp0.1.0

Tools

5
ParameterTypeRequiredDescription
llmenumNoLLM used to convert HTML to JSON. llm_2 = OpenAI GPT (default), llm_1 = Google Gemini, llm_3 = Groq (only if enabled for the account; otherwise the API returns 'bad request').llm_1 | llm_2 | llm_3
urlstringYesFull URL of the web page to extract data from (http/https).
scraperenumNoScraper backend. scraper_1 (default, supports useSession) or scraper_2. Try the other one if a site blocks scraping.scraper_1 | scraper_2
renderJsbooleanNoRender JavaScript in a headless browser before extracting (default true; adds 0.1 credits).
selectorstringNoCSS selector to limit extraction to part of the page, e.g. "main" or "#results". Default: whole body.
jsonFormatobjectNoSample JSON whose keys define the output shape, e.g. {"title": "", "price": "", "items": [{"name": ""}]}. Key names are kept exactly; values are extracted from the page.
useSessionbooleanNoUse a persistent scraping session (scraper_1 only; ignored for lifetime-plan accounts).
extraLLMInfostringNoExtra natural-language instructions for the LLM, e.g. 'only the first 10 products, prices as numbers'.

Details

From the project README

PulpMiner MCP Server

Source: github.com/pulpminercom/pulpminer-mcp · Issues: github.com/pulpminercom/pulpminer-mcp/issues

An MCP server for PulpMiner. It lets AI assistants (Cursor, Claude Desktop, and any other MCP client):

  • Generate JSON from any web page with AI. PulpMiner scrapes the page and an LLM turns it into structured JSON, optionally in the exact shape you give it.
  • Save a page-to-JSON setup as a reusable REST API (static, or dynamic with {{ variables }} in the URL).
  • Fetch data from saved APIs and list them.

Tools

ToolWhat it doesBackend endpointCredits
pulpminer_generate_jsonScrape a URL and convert it to JSON with AI (optional jsonFormat sample, CSS selector, extra instructions)POST /external/ai/json0.25 (+0.1 renderJs)
pulpminer_save_as_apiSave URL + JSON format (+ optional dynamic URL template, cache) as an API; returns the API id and endpointPOST /external/ai/json/savefree
pulpminer_fetch_api_dataCall a saved API (GET, or POST with variables for dynamic APIs)GET/POST /external/{apiId}0.4 (+0.1 renderJs)
pulpminer_list_saved_apisList saved APIs (id, url, dynamic URL template and its variables)GET /external/api/urlfree
pulpminer_check_api_keyValidate the API key and show which credentials are configuredGET /external/n8n/authfree

Option values match the backend: scraper is scraper_1 (default) or scraper_2. llm is llm_2 (OpenAI GPT, default), llm_1 (Google Gemini), or llm_3 (Groq, only if enabled for your account).

Configuration

Env varRequiredDescription
PULPMINER_API_KEYyesYour API key from the PulpMiner dashboard → API Keys. Sent as the apikey header. It is the only credential any tool needs.
PULPMINER_BASE_URLnoDefault https://api.pulpminer.com
PULPMINER_TIMEOUT_MSnoDefault 300000 (scraping plus the LLM step can take a while)

Install & build

git clone https://github.com/pulpminercom/pulpminer-mcp.git
cd pulpminer-mcp
npm install
npm run build

Run it:

PULPMINER_API_KEY=... node dist/index.js          # stdio
PULPMINER_API_KEY=... node dist/index.js --http   # Streamable HTTP on http://127.0.0.1:3333/mcp

Once published to npm, this becomes npx -y pulpminer-mcp.

Client configuration

Cursor (~/.cursor/mcp.json or .cursor/mcp.json)
{
  "mcpServers": {
    "pulpminer": {
      "command": "npx",
      "args": ["-y", "pulpminer-mcp"],
      "env": { "PULPMINER_API_KEY": "your-api-key" }
    }
  }
}
Claude Desktop (claude_desktop_config.json)
{
  "mcpServers": {
    "pulpminer": {
      "command": "npx",
      "args": ["-y", "pulpminer-mcp"],
      "env": { "PULPMINER_API_KEY": "your-api-key" }
    }
  }
}

Before it is published, use a local build: "command": "node", "args": ["/absolute/path/to/pulpminer-mcp/dist/index.js"].

Streamable HTTP clients

Start with --http (PORT, HOST env; it binds to 127.0.0.1:3333 by default) and point the client at http://127.0.0.1:3333/mcp. The server is stateless. Each request can send its own API key in the x-pulpminer-api-key header, which overrides PULPMINER_API_KEY. That makes it usable as a hosted multi-user endpoint (put it behind HTTPS).

{
  "mcpServers": {
    "pulpminer": {
      "url": "http://127.0.0.1:3333/mcp",
      "headers": { "x-pulpminer-api-key": "your-api-key" }
    }
  }
}

Typical flow

  1. pulpminer_generate_json { url, jsonFormat? }: preview the JSON.
  2. pulpminer_save_as_api { url, jsonFormat, cache?, dynamicUrl? } returns apiId and endpoint.
  3. pulpminer_fetch_api_data { apiId, variables? }

Dynamic API example: dynamicUrl: "https://example.com/search?q={{ query }}", then fetch it with variables: { "query": "laptops" }.

Development

npm test        # builds, then runs scripts/smoke-test.mjs against a local mock API (no real calls)
npm run inspect # opens the MCP Inspector UI
npx @modelcontextprotocol/inspector --cli node dist/index.js --method tools/list

Hosted server (remote)

remote/ is a Cloudflare Worker serving the same tools over Streamable HTTP (stateless) at https://mcp.pulpminer.com/mcp. Send your PulpMiner API key as Authorization: Bearer <key> (or x-pulpminer-api-key); it is only forwarded to the PulpMiner API, never stored.

{ "mcpServers": { "pulpminer": { "url": "https://mcp.pulpminer.com/mcp", "headers": { "Authorization": "Bearer YOUR_API_KEY" } } } }

Local dev: cd remote && npm install && npm run dev (Node 22+).

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.