Developer tools for your AI assistant

Give Claude, ChatGPT, Cursor, or any MCP app 28 reliable tools for code, data, packages, the web, and time. Ask in plain language; pay a few credits per call.

You get 1000 free credits. No card needed. Already have an account? Sign in.

  1. Create an account

    Get an API key and 1000 free credits.

  2. Connect your AI app

    Paste one URL or command. See how.

  3. Just ask

    “Format this file”, “Is this JSON valid?”, “When does this cron run?”

Tools

Every tool only reads or computes; none can change your files or accounts. Failed calls are refunded automatically.

Account

Account balance

Free

Show your remaining credits and what each tool costs.

Try: “How many JigWell credits do I have left?”

account_balance

Code quality

Diff two texts

2 credits

Produce a unified diff (like `git diff`, including the "\ No newline at end of file" marker) between two versions of a file or snippet. Returns {"output": the diff, "identical": true when there are no differences}.

Try: “Show me a unified diff between the old and new version of this function.”

diff_text

Code statistics

2 credits

Summarize source code: total, code, blank, and comment lines, TODO/FIXME/HACK/XXX markers, and the longest lines. A comment line is one that starts with the language's comment marker (with auto: #, //, /*, *, --, or <!--) or lies inside a multi-line /* ... */ or <!-- ... --> comment that starts at the beginning of a line. Docstrings and code with a trailing comment count as code.

Try: “How many lines, comments, and TODOs are in this file?”

code_stats

Format code (Prettier)

1 credit

Format code with Prettier, the most widely used code formatter. Supports JavaScript/JSX, TypeScript/TSX, JSON, CSS/SCSS/Less, HTML, Vue, Markdown, YAML, and GraphQL. Returns {"output"}; syntax errors are reported with their location.

Try: “Format this TypeScript file with Prettier using single quotes.”

format_code

TypeScript to JavaScript

1 credit

Convert TypeScript (or TSX) to JavaScript by removing types. Returns {"ok", "code", "syntax_errors"}: on syntax errors ok is false, code is null, and each error has its line and column. Does not type-check; use typecheck_typescript for that.

Try: “Convert this TypeScript to plain JavaScript (ES2020, CommonJS).”

transpile_typescript

Type-check TypeScript

3 credits

Type-check a self-contained TypeScript snippet with the real TypeScript compiler (ES2023 + DOM types).

Try: “Type-check this TypeScript snippet and explain each error.”

typecheck_typescript

Minify JavaScript

1 credit

Minify JavaScript with Terser and report the size before and after, plus which mode was used.

Try: “Minify this script and tell me how much smaller it got.”

minify_javascript

Run & test

Test a regular expression

1 credit

