Four tools, available identically over MCP and REST. No key, no account, no signup.
| Surface | Address |
|---|---|
| MCP | POST https://wikexa.com/mcp |
| REST | GET https://wikexa.com/v1/{lookup,article,search,recent} |
| Status | GET /v1/stats, GET /health |
| Machine docs | /llms.txt, /openapi.json, /.well-known/mcp.json |
MCP and REST call the same handlers, so behaviour cannot drift between them. Everything below applies to both.
The one you will use most. Returns structured facts plus a ~200-token summary.
curl -s 'https://wikexa.com/v1/lookup?entity=Ada%20Lovelace'
| Parameter | Type | Notes |
|---|---|---|
entity | string | Required. Name, Wikipedia title, alias, or Wikidata Q-id. |
Resolution tries the canonical title first, then an alias index built from Wikipedia redirects and Wikidata labels. The response reports which path matched in resolved_via (exact, alias or qid), so you can tell an exact hit from a fuzzy one.
{
"title": "Ada Lovelace",
"wikidata_id": "Q7259",
"description": "English mathematician (1815-1852)",
"summary": "Augusta Ada King, Countess of Lovelace, was an English…",
"infobox": { "born": "1815-12-10", "known_for": "…" },
"facts": { "occupation": "mathematician", "citizenship": "United Kingdom" },
"categories": ["English mathematicians", "…"],
"related": ["Charles Babbage", "Analytical Engine", "…"],
"section_titles": ["Biography", "Work", "…"],
"resolved_via": "exact",
"source_url": "https://en.wikipedia.org/wiki/Ada_Lovelace",
"license": "Wikipedia text CC BY-SA 4.0; Wikidata facts CC0"
}
Empty fields are omitted rather than returned as null, so you never pay tokens for absent data.
The full page as structured JSON, with the token dial in your hands.
| Parameter | Type | Notes |
|---|---|---|
title | string | Required. Same resolution as lookup. |
sections | string[] | Optional. Section names to include, matched case-insensitively as substrings. |
max_chars | integer | Optional. Cap on total section text returned. |
# whole article
curl -s 'https://wikexa.com/v1/article?title=Aristotle'
# one section only
curl -s 'https://wikexa.com/v1/article?title=Aristotle§ions=Logic'
# hard cap
curl -s 'https://wikexa.com/v1/article?title=Aristotle&max_chars=2000'
When either filter applies, the response sets sections_filtered or truncated and lists every available section name in sections_available, so an agent can decide whether to ask for more. In REST, sections accepts a comma-separated list.
For when you do not know the exact title.
| Parameter | Type | Notes |
|---|---|---|
query | string | Required. Free text. |
limit | integer | Optional, 1–50, default 10. |
Full-text relevance is blended with monthly pageviews and an exact-title bonus, and disambiguation pages are penalised. That is why apple returns Apple Inc. and the fruit rather than a list of stubs. Each result carries title, wikidata_id, description, summary_snippet and monthly_views.
Articles changed recently — the facts newer than your training cutoff.
| Parameter | Type | Notes |
|---|---|---|
topic | string | Optional. Case-insensitive filter on title or edit comment. |
hours | integer | Optional, 1–168, default 24. |
limit | integer | Optional, 1–100, default 25. |
Each change carries a title you can feed straight back into lookup().
REST returns 404 with a JSON body for a miss. Over MCP the same condition comes back as a normal result with isError: true — the transport worked, the entity simply was not found. Bodies look like:
{ "error": "not_found", "query": "…", "message": "…", "hint": "Try search(query)…" }
| Header | Meaning |
|---|---|
x-wikexa-cache | hit, partial or miss at the edge. |
x-wikexa-ops | Storage operations the request cost, e.g. r2=0,kv=0. |
x-wikexa-ms | Server-side time in milliseconds. |
Every response carries source_url and license. If you display article text, carry them through — CC BY-SA 4.0 requires attribution and share-alike. See Licensing.