JsonFabrica

io.github.ms-methosPublished by GitHub account ms-methosv0.3.2Updated Oct 24, 2026

Generate realistic, relational synthetic JSON test data from templates, via the JsonFabrica API.

The publisher's own server: Fabrica

VerifiedSTDIODesktop onlyDeveloper ToolsData & Analytics

Overview

AI-generated overview

A local MCP server that lets an AI coding agent generate realistic, relational synthetic JSON test data through the JsonFabrica API.

What you can do
Check gateway connectivity and identify the tenant and role behind the configured API key. Create, list, read, update and delete reusable data templates, and generate records from them or ad hoc. Create, list, read, update, delete and bump named sequences used for ordered values. Run generation batches, including linked records across aliases, and poll queued batches until they complete. Read current usage totals for the tenant.
When to use it
Useful when you need seed or fixture JSON for tests, demos or local development and want the assistant to produce schema-conformant, seed-reproducible records with referential integrity without hand-writing fixtures or switching to a dashboard.
Requirements
Runs locally over stdio, launched by the MCP client via npx from the npm package. Requires a JsonFabrica account and an API key supplied in the JSONFABRICA_API_KEY environment variable. Network access to the JsonFabrica gateway is needed; the base URL can be changed with JSONFABRICA_API_URL, for example when self-hosting.
Before you install
The API key is a secret placed in the client config; keep it out of shared files. Generation calls are billed, including ad hoc generation that persists nothing, and usage can be checked with the usage tool. Tools create, update and delete templates and sequences on the remote service, so changes affect stored data. Generated data is sent to the JsonFabrica gateway.

Installation

In SourceWeft

  1. Open JsonFabrica in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

@jsonfabrica/mcp-server

[npm] [license]

A local Model Context Protocol (MCP) server that lets an AI coding agent — Claude Desktop, Cursor, or anything else that speaks MCP — generate realistic, schema-conformant JSON test data mid-session by calling JsonFabrica's REST API as MCP tools.

It runs over stdio transport only: your AI client launches it as a subprocess, so there's no network service to host and no port to open. It never talks to anything except the JsonFabrica gateway you configure.

New to JsonFabrica? It's an API-first service for generating synthetic JSON test data from reusable templates — deterministic, seed-reproducible, with referential integrity across related records. See jsonfabrica.com and the API docs.

Install / run

Add it to your MCP client's config so the client launches it via npx:

json
{  "mcpServers": {    "jsonfabrica": {      "command": "npx",      "args": ["-y", "@jsonfabrica/mcp-server"],      "env": {        "JSONFABRICA_API_KEY": "sk_live_...",        "JSONFABRICA_API_URL": "https://api.jsonfabrica.com"      }    }  }}
  • Claude Desktop — add the block above to claude_desktop_config.json (Settings → Developer → Edit Config), then restart.
  • Cursor — Settings → MCP → Add new MCP server, or add the block to ~/.cursor/mcp.json.

Get an API key by signing up at jsonfabrica.com — Settings → API Keys.

Or run it directly for local testing:

bash
npm installnpm run buildJSONFABRICA_API_KEY=sk_live_... node dist/index.js

What it looks like in a session

Once connected, an agent can do things like:

You: Generate 20 realistic customer records and 60 orders linked to them, and drop them into fixtures/seed.json.

Agent: calls jsonfabrica_create_template for the customer and order shapes, then jsonfabrica_create_batch with a relations map so each order references a generated customer id, then writes the result to the file.

No tab-switching to a dashboard, no hand-written fixtures.

Configuration

Env varRequiredDefaultNotes
JSONFABRICA_API_KEYYes—If missing, the server still starts and answers tool discovery, but every tool call fails with "check JSONFABRICA_API_KEY". Never logged or echoed back in tool output.
JSONFABRICA_API_URLNohttps://api.jsonfabrica.comBase URL of the JsonFabrica gateway. Override this if you're self-hosting the gateway (e.g. http://localhost:4000).

Tools

Every tool's description states, verbatim, which REST endpoint it calls. Tool names are prefixed jsonfabrica_ to avoid collisions with other MCP servers your client may have loaded.

Health / Auth

ToolEndpointNotes
jsonfabrica_healthGET /healthNo auth. Connectivity check.
jsonfabrica_whoamiGET /v1/whoamiReturns { tenantId, role } for the configured key.