Run a regular expression against text and list every match with its position and capture groups (numbered and named). `start`/`end` count Unicode code points from 0 (Python indexing; JavaScript's UTF-16 indexes differ after emoji and other astral characters). Patterns that take over a second are stopped instead of hanging.

Try: “Test the regex (\d{4})-(\d{2}) against these log lines and show the groups.”

test_regex

Run JavaScript (sandboxed)

3 credits

Run a JavaScript snippet in an isolated sandbox and return its console output and final value.

Try: “Run this JavaScript and show me the console output and result.”

run_javascript

AI & agents

Estimate LLM tokens and cost

1 credit

Estimate how many tokens a text is for large language models (GPT, Claude, Llama) without any model's tokenizer. Returns {"estimated_tokens", "range": {"low", "high"}, "characters", "words", "lines", "method", "note"} and, when a price is given, "estimated_cost_usd". `words` counts words in spaced scripts and characters in Chinese, Japanese and Korean.

Try: “Roughly how many tokens is this prompt, and what would it cost at $3 per million?”

estimate_tokens

Validate JSON Lines

1 credit

Validate a JSON Lines file (datasets, logs, fine-tuning files): every line is checked, and each problem is reported with its line number. Returns {"valid", "records", "blank_lines", "error_count", "errors": [{"line", "message"}], "format"} plus "roles" (messages per role) for format=chat. Blank lines are allowed and counted. At most 50 errors are listed; error_count has the total.

Try: “Check this fine-tuning dataset: is every line valid JSON in the chat format?”

validate_jsonl

Lint an AI tool schema

1 credit

Check a tool definition or its parameter schema the way AI platforms (MCP, OpenAI, Anthropic) and models see it. Errors mean a platform will reject it or a model can't fill it: invalid JSON Schema, a non-object root, `required` names that don't exist, a bad tool name, no description. Warnings mean the model will have to guess: parameters without a description or type, awkward names, deep nesting. Returns {"kind", "valid", "error_count", "warning_count", "problems": [{"severity", "path", "message"}], "property_count", "max_depth"}.

Try: “Check this MCP tool definition: will models use it reliably, and is it valid for strict structured output?”

lint_tool_schema

Inspect a WebAssembly module

2 credits

Inspect a WebAssembly binary without running it: whether it's valid, its imports and exports (functions, memories, tables, globals), its size, and the toolchain recorded in its producers section (for example Rust, clang, wasm-bindgen). Returns {"valid", "size_bytes", "imports", "exports", "custom_sections", "producers"}. An invalid module is an error that quotes the engine's reason. Text-format .wat must be compiled first (wat2wasm).

Try: “What does this .wasm module import and export, and what was it compiled with?”

inspect_wasm

Data & formats

Format JSON

1 credit

Validate and pretty-print JSON. Returns {"output"}. Numbers are kept exactly as written (no rounding, no 1e400 -> Infinity). Reports the line and column of any syntax error.

Try: “Is this JSON valid? Pretty-print it with sorted keys.”

format_json

Encode or decode text

1 credit

Encode or decode text as base64, base64url, URL percent-encoding (url or form style), or hex. Returns {"encoding", "direction", "output", "warnings"}; decoded bytes that aren't valid UTF-8 and percent signs that don't start a valid escape are explained in `warnings` instead of being silently changed.

Try: “Base64-decode this string: aGVsbG8gd29ybGQ=”

convert_encoding

Hash text

1 credit

Hash text (UTF-8) and return {"algorithm", "digest"} with the digest in lowercase hex.

Try: “What's the SHA-256 hash of 'hello world'?”

hash_text

Decode a JWT

1 credit

Decode a JWT's header and payload and explain its timestamps (iat, nbf, exp) as RFC 3339 UTC times with relative times, plus `expired`, `not_yet_valid` (nbf in the future), and `valid_now`, all judged at `as_of` (the server time, or the `now` you pass). `expired` and `not_yet_valid` are null when the token has no exp or nbf claim; `valid_now` is then true unless the other claim says otherwise.

Try: “Decode this JWT and tell me when it expires.”

decode_jwt

Generate IDs and secrets

1 credit

Generate unique IDs (UUIDv4, time-ordered UUIDv7) or cryptographically secure tokens and passwords. Returns {"kind", "values": [...]}.

Try: “Generate 5 UUIDv7 IDs for my database seed file.”

generate_ids

Validate JSON against a schema

1 credit

Validate a JSON document against a JSON Schema and return every violation with its path and the failing keyword. Useful for checking AI structured output, API payloads, and config files.

Try: “Check this API response against our JSON Schema and list every problem.”

validate_json_schema

Generate a JSON Schema

1 credit

Generate a JSON Schema (draft 2020-12) from example JSON. Detects date-time, date, email, uri, and uuid strings. By default objects are closed (`additionalProperties: false`); set allow_additional_properties=true for an open schema.

Try: “Generate a JSON Schema from these example API records.”

infer_json_schema

Convert JSON / YAML / TOML

1 credit

Convert configuration or data files between JSON, YAML, and TOML. Returns {"output", "warnings"}.

Try: “Convert this docker-compose YAML to JSON.”

convert_data

Packages & versions

npm package info

2 credits

Look up an npm package: latest version, license, deprecation notice, weekly downloads, whether it ships TypeScript types, supported Node versions, and links.

Try: “Is the npm package request deprecated, and what should I use instead?”

npm_package_infoUses internet

PyPI package info

2 credits

Look up a Python package on PyPI: latest version, release date, supported Python versions, license, and links.

Try: “What's the latest version of requests on PyPI and which Python versions does it support?”

pypi_package_infoUses internet

Check for outdated dependencies

5 credits

Check a package.json or requirements.txt against the live registry.

Try: “Which dependencies in this package.json are out of date?”

check_outdated_dependenciesUses internet

Semantic versions

1 credit

Check, compare, sort, and bump semantic versions using npm's exact rules: does 2.1.3 satisfy ^2.1.0, which is the newest version matching a range, is a change major/minor/patch, what comes after 1.4.9.

Try: “Which of these versions satisfy ^2.1.0: 2.0.9, 2.1.3, 2.9.0, 3.0.0?”

semver_tool

Web

Fetch a web page

3 credits

Fetch a public web page or API and return it as readable text, raw HTML, or parsed JSON.

Try: “Read https://example.com and summarize it.”

fetch_urlUses internet

Time & scheduling

Convert times and time zones

1 credit

Convert a time between Unix timestamps, ISO 8601, and time zones, and say how far it is from now.

Try: “What time is 1700000000 in Tokyo and New York?”

convert_time

Next cron runs

1 credit

Show when a cron schedule will next run in a given time zone (RFC 3339 times), plus `schedule`: what each field means in plain values (e.g. hours "9-17", days_of_week "MON-FRI").

Try: “When will '*/15 9-17 * * MON-FRI' run next in Berlin time?”

cron_next_runs

Connect your AI app

Claude, ChatGPT & other OAuth apps

Add a custom connector with this URL, then approve with your API key when asked. In Claude: Settings → Connectors → Add custom connector.

https://jigwell.site/mcp

Claude Code

Run this in a terminal:

claude mcp add --transport http jigwell https://jigwell.site/mcp --header "Authorization: Bearer YOUR_API_KEY"

Cursor & other apps

Add this to the app's mcp.json:

{
  "mcpServers": {
    "jigwell": {
      "url": "https://jigwell.site/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}

Pricing

Most tools cost 1–3 credits per call; the price is shown on each tool and your AI sees it too.

Top up any time from your dashboard. Credits never expire.

500
credits

$5.00

2,500
credits

$20.00

10,000
credits

$60.00

Questions

Do you store my code or data?

No. JigWell records which tool was called, when, and the credits used. Tool inputs and results are never saved.

What happens when a call fails?

You get a clear error and the credits are refunded automatically. (A sandboxed JavaScript run is charged even if your code throws, because it ran.)

Is running code safe?

JavaScript runs in a fresh, locked-down sandbox for each call: no files, no network, no other processes, with time and memory limits.

I lost my API key.

Open your dashboard on a device where you're still signed in and choose Rotate key to get a new one. Otherwise, contact the operator of this JigWell server.

Which apps work?

Any app that supports the Model Context Protocol (MCP): Claude, Claude Code, ChatGPT connectors, Cursor, VS Code, and more.