foundry-rest-api-mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FOUNDRY_API_KEY | Yes | Sent as the x-api-key header. Must include all five v1 scopes. | |
| FOUNDRY_USER_ID | No | Scope actions to a Foundry user's permissions. Omit for GM access. | |
| FOUNDRY_CLIENT_ID | No | Which connected world to target. Auto-resolves when exactly one world is online. | |
| FOUNDRY_RELAY_URL | No | Relay base URL. Default: https://foundryrestapi.com | https://foundryrestapi.com |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| foundry_list_worldsA | List all Foundry VTT worlds/clients connected to the relay, including their online status, system, and version info. |
| foundry_searchA | Search for Foundry entities by name. Returns UUID, documentType, subType, and package. This is the primary way to turn a name into a UUID for use with other tools. Use filter to narrow results, e.g. "Actor" or "documentType:Item,subType:weapon". |
| foundry_get_entityA | Retrieve a Foundry entity by UUID, or the currently selected token/actor. Returns the full document including system data and embedded items. |
| foundry_create_entityA | Create a new Foundry entity (Actor, Item, JournalEntry, etc.) with a raw Foundry document. Returns the new entity UUID and document. |
| foundry_update_entityA | Update an existing Foundry entity by UUID or current selection. Pass only the fields to change. |
| foundry_delete_entityA | Permanently delete a Foundry entity by UUID or current selection. This action is irreversible. |
| foundry_modify_actorA | Give/remove items, increase/decrease numeric attributes, or kill (set HP to 0) an actor. Use action to select the operation. |
| foundry_create_creatureA | Build a dnd5e 5th-edition NPC actor from a friendly schema and create it in Foundry. Returns the new actor UUID and document. Only available when the connected world is dnd5e. ⚠️ Attack schema targets dnd5e v5.2.2 activities model — verify against a live NPC if attacks look wrong. |
| foundry_manage_folderA | Create or delete a Foundry folder. After creating a folder, pass the returned uuid as the folder argument when creating entities. Limitation: finding existing folders requires structure:read (not in v1 scope) — only freshly-created folder UUIDs are known. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 9 tools
Most tools have distinct purposes (search vs get vs delete vs create), but there is some overlap between generic update_entity and specialized modify_actor, and between create_entity and create_creature. Descriptions help clarify boundaries, though agents might occasionally misselect.
Tool names follow a consistent 'foundry_' prefix with snake_case, and most use verb_noun patterns (list_worlds, create_entity, update_entity). Minor deviations: 'foundry_search' lacks a noun, and 'foundry_manage_folder' uses the vaguer verb 'manage' instead of create/delete.
Nine tools is well-scoped for a Foundry REST API server, covering core entity operations, world listing, search, and specialized dnd5e helpers without unnecessary bloat.
The set provides full CRUD for entities, search, and world listing, plus useful specialized tools for actor modification and creature creation. Minor gaps exist like no generic list_entities operation, but agents can work around these.