OpenFic MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| OPENFIC_BASE_URL | Yes | Base URL of the OpenFic backend, e.g., http://127.0.0.1:8000 | |
| OPENFIC_API_PREFIX | No | API prefix of the OpenFic backend. Defaults to '/api/v1'. | /api/v1 |
| OPENFIC_MCP_READ_ONLY | No | Set to 'false' to enable write tools. Defaults to 'true'. | true |
| OPENFIC_MCP_WRITE_SCOPES | No | Comma-separated list of write groups (projects,volumes,chapters,characters,notes,worldbooks). Defaults to empty. | |
| OPENFIC_ALLOW_NON_LOOPBACK | No | Set to 'true' to allow non-loopback addresses. Defaults to 'false'. | false |
| OPENFIC_PROJECT_WORLDBOOKS | No | JSON mapping of project IDs to worldbook IDs, e.g., {"project-id":"world-info-id"}. |
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": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| openfic_healthA | Check whether the local OpenFic API is available. |
| list_projectsC | List OpenFic projects with pagination. |
| get_projectB | Get details of a single OpenFic project. |
| get_project_summaryB | Get a compact project summary, including description and writing statistics. |
| list_volumesA | List volumes of an OpenFic project in display order. |
| get_volumeB | Get details of a single OpenFic volume. |
| list_chaptersA | Get a project's volume/chapter outline without chapter bodies. |
| get_chapterB | Get a chapter, optionally limiting returned body characters. |
| search_chaptersB | Search chapter contents and return matching chapters and lines. |
| list_chapter_summariesA | List generated chapter summaries. Use page_size=50 to read recent chapter-summary context before writing. |
| list_long_term_summariesA | List generated long-term (interval) summaries. Use page_size=100 to read all available interval context before writing. |
| list_charactersA | List characters in an OpenFic project. |
| get_characterC | Get a character including its description. |
| search_charactersC | Search character names and descriptions. |
| list_notesA | Get a project's note/category tree without note bodies. |
| get_noteB | Get a note including its content. |
| search_notesC | Search note contents and return matching lines. |
| get_worldbookC | Get a worldbook by its ID. |
| read_project_worldbookA | Read a project's configured worldbook and full entry contents without needing a world_info_id. It never creates a worldbook; configure the project mapping locally first. |
| list_worldbook_entriesA | List worldbook entries without their content bodies. |
| get_worldbook_entryC | Get a worldbook entry including content. |
| search_worldbook_entriesC | Search entries in a worldbook. |
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 22 tools
Each tool targets a distinct resource and action: list/get/search are consistently separated, and worldbook tools are differentiated by purpose (by ID vs project-configured). No two tools appear to do the same thing.
All tools follow a clear verb_noun pattern (list_, get_, search_, read_, openfic_health being the only exception, but that is a distinct health check). The naming is consistent and predictable.
22 tools is slightly above the typical range, but each tool earns its place given the breadth of entity types (projects, volumes, chapters, summaries, characters, notes, worldbooks). The count is reasonable for the scope.
The read-only surface covers all major entities with list/get/search variants, leaving no obvious dead ends for reading. Write operations (create/update/delete) are absent, but the server appears intentionally read-only for context provision, so only minor gaps like search_projects exist.