Skip to main content

Model any domain in 7 questions — a WQuestions MCP server.

Project description

wquestions-mcp

Model any domain in 7 questions.

An MCP server that lets Claude Desktop (or any MCP client) build and query a knowledge model of anything — a spa, a barbershop, a clinic, a bank — using one fixed set of tools. No per-domain schema to write, ever.

The problem

Every domain today gets its own bespoke ontology or database schema: a CRM schema for sales, a clinical model for a clinic, a different one again for a bank or a taxi dispatcher. None of it transfers between domains, and none of it was designed for an LLM to reason over — each new domain means new modeling work before an AI can even start answering questions about it.

WQuestions replaces all of that with a single fixed index: 7 axes that any fact, in any domain, answers. Model a domain by asserting facts on those 7 axes; query it the same way no matter what the domain is.

The 7 axes

Axis Question Holds
Q who agents
O what objects, and reified situations (facts treated as things)
L where places
T when time points and intervals
N how much magnitudes with a unit
K which / what kind atemporal categories, types, states
M how the predicates that connect Q/O/L/T/N/K to each other — structural, not a value axis

demo

Quickstart

Add this to your Claude Desktop config (claude_desktop_config.json) and restart Claude Desktop:

{
  "mcpServers": {
    "wquestions": {
      "command": "uvx",
      "args": ["wquestions-mcp"]
    }
  }
}

Prefer to run from source? Clone this repo and, from the repo root, pip install -e . into a virtualenv (the engine is bundled — no other package needed). Then point command/args at that venv's wquestions-mcp script (e.g. command: ".../.venv/bin/wquestions-mcp", args: []) instead of uvx.

Then ask Claude: "Load the spa example, then show me the model." See DEMO.md for the full 30-second walkthrough.

Tools

Tool Does
list_axes Describe the 7 axes
list_roles List canonical roles (who/what/where/... connectors), typed by domain and range
add_entity Create an individual on a value axis (Q, O, L, T, N, K)
define_verb Register a situation type and its roles — optional, assert_situation auto-registers unknown verbs
assert_situation Assert a fact: reify a situation and attach its roles
ask Query by projection — fix some roles, ask for others, optionally as of a point in time
show_model Dump the current universe: every entity and fact
load_example Load a prebuilt demo universe (spa) to try queries instantly
reset Clear the model and start a fresh universe

How it works

The LLM client does the natural-language-to-structure step: it reads "Diego cut Marco's hair at Barber Kings on 2025-06-11" and turns it into role-labeled arguments (agente: diego, paciente: marco, lugar_de: barber_kings). The server never parses English — it takes those roles, validates them against the 7-axis model, and runs ingest and query over the wq engine. Same engine, same 9 tools, whether the domain behind them is a spa or a barbershop.

Further reading

The 7-axis model — why it's fixed, what each axis actually commits to, and how it holds up once you push on it — is worked out in full in WQuestions, the book this project comes from (Spanish). Start with Chapter 8, El espacio multidimensional for the axis model itself, or the table of contents.

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

wquestions_mcp-0.1.0.tar.gz (21.2 kB view details)

Uploaded Source

Built Distribution

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

wquestions_mcp-0.1.0-py3-none-any.whl (22.6 kB view details)

Uploaded Python 3

File details

Details for the file wquestions_mcp-0.1.0.tar.gz.

File metadata

  • Download URL: wquestions_mcp-0.1.0.tar.gz
  • Upload date:
  • Size: 21.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","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 wquestions_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 54ffd54f488b3548c927dd269999a573f0d9559952af8833e089d72aba415c4d
MD5 639de729f5dce256a6f74180fce1b01b
BLAKE2b-256 d9835f178bb77e4f527c56aeefb19dc634c675cb11ce62ebfb87a62b00c3e377

See more details on using hashes here.

File details

Details for the file wquestions_mcp-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: wquestions_mcp-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 22.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","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 wquestions_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0a91b0ca4e8237e72d8e6cc6a00a55b0605c08bc4f4b72d14e673df34fa692a2
MD5 01719c4917f26935806403d12eec1a71
BLAKE2b-256 beba12887e287134f193db948639043cd13962969ced1386e1e7de37b92126a7

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