Skip to main content
Glama
killbottleneck-mcp

killbottleneck-mcp

Official

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
KB_URLYesThe URL of your killBottleneck instance (e.g., http://SERVER-IP:8090)
KB_API_KEYYesAPI key generated in the killBottleneck app (user menu → API keys) with at least read access; 'Read and write' scope for write operations

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

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_mapsA

List goal maps the key owner can see — own, team and shared maps (id, title, node count, last update, access: owner/edit/work/read). Use archived=true to list archived maps instead.

get_mapA

Read one map as an indented tree with node ids, statuses ([✓] done, [~] in progress, [ ] todo), deadlines and owners. The header shows the key's access level (owner/edit = full write; work and read = only the status of the key owner's own nodes, like ticking off in the app). Always call this before modifying a map you have not read yet.

create_mapA

Create a new goal map from an outline. The map gets an apex (root goal) from title/apex_text; outline items become nested nodes. Layout is computed automatically. Max 200 nodes per call. Returns the created tree with node ids.

update_mapA

Rename a map or change its description (the project as a whole — not the apex node; the list of maps and the database show this title). Only title and description; archiving or the map style stay with people in the app. Requires full write access to the map.

add_nodesA

Add a subtree of nodes to an existing map under parent_id (or under the apex when parent_id is omitted). A node is a goal; a node with an assignee (owner) OR a deadline IS a task — that is the only kind of task in killBottleneck (there is no separate task record; new work = new node). NOTE: this re-computes the layout of the whole map. Max 200 nodes per call. Returns the updated tree.

update_nodeB

Update fields of one node: title, status (todo/in_progress/done), description, deadline (YYYY-MM-DD, empty string clears), planned_on (YYYY-MM-DD, today to +7 days, empty string clears — WHEN the key owner plans to work on it; this is how killBottleneck expresses priority, never by moving the deadline), owner (e-mail, empty string clears), wait_for_children, colour, icon (one emoji), who performs it (executor_kind / executor_name) and the automation wish (automation_wanted / automation_note). Unknown fields are rejected with the list of allowed ones. Marking status done may unblock waiting nodes, notify their owners and trigger automations on them.

delete_nodeA

Delete a node INCLUDING its whole subtree. The apex (root) cannot be deleted and whole maps cannot be deleted via the API. Irreversible — read the map first and double-check the node id.

create_ruleA

Create an automation rule on a map: WHEN trigger fires (and optional AND conditions match) DO the actions in order. Rules run for changes made in the UI, via API and by agents alike. Structural limits: 50 rules per map, 10 actions, 20 conditions — there is NO monthly run quota. A rule applies only to future events, never retroactively. node_id scopes the rule to one node (required for schedule rules whose actions target a node).

list_rulesA

List automation rules of a map: id, name, enabled, scope node, trigger, conditions, actions, last_fired and last_error (a non-empty last_error means the rule is misconfigured and its owner was notified).

update_ruleA

Update an automation rule. Pass only enabled to toggle it on/off; otherwise pass the FULL new shape (name, trigger, actions, optional conditions/node_id) — partial field edits are not merged. Edits apply to future events only and clear the rule's error state.

delete_ruleA

Delete an automation rule. Its run log stays (with the rule name snapshot). Irreversible.

list_rule_runsA

Read the run log of a map's automation rules (newest first, max 100): what fired, on which node, ok/failed/skipped and what the actions did. skipped = a safety stop (rule chain depth or per-save cap), detail says which.

list_rule_templatesA

List the instance-wide library of rule templates (shape of a rule without a map or node scope). To use one, read it and call create_rule on the target map with its trigger/conditions/actions — the created rule is an independent copy.

save_rule_templateA

Save a rule shape into the instance-wide template library (create, or update with template_id — only the author or an admin may update). Templates carry no map and no node scope; create_subnodes may only use parent=trigger_node. Template names are unique.

delete_rule_templateA

Delete a rule template from the library (author or admin only). Rules already created from it are independent copies and stay untouched.

get_org_structureA

Read the organization structure (the org map): positions and functions with node ids, holders and deputies. Use the node ids as dynamic rule targets "position:" / "deputy_of_position:". Read-only — holders and deputies are appointed by an admin in the app.

list_peopleA

List the people work can be assigned to: instance members (e-mail, display name, role) and external contacts visible to the key owner (their owner_email is a pseudo e-mail usable as owner). Use these e-mails as owner in create_map/add_nodes/update_node and in set_owner rules — an unknown e-mail is rejected. Read-only.

get_portfolioA

Read the portfolio overview across all team and shared maps the key owner can read (private maps are excluded, exactly like the Organization page): per-project completion, overdue and stuck items, people with overdue work and a 7-day change summary. Optional today=YYYY-MM-DD. Read-only.

create_eventA

Create a calendar EVENT with a time (meeting, call, dentist…) — NOT a task and not part of any map. Personal by default; calendar (a name from list_calendars) puts it into a SHARED calendar: company events (kind shared), a room/car booking (kind resource — needs time; end_time defaults to +60 min; an overlapping booking is refused and the error names the next free slot) or time off (kind absence — all-day, end_day for a range, participants = who is away, default the key owner). Optional participants (e-mails of instance members from list_people; each sees the event in their calendar) and a reminder N minutes before (in-app + e-mail). Times are the instance's local time.

