Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
WA_AUTH_TOKENNoYour personal API token from World Anvil.
WA_API_BASE_URLNoBase URL of a proxy that injects an application key. Alternative to WA_APPLICATION_KEY.
WA_APPLICATION_KEYNoYour application key from World Anvil. Required unless using a proxy.

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_identityA

Return the authenticated World Anvil user (id + username). Use to verify credentials are working.

list_worldsA

List all worlds owned by (or shared with) the authenticated user, with their ids. Usually the first call in a session — most other tools need a world_id from here.

get_worldA

Full details of one world: description, settings, counts and links. Use list_worlds first to find the world_id.

list_articlesA

List ALL articles in a world (auto-paginates; nothing is hidden). Every World Anvil entity — NPCs (person), locations, organizations, session reports, plots, myths — is an article with a template type, shown as [type] on each line. Optionally filter by category or template type. For keyword lookups prefer search_articles.

search_articlesA

Find articles in a world by keyword. Case-insensitive match against title, slug and tags. Multiple words must all match. Fast (metadata only) — to search inside article body text use search_content instead. Use get_article on a result id to read content.

get_articleA

Read one article in full: content (BBCode), sidebar, tags, category, relations, and template-specific fields (a person's dob/ethnicity/organizations, etc.). Content uses World Anvil BBCode; links to other articles appear as @Title mentions — those uuids can be fetched with get_article too, which makes this the way to walk the world's knowledge graph for context.

create_articleA

Create a new article in a world. Content is World Anvil BBCode ([h1]..[/h1], [b], [url], @Title mentions). New articles default to private+draft so you can review before publishing (pass state='public' and is_draft=false to publish immediately).

update_articleA

Update an existing article. Only the fields you provide are changed. NOTE: content is REPLACED wholesale — to edit, get_article first, modify, send back the full body.

delete_articleA

PERMANENTLY delete an article. This is irreversible — World Anvil has no trash bin for articles. Confirm with the user before deleting anything they didn't explicitly name.

list_categoriesA

List all categories (folders) of a world. Articles reference these by id in their category= field; use the ids to filter list_articles or to file new articles.

create_categoryA

Create a category (folder) in a world, optionally nested under a parent category.

update_categoryA

Rename a category or move it under a different parent. Only provided fields change.

delete_categoryA

PERMANENTLY delete a category (irreversible). Articles inside are NOT deleted — they become uncategorized. Confirm with the user first.

search_contentA

Full-text search INSIDE the world's text: article bodies (content, sidebars, footnotes …), GM-only secrets, and notebook notes, returning matches with context snippets. All words must appear in the same entity (case-insensitive). Backed by a local cache that self-refreshes on every call, so results are always current; the very first call on a world builds the cache and can take a minute. For title/tag lookups search_articles is faster.

find_referencesA

Find every article, secret or note that LINKS TO a given article. World Anvil stores links as @Title mentions, so this searches cached text for the target's uuid — exact backlinks, no false positives from name coincidences. Use it for questions like 'where is this NPC mentioned?' or before deleting an article. Self-refreshing cache; first call on a world builds it (can take a minute).

list_assetsA

List a world's non-article resources: secrets (GM-only notes), maps, timelines, histories (timeline events), notebooks, or subscribergroups (player visibility groups). Auto-paginates; returns one line per asset with its id. Use get_asset to read one in full. For articles use list_articles instead.

get_assetA

Read a single asset in full. kind=map returns the ASSEMBLED hierarchy (map + layers + marker groups + all markers with their article links — several API calls, worth it: markers are where geography meets lore). kind=notebook returns notebook + sections + notes. secret/timeline/history/subscribergroup return the entity itself. For articles use get_article.

export_worldA

Clone a COMPLETE world to a local directory as raw full-granularity JSON — articles, categories, secrets, map hierarchies (layers/groups/markers), timelines, histories, notebooks+notes, subscriber groups, world meta — plus downloaded image binaries and an entities.json id→{title,slug,file} index for rewriting @mention links during migration. Makes hundreds of API calls; takes minutes on a large world. Returns a summary; data goes to disk, NOT into context — read specific exported files afterwards if needed. Refuses to write into a non-empty directory that isn't a previous export. Requires an absolute output path.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/daireb/worldanvil-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server