Skip to main content

MCP server for Generate-Data.com — thin proxy to /api/v2/

Project description

generate-data-mcp

PyPI

An MCP server for Generate-Data.com — generate synthetic datasets, design schemas from natural language, and manage Projects, straight from your agent.

Thin HTTP wrapper over the Generate-Data.com API. No generation logic lives in this repo — it's a curated, agent-friendly interface onto the real thing: 7 tools, one consistent response shape, binary-safe output, and server-side validation on every input.

Installation (30-second setup)

You need a Generate-Data.com API key first — create one in Settings → API Access on generate-data.com.

Claude Desktop / Cursor (recommended)

Add this to your MCP client config (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json):

{
  "mcpServers": {
    "generate-data": {
      "command": "uvx",
      "args": ["generate-data-mcp"],
      "env": {
        "GENERATE_DATA_API_KEY": "your-uuid-key-here"
      }
    }
  }
}

uvx fetches and runs the latest published version on demand — no separate install step, nothing to update by hand. Restart your client and the 7 gd_* tools are available.

Do not commit a config file containing your real API key.

uv / uvx (any MCP client)
# run once, ad hoc:
uvx generate-data-mcp

# or install it as a persistent CLI tool:
uv tool install generate-data-mcp
pip (fallback)
pip install generate-data-mcp

For local development against this repo directly:

git clone https://github.com/ns-3e/generate-data-mcp.git
cd generate-data-mcp
pip install -e ".[dev]"

Verify it works

export GENERATE_DATA_API_KEY=your-key
generate-data-mcp

From your MCP client, invoke gd_get_usage — it should return your tier and call counts. Then invoke gd_list_field_types — it should return the category map.

Bam — you're ready to generate data.

Ask your agent something like "generate 50 rows of fake e-commerce customers as CSV" and it will call gd_design_schema then gd_generate_dataset on its own.

Quick start

A typical session looks like this — the agent chains tools on its own, you just describe the outcome:

  1. Discover what's possible. gd_list_field_types — see every field type, grouped by category.
  2. Design a schema. gd_design_schema(prompt="E-commerce customers with name, email, and signup date") — proposes a fields array from plain English.
  3. Generate the data. gd_generate_dataset(fields=..., num_rows=10, format="csv") — returns the rows.
  4. Refine if needed. Call gd_design_schema again, this time passing messages (the running conversation) + current_schema (the prior result) together — it refines instead of proposing fresh.

Every tool returns the same envelope: {"ok": true, "summary": "...", "data": {...}} on success, or {"ok": false, "error": {"code": ..., "message": ...}} on failure — errors always tell you what to do next, never a raw stack trace.

Local development

{
  "env": { "GENERATE_DATA_API_BASE_URL": "http://localhost:8000" }
}

Point at a locally running Django backend instead of the hosted API.

Migrating from v1

v2.0.0 renames every tool (breaking change). Old name → new name:

  • generate_datagd_generate_dataset
  • list_field_typesgd_list_field_types
  • get_field_optionsgd_get_field_type_options
  • propose_schemagd_design_schema (first call, no messages/current_schema)
  • refine_schemagd_design_schema (pass messages + current_schema together)
  • get_api_usagegd_get_usage
  • list_projectsgd_list_projects (now paginated: limit/offset)
  • generate_projectgd_generate_project (binary formats now returned base64-encoded, not corrupted utf-8)

Reference

All 7 tools, split by tier.

Free tier

  • gd_generate_dataset — Generate synthetic dataset rows from a field list. format: csv, json, xml, parquet, or zip (binary formats return base64-encoded).
  • gd_list_field_types — List all available field types grouped by category. Takes no arguments.
  • gd_get_field_type_options — Get the configuration option schema for one field type. field_type must match ^[a-z0-9_]+$.
  • gd_design_schema — Design a dataset schema from natural language, or refine an existing one — one tool for both the first proposal and follow-up conversation turns.
  • gd_get_usage — Get current API key usage stats: calls today, tier, limits. Takes no arguments.

Premium tier

Requires a Premium API key — Free-tier keys get a tier_forbidden error.

  • gd_list_projects — List the user's Projects, paginated (limit/offset, default 20/0).
  • gd_generate_project — Generate all tables in a Project and download the result. Same format/binary rules as gd_generate_dataset.

Tier limits (API key)

Capability Free Premium
Max rows / request 100 100,000
Max columns 10 50
Formats CSV CSV, JSON, XML, Parquet
Daily API calls 10 1,000

Limits are enforced by the Django API, not this MCP server.

Configuration

Variable Required Default
GENERATE_DATA_API_KEY Yes
GENERATE_DATA_API_BASE_URL No https://api.generate-data.com

Troubleshooting

Symptom Fix
GENERATE_DATA_API_KEY is required Set env var before starting the server
HTTP 401 / auth_failed Invalid or deactivated key
HTTP 429 / rate_limited Per-minute or daily cap hit; wait or upgrade tier
HTTP 403 / tier_forbidden Free tier lacks access; upgrade plan
unsupported_format format must be one of csv, json, xml, parquet, zip
invalid_input on a field type or project ID Value failed server-side validation before any request was sent — check spelling/type

Development

git clone https://github.com/ns-3e/generate-data-mcp.git
cd generate-data-mcp
pip install -e ".[dev]"
pytest tests/ -v

API docs

Docs live on generate-data.com. See this repo's tool docstrings (generate_data_mcp/server.py) for the authoritative request/response shapes.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

generate_data_mcp-2.0.1.tar.gz (132.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

generate_data_mcp-2.0.1-py3-none-any.whl (13.1 kB view details)

Uploaded Python 3

File details

Details for the file generate_data_mcp-2.0.1.tar.gz.

File metadata

  • Download URL: generate_data_mcp-2.0.1.tar.gz
  • Upload date:
  • Size: 132.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for generate_data_mcp-2.0.1.tar.gz
Algorithm Hash digest
SHA256 8d946c35b7f1e22180cf603bfb11c295a14d3df7d52f67769a9b84a596e6033a
MD5 fef4ee551a31ab19959b3f3647de83c5
BLAKE2b-256 7014e3579bcb16739a3d5cd72c2af4770f2a1a5f118884a85b1f0f1742fd6311

See more details on using hashes here.

File details

Details for the file generate_data_mcp-2.0.1-py3-none-any.whl.

File metadata

  • Download URL: generate_data_mcp-2.0.1-py3-none-any.whl
  • Upload date:
  • Size: 13.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for generate_data_mcp-2.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e90a7e063bd796ceb32ba8f38907f77a70be4b2007f604361611d57d594794fa
MD5 e3d9cc0d0c4de7ac46901398eb220b66
BLAKE2b-256 39885d5f9e873550fbf4879086d5a51c32aaff5a3dd665cd7e2c6bc2e8b96dc7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page