Kangram

app.kangramPublished by kangram.appOfficial publisherv1.0.0Updated Oct 24, 2026

Task & board management for AI agents + humans. Kanban, comments, digests via MCP.

VerifiedStreamable HTTPWeb executableProductivity & WorkflowCommunication & Collaboration

Overview

AI-generated overview

Kangram is a remote kanban task and board management server that lets an assistant create, organize, search and comment on tasks across boards and organizations

What you can do
Create, update, archive, restore and clone boards, and manage their status workflows and tags. Create, read, update, move, delete and restore tasks, and change their status. Search tasks and list your own assigned or created work across boards. Add, list and delete comments, and manage task checklists. Manage board members, invitations, roles and organizations.
When to use it
Use it when you want an assistant to run a kanban workflow: capture tasks, triage and move them between statuses, summarize what is on your plate, or administer boards and members without opening the app.
Requirements
A remote endpoint at kangram.app over streamable HTTP. A Kangram API key is required, sent as an Authorization bearer header; the key is created in Kangram settings or through the Telegram bot.
Before you install
The API key is a secret and grants access to your boards. Many tools write or change data: creating, updating, moving, deleting and restoring tasks, boards, statuses, comments, checklists and members. Member and role changes affect other people, and adding a member grants immediate access without an invitation.

Installation

In SourceWeft

  1. Open Kangram in the dashboard and add it to a workspace.
  2. Connect Authorization token credentials. They are stored privately and never shown on public pages.
  3. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/app.kangram%2Fkangram/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "kangram": {
      "type": "http",
      "url": "https://kangram.app/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_TOKEN>"
      }
    }
  }
}

Tools

61

list_boards

Use this command to discover boards before creating or filtering tasks.

Parameterscodelimittitleonly_archivedinclude_archived

create_board

Use this command to initialize a board and its default status workflow.

Parameterstitletimezonegroup_chat_idnamespace_slug

update_board

Use this to edit board metadata (title, code) and/or the board-level agent prompt. The prompt is the markdown instructions an agent reads when operating on this board (stored as the root file "AGENTS.md"). Pass only the fields you want to change; omitted fields are left untouched. Pass an empty string as prompt to clear the prompt.

Parameterscodetitlepromptboard_idrequiredvisibility

get_board_by_namespace

Canonical lookup for a board. Resolves the namespace by slug, then the board by its 3-character code within that namespace. Membership-gated: returns an error for unknown namespace, unknown board, or non-member (indistinguishable).

Parametersboard_coderequirednamespace_slugrequired

archive_board

Use this to hide a board from active workflows without deleting it.

Parametersboard_idrequired

restore_board

Use this to recover a previously archived board.

Parametersboard_idrequired

clone_board

Clone a board into a new board, copying the workflow not the data: statuses + board files (the prompt / agent instructions) + board title. Excludes tasks, comments, and members. The caller becomes the owner of the fresh board. The new board is created in the caller's personal namespace with a fresh unique code. Authorize: caller needs read access to the source board — a board member OR any viewer when the board is public (public boards are forkable by anyone). Authorization is enforced imperatively in execute.

Parameterscodetitlesource_board_idrequired

create_task

Use this to add a task. Provide boardId for deterministic routing; otherwise active board is used.

Parameterstagstitlerequiredstatusassigneeboard_idprioritydescriptionparent_board_idtelegram_chat_idparent_task_numbertelegram_message_id

get_task

Use this to read one task including its description, deadline, tags, status, and assignee.

Parametersboard_idrequiredtask_numberrequired

list_tasks

Use this to inspect task backlog by board, assignee, status, priority, tags, title substring, creation date range, and deletion state.

Parameterstagslimitstatusassigneeboard_idrequiredprioritycreated_tocreated_fromonly_deletedtitle_containsinclude_deleted

list_board_tags

Use this to discover which tags already exist on a board before filtering with list_tasks. Returns unique tag strings (first-seen casing), sorted case-insensitively.

Parametersboard_idrequired

update_task

Use this to edit task title/description/deadline/tags/assignee/status.

Parameterstagstitlestatusassigneeboard_idrequireddeadlineprioritydescriptiontask_numberrequired

transition_task_status

Use this for explicit status moves while keeping other fields unchanged.

Parametersstatusrequiredboard_idrequiredtask_numberrequired

delete_task

Use this to mark a task as deleted without permanent removal.

Parametersboard_idrequiredtask_numberrequired

move_task

Use this to transfer a task between boards. The task gets a new number in the target board. Status is reset to target board's default if the current status doesn't exist there.

Parameterstask_numberrequiredsource_board_idrequiredtarget_board_idrequired

restore_task

Use this with list_tasks onlyDeleted/includeDeleted to recover deleted tasks.

Parametersboard_idrequiredtask_numberrequired

list_task_activity

Use this to read the history of actions performed on a task (create, update, status changes, comments). Returns a timeline of activity entries.

Parameterslimitoffsetboard_idrequiredtask_numberrequired

search_tasks

