83trust / 100

OnlyWorlds

by onlyworlds.com in Other

MCP serverPassing, checked 7 h ago

Read and write typed fictional worlds (22 linked element types) via the OnlyWorlds open standard.

https://www.onlyworlds.com/mcp
Tools
12
open to any client
Uptime
100%
last 30 days
Response time
149 ms
305 ms slowest 5%
Last check
Passed
7 h ago, next any minute now

Scan it nowHow to connect

Reliability

All checks passedSome failedAll failedNot checked

Status and outage history · Atom feed · Watch with other listings

How to connect

Add it to any MCP client that supports remote servers.

{
  "mcpServers": {
    "onlyworlds": {
      "type": "http",
      "url": "https://www.onlyworlds.com/mcp"
    }
  }
}

12 tools

  • 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…

  • 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)…

  • 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…

  • 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…

  • 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…

  • 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…

  • 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…

  • 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…

  • 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…

  • 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…

  • 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`…

  • get_image_upload_ticket

    Get a ticket to upload ONE image into this world, for an element's `image_url` (Keel #59). The image never passes through this tool: you send its bytes yourself, straight to the image host, with the ticket. Steps: 1. Call this tool. You get `ticket`, `upload_url`, `max_bytes`…

Security scan

No findings

We scan names, descriptions and tool definitions for hidden instructions and other prompt-injection patterns.

Recent checks

WhenResultHTTPTime
7 h agoPassed200149 ms
18 h agoPassed200125 ms
28 h agoPassed200149 ms
38 h agoPassed200187 ms
2 days agoPassed20092 ms
Show 10 older checks
2 days agoPassed200252 ms
3 days agoPassed200184 ms
3 days agoPassed200229 ms
4 days agoPassed200152 ms
4 days agoPassed20081 ms
4 days agoPassed200197 ms
5 days agoPassed200146 ms
5 days agoPassed200190 ms
6 days agoPassed200134 ms
6 days agoPassed200134 ms