Templates

ToolEndpoint
jsonfabrica_create_templatePOST /v1/templates
jsonfabrica_list_templatesGET /v1/templates
jsonfabrica_get_templateGET /v1/templates/{templateId}
jsonfabrica_update_templatePUT /v1/templates/{templateId}
jsonfabrica_delete_templateDELETE /v1/templates/{templateId}
jsonfabrica_generate_from_templatePOST /v1/templates/{templateId}/generate
jsonfabrica_generate_adhocPOST /v1/templates/generate (no persistence; same billing as persisted generation)

Template body strings use JsonFabrica's function-call placeholder syntax with angle brackets, e.g. <getRandomFullName()>, <getRandomEmail()>, <createSeq('orderNo')>. The full catalogue of built-in functions is documented at jsonfabrica.com/docs/functions — it's authoring reference, not something this server exposes as tools.

Sequences

ToolEndpoint
jsonfabrica_create_sequencePOST /v1/sequences
jsonfabrica_list_sequencesGET /v1/sequences
jsonfabrica_get_sequenceGET /v1/sequences/{name}
jsonfabrica_update_sequencePATCH /v1/sequences/{name}
jsonfabrica_delete_sequenceDELETE /v1/sequences/{name}
jsonfabrica_bump_sequencePOST /v1/sequences/{name}/bump

Batches

ToolEndpoint
jsonfabrica_create_batchPOST /v1/batches (small batches run synchronously — 200 with results; larger batches are queued — 202, poll with jsonfabrica_get_batch)
jsonfabrica_get_batchGET /v1/batches/{batchId}

Both tools return the same shape: { batchId, status, seed, results?, error? }, where status is queued | running | completed | failed. results is present once the batch is completed and groups the generated documents by alias — each value is an array of the documents themselves:

json
{  "batchId": "4f1c…",  "status": "completed",  "seed": 42,  "results": {    "customer": [{ "id": "c-1", "name": "Ada Lovelace" }],    "order": [{ "id": "o-1", "customerId": "c-1" }, { "id": "o-2", "customerId": "c-1" }]  }}

A failed batch carries error: { code, message } instead of results. Batches under 50 documents in total (the API's default threshold) run synchronously; larger ones return 202 { batchId, status: "queued", seed }.

Usage

ToolEndpoint
jsonfabrica_get_usageGET /v1/usage — returns { tenantId, usageTotal, asOf }

Explicitly out of scope

  • POST /v1/signup and PATCH /v1/billing/tier — unauthenticated account-creation / billing-tier-change endpoints. Wrapping these would let a model create real paid subscriptions or change billing tiers on the user's behalf; excluded by design (generation API surface only).
  • POST /v1/webhooks/stripe — Stripe-only webhook ingestion, not a developer-facing capability.

Error handling

Every tool catches errors internally and returns an MCP isError: true result with a readable message — it never throws out of the handler or crashes the host process. Common cases:

  • 401 → "Invalid or missing API key — check JSONFABRICA_API_KEY."
  • 403 → the API key's tenant is not allowed to perform the call.
  • 402 (blocked account) → the upstream blockReason is passed through.
  • Network failure (gateway unreachable) → a message naming the configured JSONFABRICA_API_URL.
  • Anything else → JsonFabrica API error [CODE] (HTTP status): message.

Troubleshooting

  • 401 / "Invalid or missing API key" → check JSONFABRICA_API_KEY is set and valid.
  • Connection refused / UPSTREAM_UNREACHABLE → check JSONFABRICA_API_URL and that the gateway is actually running and reachable from wherever this process runs.
  • 403 / FORBIDDEN → your API key's tenant is not permitted to perform that call.

Development

bash
npm installnpm run build   # tsc -p tsconfig.jsonnpm test        # build + node --test dist/npm start       # node dist/index.js (requires JSONFABRICA_API_KEY)

Source layout mirrors the OpenAPI spec's tags: one file per tag under src/tools/. src/client.ts is the only place that knows about fetch, the base URL, and the Authorization header.

License

MIT — see LICENSE.

Source: README.md at commit 1ba8790

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

2
  1. v0.3.2LatestOct 6, 2026
  2. v0.3.0Sep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

Other Fabrica integrations