Skip to main content
Glama
przeslijmi

real-fake-data-mcp

by przeslijmi

@przeslijmi/real-fake-data-mcp

A Model Context Protocol server for Real Fake Data — gives an AI assistant (Claude Desktop, Claude Code, Cursor, …) realistic, synthetic test data on demand: valid PESELs (correct checksums), NIPs, REGONs, IBANs, addresses drawn from real cities and streets, people, and company names across 27 EU countries.

Output looks real but is fake — safe for staging, demos, and seed data.

  • Two tools, self-updating. list_generators for discovery, generate to run any generator by id. New generators on the API appear automatically — no client upgrade.

  • Thin and stateless. Calls the hosted Real Fake Data API over HTTPS; no data is generated or stored locally.

  • Seeded when you want it. Pass a seed for reproducible output, or omit it to randomise each call.

Install

No global install needed — point your MCP client at the package via npx. It runs over stdio, so the client spawns it as a subprocess.

Claude Desktop / Claude Code

Add it to your MCP servers config (claude_desktop_config.json, or via claude mcp add):

{
  "mcpServers": {
    "real-fake-data": {
      "command": "npx",
      "args": ["-y", "@przeslijmi/real-fake-data-mcp"],
      "env": {
        "REAL_FAKE_DATA_API_KEY": "your-api-key"
      }
    }
  }
}

Restart the client; the real-fake-data tools become available in any conversation.

Requires Node 22+.

Related MCP server: Faker MCP Server

Configuration

The client passes configuration through the server's env:

Variable

Required

Description

REAL_FAKE_DATA_API_KEY

No

API key sent as Authorization: Bearer <key>, lifting requests onto your metered plan. Omit to use the anonymous lane.

REAL_FAKE_DATA_API_BASE_URL

No

Override the hosted API. Defaults to https://api.real-fake-data.com; point it at a local API during development.

Tools

list_generators

Lists every available generator with its id, description, and supportedLocales. Call it first to discover which ids generate accepts.

You: What fake-data generators are available?

Claude (calls list_generators)pl.pesel, pl.company, pl.address, any.email, de.company-name, …

generate

Runs one generator and returns the API's { data, meta } envelope.

Argument

Type

Description

generator

string (required)

Generator id from list_generators, e.g. pl.pesel or any.email.

options

Record<string, string | number | boolean>

Generator-specific query parameters; omit for defaults.

count

number

Number of records to generate; omit for a single record. (Upper bound enforced by your plan.)

seed

number

Seed for reproducible output; omit to randomise each call.

You: Generate 3 female Polish people for my staging DB.

Claude (calls generate with { generator: "pl.person", count: 3, options: { sex: "f" } }) → three records of { name, surname, initials, birthDate, pesel }.

options are the same query parameters the generator exposes on the REST API — list_generators describes each, and the API docs list them in full. Examples: { "format": "digits-only" } for a NIP, { "teryt": "14" } to anchor an address to a region, { "invalid": true } to get a deliberately-wrong checksum for testing your validators.

How it relates to the REST API

This server is a thin MCP front end over the same hosted endpoints the Playwright addon and REST API serve. A generator id maps directly to a route — pl.peselGET /v1/pl/pesel, any.emailGET /v1/email — and metering, plan limits, and validation all behave identically. Use this package when you want an AI assistant to produce test data conversationally; use the Playwright addon or the REST API directly from code.

License

MIT


This repository is auto-generated from a private upstream monorepo. Open issues here, but code changes are made upstream and re-synced — pull requests against this repo are applied upstream, not merged directly.

Available Tools

2 tools
generateGenerate realistic fake dataA

Generate realistic synthetic data from one Real Fake Data generator. Pass a generator id from list_generators (e.g. pl.pesel). Use options for generator-specific parameters (e.g. {"sex":"f"} for a person, {"format":"digits-only"} for a NIP) — see each generator's description. Set count for a batch and seed for reproducible output. Returns the API's { data, meta } envelope.

ParametersJSON Schema
NameRequiredDescriptionDefault
generatorYesGenerator id from `list_generators`, e.g. `pl.pesel` or `any.email`.
optionsNoGenerator-specific query parameters; omit for defaults.
countNoNumber of records to generate; omit for a single record.
seedNoSeed for reproducible output; omit to randomise each call.

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It mentions the return envelope format (`{ data, meta }`), reproducibility via seed, and batching via count. However, it does not discuss side effects, permissions, or potential errors.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences with no wasted words. The first sentence states the core function, followed by parameter usage guidance. Structure is front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of an output schema, the description sufficiently explains the return format. It covers all parameters, the dependency on `list_generators`, and behavioral nuances (seed, batch). The tool is straightforward, so completeness is adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All parameters are already described in the schema (100% coverage), but the description adds valuable context: examples for `options` (e.g., `{"sex":"f"}`), clarification that `count` is for batch and `seed` for reproducibility, and references to generator descriptions. This goes beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: generating realistic synthetic data using a generator ID from `list_generators`. It uses specific verbs ('generate', 'pass') and distinguishes from the sibling tool by referencing the generator list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use the tool (need synthetic data from a specific generator) and implicitly directs to `list_generators` for IDs. It does not explicitly state when not to use it, but the context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_generatorsList Real Fake Data generatorsA

List every available Real Fake Data generator with its id, description and supported locales. Call this first to discover which generator ids the generate tool accepts (e.g. pl.pesel, pl.company, any.email).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations, but description implies a safe read operation listing all generators. Does not declare side effects or errors, but for a list tool that is acceptable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, both productive: first states function, second gives critical usage guidance. No filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless list tool, the description fully covers purpose, output contents, and integration with sibling tool. No gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters, so schema coverage is 100%. Description adds value by specifying output fields (id, description, locales) and usage examples, going beyond the empty schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States verb 'list' and resource 'every available Real Fake Data generator' with specific output fields (id, description, locales). Clearly distinguishes from sibling 'generate' by positioning it as a discovery tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs to 'call this first' to discover generator ids accepted by the 'generate' tool, providing clear when-to-use and prerequisite context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updatesv0.1.0
    • First observedgenerate
    • First observedlist_generators

TDQS

A4.4/5.0

Scored across 2 tools

Disambiguation5/5

The two tools have completely distinct purposes: one lists available generators, the other generates data. There is no overlap or ambiguity.

Naming Consistency4/5

Both tools use imperative verbs, but 'list_generators' follows a verb_noun pattern while 'generate' is just a verb, creating a slight inconsistency. The pattern is still clear and readable.

Tool Count4/5

Two tools is minimal but appropriate for the server's purpose of discovering and generating synthetic data. The scope is well-defined without unnecessary extras.

Completeness4/5

The tools cover the essential workflow: discover generators and generate data. There is a minor gap in not having a tool to view detailed generator options, but the descriptions in list_generators suffice for basic use.

Maintenance

ActivityStale
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    A
    quality
    D
    maintenance
    European business compliance suite for AI agents — 28 tools covering tax ID validation (PT, ES, FR, DE, IT, UK, NL), IBAN verification, EU VAT rates, invoice requirements, e-invoicing rules, payment terms, labor calendar helpers, VAT breakdown calculations and invoice schema validation for 18+ European countries.
    28
    -
  • A
    license
    A
    quality
    C
    maintenance
    Enables AI assistants to interact with the Polish National e-Invoice System (KSeF) for authentication, invoice creation, validation, and retrieval via 30 tools.
    32
    4
    MIT