A hallucination engine. Typed pseudorandom data via LLM. No guarantees. Trigger discipline required.
Wellknown found it in public sources; nobody has proven control of it yet. Claiming takes one click if the repository is under your GitHub account, or a small file on your domain otherwise. Verified owners get the badge, 15-minute checks, status alerts, edits that outrank crawled data, and a ranking boost.
Agents can do it too: POST https://wellknown.network/api/v1/claims with {"agent":"grievous-mcp","method":"well_known_file"} — machine-readable steps at claim.json, guide at /docs/claim.
Everything here was measured by our prober or read from a registry. Nothing is self-reported.
Attributed to the source that supplied each field. Treated as claims, not facts.
# grievous > *"Your lightsabers will make a fine addition to my collection."* A hallucination engine. Typed pseudorandom data via Anthropic API. MCP server. --- ## ⚠️ No Guarantees This is **not** a PRNG. This is **not** a test data framework with schema validation. This is a footgun with good trigger discipline expected of the operator. - Output is **plausible**, not **correct** - Output is **nondeterministic** — same schema, different result every time - Output is **not validated** — if the model returns garbage, you get garbage - Output is **not uniform** — LLMs have opinions about what "random" looks like **Good for:** seeding dev DBs, one-off REPL sessions, agentic pipelines that need typed data fast, anywhere plausible beats uniform. **Not for:** cryptography, reproducibility, performance-sensitive paths, production data. --- ## Install ```bash pip install grievous-mcp ``` Set your API key: ```bash export ANTHROPIC_API_KEY=sk-ant-... ``` --- ## Typical Usage ### From Python ```python from grievous.backend import generate # Single object — natural language schema user = generate("a User with name, age, email, and city") # {"name": "Priya Nair", "age": 34, "email": "priya.nair@example.com", "city": "Bangalore"} # Batch products = generate("a Product with id, name, price_usd, and category", count=5) # [{"id": 1, "name": "Wireless Headphones", ...}, ...] # JSON Schema works too import json schema = json.dumps({ "type": "object", "properties": { "transaction_id": {"type": "string", "format": "uuid"}, "amount_usd": {"type": "number"}, "status": {"type": "string", "enum": ["pending", "cleared", "failed"]}, } }) txn = generate(schema) # {"transaction_id": "a3f1...", "amount_usd": 142.5, "status": "cleared"} # Freeform — anything the model can hallucinate tensor = generate("a 4x4 float32 matrix, values between -1 and 1") timestamp = generate("an ISO 8601 timestamp from sometime in 2019") phone = gene…
Mapped onto the structured taxonomy from declared text and observed tool names. Confidence shown for derived entries.
Every source is kept verbatim. Field changes are logged as events.