Use this to find tasks by text, assignee, status, priority, or attention category across all your accessible boards. All filters are optional — combine them to narrow results. Returns up to 50 tasks ordered by last updated.

Parametersquerystatusboard_idpriorityattentionassignee_id

my_work

Returns up to 100 tasks assigned to or created by the caller across all boards they can access, ordered by most recent update. Use this to answer 'what's on my plate?' or to surface overdue/stale work. Pass namespaceSlug to scope to a single namespace.

Parametersnamespace_slug

list_statuses

Use this command to inspect the board status catalog and ordering.

Parametersboard_id

create_status

Use this command to add new statuses to board workflow.

Parameterscodenamerequiredcolorindexboard_id

update_status

Update status by statusId or by boardId+code.

Parameterscodenamecolorindexboard_idnew_codestatus_id

reorder_statuses

Provide orderedStatusIds to set deterministic status ordering for a board.

Parametersboard_idordered_status_idsrequired

delete_status

Delete by statusId or boardId+code. If tasks use it, provide replacementStatusId.

Parameterscodeboard_idstatus_idreplacement_status_id

add_comment

Use this to add a comment to a specific task. Provide board_id + task_number to identify the task.

Parameterstextrequiredboard_idrequiredtask_numberrequired

list_comments

Use this to retrieve all comments for a specific task. Provide board_id + task_number.

Parametersboard_idrequiredtask_numberrequired

delete_comment

Use this to delete a comment. Allowed for the comment author or a board admin (owner/admin). Provide board_id + task_number for context and comment_id.

Parametersboard_idrequiredcomment_idrequiredtask_numberrequired

add_checklist_item

Use this to add a new item to a task's checklist. Provide board_id + task_number to identify the task.

Parameterstitlerequiredboard_idrequiredtask_numberrequired

list_checklist

Use this to retrieve all checklist items for a specific task. Provide board_id + task_number.

Parametersboard_idrequiredtask_numberrequired

update_checklist_item

Use this to update a checklist item's title or done status. Provide item_id and fields to update.

Parametersdonetitleitem_idrequired

delete_checklist_item

Use this to remove a checklist item from a task. Provide item_id.

Parametersitem_idrequired

list_board_members

Use this command to see all board members and their roles (owner/admin/user).

Parametersboard_idrequired

invite_board_member

Use this command to invite a user to a board. The invited user will receive a notification and must accept. Owner/admin only.

Parametersroleboard_idrequiredusernamerequired

add_board_member

Use this command to add a user directly to a board — they become a member immediately, with no invitation to accept. This is the one-step grant (the bot /addmember command). Owner/admin only; cannot create or assign the owner role.

Parametersroleboard_idrequiredusernamerequired

remove_board_member

Use this command to remove a member from a board. On group-chat-linked boards, removing a member with an explicit board_member row reverts them to a regular Telegram member (they stay on the board via the linked group). Members without a board_member row (Telegram-only) cannot be removed. Owner can remove admin/user, admin can remove user. Cannot remove owner.

Parametersuser_idrequiredboard_idrequired

update_member_role

Use this command to change an existing board member's role. Owner/admin only. Cannot target the board owner or promote anyone to owner.

Parametersrolerequireduser_idrequiredboard_idrequired

list_pending_invitations

Use this without board_id to see your pending invitations. With board_id, see pending invitations for that board (must be a member).

Parametersboard_id

respond_to_invitation

Use this command to accept or reject a pending board invitation by its ID.

Parametersacceptrequiredinvitation_idrequired

cancel_board_invitation

Use this command to cancel a pending board invitation. Only the original inviter or a board admin can cancel.

Parametersinvitation_idrequired

create_organization

Create a new organization. The organization gets its own namespace (slug derived from the name). The creator becomes the organization owner. Use this when a user asks to create a namespace, organization, or workspace.

Parametersnamerequired

list_namespaces

List all namespaces the user can see: their personal namespace plus any organization namespaces they own or are a member of. Use this to discover where boards can be created or moved.

Takes no parameters.

move_board

Move a board from its current namespace to a target namespace. The board's 3-character code must be unique in the target namespace. The board URL will change. Use this to consolidate boards into an organization namespace.

Parametersboard_idrequirednamespace_slugrequired

transfer_board_ownership

Transfer ownership of a board from the current owner to an existing board member (admin or user role). The current owner is demoted to the specified role (admin by default). Only the current board owner can initiate a transfer. The target must already be a board member — invite them first if needed. This is an irreversible high-impact operation.

Parametersboard_idrequiredto_user_idrequireddemote_current_owner_to

get_board_prompt

Fetch the board-level agent prompt — the markdown instructions an agent should follow when operating on this board. Read this into your context before working a board. Returns the content of the board's root file ("AGENTS.md"); null when no prompt is set.

Parametersboard_idrequired

update_board_file

Upsert a named markdown file on a board. In v1 the conventional name is "AGENTS.md" (the root prompt). Omit content (or pass empty) to clear a file's body. Future versions will support multiple named files; this command is the low-level writer beneath update_board's prompt option.

