Read and write typed fictional worlds (22 linked element types) via the OnlyWorlds open standard.
Inferred from the transports this listing declares (streamable-http). A client not listed here hasn’t been ruled out — it just isn’t something Forge can confirm.
Verification confirms publisher identity (repo ownership), not code safety. The security scan covers known CVEs and suspicious install scripts.
Read from a real MCP initialize → tools/list handshake against the declared endpoint. No tool was ever invoked — tools/list is the read-only introspection call the protocol defines for this. It reflects what the server advertised at that moment; a hosted endpoint is not pinned to any version and can change without notice.
https://www.onlyworlds.com/mcp11 tools · 832mslist_element_typesList 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 mappi…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 mappi…
No input schema was published for this tool.
get_element_schemaReturn 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 UUID…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 UUID…
| Parameter | Type | Description |
|---|---|---|
| type* | string | — |
search_schemaSearch 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 omitt…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 omitt…
| Parameter | Type | Description |
|---|---|---|
| query* | string | — |
list_elementsList 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`…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`…
| Parameter | Type | Description |
|---|---|---|
| type* | string | — |
| name_contains | — | — |
| supertype | — | — |
| limit | integer | — |
| offset | integer | — |
get_elementFetch 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 fie…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 fie…
| Parameter | Type | Description |
|---|---|---|
| type* | string | — |
| id* | string | — |
search_elementsSearch 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}, ...]}…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}, ...]}…
| Parameter | Type | Description |
|---|---|---|
| query* | string | — |
get_changesReturn 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 a…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 a…
| Parameter | Type | Description |
|---|---|---|
| since_cursor | — | — |
| limit | integer | — |
create_elementCreate 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…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…
| Parameter | Type | Description |
|---|---|---|
| type* | string | — |
| element* | object | — |
update_elementUpdate 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 a…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 a…
| Parameter | Type | Description |
|---|---|---|
| type* | string | — |
| id* | string | — |
| fields* | object | — |
edit_linksprivilegedAdd 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` mu…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` mu…
| Parameter | Type | Description |
|---|---|---|
| type* | string | — |
| id* | string | — |
| field* | string | — |
| add | — | — |
| remove | — | — |
bulk_applyCreate 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…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…
| Parameter | Type | Description |
|---|---|---|
| items* | array | — |
| atomic | boolean | — |
11 of 11 tools published a description.
Tool names and descriptions are written by the publisher and shown verbatim as inert text. They are the strings an MCP client passes to a model, so Forge scans them for prompt-injection patterns — any finding appears with the security scan above. “Privileged” is a keyword match on the tool name, not an audit of what the tool does: a benign-sounding name can still do anything.
Read and write typed fictional worlds (22 linked element types) via the OnlyWorlds open standard.
Linked names open Forge’s index of every entry observed exposing that tool. Browse all indexed tools.
This entry publishes no npm package, so Forge has no dependency tree for it. That is a gap in coverage — not a statement that it has no dependencies.