create_eventsA

Create SEVERAL calendar events at once — e.g. every date of a lecture schedule, a seminar invitation or a training plan ("every Tuesday until January" = list each date). All or nothing: when one item is invalid nothing is written and the error names the item. An event that is already in the calendar (same title, day and time) is skipped and reported. calendar, participants and remind_before_min apply to all items. Max 30 items; time off goes one by one via create_event.

update_eventA

Change an existing event by id: your own, one in a shared calendar as admin/manager, or your own time off. Only the given fields change; an empty string clears time, end_day, end_time or calendar (calendar "" = make it personal). Moving day of a multi-day event keeps its length. participants replaces the whole list; remind false cancels the reminder.

delete_eventA

Delete an event by id (your own, or one in a shared calendar as admin/manager). If you were only invited, you leave the event instead and it stays for the others.

list_eventsA

List the calendar events the key owner sees — own, invited, and every event of the shared calendars — in a day range; default today−365 … +730. A multi-day event counts when it overlaps the range. Optional calendar = only that shared calendar. Read-only.

list_calendarsA

List the shared calendars of the instance — company events (shared), rooms and other bookable things (resource), vacations and time off (absence) — with kind, color, who may add entries (write_access) and whether time off needs approval. Read-only.

create_calendarA

Create a shared calendar (admin or manager only): kind shared = company events, resource = a room, car or other bookable thing (overlapping bookings are refused), absence = vacations and time off (needs_approval makes new entries wait for an admin/manager decision). visibility all = the whole team sees it (default); members = only the listed members (e-mails from list_people), and the creator — like a project shared with chosen people (an admin who is not listed does not see it either). write_access admins limits new entries to admins and managers. Archive a calendar to keep its history; delete_calendar removes it with all its events.

delete_calendarA

Delete a shared calendar by id or name together with ALL its events (admin or manager only). Cannot be undone — prefer archiving (not offered here) when the history should stay.

who_is_awayA

Who is away — time off from absence calendars that is approved or not subject to approval (pending and rejected requests are excluded) — in a day range; default today … +14. One line per person and absence. Read-only.

create_reminderA

Set a timed REMINDER for a map node relative to its deadline: offset_days before the deadline (0 = on the deadline day, 1 = the day before) at time HH:MM, instance local time. One reminder per person and node (calling again replaces it). Does NOT change the deadline; the node must already have one (set it with update_node first). Private to the key owner.

list_pagesA

List the key owner's pages — single-file HTML artifacts (presentations, overviews, small apps) created by the assistant or an agent: id, title, status (ceka = queued, pise = being written, hotovo = ready, chyba = failed), size, public link, team visibility.

get_pageA

Read one page (page_id from list_pages): its metadata and the full HTML. Read it before changing a page with update_page.

generate_imageA

Draw a picture (illustration, banner, header image, poster) with the instance's image model and return a public link to the JPEG. Write prompt in English as a detailed visual description and add "no text". Only when readable words must be in the picture, put the exact short text into text (only if the instance allows pictures with text; letters may come out wrong). format: square 1024×1024 (default), banner 1200×400, header 1536×640, portrait 512×896, landscape 1792×1024. Costs AI credits like an assistant message.

create_pageA

Create a page from a COMPLETE single-file HTML document you wrote yourself (inline CSS/JS; external libraries only from https CDNs; no fetch to other servers; size limit per instance, typically 300 kB). The page appears in the user's Pages panel in the app and runs sandboxed (no access to the app's session). team_visible=true shows it to all members of the organization. Returns the id and the public link if one is on.

update_pageA

Replace the HTML and/or the title of an existing page (page_id from list_pages). Send the WHOLE new document, not a diff; the previous version is kept and the user can restore it.

share_pageA

Change sharing of a page: link_on = public link for anyone with the link (no account needed), link_off = turn it off, link_new = replace the link (the old one stops working), team_on / team_off = show or hide the page for all members of the organization, user_on / user_off = share with / unshare from one named member (pass email; members come from list_people). Returns the current public link and the people it is shared with.

delete_pageA

Delete a page for good (page_id from list_pages). Cannot be undone.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.6/5.0

Scored across 35 tools

Disambiguation4/5

Tools generally target distinct resources and actions across maps, nodes, rules, calendars, events, pages and images. Minor friction exists between create_event and create_events, and between create_rule/save_rule_template, but descriptions make the boundaries readable.

Naming Consistency4/5

Most tools follow a clear verb_noun pattern (list_maps, create_map, update_node, delete_rule, list_pages). Exceptions like who_is_away and some plural forms (create_events) are minor and do not impede predictability.

Tool Count2/5

35 tools is heavy for one MCP server and spans many largely independent product areas: goal maps, automations, org data, calendars, pages and image generation. A tighter surface or domain-splitting would reduce cognitive load and misselection risk.

Completeness3/5

Core map, node, rule and page workflows have solid coverage, but there are notable lifecycle gaps: calendars cannot be updated, reminders can be created but not listed/deleted/updated, and whole-map deletion is explicitly unavailable. These create some dead ends for agents.

Maintenance

ActivityActive
ResponsivenessNo recent community issues