Read and write typed fictional worlds (22 linked element types) via the OnlyWorlds open standard.
healthy
status
11
tools exposed
1104ms
connect latency
255a672acaaf
schema fingerprint
Tools (11)
list_element_types
List all 22 OnlyWorlds element types with a one-line shape summary of each.
Every world is built from these types; each element has a stable UUID `id`, a
`name`, and a `type`. Use `get_element_schema(type)` for a type's full field
list. Unauthenticated — schema is public reference. Returns a mappin
get_element_schema
Return the field structure of one OnlyWorlds element `type` (a slug from
`list_element_types`, e.g. "character").
The result groups the type's writable fields by kind so a caller knows how to
read and write them: `text` (strings), `integer`, `single_link` (one UUID),
`multi_link` (an array of UUIDs
search_schema
Search every element type's fields for `query` (case-insensitive substring),
across all 22 types. Useful for "which types have a `location` field?" or
finding where a concept lives in the schema.
Returns a mapping of type slug -> the matching field names in that type (types
with no match are omitte
list_elements
List elements of one `type` in the world named by your API-Key header,
newest-created first.
`type` is a slug from `list_element_types` (e.g. "character"). Optional
`name_contains` filters by case-insensitive name substring; `supertype`
filters exactly. `limit` (default 100, max 1000) and `offset`
get_element
Fetch one element by `type` and `id` (a UUID) from the world named by your
API-Key header.
`type` is a slug from `list_element_types`. Returns the full v2 wire shape
(the same body as `GET /api/v2/{type}/{id}`): `type`, `id`, `name`, scalar
fields, link fields as UUID arrays, and any extension fiel
search_elements
Search elements by name across ALL 22 types in the world named by your
API-Key header (case-insensitive substring match).
Use this when you know part of a name but not the element's type. Bounded to at
most 50 matches per type. Returns `{query, results: [{type, id, name,
supertype, subtype}, ...]}`
get_changes
Return the delta feed for the world named by your API-Key header: every
element created/updated (`op: "upsert"`, full body) or deleted (`op:
"delete"`) since `since_cursor`, in apply order, in pages of `limit`
(default 25, max 1000). Entries carry FULL element bodies — a default page
stays inside an
create_element
Create one new element of `type` in the world named by your API-Key header.
`type` is a slug from `list_element_types` (e.g. "character"). `element` is the
field payload: `name` plus any scalar, link, or extension fields for that type
(call `get_element_schema(type)` for the field structure). Link
update_element
Update an existing element by `type` and `id`, changing ONLY the fields you
pass — omitted fields are preserved.
This is a server-side read-merge: the current element is loaded and only the
keys in `fields` are applied, so it is safe against the raw-HTTP-PATCH hazard
where sending a partial link ar
edit_links
Add and/or remove links on ONE multi-link `field` of an element, leaving the
rest of that field's array untouched.
Use this for additive/subtractive link edits (unlike `update_element`, which
REPLACES a link array). `type` is a slug from `list_element_types`; `id` is the
element's UUID; `field` mus
bulk_apply
Create and/or update many elements across any of the 22 types in one call.
Each entry in `items` is `{"type": <slug>, "element": <payload>}` with the same
payload shape `create_element` takes: an `element` with an `id` UPDATES that id
(creating it if absent), an `element` without an `id` CREATES a
Endpoint
https://www.onlyworlds.com/mcp Category: Maps & Weather · Last checked: 2026-08-15T09:11:41Z
Monitor your own MCP server
Get alerted the moment yours goes down, a tool schema drifts, or an upstream silently breaks.
What this means. This server responded to the MCP handshake and listed its tools without authentication. The schema fingerprint lets us flag if tool signatures silently change (schema drift) between checks.