# Fitter (oci · ghcr.io/pxyup/fitter-mcp:v1.8.3-playwright)

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

- Trust score: 54/100 (low)
- Change this week: +3
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-09-20

## Components

- mcpb · `osx-x64`: 13/100, [markdown](https://verifymcp.io/servers/pxyup-fitter/https-github-com-pxyup-fitter-releases-download-v1-8-3-fitter-mcp-darwin-amd64-m.md), [page](https://verifymcp.io/servers/pxyup-fitter/https-github-com-pxyup-fitter-releases-download-v1-8-3-fitter-mcp-darwin-amd64-m)
- mcpb · `osx-arm64`: 13/100, [markdown](https://verifymcp.io/servers/pxyup-fitter/https-github-com-pxyup-fitter-releases-download-v1-8-3-fitter-mcp-darwin-arm64-m.md), [page](https://verifymcp.io/servers/pxyup-fitter/https-github-com-pxyup-fitter-releases-download-v1-8-3-fitter-mcp-darwin-arm64-m)
- mcpb · `linux-x64`: 13/100, [markdown](https://verifymcp.io/servers/pxyup-fitter/https-github-com-pxyup-fitter-releases-download-v1-8-3-fitter-mcp-linux-amd64-mc.md), [page](https://verifymcp.io/servers/pxyup-fitter/https-github-com-pxyup-fitter-releases-download-v1-8-3-fitter-mcp-linux-amd64-mc)
- mcpb · `linux-arm64`: 13/100, [markdown](https://verifymcp.io/servers/pxyup-fitter/https-github-com-pxyup-fitter-releases-download-v1-8-3-fitter-mcp-linux-arm64-mc.md), [page](https://verifymcp.io/servers/pxyup-fitter/https-github-com-pxyup-fitter-releases-download-v1-8-3-fitter-mcp-linux-arm64-mc)
- mcpb · `win-x64`: 13/100, [markdown](https://verifymcp.io/servers/pxyup-fitter/https-github-com-pxyup-fitter-releases-download-v1-8-3-fitter-mcp-windows-amd64.md), [page](https://verifymcp.io/servers/pxyup-fitter/https-github-com-pxyup-fitter-releases-download-v1-8-3-fitter-mcp-windows-amd64)
- oci · `ghcr.io/pxyup/fitter-mcp:v1.8.3`: 54/100, [markdown](https://verifymcp.io/servers/pxyup-fitter/ghcr-io-pxyup-fitter-mcp-v1-8-3.md), [page](https://verifymcp.io/servers/pxyup-fitter/ghcr-io-pxyup-fitter-mcp-v1-8-3)
- oci · `ghcr.io/pxyup/fitter-mcp:v1.8.3-playwright`: 54/100 (this document), [markdown](https://verifymcp.io/servers/pxyup-fitter/ghcr-io-pxyup-fitter-mcp-v1-8-3-playwright.md), [page](https://verifymcp.io/servers/pxyup-fitter/ghcr-io-pxyup-fitter-mcp-v1-8-3-playwright)

## Channel facts

- Registry: `oci`
- Package: `ghcr.io/pxyup/fitter-mcp:v1.8.3-playwright`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-09-20.

- **Supply Chain Security**: 0/100
  - Malware scan not yet available for this package.
  - Known CVEs could not be checked: this artifact ships no SBOM, so there is no dependency list to read. Publishing one would let us assess it.
  - Install-script risk not yet assessed.
  - Dependency health could not be checked: this artifact ships no SBOM, so there is no dependency list to read. Publishing one would let us assess it.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 24 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 87/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 857 tokens (~122/item across 7 items; 6 tools + 1 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 80/100
  - Stability observed for 24 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 6 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 7 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

**Unverified: 1 category.** A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

## Install

### How do I install the Fitter MCP server?

Fitter runs locally as a container image, launched with docker run --rm -i ghcr.io/pxyup/fitter-mcp:v1.8.3-playwright. Ready-made configuration for Claude, Cursor, VS Code, Codex and 3 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add pxyup-fitter -- docker run --rm -i ghcr.io/pxyup/fitter-mcp:v1.8.3-playwright
```

### Cursor

```json
{
  "mcpServers": {
    "pxyup-fitter": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "ghcr.io/pxyup/fitter-mcp:v1.8.3-playwright"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "pxyup-fitter": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "ghcr.io/pxyup/fitter-mcp:v1.8.3-playwright"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add pxyup-fitter -- docker run --rm -i ghcr.io/pxyup/fitter-mcp:v1.8.3-playwright
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "pxyup-fitter": {
      "type": "local",
      "command": [
        "docker",
        "run",
        "--rm",
        "-i",
        "ghcr.io/pxyup/fitter-mcp:v1.8.3-playwright"
      ],
      "enabled": true
    }
  }
}
```

### Hermes

```yaml
mcp_servers:
  pxyup-fitter:
    command: "docker"
    args: ["run", "--rm", "-i", "ghcr.io/pxyup/fitter-mcp:v1.8.3-playwright"]
```

### Netclaw

```json
{
  "McpServers": {
    "pxyup-fitter": {
      "Transport": "stdio",
      "Command": "docker",
      "Arguments": [
        "run",
        "--rm",
        "-i",
        "ghcr.io/pxyup/fitter-mcp:v1.8.3-playwright"
      ]
    }
  }
}
```

### Other

```json
{
  "mcpServers": {
    "pxyup-fitter": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "ghcr.io/pxyup/fitter-mcp:v1.8.3-playwright"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-09-20 (score 54, +1)

No change was recorded against any check on this day. Stability & Change Management went from 77 to 80. That category is still filling its 30-day observation window: 23 days of observed history at the previous scan, 24 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-18 (score 53, +1)

No change was recorded against any check on this day. Stability & Change Management went from 70 to 73. That category is still filling its 30-day observation window: 21 days of observed history at the previous scan, 22 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-16 (score 52, +1)

No change was recorded against any check on this day. Stability & Change Management went from 63 to 67. That category is still filling its 30-day observation window: 19 days of observed history at the previous scan, 20 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-13 (score 51, +1)

No change was recorded against any check on this day. Stability & Change Management went from 53 to 57. That category is still filling its 30-day observation window: 16 days of observed history at the previous scan, 17 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-11 (score 50, +1)

No change was recorded against any check on this day. Stability & Change Management went from 47 to 50. That category is still filling its 30-day observation window: 14 days of observed history at the previous scan, 15 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-09 (score 49, +1)

No change was recorded against any check on this day. Stability & Change Management went from 40 to 43. That category is still filling its 30-day observation window: 12 days of observed history at the previous scan, 13 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-07 (score 48, +1)

No change was recorded against any check on this day. Stability & Change Management went from 33 to 37. That category is still filling its 30-day observation window: 10 days of observed history at the previous scan, 11 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-05 (score 47, +1)

No change was recorded against any check on this day. Stability & Change Management went from 27 to 30. That category is still filling its 30-day observation window: 8 days of observed history at the previous scan, 9 at this one. The score rises as the window fills, whether or not the server changes.

## MCP tools (6)

### `fitter_config_reference` (~55 tokens)

Return a condensed reference of the Fitter config format (connectors, parsers, model/field schema, placeholders, notifiers, references, limits) with working examples. Use it before authoring a config for fitter_run.

### `fitter_inspect_url` (~278 tokens)

Fetch a URL and return a compact structure outline plus candidate selectors/paths, so you can author a fitter config that matches on the first try instead of guessing selectors and getting nulls. For JSON it lists gjson paths with types and sample values; for HTML it lists repeated elements (candidate array_config root_path / list rows) and link/heading selectors. For client-rendered SPAs (content built by JavaScript), a plain fetch sees only an empty shell — the output warns when it detects one; pass render:true to render it in a headless browser first (mirrors what a browser_config scrape would see). Read-only helper that does NOT extract data — use it before fitter_run, then fitter_run to actually extract.

Input parameters:

- `render` (boolean): Render the page in a headless browser (Playwright/Chromium) before inspecting — needed for client-rendered SPAs whose content is built by JavaScript and is absent from the raw HTML. Requires browser…
- `response_type` (string): Optional hint for how to read the response: json, HTML, xpath or XML. Empty auto-detects from the Content-Type/body.
- `url` (string, required): HTTP(S) URL to fetch and inspect for its structure and candidate selectors.

### `fitter_run` (~152 tokens)

Run a Fitter scraping/parsing config passed inline (JSON or YAML) and return the extracted data as JSON. Fitter fetches data via a connector (HTTP request, headless browser, static value, file, ...) and extracts structured data using json/HTML/XML/xpath selectors described by a declarative model. Call fitter_config_reference first if you are unsure about the config format.

Input parameters:

- `config` (string, required): Fitter CliItem config as a JSON or YAML string. Top-level keys: item (required), limits, references.
- `input` (string): Optional input value (plain string or JSON), available in the config via {{{FromInput=.}}} or {{{FromInput=json.path}}} placeholders.

### `fitter_run_file` (~116 tokens)

Run a Fitter scraping/parsing config from a local JSON or YAML file and return the extracted data as JSON. Same as fitter_run but reads the config from disk.

Input parameters:

- `input` (string): Optional input value (plain string or JSON), available in the config via {{{FromInput=.}}} or {{{FromInput=json.path}}} placeholders.
- `path` (string, required): Absolute path to a Fitter config file (.json, .yaml or .yml) with top-level keys: item (required), limits, references.

### `fitter_run_url` (~129 tokens)

Run a Fitter scraping/parsing config downloaded from an HTTP(S) URL (JSON or YAML) and return the extracted data as JSON. Same as fitter_run but fetches the config from a remote location, e.g. a raw GitHub link.

Input parameters:

- `input` (string): Optional input value (plain string or JSON), available in the config via {{{FromInput=.}}} or {{{FromInput=json.path}}} placeholders.
- `url` (string, required): HTTP(S) URL of a Fitter config (JSON or YAML) with top-level keys: item (required), limits, references.

### `fitter_validate_config` (~108 tokens)

Validate a Fitter config (JSON or YAML) without executing it. Checks the structural rules: item/connector_config/model presence, valid response_type, that the connector has a data source, and compiles every condition/item_condition expression in the model. Returns "valid" or the validation error. Cheap and safe — use it while iterating on a config before calling fitter_run.

Input parameters:

- `config` (string, required): Fitter CliItem config as a JSON or YAML string to validate without executing it.

## Diagnostics

Captured diagnostic sections: Provenance. The full working is on the page: https://verifymcp.io/servers/pxyup-fitter/ghcr-io-pxyup-fitter-mcp-v1-8-3-playwright#diagnostics

## Score history

- 2026-09-20: 54
- 2026-09-19: 53
- 2026-09-18: 53
- 2026-09-17: 52
- 2026-09-16: 52
- 2026-09-15: 51
- 2026-09-14: 51
- 2026-09-13: 51
- 2026-09-12: 50
- 2026-09-11: 50
- 2026-09-10: 49
- 2026-09-09: 49
- 2026-09-08: 48
- 2026-09-07: 48
- 2026-09-06: 47
- 2026-09-05: 47
- 2026-09-04: 46
- 2026-09-03: 43
- 2026-09-02: 43
- 2026-09-01: 43
- 2026-08-31: 43
- 2026-08-30: 43
- 2026-08-29: 43
- 2026-08-28: 43
- 2026-08-27: 43

## Common questions

### What is the Fitter MCP server?

Fitter is an MCP server listed in the public MCP registry as io.github.PxyUp/fitter. Turn any website or API into structured JSON with LLM-authored declarative scraping configs. This page covers its container image (ghcr.io/pxyup/fitter-mcp:v1.8.3-playwright).

### Is the Fitter MCP server safe to use?

Fitter scores 54 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Fitter MCP server expose?

Fitter exposes 6 tools: fitter_config_reference, fitter_inspect_url, fitter_run, fitter_run_file, fitter_run_url, fitter_validate_config. Their descriptions and schemas cost roughly 838 tokens of context every time the server is loaded.

### Is the Fitter MCP server still maintained?

Fitter is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What licence is the Fitter MCP server under?

Fitter declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

## Links

- Repository: https://github.com/PxyUp/fitter
- Changelog RSS feed: https://verifymcp.io/servers/pxyup-fitter/ghcr-io-pxyup-fitter-mcp-v1-8-3-playwright.xml
- Changelog JSON feed: https://verifymcp.io/servers/pxyup-fitter/ghcr-io-pxyup-fitter-mcp-v1-8-3-playwright.json
- HTML version of this page: https://verifymcp.io/servers/pxyup-fitter/ghcr-io-pxyup-fitter-mcp-v1-8-3-playwright
