Kangram

app.kangram由 kangram.app 發布官方發布者v1.0.0更新於 Oct 24, 2026

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

已驗證Streamable HTTP可網頁執行效率與工作流溝通與協作

概覽

AI 產生的概覽

Kangram 是遠端看板任務與看板管理伺服器,讓助理跨看板與組織建立、整理、搜尋任務並新增留言。

可以做什麼
建立、更新、封存、還原與複製看板,並管理其狀態流程與標籤。建立、讀取、更新、移動、刪除與還原任務,並變更任務狀態。搜尋任務,並列出指派給自己或自己建立的工作。新增、列出與刪除留言,管理任務清單。管理看板成員、邀請、角色與組織。
適用情境
當你希望助理執行看板工作流程時使用:記錄任務、分類並在狀態間移動任務、彙整你手邊的工作,或不必開啟應用程式即可管理看板與成員。
執行需求
透過 streamable HTTP 連線至 kangram.app 的遠端端點。需要 Kangram API 金鑰,以 Authorization bearer 標頭傳送;金鑰可在 Kangram 設定中或透過 Telegram 機器人建立。
安裝前請注意
API 金鑰是機密,可存取你的看板。許多工具會寫入或變更資料:建立、更新、移動、刪除與還原任務、看板、狀態、留言、清單與成員。成員與角色變更會影響他人,直接新增成員會立即授予存取權而無需邀請。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Kangram,將其新增到工作區。
  2. 連接 Authorization token 憑證。它們會被私密儲存,絕不會在公開頁面上展示。
  3. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/app.kangram%2Fkangram/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

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

工具

61

list_boards

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

輸入參數codelimittitleonly_archivedinclude_archived

create_board

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

輸入參數titletimezonegroup_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.

輸入參數codetitlepromptboard_id必填visibility

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).

輸入參數board_code必填namespace_slug必填

archive_board

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

輸入參數board_id必填

restore_board

Use this to recover a previously archived board.

輸入參數board_id必填

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.

輸入參數codetitlesource_board_id必填

create_task

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

輸入參數tagstitle必填statusassigneeboard_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.

輸入參數board_id必填task_number必填

list_tasks

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

輸入參數tagslimitstatusassigneeboard_id必填prioritycreated_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.

輸入參數board_id必填

update_task

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

輸入參數tagstitlestatusassigneeboard_id必填deadlineprioritydescriptiontask_number必填

transition_task_status

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

輸入參數status必填board_id必填task_number必填

delete_task

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

輸入參數board_id必填task_number必填

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.

輸入參數task_number必填source_board_id必填target_board_id必填

restore_task

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

輸入參數board_id必填task_number必填

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.

輸入參數limitoffsetboard_id必填task_number必填

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.

輸入參數querystatusboard_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.

輸入參數namespace_slug

list_statuses

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

輸入參數board_id

create_status

Use this command to add new statuses to board workflow.

輸入參數codename必填colorindexboard_id

update_status

Update status by statusId or by boardId+code.

輸入參數codenamecolorindexboard_idnew_codestatus_id

reorder_statuses

Provide orderedStatusIds to set deterministic status ordering for a board.

輸入參數board_idordered_status_ids必填

delete_status

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

輸入參數codeboard_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.

輸入參數text必填board_id必填task_number必填

list_comments

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

輸入參數board_id必填task_number必填

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.

輸入參數board_id必填comment_id必填task_number必填

add_checklist_item

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

輸入參數title必填board_id必填task_number必填

list_checklist

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

輸入參數board_id必填task_number必填

update_checklist_item

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

輸入參數donetitleitem_id必填

delete_checklist_item

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

輸入參數item_id必填

list_board_members

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

輸入參數board_id必填

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.

輸入參數roleboard_id必填username必填

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.

輸入參數roleboard_id必填username必填

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.

輸入參數user_id必填board_id必填

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.

輸入參數role必填user_id必填board_id必填

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).

輸入參數board_id

respond_to_invitation

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

輸入參數accept必填invitation_id必填

cancel_board_invitation

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

輸入參數invitation_id必填

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.

輸入參數name必填

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.

無需輸入參數。

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.

輸入參數board_id必填namespace_slug必填

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.

輸入參數board_id必填to_user_id必填demote_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.

輸入參數board_id必填

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.

輸入參數name必填formatcontentboard_id必填

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.

輸入參數board_id必填

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.

輸入參數name必填scopesredirect_uris必填

list_oauth_clients

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

無需輸入參數。

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.

輸入參數client_id必填

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?'.

無需輸入參數。

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.

輸入參數linkssummary必填board_id必填

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.

輸入參數board_id必填

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).

輸入參數keyboard_id必填

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.

輸入參數key必填value必填board_id必填

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.

輸入參數key

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'.

輸入參數board_ref必填group_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.

輸入參數roleusername必填display_namenamespace_slug必填

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.

輸入參數namespace_slug必填

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.

輸入參數agent_username必填namespace_slug必填

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.

輸入參數namescopeagent_username必填namespace_slug必填

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.

輸入參數key_id必填

版本歷史

1
  1. v1.0.0最新Sep 16, 2026

評分

已滿足適用檢查項的 83%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分

    請宣告包含 README 的 GitHub 儲存庫,或在 OAuth 受保護資源後設資料中提供 resource_documentation。

  • 授權條款不適用

    託管服務按其提供方的條款使用,因此這裡不要求授權條款。此檢查項不計入百分比。