Benchline
REMOTE · BENCHLINE.FABWASEEM.COM
Open-source developer, PDF, image, SEO and security tools over a stateless HTTP MCP server. No key.
Available components
Last scanned (21 hours ago)
Scores higher than 4% of remote servers
Unreachable for 1 day in a row. Last reached 3 Nov 2026.
Recent critical change
TLS certificate (4 Nov 2026). See the changelog before you install this server.
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security0
- TLS check failed: the certificate doesn't match the endpoint's hostname. See how to fix → View diagnostics → Fail
- Authorisation not yet verified: we couldn't confirm whether this endpoint requires it. View diagnostics → Unverified
- HTTPS enforcement could not be verified: the plaintext port answered with HTTP 503, which proves neither a plaintext path nor enforcement. View diagnostics → Unverified
- HSTS not yet verified: we couldn't read the response headers to check for it. View diagnostics → Unverified
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability0
- Transport check failed: declared streamable-http, but the TLS certificate failed verification. See how to fix → View diagnostics → Fail
Schema Quality & AI Usability0
- Schema not yet verified: we couldn't read the endpoint's schema, or could read only part of its tool list.Unverified
Stability & Change Management0
- Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage0
- Tool coverage not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.Unverified
Tool Safety0
- Tool safety not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.Unverified
Capabilities0
- Capabilities not yet verified: we couldn't read the endpoint's capabilities.Unverified
Unverified: 5 categories
Categories scored 0 because we could not verify them: authentication we do not have, an unreachable endpoint, or not enough scan history. We only credit what we can confirm.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 4 Nov 26 0
- TLS certificate: pass → fail ▼ critical
- Score status: scored → failed ▼ critical
- Endpoint reachability: not serving MCP → unreachable ▼ security
- HSTS header: fail → unverified ▼ security
- Transport: Transport check failed: declared streamable-http, but the TLS certificate failed verification. security
- 24 Oct 26 −44
- Endpoint reachability: reachable → not serving MCP ▼ security
- Stability: 0.13 → unverified ▼ security
- Tool safety: pass → unverified ▼ security
- HTTPS: pass → unverified ▼ security
- Transport: pass → fail ▼ security
- Authorization: Authorisation not yet verified: we couldn't confirm whether this endpoint requires it. security
- Capabilities: pass → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- First check of Schema quality: unverified functional
- 23 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 10 to 13. That category is still filling its 30-day observation window: 3 days of observed history at the previous scan, 4 at this one. The score rises as the window fills, whether or not the server changes.
- 21 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.
- 20 Oct 26 0
- Stability: unverified → 0.03 ▲ functional
- 19 Oct 26 60
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 4 Nov 2026 · Probed https://benchline.fabwaseem.com/mcp
TLS invalid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
Chain error: hostname_mismatch
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=TRAEFIK DEFAULT CERT | CN=TRAEFIK DEFAULT CERT | 4 Nov 2026 | 4 Nov 2027 | RSA 2048 | SHA256-RSA | 30a0febffd06e6ad8a334a4763dc8c96 |
| SANs: 155ec223a28ef6b36b374722ead37691.f60aaa0ee38b2a2d971ddd1ae7c54f35.traefik.default | ||||||
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of benchline.fabwaseem.com. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| com. | present | 19718 | 13 | Verified |
| fabwaseem.com. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication Inconclusive
We could not reach the endpoint well enough to judge its authorisation posture.
| Result | Inconclusive |
|---|
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://benchline.fabwaseem.com/mcp | TLS failed | ||
| http (plaintext) | http://benchline.fabwaseem.com/mcp | Inconclusive | 503 |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
aes_crypt Encrypt or decrypt with AES-GCM ~98
AES-256-GCM encryption with PBKDF2-SHA256 key derivation. Encrypt returns a base64 bundle (salt, IV, ciphertext); decrypt reverses it.
| Name | Type | Req | Description |
|---|---|---|---|
| bundle | string | – | Base64 bundle from a previous encryption (decrypt mode) |
| iterations | integer | – | – |
| mode | string | yes | – |
| passphrase | string | yes | – |
| text | string | – | Plaintext to encrypt (encrypt mode) |
| Name | Type | Req | Description |
|---|---|---|---|
| bundle | string | – | – |
| mode | string | yes | – |
| plaintext | string | – | – |
No examples provided.
analyze_har Analyze a HAR file ~73
Parse a HAR (HTTP Archive) capture and summarize it: request counts, status distribution, slowest and largest requests, top hosts, and per-request timings.
| Name | Type | Req | Description |
|---|---|---|---|
| har | string | yes | HAR file contents as JSON text |
| top | integer | – | How many slowest/largest requests and top hosts to include |
| Name | Type | Req | Description |
|---|---|---|---|
| largest | array | yes | – |
| slowest | array | yes | – |
| statusGroups | object | yes | – |
| topHosts | array | yes | – |
| totalBytes | integer | yes | – |
| totalRequests | integer | yes | – |
| totalTimeMs | number | yes | – |
| truncated | boolean | yes | – |
No examples provided.
base64_codec Encode or decode Base64 ~124
Encode UTF-8 text as Base64, or decode Base64 and data URIs. URL-safe output uses - and _ and omits padding. Decode reports the sniffed media type and whether the bytes are UTF-8 text.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | – | – |
| dataUri | boolean | – | – |
| mime | string | – | – |
| text | string | yes | Text to encode, or Base64 or a data URI to decode. |
| urlSafe | boolean | – | Encode with the URL-safe alphabet and no padding. Data URIs stay on the standard alphabet. |
| Name | Type | Req | Description |
|---|---|---|---|
| binary | boolean | yes | – |
| error | string | yes | – |
| filename | string | yes | – |
| mime | string | yes | – |
| ok | boolean | yes | – |
| output | string | yes | – |
No examples provided.
build_csp Build a Content-Security-Policy ~95
Build a Content-Security-Policy from directives, or lint an existing policy. Returns the header line, a Next.js headers() snippet, and warnings for unsafe sources.
| Name | Type | Req | Description |
|---|---|---|---|
| blockAllMixedContent | boolean | – | – |
| policy | string | – | An existing Content-Security-Policy value to lint. When set, directive fields are ignored. |
| sources | object | – | – |
| upgradeInsecureRequests | boolean | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| checks | array | yes | – |
| header | string | yes | – |
| nextConfig | string | yes | – |
| policy | string | yes | – |
No examples provided.
build_json_ld Build JSON-LD ~75
Build schema.org JSON-LD for one type, plus a script tag and a list of missing fields. Use this when you already know the fields. It does not fetch a page.
| Name | Type | Req | Description |
|---|---|---|---|
| type | string | yes | – |
| values | object | yes | Fields for the chosen schema.org type. Repeatable fields are arrays of objects. |
| Name | Type | Req | Description |
|---|---|---|---|
| checks | array | yes | – |
| json | – | yes | – |
| script | string | yes | – |
No examples provided.
build_nextjs_dockerfile Build a Next.js Dockerfile ~141
Generate a production Dockerfile, dockerignore, compose file, and next.config snippet for a Next.js app. Defaults match a pnpm standalone image.
| Name | Type | Req | Description |
|---|---|---|---|
| base | string | – | – |
| cacheMounts | boolean | – | – |
| healthPath | string | – | – |
| healthcheck | boolean | – | – |
| migrate | boolean | – | – |
| node | string | – | – |
| packageManager | string | – | – |
| port | integer | – | – |
| prisma | boolean | – | – |
| publicEnvs | array | – | – |
| standalone | boolean | – | – |
| telemetryDisabled | boolean | – | – |
| turbo | boolean | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| commands | string | yes | – |
| compose | string | yes | – |
| dockerfile | string | yes | – |
| dockerignore | string | yes | – |
| estimatedSize | string | yes | – |
| image | string | yes | – |
| nextConfig | string | yes | – |
No examples provided.
build_open_graph Build an Open Graph card ~421
Render one of the Open Graph templates as a PNG and a Next.js opengraph-image.tsx file. Pass a template id from list_og_templates, the fields that template uses, colors, a size, and optional base64 images.
| Name | Type | Req | Description |
|---|---|---|---|
| after | string | – | After image as base64, a data URI, or a public URL. |
| afterValue | string | – | – |
| author | string | – | – |
| avatar | string | – | Portrait image as base64, a data URI, or a public URL. |
| badge | string | – | – |
| before | string | – | Before image as base64, a data URI, or a public URL. |
| beforeValue | string | – | – |
| brand | string | – | Brand name shown on templates that have a brand row. |
| caption | string | – | – |
| colors | object | – | – |
| command | string | – | – |
| cta | string | – | – |
| date | string | – | – |
| episode | string | – | – |
| eyebrow | string | – | – |
| hero | string | – | Hero image as base64, a data URI, or a public URL. |
| imageUrl | string | – | Public URL written into og:image. This does not fetch the file. |
| logo | string | – | Logo image as base64, a data URI, or a public URL. Private addresses are refused. 10 MB cap. |
| meta | string | – | – |
| price | string | – | – |
| quote | string | – | – |
| readTime | string | – | – |
| role | string | – | – |
| size | string | – | – |
| stat | string | – | – |
| statLabel | string | – | – |
| steps | string | – | One step per line. |
| subtitle | string | – | – |
| template | string | – | Template id from list_og_templates. |
| time | string | – | – |
| title | string | – | – |
| url | string | – | – |
| versions | string | – | One version per line, as v2.3 | Note. |
| Name | Type | Req | Description |
|---|---|---|---|
| height | number | yes | – |
| metaTags | string | yes | – |
| mimeType | string | yes | – |
| png | string | yes | PNG bytes, base64 encoded. |
| source | string | yes | – |
| template | string | yes | – |
| width | number | yes | – |
No examples provided.
calculate_cidr Calculate a CIDR block ~144
Return the network, broadcast, host range, and host count for an IPv4 or IPv6 CIDR. Optionally test whether an address is inside it, split it, or merge it with other CIDRs.
| Name | Type | Req | Description |
|---|---|---|---|
| cidr | string | yes | IPv4 or IPv6 CIDR, such as 192.168.1.0/24 or 2001:db8::/32. A dotted mask may follow the address. |
| contains | string | – | Address to test for membership. |
| merge | array | – | Extra CIDRs to aggregate with cidr. |
| splitPrefix | integer | – | Longer prefix to split into, at most 256 networks. |
| Name | Type | Req | Description |
|---|---|---|---|
| contains | boolean|null | yes | – |
| containsDetail | string | yes | – |
| merged | array | yes | – |
| split | array | yes | – |
| splitCount | string | yes | – |
| summary | object | yes | – |
No examples provided.
calculate_emi Calculate a loan EMI ~100
Calculate a reducing-balance loan installment and its amortization schedule. Money is rounded half up to cents. An optional extra monthly payment reduces principal.
| Name | Type | Req | Description |
|---|---|---|---|
| annualRate | string|number | yes | Annual interest rate in percent, such as 10. |
| extraMonthly | string|number | – | Extra principal paid every month. |
| months | integer | yes | Term in months. |
| principal | string|number | yes | Amount borrowed, such as 100000. |
| Name | Type | Req | Description |
|---|---|---|---|
| csv | string | yes | – |
| emi | string | yes | – |
| payoffMonths | integer | yes | – |
| schedule | array | yes | – |
| totalInterest | string | yes | – |
| totalPayment | string | yes | – |
| totalPrincipal | string | yes | – |
No examples provided.
calculate_percentage Calculate a percentage ~101
Calculate percent of a value, what percent one number is of another, percent change, the reverse, an increase or decrease, and margin versus markup.
| Name | Type | Req | Description |
|---|---|---|---|
| a | string|number | yes | First value. For of and increase, this is the percent. |
| b | string|number | yes | Second value. For of and increase, this is the amount. |
| mode | string | – | of, is, change, reverse, increase, decrease, or margin. |
| Name | Type | Req | Description |
|---|---|---|---|
| formula | string | yes | – |
| parts | array | yes | – |
| result | string | yes | – |
| unit | string | yes | – |
No examples provided.
calculate_programmer Evaluate a programmer expression ~133
Evaluate integer expressions with C-like precedence (hex/octal/binary literals, bitwise ops, shifts) and report base conversions plus signed/unsigned interpretations.
| Name | Type | Req | Description |
|---|---|---|---|
| a | string | – | First operand, e.g. '0xFF' or '255' |
| b | string | – | Second operand (not needed for 'not') |
| bits | string | – | Bit width for masking and signed interpretation |
| expression | string | – | Integer expression, e.g. '0xFF & 0x0F | (1 << 4)' |
| op | string | – | Bitwise operation (alternative to expression) |
| Name | Type | Req | Description |
|---|---|---|---|
| binary | string | yes | – |
| bits | integer | yes | – |
| decimal | string | yes | – |
| hex | string | yes | – |
| octal | string | yes | – |
| signed | string | yes | – |
| unsigned | string | yes | – |
No examples provided.
check_http_headers Check HTTP response headers ~68
Fetch a public URL, follow redirects, and grade HSTS, Content-Security-Policy, framing, nosniff, and Referrer-Policy. Private addresses are refused. The body is not stored.
| Name | Type | Req | Description |
|---|---|---|---|
| url | string | yes | Public http or https URL. Private addresses are refused. |
| Name | Type | Req | Description |
|---|---|---|---|
| checks | array | yes | – |
| elapsedMs | number | yes | – |
| finalUrl | string | yes | – |
| grade | string | yes | – |
| headers | array | yes | – |
| redirects | array | yes | – |
| status | number | yes | – |
No examples provided.
check_robots_txt Check robots.txt ~72
Fetch a public robots.txt and report whether the wildcard group blocks the site and whether Sitemap lines are absolute. Use this when you have a URL, not a pasted file.
| Name | Type | Req | Description |
|---|---|---|---|
| url | string | yes | A public page or a robots.txt URL. A page URL is resolved to /robots.txt on that origin. |
| Name | Type | Req | Description |
|---|---|---|---|
| document | object | yes | – |
| finalUrl | string | yes | – |
| issues | array | yes | – |
| status | number | yes | – |
| text | string | yes | – |
No examples provided.
check_ssl Check a TLS certificate ~69
Connect to a public host on port 443 and report certificate expiry, subject alternative names, protocol, and chain. Private addresses are refused. The handshake times out after 8 seconds.
| Name | Type | Req | Description |
|---|---|---|---|
| host | string | yes | Public hostname or https URL. Only port 443 is contacted. Private addresses are refused. |
| Name | Type | Req | Description |
|---|---|---|---|
| authorizationError | string | yes | – |
| authorized | boolean | yes | – |
| bits | number|null | yes | – |
| chain | array | yes | – |
| checks | array | yes | – |
| commonName | string | yes | – |
| daysRemaining | number|null | yes | – |
| fingerprint | string | yes | – |
| grade | string | yes | – |
| host | string | yes | – |
| issuer | string | yes | – |
| protocol | string | yes | – |
| sans | array | yes | – |
| serial | string | yes | – |
| subject | string | yes | – |
| validFrom | string | yes | – |
| validTo | string | yes | – |
No examples provided.
compress_image Compress an image ~107
Re-encode an image at a quality from 1 to 100, optionally capping the longest edge. Send base64 or a public URL. Private addresses are refused and the decoded file is capped at 10 MB. Returns the image as base64.
| Name | Type | Req | Description |
|---|---|---|---|
| choice | string | – | – |
| file | object | yes | The image. Provide url or data. |
| maxEdge | – | – | Longest edge in pixels. Omit it to keep the size. |
| quality | number | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| after | integer | yes | – |
| before | integer | yes | – |
| bytes | integer | yes | – |
| data | string | yes | Compressed image as base64. |
| extension | string | yes | – |
| filename | string | yes | – |
| format | string | yes | – |
| height | integer | yes | – |
| label | string | yes | – |
| mime | string | yes | – |
| quality | number | yes | – |
| savedBytes | integer | yes | – |
| savedPercent | number | yes | – |
| width | integer | yes | – |
No examples provided.
compress_pdf Compress a PDF ~150
Recompress embedded images in a PDF. Presets are light, medium, and strong. Send base64 or a public URL. Private addresses are refused. An optional target size tries harder. Returns the PDF and the sizes before and after.
| Name | Type | Req | Description |
|---|---|---|---|
| data | string | – | PDF bytes as base64 or a data URI. Decoded size is capped at 10 MB. Provide data or url. |
| filename | string | – | – |
| mimeType | string | – | – |
| preset | string | – | – |
| targetBytes | – | – | Optional size ceiling in bytes, such as 102400. |
| url | string | – | Public URL of a PDF. Private and local addresses are refused. Provide data or url. |
| Name | Type | Req | Description |
|---|---|---|---|
| after | integer | yes | – |
| before | integer | yes | – |
| data | string | yes | PDF bytes as base64. The original is returned when compression would grow the file. |
| images | integer | yes | – |
| keptOriginal | boolean | yes | – |
| metTarget | boolean | yes | – |
| note | string | yes | – |
| pages | integer | yes | – |
| percent | number | yes | – |
| recompressed | integer | yes | – |
| saved | integer | yes | – |
No examples provided.
convert_case Convert text case ~75
Convert text to camelCase, snake_case, kebab-case, CONSTANT_CASE, and AP or Chicago title case. Returns every style unless one is requested.
| Name | Type | Req | Description |
|---|---|---|---|
| style | string | – | Return one style. Omit it to return every style. |
| text | string | yes | Text to convert. Each line is converted on its own. |
| Name | Type | Req | Description |
|---|---|---|---|
| cases | array | yes | – |
No examples provided.
convert_color Convert a color and check contrast ~89
Convert HEX, RGB, HSL, OKLCH, or CMYK into every format, name the nearest Tailwind token, and report the WCAG 2 contrast ratio against a background.
| Name | Type | Req | Description |
|---|---|---|---|
| background | string | – | Background used for the WCAG contrast ratio. |
| color | string | yes | HEX, rgb(), hsl(), oklch(), cmyk(), or a CSS color name. |
| Name | Type | Req | Description |
|---|---|---|---|
| aaLarge | boolean | yes | – |
| aaNormal | boolean | yes | – |
| aaaLarge | boolean | yes | – |
| aaaNormal | boolean | yes | – |
| cmyk | string | yes | – |
| contrastRatio | number | yes | – |
| contrastText | string | yes | – |
| hex | string | yes | – |
| hsl | string | yes | – |
| ok | boolean | yes | – |
| oklch | string | yes | – |
| rgb | string | yes | – |
| tailwind | string | yes | – |
No examples provided.
convert_csv_json Convert CSV and JSON ~140
Convert CSV to JSON or JSON to CSV. Supports comma, tab, semicolon, and pipe delimiters, an optional header, type inference, and dotted flattening. Inferred numbers that do not fit in a JavaScript number keep their digits.
| Name | Type | Req | Description |
|---|---|---|---|
| delimiter | string | – | Comma, tab, semicolon, pipe, or auto. Auto is a comma when writing CSV. |
| direction | string | – | – |
| flatten | boolean | – | Used when converting JSON to CSV. Nested keys become dotted columns. |
| header | boolean | – | – |
| inferTypes | boolean | – | Used when converting CSV to JSON. |
| text | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| columns | integer | yes | – |
| delimiter | string | yes | – |
| error | string | yes | – |
| ok | boolean | yes | – |
| output | string | yes | – |
| rows | integer | yes | – |
| warning | string | yes | – |
No examples provided.
convert_curl Convert a curl command to code ~45
Parse a curl command and generate equivalent JavaScript fetch, Python requests, Go, PHP, or Rust code.
| Name | Type | Req | Description |
|---|---|---|---|
| command | string | yes | – |
| target | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| body | string | – | – |
| headers | array | yes | – |
| method | string | yes | – |
| snippet | string | yes | – |
| url | string | yes | – |
| warnings | array | yes | – |
No examples provided.
convert_currency Convert an amount between currencies ~87
Convert money between ISO 4217 currencies using live exchange rates from the Frankfurter API, fetched through the SSRF-safe outbound guard. Supports historical dates.
| Name | Type | Req | Description |
|---|---|---|---|
| amount | number | – | – |
| date | string | – | Historical date; omit for the latest rates. |
| from | string | – | ISO 4217 currency code. |
| to | string | – | ISO 4217 currency code. |
| Name | Type | Req | Description |
|---|---|---|---|
| amount | number | – | – |
| date | string | – | – |
| error | string | – | – |
| from | string | – | – |
| ok | boolean | yes | – |
| rate | number | – | – |
| result | number | – | – |
| to | string | – | – |
No examples provided.
convert_data_format Convert JSON, YAML, TOML, or XML ~83
Convert between JSON, YAML, TOML, and XML. Auto-detects the source. Numbers that do not fit in a JavaScript number keep their digits. Errors include a line and column. TOML refuses null and a non-table root.
| Name | Type | Req | Description |
|---|---|---|---|
| from | string | – | – |
| text | string | yes | The source document. |
| to | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| column | – | yes | – |
| detected | string | yes | – |
| error | string | yes | – |
| line | – | yes | – |
| ok | boolean | yes | – |
| output | string | yes | – |
No examples provided.
convert_image Convert an image ~81
Convert an image to JPEG, PNG, WebP, or AVIF. Send base64 or a public URL. Private addresses are refused and the decoded file is capped at 10 MB. Returns the image as base64. HEIC is not decoded here.
| Name | Type | Req | Description |
|---|---|---|---|
| file | object | yes | The image. Provide url or data. |
| target | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| bytes | integer | yes | – |
| data | string | yes | Encoded image as base64. |
| extension | string | yes | – |
| filename | string | yes | – |
| height | integer | yes | – |
| mime | string | yes | – |
| source | string | yes | – |
| width | integer | yes | – |
No examples provided.
convert_json_to_types Convert JSON to type definitions ~61
Infer types from a JSON document and generate TypeScript interfaces, Zod schemas, Python Pydantic models or dataclasses, and Go structs.
| Name | Type | Req | Description |
|---|---|---|---|
| json | string | yes | – |
| rootName | string | – | – |
| targets | array | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| outputs | object | yes | – |
| warnings | array | yes | – |
No examples provided.
convert_markdown_html Convert Markdown and HTML ~67
Convert GitHub-flavored Markdown to HTML, or HTML to Markdown. to is html or markdown. sanitize strips scripts from the text output. The conversion does not fetch a URL.
| Name | Type | Req | Description |
|---|---|---|---|
| sanitize | boolean | – | – |
| text | string | – | – |
| to | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| direction | string | yes | – |
| output | string | yes | – |
No examples provided.
convert_units Convert units ~108
Convert length, mass, volume, temperature, area, speed, time, and data size. Decimal bytes (kB, MB) and binary bytes (KiB, MiB) are separate categories.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | yes | – |
| from | string | yes | Source unit id, such as m, C, MB, or MiB. |
| precision | integer | – | – |
| to | string | yes | Target unit id from the same category. |
| value | string|number | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
| rows | array | yes | – |
No examples provided.
convert_unix_timestamp Convert a unix timestamp ~153
Convert epoch seconds, milliseconds, microseconds, or nanoseconds to ISO-8601 and RFC 2822 in an IANA time zone, or convert a calendar time back to epoch.
| Name | Type | Req | Description |
|---|---|---|---|
| day | integer | – | – |
| hour | integer | – | – |
| input | string | – | Unix timestamp, ISO-8601, RFC 2822, or now. Leave it empty when year, month, and day are set. |
| minute | integer | – | – |
| month | integer | – | – |
| second | integer | – | – |
| timeZone | string | – | IANA time zone, such as UTC or America/New_York. |
| unit | string | – | – |
| year | integer | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| alternateIsoUtc | string | yes | – |
| isoLocal | string | yes | – |
| isoUtc | string | yes | – |
| milliseconds | string | yes | – |
| offset | string | yes | – |
| relative | string | yes | – |
| rfc2822 | string | yes | – |
| seconds | string | yes | – |
| timeZone | string | yes | – |
| unit | string | yes | – |
| weekday | string | yes | – |
No examples provided.
count_text Count words and characters ~43
Count words, code points, graphemes, sentences, and paragraphs, and compare the length with SEO and social limits.
| Name | Type | Req | Description |
|---|---|---|---|
| text | string | yes | Text to count. |
| Name | Type | Req | Description |
|---|---|---|---|
| characters | integer | yes | – |
| charactersNoSpaces | integer | yes | – |
| graphemes | integer | yes | – |
| lines | integer | yes | – |
| paragraphs | integer | yes | – |
| platforms | array | yes | – |
| readingLabel | string | yes | – |
| sentences | integer | yes | – |
| speakingLabel | string | yes | – |
| uniqueWords | integer | yes | – |
| words | integer | yes | – |
No examples provided.
count_tokens Count tokens ~106
Count tokens with the o200k or cl100k encoder and price the count against the published model table. Claude and Gemini rows are estimates, not those vendors' tokenizers.
| Name | Type | Req | Description |
|---|---|---|---|
| cachedRatio | number | – | – |
| encoding | string | – | – |
| modelIds | array | – | Price rows to return. Unknown ids are rejected. |
| outputTokens | integer | – | – |
| requestsPerDay | number | – | – |
| text | string | yes | The prompt or document to count. |
| Name | Type | Req | Description |
|---|---|---|---|
| chars | number | yes | – |
| count | number | yes | – |
| encoding | string | yes | – |
| prices | array | yes | – |
| words | number | yes | – |
No examples provided.
crop_image Crop an image ~151
Crop an image to a pixel box or a 0 to 1 ratio box. circle cuts a round mask. format is png, jpeg, or webp. Send base64 or a public URL. Private addresses are refused and the decoded file is capped at 10 MB. Returns the image as base64.
| Name | Type | Req | Description |
|---|---|---|---|
| circle | boolean | – | – |
| file | object | yes | The image. Provide url or data. |
| format | string | – | – |
| height | number | – | – |
| unit | string | – | px is source pixels. ratio is a 0 to 1 share of the source. |
| width | number | – | – |
| x | number | – | – |
| y | number | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| bytes | integer | yes | – |
| data | string | yes | Cropped image as base64. |
| extension | string | yes | – |
| filename | string | yes | – |
| height | integer | yes | – |
| mime | string | yes | – |
| width | integer | yes | – |
No examples provided.
date_difference Difference between two dates ~151
Count calendar days, elapsed time, and business days between two dates. Business days skip weekends and any YYYY-MM-DD holidays you list.
| Name | Type | Req | Description |
|---|---|---|---|
| endDate | string | yes | End date as YYYY-MM-DD. |
| endTime | string | – | End time as HH:MM or HH:MM:SS. Defaults to midnight. |
| holidays | string | – | Weekday holidays to exclude from business days, one YYYY-MM-DD per line. |
| includeEnd | boolean | – | Count the end date as well as the days between. |
| startDate | string | yes | Start date as YYYY-MM-DD. |
| startTime | string | – | Start time as HH:MM or HH:MM:SS. Defaults to midnight. |
| Name | Type | Req | Description |
|---|---|---|---|
| businessDays | integer | yes | – |
| countedDays | integer | yes | – |
| days | integer | yes | – |
| extraDays | integer | yes | – |
| holidayDays | integer | yes | – |
| hours | integer | yes | – |
| minutes | integer | yes | – |
| months | integer | yes | – |
| seconds | integer | yes | – |
| sign | integer | yes | – |
| totalDays | integer | yes | – |
| totalHours | string | yes | – |
| weekendDays | integer | yes | – |
| weeks | integer | yes | – |
| years | integer | yes | – |
No examples provided.
decode_jwt Decode a JWT ~61
Decode a signed JSON Web Token into its header, payload, and registered claims. Dates are absolute ISO timestamps. The signature is not checked.
| Name | Type | Req | Description |
|---|---|---|---|
| token | string | yes | A signed JWT, with or without a Bearer prefix. The signature is not verified. |
| Name | Type | Req | Description |
|---|---|---|---|
| claims | array | yes | – |
| error | string | yes | – |
| header | object | yes | – |
| kind | string | yes | – |
| ok | boolean | yes | – |
| payload | object | yes | – |
| signature | string | yes | – |
No examples provided.
diff_text Diff two texts ~85
Compare two texts by line, word, or character, or compare JSON so object key order does not matter. Returns an inline diff, side-by-side rows for line and JSON modes, and a unified patch.
| Name | Type | Req | Description |
|---|---|---|---|
| ignoreWhitespace | boolean | – | – |
| left | string | yes | The original text. |
| mode | string | – | – |
| right | string | yes | The changed text. |
| Name | Type | Req | Description |
|---|---|---|---|
| added | integer | yes | – |
| error | string | yes | – |
| ok | boolean | yes | – |
| patch | string | yes | – |
| pieces | array | yes | – |
| removed | integer | yes | – |
| rows | array | yes | – |
| unchanged | boolean | yes | – |
| unit | string | yes | – |
No examples provided.
execute_graphql Execute a GraphQL query ~87
Send a GraphQL query with optional variables and headers to a public http or https endpoint on port 80 or 443 and return the response data or errors. Local, private, and internal addresses are refused.
| Name | Type | Req | Description |
|---|---|---|---|
| endpoint | string | yes | – |
| headers | object | – | – |
| query | string | yes | – |
| timeoutMs | integer | – | – |
| variables | object | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | – | – |
| durationMs | number | yes | – |
| error | string | – | – |
| errors | – | – | – |
| ok | boolean | yes | – |
| status | integer | yes | – |
No examples provided.
explain_chmod Explain a chmod mode ~75
Convert an octal or symbolic file mode into octal, symbolic notation, and a chmod command, including setuid, setgid, and the sticky bit.
| Name | Type | Req | Description |
|---|---|---|---|
| mode | string | yes | Octal such as 755 or 4755, or symbolic such as rwxr-xr-x. |
| path | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| command | string | yes | – |
| octal | string | yes | – |
| setgid | boolean | yes | – |
| setuid | boolean | yes | – |
| sticky | boolean | yes | – |
| symbolic | string | yes | – |
No examples provided.
explain_cron Explain a cron expression ~115
Turn a cron expression into English, the next UTC run times, and snippets for crontab, GitHub Actions, Vercel, Kubernetes, and node-cron.
| Name | Type | Req | Description |
|---|---|---|---|
| dialect | string | – | – |
| expression | string | yes | A cron expression, including @daily or @reboot. |
| now | string | – | ISO timestamp used as the clock. Omit it to use the current time. |
| timeZone | string | – | IANA time zone used to list the next runs. Hosted schedules stay in UTC. |
| Name | Type | Req | Description |
|---|---|---|---|
| english | string | yes | – |
| error | string | yes | – |
| fields | array | yes | – |
| hostedNote | string | yes | – |
| runs | array | yes | – |
| snippets | array | yes | – |
| valid | boolean | yes | – |
No examples provided.
extract_pdf_text Extract PDF text ~123
Read the selectable text layer of a PDF. Returns per-page text, markdown-style headings, and an o200k token count. Does not OCR scans. Send base64 or a public URL. Private addresses are refused.
| Name | Type | Req | Description |
|---|---|---|---|
| data | string | – | PDF bytes as base64 or a data URI. Decoded size is capped at 10 MB. Provide data or url. |
| filename | string | – | – |
| mimeType | string | – | – |
| url | string | – | Public URL of a PDF. Private and local addresses are refused. Provide data or url. |
| Name | Type | Req | Description |
|---|---|---|---|
| emptyPages | integer | yes | – |
| markdown | string | yes | – |
| pageCount | integer | yes | – |
| pages | array | yes | – |
| text | string | yes | – |
| tokens | integer | yes | – |
No examples provided.
fetch_page_markdown Fetch a page as Markdown ~70
Fetch a public HTML page and return the article as Markdown, plus a title, excerpt, and o200k token count. Private and local addresses are refused. The response is capped at 800 KB.
| Name | Type | Req | Description |
|---|---|---|---|
| url | string | yes | Public http or https URL. Private and local addresses are refused. |
| Name | Type | Req | Description |
|---|---|---|---|
| chars | integer | yes | – |
| excerpt | string | yes | – |
| markdown | string | yes | – |
| title | string | yes | – |
| tokens | integer | yes | – |
| url | string | yes | – |
No examples provided.
fill_pdf_form Fill a PDF form ~136
Fill an interactive PDF form's text fields, checkboxes, dropdowns, and radios by field name, with an option to flatten the result. Pass inspectOnly to list the fields first.
| Name | Type | Req | Description |
|---|---|---|---|
| file | object | yes | PDF as base64, a data URI, or a public URL. Private addresses are refused. 10 MB cap. |
| flatten | boolean | – | Flatten the form so fields become plain page content. |
| inspectOnly | boolean | – | List the form fields without changing anything. |
| values | object | – | Field name to value. Checkboxes take booleans; dropdowns and radios take one of their options. |
| Name | Type | Req | Description |
|---|---|---|---|
| fields | array | – | Detected form fields (inspectOnly). |
| filled | integer | yes | – |
| mimeType | string | yes | – |
| pageCount | integer | yes | – |
| string | – | Filled PDF bytes, base64 encoded. |
No examples provided.
format_json Format and validate JSON ~95
Pretty-print or minify JSON. A number that does not fit in a JavaScript number keeps the digits you sent. Returns the formatted text when it is valid, or the line and column of each syntax error.
| Name | Type | Req | Description |
|---|---|---|---|
| indent | string | – | – |
| json | string | yes | JSON text to format or validate. |
| minify | boolean | – | – |
| sortKeys | boolean | – | Sort object keys. Array order is kept. |
| Name | Type | Req | Description |
|---|---|---|---|
| errors | array | yes | – |
| output | string | yes | – |
| valid | boolean | yes | – |
No examples provided.
format_sql Format SQL ~72
Format SQL for PostgreSQL, MySQL, BigQuery, Snowflake, and other dialects. Choose keyword case and an indent of 2 or 4 spaces.
| Name | Type | Req | Description |
|---|---|---|---|
| dialect | string | – | – |
| indent | – | – | – |
| keywordCase | string | – | – |
| sql | string | yes | SQL to format. |
| Name | Type | Req | Description |
|---|---|---|---|
| sql | string | yes | – |
No examples provided.
How do I install the Benchline MCP server?
Benchline is a hosted endpoint at https://benchline.fabwaseem.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · benchline.fabwaseem.com
claude mcp add --transport http fabwaseem-benchline 'https://benchline.fabwaseem.com/mcp'
What is the Benchline MCP server?
Benchline is an MCP server listed in the public MCP registry as io.github.fabwaseem/benchline. Open-source developer, PDF, image, SEO and security tools over a stateless HTTP MCP server. No key. This page covers its hosted endpoint (https://benchline.fabwaseem.com/mcp).
What tools does the Benchline MCP server expose?
Benchline exposes 82 tools: generate_llms_txt, score_ai_seo, build_open_graph, list_og_templates, decode_jwt, and 77 more. Their descriptions and schemas cost roughly 8,833 tokens of context every time the server is loaded.
Does the Benchline MCP server require authentication?
Its publisher declares no required credentials for Benchline. We have not been able to confirm that against the live endpoint, and a server can require authorisation without declaring it here.
Is the Benchline MCP server still maintained?
Benchline is still listed in the MCP registry, though our most recent checks did not reach this channel. We last reached this channel on 3 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.