Prototype · Preview: every server in the official registry, synced every 30 minutes. Reviews and accounts come in a later step.
PopNx MCPMCP servers for people who use AI · explained in plain words

Fitter

by PxyUpversion 1.8.3i★ –iRuns on your computer
Registry nameio.github.PxyUp/fitter

Install

Overview

Description from the maker (original English)

Turn any website or API into structured JSON with LLM-authored declarative scraping configs.

PopNx MCP’s three pillars

These three are never merged into one score: opinions, measurements and popularity are different things.

What you can do with it

We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.

  • Connection: Runs on your computer
  • Transport: stdio
  • Category: Web & browsers

Install

Pick the AI app you use, then copy the settings.

Before you install

  • Basic checks: 1 of 1 passed
  • Runs on your computer with your user’s permissions (files, network, apps).
  • You fill in yourself: FITTER_PLUGINS

You need

Which app do you use?

Pick your app above. We remember it, so next time the button says “Install in …”.

Download the maker’s .mcpb file

The link goes to the maker’s own file; we do not host or repackage it. Open the file and Claude Desktop installs it.

Run this in your terminal

claude mcp add fitter --env FITTER_PLUGINS=your-value -- docker run -i --rm -e FITTER_PLUGINS ghcr.io/pxyup/fitter-mcp:v1.8.3

Fill in the empty values before running it.

Open in Cursor

Or copy the settings yourself

Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json