Parametersnamerequiredformatcontentboard_idrequired

list_board_files

List the board's named files (the multi-file-ready prompt store). v1 returns at least the root "AGENTS.md" once a prompt has been set; empty list means no prompt/files yet.

Parametersboard_idrequired

create_oauth_client

Register a new OAuth2 client so a third-party app can authenticate users via 'Login with Kangram'. Returns the client_id and a client_secret shown ONCE — store it securely. Owner-only.

Parametersnamerequiredscopesredirect_urisrequired

list_oauth_clients

List the OAuth2 clients you own (client_id, name, redirect URIs, scopes, revocation status).

Takes no parameters.

revoke_oauth_client

Revoke one of your OAuth2 clients by its numeric ID. Existing tokens are not deleted but no new authorizations will be allowed.

Parametersclient_idrequired

get_digest

Compute an on-demand digest of the calling user's tasks across all accessible boards: overdue, stale (needs attention), new assignments, open count, and recently completed. Use this to answer 'what needs my attention?' or 'what's my work summary?'.

Takes no parameters.

save_session_handoff

Save a session handoff — a durable note on the board recording where the work stands: what was done, what is next, what is blocked, and key links (PRs, issues, branches). Call this at the END of a working session so the next session (possibly a brand-new chat) can pick up exactly where you left off. Use this when the user says 'remember where we left off', 'save our progress', 'save the session state', or 'don't lose this context'. `summary` must be YOUR OWN concise authored recap — never a transcript or list of raw messages.

Parameterslinkssummaryrequiredboard_idrequired

get_project_context

Get the full project context for a board — everything needed to CONTINUE work without re-explaining: the latest session handoff (where we left off), an attention snapshot (blocked / overdue / due soon / unassigned / stale counts), the top open tasks, and recent board activity. Call this at the START of a session when the user says 'continue where we left off', 'what's the state of the project', 'resume our work', or 'remind me what we were doing' — especially in a NEW chat after a previous session saved a handoff.

Parametersboard_idrequired

get_board_settings

Use this command to read a board's effective settings — the stored value, or the default when unset (lazy). Pass a key to read one setting; omit it to read all. Returns { key: value } object(s).

Parameterskeyboard_idrequired

set_board_setting

Use this command to change a board setting. The value is a string coerced to the setting's type server-side (booleans accept on/off, true/false, 1/0, yes/no). Use get_board_settings_schema to discover available keys and types. Example: set autoAddAssignees to "off" to require explicit /addmember on task assignment.

Parameterskeyrequiredvaluerequiredboard_idrequired

get_board_settings_schema

Use this command to discover which board settings exist and their types/defaults (json-schema-like). Pass a key to inspect one setting; omit for all. Board-independent metadata — call this before set_board_setting to learn valid keys and types.

Parameterskey

bind_board_to_group

Bind (link) a board to a Telegram group chat. The board becomes the group's primary board — bot commands in the group will act on this board. Unbinds any previous binding first. The actor must be an owner/admin of the target board. Use this when a user asks to set, link, bind, or assign a board to a chat/group. boardRef accepts: 'ns/code' (e.g. 'kangram/DEV'), a code alone (uses the active namespace), or a full URL like 'https://kangram.app/#/kangram/DEV'.

Parametersboard_refrequiredgroup_chat_id

create_agent

Create a non-human agent account (User type='agent') inside the organization identified by its namespace slug. The agent becomes an org member immediately (board access via role inheritance), gets no personal namespace and cannot log in. A first API key is auto-issued and returned in plainKey — show/store it now, it is never shown again. Requires organization owner/admin.

Parametersroleusernamerequireddisplay_namenamespace_slugrequired

list_agents

List the members of the organization identified by its namespace slug, including agent accounts (type='agent') with their active API-key counts and last key use. Requires organization owner/admin.

Parametersnamespace_slugrequired

delete_agent

Delete an agent account: revokes all its API keys, removes memberships, unassigns its tasks, then hard-deletes the user. When history rows (messages/activity) block the hard delete, the agent is deactivated instead (zero access, row kept) and status='deactivated' is returned. Requires organization owner/admin.

Parametersagent_usernamerequirednamespace_slugrequired

issue_agent_key

Mint a new API key for an agent member of the organization. Use for rotation or additional keys. The plaintext key is returned once — store it immediately. Requires organization owner/admin.

Parametersnamescopeagent_usernamerequirednamespace_slugrequired

revoke_agent_key

Revoke an agent's API key by id. Only keys owned by agent accounts are revocable this way (humans revoke their own). Requires organization owner/admin of an org the agent belongs to.

Parameterskey_idrequired

Version history

1
  1. v1.0.0LatestSep 16, 2026

Score

83% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts

    Declare a GitHub repository with a README, or serve resource_documentation in the OAuth protected-resource metadata.

  • LicenseNot applicable

    A hosted service is used under its provider's terms, so no license is expected here. This check is left out of the percentage.