foundry-cli
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FOUNDRY_URL | Yes | Base URL of the Foundry instance, e.g. https://foundry.example.com | |
| FOUNDRY_WORLD | Yes | The world name that must be active | |
| FOUNDRY_GM_USER | Yes | Foundry user to authenticate as (must have GM role) | |
| FOUNDRY_BASIC_PASS | No | HTTP Basic Auth password | |
| FOUNDRY_BASIC_USER | No | HTTP Basic Auth username (if Foundry is behind a proxy) | |
| FOUNDRY_GM_PASSWORD | Yes | Password for that user |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| actor_listA | List all actors in the active Foundry world. Each actor includes _id, name, and type. Use Actor.<_id> as the UUID when linking to an actor sheet from journal content. |
| journal_listA | List all journal entries in the active Foundry world. |
| journal_upsertC | Create or update a journal entry by title. Idempotent. public=True sets OBSERVER ownership so players can see the journal. folder is created automatically if it does not exist. |
| journal_deleteA | Delete a journal entry by title. Returns False if not found. |
| category_listB | List all categories in a journal. |
| category_upsertB | Create a category within a journal. Idempotent. Categories must exist before pages can reference them. Common names: NPCs, Settlements, Factions, Locations. |
| category_deleteB | Delete a category from a journal by name. Returns False if not found. |
| page_listC | List all pages in a journal. Each page includes _category_name, title.level, and type fields. |
| page_upsertA | Create or update a journal page. Idempotent. content is HTML. level controls sidebar indentation (1=top, 2=indented under the preceding level-1 page). category must already exist — call category_upsert first. public=True sets OBSERVER ownership so players can see this page. index: 0-based position within the category. When set, all pages in the category are reindexed with clean sort values so the page lands at that position. Omit to leave sort order unchanged. |
| page_reorderA | Set sort order for a list of pages. Returns the number of pages updated. Assigns sort values 100000, 200000, ... to the listed pages in the given order. Pages not in the list are left untouched. Use this to establish ordering after bulk creation, or to fix sort conflicts. |
| page_deleteC | Delete a page from a journal by title. Returns False if not found. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
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/allardhoeve/foundry-cli'
If you have feedback or need assistance with the MCP directory API, please join our Discord server