OnlyWorlds is an MCP server with 11 tools an agent can call, among them bulk_apply, create_element, edit_links. It answers at https://www.onlyworlds.com/mcp over streamable HTTP, and it listed its tools to an anonymous client, so no sign-in was needed for that. Our probes reached it 10 of 10 times since 5 September 2026; the last check, on 18 October 2026, succeeded.
Read and write typed fictional worlds (22 linked element types) via the OnlyWorlds open standard.
Description as the publisher wrote it.
| Tool | What it does |
|---|---|
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 (crea Inputs: items, atomic |
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 Inputs: type, element |
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 `l Inputs: type, id, field, add, remove |
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). Entrie Inputs: since_cursor, limit |
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 Inputs: type, id |
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` Inputs: type |
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. Una |
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` fil Inputs: type, name_contains, supertype, limit, offset |
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 `{qu Inputs: query |
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 matchi Inputs: query |
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 agains Inputs: type, id, fields |
Every block below points at https://www.onlyworlds.com/mcp. Pick your client and copy.
claude mcp add --transport http onlyworlds https://www.onlyworlds.com/mcp
{
"mcpServers": {
"onlyworlds": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://www.onlyworlds.com/mcp"]
}
}
}{
"mcpServers": {
"onlyworlds": {
"url": "https://www.onlyworlds.com/mcp"
}
}
}{
"servers": {
"onlyworlds": {
"type": "http",
"url": "https://www.onlyworlds.com/mcp"
}
}
}{
"context_servers": {
"onlyworlds": {
"url": "https://www.onlyworlds.com/mcp"
}
}
}{
"mcpServers": {
"onlyworlds": {
"serverUrl": "https://www.onlyworlds.com/mcp"
}
}
}{
"mcpServers": {
"onlyworlds": {
"url": "https://www.onlyworlds.com/mcp"
}
}
}name: OnlyWorlds
version: 0.0.1
schema: v1
mcpServers:
- name: OnlyWorlds
type: streamable-http
url: https://www.onlyworlds.com/mcp{
"mcpServers": {
"onlyworlds": {
"httpUrl": "https://www.onlyworlds.com/mcp"
}
}
}{
"mcpServers": {
"onlyworlds": {
"type": "http",
"url": "https://www.onlyworlds.com/mcp"
}
}
}{
"mcpServers": {
"onlyworlds": {
"url": "https://www.onlyworlds.com/mcp"
}
}
}goose://extension?url=https%3A%2F%2Fwww.onlyworlds.com%2Fmcp&type=streamable_http&id=onlyworlds&name=OnlyWorlds
It answered our last check on 18 October 2026 in 155 ms. Over 10 checks since 5 September 2026 it answered 10. Status here comes from Neuronto's own probes, not from the publisher.
Yes. It is published by onlyworlds.com and served from www.onlyworlds.com, the vendor's own domain: https://www.onlyworlds.com/mcp.
11, as returned by the server's own tools/list on 31 August 2026: bulk_apply, create_element, edit_links, get_changes, get_element, get_element_schema, list_element_types, list_elements, and 3 more.
It answered our last check on 18 October 2026 in 155 ms. Over 10 checks since 5 September 2026 it answered 10.
Put the server under mcpServers in ~/.cursor/mcp.json with the URL https://www.onlyworlds.com/mcp. The exact JSON is above, with the same setup for Claude Code, Claude Desktop, VS Code, Windsurf, Zed, Gemini CLI and the rest.
It listed its tools to an anonymous client, so reading the tool list needs no key. Individual tools can still ask for credentials in their own inputs.
Publisher: com.onlyworlds. Endpoint host: www.onlyworlds.com. ARD identifier: urn:air:com.onlyworlds:mcp:mcp.
First indexed 31 August 2026. The tools are exactly what the server returned; nothing on this page
is inferred from its name. Ranking in Neuronto search is never for sale.