{
  "mcpServers": {
    "fitter": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "FITTER_PLUGINS",
        "ghcr.io/pxyup/fitter-mcp:v1.8.3"
      ],
      "env": {
        "FITTER_PLUGINS": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

Open in VS Code

Or copy the settings yourself

Paste into .vscode/mcp.json in your project

{
  "servers": {
    "fitter": {
      "type": "stdio",
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "FITTER_PLUGINS",
        "ghcr.io/pxyup/fitter-mcp:v1.8.3"
      ],
      "env": {
        "FITTER_PLUGINS": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.

Your choice stays on this device in a cookie; no account needed.

Values you fill in

  • FITTER_PLUGINS env
    Optional path to a fitter plugins folder

These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.

What it can do

Runs on your computer; the tool list appears in your AI app after you install it.

Basic checksi

We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 8, 2026

  • ✓ Pass

    Maker matches the repo

    The registry name was verified with the GitHub account PxyUp, which owns the repo

  • … Not checked yet

    Still maintained

    We have not read this repo from GitHub yet

  • … Not checked yet

    Has a licence

    We have not read this repo from GitHub yet

  • – Not applicable

    Endpoint responds

    This one runs on your computer; there is no internet endpoint

  • – Not applicable

    Sign-in with OAuth

    Runs on your computer and uses local settings instead

  • … Not checked yet

    No hidden instructions in tool descriptions

    Runs on your computer; we can only read tool lists from internet endpoints

Compared with others in Web & browsersi

  • More stars than 0% of the other 1380 servers in this category
  • Published to the registry more recently than 26% of the other 1380 servers in this category
  • Basic checks equal to or better than 100% of the other 1380 servers in this category

Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.

Common questions

Is Fitter safe?

It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.

What keys or codes does it need?

The registry does not list a required key, though some servers ask you to sign in on first use.

Does it run on my computer or in the cloud?

It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).

Is it still maintained?

The GitHub repo last changed –, and the latest version (1.8.3) reached the registry 2 months ago.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need MCPB, Docker on your computer.

What can I use instead?

In the same category: Browser Use, Chrome DevTools MCP, MCP Server Browser

Alternatives

Servers in the same category from other makers, sorted by stars.

Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi

Browser Use

Lets AI do web tasks for you, such as filling forms, searching and extracting data, in the maker’s cloud browsers or on your computer.

by browser-useWidely used↓ 1.6M/wk★ 120.1KUpdated 18 days ago

Computer or cloud✓ browser-use.com

Chrome DevTools MCP

Lets AI use Chrome’s developer tools to inspect pages, find what makes them slow and spot errors. Made by the Chrome DevTools team.

by ChromeDevToolsWidely used↓ 1.9M/wk★ 54.8KUpdated 17 days ago

Runs on your computer

MCP Server Browser

MCP server for browser use access

by bytedanceWidely used↓ 792/wk★ 39.6KUpdated 14 months ago

Runs on your computer

README from the maker

Open the README

Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.

Fitter — web data for AI agents

Fitter turns any website or API into structured JSON — declaratively. One JSON/YAML config describes where the data lives (HTTP request, headless browser, file, static value) and what to extract (JSON paths, CSS selectors, XPath). No code, no brittle scraping scripts.

🚀 [Try it in your browser](https://pxyup.github.io/fitter/) — the real engine compiled to WebAssembly: live examples, a visual config builder, no install.

Because configs are plain data, LLMs can author them. The built-in MCP server lets Claude Code, Claude Desktop, or any MCP client write and run scraping pipelines on your machine, on demand:

*"Get the top 5 HackerNews stories with titles and scores"* → the model authors a fitter config, validates it, runs it locally, and gets clean JSON back.

One engine, five ways to use it:

🤖 Fitter MCPMCP server exposing fitter to Claude Code, Claude Desktop and any MCP client
🧠 Fitter AgentAI-powered CLI: natural language → config → executed result
🖥 Fitter CLIrun configs locally for test/debug/home usage
📦 Fitter Libembed the engine in your own Go program
⚙️ Fitterlong-running service mode with scheduling & notifications

Why fitter for AI agents?

  • Declarative & auditable — the agent produces a config you can read, save and re-run, not throwaway code
  • Local-first — all fetching happens on your machine; no third-party scraping API, no keys, no per-request billing
  • Batteries included — HTTP client, headless browser (Playwright/Chromium/Docker), JSON/HTML/XML/XPath/PDF parsing, pagination, cached references, host rate-limits — in a single static binary
  • Reusable — what the agent authored today becomes tomorrow's cron job or service config

How to use Fitter_MCP

Fitter MCP is a Model Context Protocol server (stdio transport) which lets any MCP client — Claude Code, Claude Desktop, IDE assistants, custom agents — run Fitter configs and get structured JSON back.

Quick start (Claude Desktop — one click)

Download fitter-mcp- - .mcpb from the release page and open it — Claude Desktop installs the server automatically.

Quick start (Claude Code)
# 1. get the binary: download fitter_mcp_<version>-<os>-<arch> from the release page

https://github.com/PxyUp/fitter/releases — or build it from source:

go build -o fitter_mcp ./cmd/mcp

2. register it once, available in every project

claude mcp add fitter -s user -- "$(pwd)/fitter_mcp"

Then just ask:

*Get the top 5 HackerNews stories with titles and scores using fitter*

The model calls fitter_config_reference, authors a config, optionally checks it with fitter_validate_config and executes it via fitter_run — all data fetching happens locally on your machine. For a ready-made pipeline try examples/config_morning_briefing.json:

*Run examples/config_morning_briefing.json with fitter and give me the briefing*

Register in Claude Desktop
{

"mcpServers": { "fitter": { "command": "/path/to/fitter_mcp" } } }

Browser support (Playwright)

The .mcpb bundle and native binary ship without browsers: HTTP, static and file connectors work out of the box, but browser configs (the playwright connector) need Playwright's browsers. A few ways to get them:

  • On first use (native binary / `.mcpb`): set "install": true in the playwright connector — fitter downloads the driver + browser matching its built-in playwright-go version on first use (one-time, cached), so no separate install step is needed.
  • Ahead of time (native, optional): to avoid the first-run download, install the browsers beforehand with the same playwright-go version fitter is built against (check go.mod, currently v0.6100.0):
  go run github.com/mxschmitt/playwright-go/cmd/playwright@v0.6100.0 install

Linux: append --with-deps to also install the required OS libraries

  The version must match `go.mod` exactly — `playwright-go` refuses to run against a mismatched driver. Then run configs without `"install": true`.
  • Docker: use the ghcr.io/pxyup/fitter-mcp:playwright image, which bundles Chromium, Firefox and WebKit preinstalled (no "install": true needed).
Tools
ToolDescription
fitter_runRun a Fitter config passed inline (JSON or YAML string) and return the extracted data as JSON. Accepts an optional input value available in the config via {{{FromInput=.}}} / {{{FromInput=json.path}}}
fitter_run_fileSame as fitter_run but reads the config from a local .json/.yaml file
fitter_run_urlSame as fitter_run but downloads the config from an HTTP(S) URL, e.g. a raw GitHub link
fitter_inspect_urlFetch a URL and return a compact structure outline + candidate selectors/paths (gjson paths for JSON; repeated-element/list-row selectors for HTML) so the model authors a config first-try instead of guessing selectors and getting nulls. Detects client-rendered SPAs and can render them in a headless browser. Read-only — does not extract
fitter_validate_configValidate a config without executing it (structure, response_type, connector data source, model). Useful while iterating on a config
fitter_config_referenceReturn a condensed reference of the whole config format (connectors, parsers, model/field schema, placeholders, notifiers, references, limits) with working examples, so the model can author configs without external docs

The reference is also exposed as MCP resource fitter://config-reference for clients that support resources.

The config format is exactly the same as for Fitter_CLI: a top-level object with item (required), limits and references. Notifiers work too (the result is additionally pushed to http/telegram/redis/file/console); trigger_config and http_server are service-mode only and are ignored in MCP calls.

Remote / hosted mode (streamable HTTP)

By default fitter_mcp talks stdio. Pass --http to serve the streamable HTTP transport instead — for a shared team server, a container, or any remote deployment:

# serve MCP at http://<host>:8080/mcp (health probe at /healthz)

FITTER_MCP_AUTH_TOKEN=my-secret fitter_mcp --http :8080

register the remote endpoint in Claude Code

claude mcp add --transport http fitter http://localhost:8080/mcp --header "Authorization: Bearer my-secret"

  • --http (env FITTER_MCP_HTTP_ADDR) — listen address; stdio mode when empty
  • FITTER_MCP_AUTH_TOKEN — when set, every /mcp request must send Authorization: Bearer ; without it the endpoint is unauthenticated, so bind to localhost or put it behind a proxy
  • --stateless (env FITTER_MCP_STATELESS=true) — no per-session state, so replicas can sit behind a load balancer without sticky sessions
  • --metrics-addr (env FITTER_MCP_METRICS_ADDR) — serve Prometheus metrics on a separate address (e.g. 127.0.0.1:9091); works in stdio mode too; empty disables. Exposes MCP request counts by method, tool call durations by tool and outcome, and outbound HTTP request durations by host, method and status. The endpoint is unauthenticated — bind it to localhost or a private interface

The server shuts down gracefully on SIGINT/SIGTERM.

Docker

A slim multi-arch image (linux/amd64 + linux/arm64) ships with every release:

# hosted HTTP mode

docker run --rm -p 8080:8080 \ -e FITTER_MCP_HTTP_ADDR=:8080 \ -e FITTER_MCP_AUTH_TOKEN=my-secret \ ghcr.io/pxyup/fitter-mcp:latest

or stdio mode, spawned by the MCP client

claude mcp add fitter -s user -- docker run --rm -i ghcr.io/pxyup/fitter-mcp:latest

The slim image contains only the fitter binary and CA certificates: server/static/file connectors work, browser connectors (chromium/docker/playwright) do not.

For browser-based configs use the playwright variant, which bundles Playwright with Chromium, Firefox and WebKit (matched to the playwright-go version fitter is built against, so no "install": true is needed in configs):

docker run --rm -i ghcr.io/pxyup/fitter-mcp:playwright        # stdio mode

per-release tag: ghcr.io/pxyup/fitter-mcp:vX.Y.Z-playwright

It is built from Dockerfile.mcp-playwright; build with --build-arg PLAYWRIGHT_BROWSERS=chromium for a smaller Chromium-only image.

OAuth2 accounts in Docker

Both images ship fitter_cli, so the one-time OAuth2 login can run inside the container. Store the token on a volume mounted at /tokens (pre-created writable in the image) and share it with the MCP server:

# one-time login, device flow: no ports needed — open the printed url on any device

docker run --rm -it -v fitter-tokens:/tokens --entrypoint fitter_cli \ ghcr.io/pxyup/fitter-mcp:latest \ auth --provider github --client-id --client-secret --token-file /tokens/github.json

or browser flow (device flow not enabled for the app): publish the callback port and

bind on 0.0.0.0 so the published port reaches the listener; the browser still visits 127.0.0.1

docker run --rm -it -p 8988:8988 -e FITTER_AUTH_LISTEN=0.0.0.0 \ -v fitter-tokens:/tokens --entrypoint fitter_cli ghcr.io/pxyup/fitter-mcp:latest \ auth --provider github --client-id --client-secret --token-file /tokens/github.json

then run the MCP server with the same volume; configs reference "token_file": "/tokens/github.json"

stdio mode (spawned by the MCP client, no port):

docker run --rm -i -v fitter-tokens:/tokens ghcr.io/pxyup/fitter-mcp:latest

hosted HTTP mode (MCP endpoint on 8080, like the run examples above):

docker run --rm -p 8080:8080 -v fitter-tokens:/tokens \ -e FITTER_MCP_HTTP_ADDR=:8080 \ -e FITTER_MCP_AUTH_TOKEN=my-secret \ ghcr.io/pxyup/fitter-mcp:latest

Note: 8988 is only for the one-time browser-flow login; the MCP server itself needs no port in stdio mode and only 8080 in hosted HTTP mode.

Logged-in browser sessions in Docker

Browser sessions need the playwright image (the slim one has no browsers). The one-time headed login needs a display, so run it on the host, then bind-mount the session dir into the container (the image pre-creates a writable /sessions):

# on the host: log in once, save the session

fitter_cli browser-login --url https://example.com/login --storage-state ~/.fitter/sessions/example.json

run the MCP server with the sessions dir mounted; configs reference "storage_state_file": "/sessions/example.json"

docker run --rm -i -v ~/.fitter/sessions:/sessions ghcr.io/pxyup/fitter-mcp:playwright

Use a bind mount (not

Only the beginning is shown; read the rest in the repo

Ask PopNx