Kanka MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| KANKA_API_TOKEN | Yes | Your Kanka API token |
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 | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_campaignsA | List all campaigns |
| searchC | Search entities |
| list_charactersA | List characters. Use per_page to keep responses small enough to be returned whole, and entry_filter to return only records whose entry is empty or filled. |
| get_characterB | Get details of a character |
| create_characterC | Create a new character |
| update_characterC | Update an existing character |
| delete_characterC | Delete an existing character |
| list_locationsB | List locations. Use per_page to keep responses small enough to be returned whole, and entry_filter to return only records whose entry is empty or filled. |
| get_locationC | Get details of a location |
| create_locationD | Create a new location |
| update_locationC | Update an existing location |
| delete_locationC | Delete an existing location |
| list_familiesB | List families. Use per_page to keep responses small enough to be returned whole, and entry_filter to return only records whose entry is empty or filled. |
| get_familyC | Get details of a family |
| create_familyC | Create a new family |
| update_familyC | Update an existing family |
| delete_familyC | Delete an existing family |
| list_organisationsA | List organisations. Use per_page to keep responses small enough to be returned whole, and entry_filter to return only records whose entry is empty or filled. |
| get_organizationC | Get details of a organization |
| create_organizationC | Create a new organization |
| update_organizationC | Update an existing organization |
| delete_organizationC | Delete an existing organization |
| list_itemsA | List items. Use per_page to keep responses small enough to be returned whole, and entry_filter to return only records whose entry is empty or filled. |
| get_itemC | Get details of a item |
| create_itemC | Create a new item |
| update_itemC | Update an existing item |
| delete_itemC | Delete an existing item |
| list_notesB | List notes. Use per_page to keep responses small enough to be returned whole, and entry_filter to return only records whose entry is empty or filled. |
| get_noteB | Get details of a note |
| create_noteC | Create a new note |
| update_noteC | Update an existing note |
| delete_noteB | Delete an existing note |
| list_eventsA | List events. Use per_page to keep responses small enough to be returned whole, and entry_filter to return only records whose entry is empty or filled. |
| get_eventC | Get details of a event |
| create_eventD | Create a new event |
| update_eventC | Update an existing event |
| delete_eventC | Delete an existing event |
| list_calendarsB | List calendars. Use per_page to keep responses small enough to be returned whole, and entry_filter to return only records whose entry is empty or filled. |
| get_calendarC | Get details of a calendar |
| create_calendarC | Create a new calendar |
| update_calendarC | Update an existing calendar |
| delete_calendarC | Delete an existing calendar |
| list_timelinesA | List timelines. Use per_page to keep responses small enough to be returned whole, and entry_filter to return only records whose entry is empty or filled. |
| get_timelineC | Get details of a timeline |
| create_timelineD | Create a new timeline |
| update_timelineC | Update an existing timeline |
| delete_timelineC | Delete an existing timeline |
| list_creaturesB | List creatures. Use per_page to keep responses small enough to be returned whole, and entry_filter to return only records whose entry is empty or filled. |
| get_creatureC | Get details of a creature |
| create_creatureC | Create a new creature |
| update_creatureC | Update an existing creature |
| delete_creatureC | Delete an existing creature |
| list_racesA | List races. Use per_page to keep responses small enough to be returned whole, and entry_filter to return only records whose entry is empty or filled. |
| get_raceC | Get details of a race |
| create_raceD | Create a new race |
| update_raceC | Update an existing race |
| delete_raceC | Delete an existing race |
| list_questsB | List quests. Use per_page to keep responses small enough to be returned whole, and entry_filter to return only records whose entry is empty or filled. |
| get_questB | Get details of a quest |
| create_questC | Create a new quest |
| update_questC | Update an existing quest |
| delete_questC | Delete an existing quest |
| list_mapsA | List maps. Use per_page to keep responses small enough to be returned whole, and entry_filter to return only records whose entry is empty or filled. |
| get_mapC | Get details of a map |
| create_mapC | Create a new map |
| update_mapC | Update an existing map |
| delete_mapC | Delete an existing map |
| list_journalsB | List journals. Use per_page to keep responses small enough to be returned whole, and entry_filter to return only records whose entry is empty or filled. |
| get_journalC | Get details of a journal |
| create_journalC | Create a new journal |
| update_journalC | Update an existing journal |
| delete_journalB | Delete an existing journal |
| list_abilitiesB | List abilities. Use per_page to keep responses small enough to be returned whole, and entry_filter to return only records whose entry is empty or filled. |
| get_abilityC | Get details of a ability |
| create_abilityC | Create a new ability |
| update_abilityC | Update an existing ability |
| delete_abilityD | Delete an existing ability |
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 77 tools
Each entity type has a clear list/get/create/update/delete split, so tool selection is mostly determined by the entity being managed. The generic `search` tool and the broad `list_*`/`get_*` surface add slight overlap, but no two tools appear to do the same job.
Nearly all tools follow a snake_case verb_noun pattern, such as `create_event` and `delete_calendar`. Minor deviations exist: `search` is a bare verb, and the spelling inconsistency between `list_organisations` and the CRUD tools using `organization` breaks the otherwise predictable naming.
77 tools for CRUD across 16 entity types is extremely heavy and well past the 50+ threshold for an oversized surface. The same coverage could be exposed with fewer generic or grouped tools, and this count is likely to overwhelm tool selection.
Core lifecycle coverage is strong: every major entity type has list/get/create/update/delete operations, avoiding obvious CRUD dead ends. However, campaign-level operations, relations, tags, posts, members, and other Kanka features are absent, so non-CRUD workflows may hit gaps.