Decknote

Kanban boards your AI agent can use: add, complete, move and recall tasks with your team.

使うべきか

品質と安全性

A
説明の品質
94%
スキーマの完全性
86%
命名の品質
96%
ポイズニングのリスク
100%
権限の一致
90%
プロトコルへの準拠
100%

検出事項(2)

  • LOWTool 'complete_task' description lacks action verbcomplete_task 内
  • LOWTool 'fetch' suggests web access but openWorldHint=falsefetch 内

ツール定義とプロトコルへの準拠に関する自動分析に基づいています。

コンテキストコスト

~2,044トークン数(ツール定義)
~681 B一般的なレスポンスサイズ
注意への影響は中程度(128k コンテキストの 1.60%)

これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。

インストール

ワンクリックインストール

これを `claude_desktop_config.json` ファイルに追加してください:

{
  "mcpServers": {
    "decknote": {
      "url": "https://decknote.app/api/v1/mcp"
    }
  }
}

リモートエンドポイント

https://decknote.app/api/v1/mcpstreamable-http

できること

ツール一覧

ツール(17)

🟢 読み取り専用🟡 書き込み🔴 削除⚪ 不明
🟢list_boards(includeArchived)

List the boards you can access and their lists. Start here: the returned board and list ids are what the other tools need.

入力スキーマ

{
  "type": "object",
  "properties": {
    "includeArchived": {
      "type": "boolean",
      "description": "Include archived boards. Default false."
    }
  }
}
🟡create_board(title, template, lists)

Create a new board you own. Optional template picks the initial lists and labels (created in your account's language): 'blank' (To do / In progress / Done), 'kanban', 'content' or 'personal'. Returns the board with its list ids, ready for create_task.

入力スキーマ

{
  "type": "object",
  "properties": {
    "title": {
      "type": "string"
    },
    "template": {
      "type": "string",
      "enum": [
        "blank",
        "kanban",
        "content",
        "personal"
      ],
      "description": "Initial lists/labels. Default 'blank'."
    },
    "lists": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Your own list titles, in order, instead of the template's (its labels stay)."
    }
  },
  "required": [
    "title"
  ]
}
🟡create_list(boardId, title, first)

Add a list (column) to a board — at the end, or first with `first: true`. Returns its id for create_task / move_task.

入力スキーマ

{
  "type": "object",
  "properties": {
    "boardId": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "first": {
      "type": "boolean",
      "description": "Put it before the other lists. Default false."
    }
  },
  "required": [
    "boardId",
    "title"
  ]
}
🟢search_tasks(query, boardId, listId, status, dueBefore, ...)

Search your tasks (cards) — the recall tool. Filter by free text (matches title and description), board, list, status and due date. Use this to answer 'what's still open', 'what did I note about X', 'what's due soon'.

入力スキーマ

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Free text; matches card title and description."
    },
    "boardId": {
      "type": "string"
    },
    "listId": {
      "type": "string"
    },
    "status": {
      "type": "string",
      "enum": [
        "open",
        "completed",
        "all"
      ],
      "description": "Default 'open'."
    },
    "dueBefore": {
      "type": "string",
      "description": "ISO 8601; only tasks due before this instant."
    },
    "limit": {
      "type": "number",
      "description": "Max results, 1–100. Default 20."
    }
  }
}
🟢get_task(cardId)

Read one task in full: title, description, due date, completion, and which board/list it's in.

入力スキーマ

{
  "type": "object",
  "properties": {
    "cardId": {
      "type": "string"
    }
  },
  "required": [
    "cardId"
  ]
}
🔴create_task(listId, boardId, title, description, dueDate, ...)

Add a task (card). Provide listId, or boardId to drop it in that board's first list. Title is required; description becomes the card's page and accepts Markdown (headings, bullet/numbered lists, - [ ] task lists, bold/italic/code, links, fenced code).

入力スキーマ

{
  "type": "object",
  "properties": {
    "listId": {
      "type": "string"
    },
    "boardId": {
      "type": "string",
      "description": "Used if listId is omitted."
    },
    "title": {
      "type": "string"
    },
    "description": {
      "type": "string"
    },
    "dueDate": {
      "type": "string",
      "description": "ISO 8601."
    },
    "reminders": {
      "type": "array",
      "items": {
        "type": "object",
        "description": "Either `at` (ISO 8601 instant), or relative to the due date: `daysBefore` (0 = that day) + `time` (local HH:MM, default 09:00) in `timeZone` (IANA, e.g. America/Argentina/Buenos_Aires).",
        "properties": {
          "at": {
            "type": "string"
          },
          "daysBefore": {
            "type": "integer"
          },
          "time": {
            "type": "string"
          },
          "timeZone": {
            "type": "string"
          }
        }
      },
      "description": "Reminders for you (push and email)."
    },
    "recurrence": {
      "type": "string",
      "enum": [
        "daily",
        "weekly",
        "biweekly",
        "monthly"
      ],
      "description": "Repeat: archiving the task creates the next one, dates and reminders moved (Pro; needs a due date)."
    },
    "checklist": {
      "type": "object",
      "description": "A checklist on the card: { title?, items: [{ text, done? }] }.",
      "properties": {
        "title": {
          "type": "string"
        },
        "items": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "text": {
                "type": "string"
              },
              "done": {
                "type": "boolean"
              }
            }
          }
        }
      }
    }
  },
  "required": [
    "title"
  ]
}
🔴update_task(cardId, title, description, dueDate, recurrence)

Edit a task's title, description or due date. Description accepts Markdown; note that setting it REPLACES the card's page (use add_comment for incremental notes). Pass dueDate null to clear it.

入力スキーマ

{
  "type": "object",
  "properties": {
    "cardId": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "description": {
      "type": "string"
    },
    "dueDate": {
      "type": [
        "string",
        "null"
      ],
      "description": "ISO 8601, or null to clear."
    },
    "recurrence": {
      "type": [
        "string",
        "null"
      ],
      "enum": [
        "daily",
        "weekly",
        "biweekly",
        "monthly",
        null
      ],
      "description": "Repeat on archive (Pro), or null to stop repeating."
    }
  },
  "required": [
    "cardId"
  ]
}
⚪complete_task(cardId)

Mark a task done.

入力スキーマ

{
  "type": "object",
  "properties": {
    "cardId": {
      "type": "string"
    }
  },
  "required": [
    "cardId"
  ]
}
⚪reopen_task(cardId)

Reopen a completed task.

入力スキーマ

{
  "type": "object",
  "properties": {
    "cardId": {
      "type": "string"
    }
  },
  "required": [
    "cardId"
  ]
}
🔴archive_task(cardId)

Archive a task — the cleanup tool. Soft-delete: the card leaves the board but keeps its data and can be restored from the board's Archived panel. Archiving a dated recurring task schedules its next occurrence, same as archiving from the UI.

入力スキーマ

{
  "type": "object",
  "properties": {
    "cardId": {
      "type": "string"
    }
  },
  "required": [
    "cardId"
  ]
}
🟢move_task(cardId, listId)

Move a task to a different list (e.g. from 'To do' to 'Doing'). The target list must be one you can edit.

入力スキーマ

{
  "type": "object",
  "properties": {
    "cardId": {
      "type": "string"
    },
    "listId": {
      "type": "string",
      "description": "Target list id."
    }
  },
  "required": [
    "cardId",
    "listId"
  ]
}
🟡add_comment(cardId, text)

Add a comment to a task — useful for leaving progress notes a human will read.

入力スキーマ

{
  "type": "object",
  "properties": {
    "cardId": {
      "type": "string"
    },
    "text": {
      "type": "string"
    }
  },
  "required": [
    "cardId",
    "text"
  ]
}
🟡add_reminder(cardId, at, daysBefore, time, timeZone)

Remind yourself about a task: a push notification and an email at a chosen moment. Give `at` (ISO instant), or a time relative to the due date (`daysBefore` + local `time` + `timeZone`) that follows the due date if it moves and repeats with recurring cards.

入力スキーマ

{
  "type": "object",
  "properties": {
    "cardId": {
      "type": "string"
    },
    "at": {
      "type": "string"
    },
    "daysBefore": {
      "type": "integer"
    },
    "time": {
      "type": "string"
    },
    "timeZone": {
      "type": "string"
    }
  },
  "required": [
    "cardId"
  ]
}
🟢list_reminders(boardId, limit)

Your pending reminders (soonest first), optionally on one board — with each task's title and due date.

入力スキーマ

{
  "type": "object",
  "properties": {
    "boardId": {
      "type": "string"
    },
    "limit": {
      "type": "integer",
      "description": "Default 50, max 200."
    }
  }
}
🔴remove_reminder(reminderId)

Delete one of your reminders.

入力スキーマ

{
  "type": "object",
  "properties": {
    "reminderId": {
      "type": "string"
    }
  },
  "required": [
    "reminderId"
  ]
}
🟢search(query)

Search the cards of every board you can access by text (title and description), open or completed. Returns ids to read in full with fetch.

入力スキーマ

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "What to look for."
    }
  },
  "required": [
    "query"
  ]
}
🟢fetch(id)

Read one card in full by id (from search or search_tasks): title, board and list, due date, description, checklists and comments.

入力スキーマ

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "The card id."
    }
  },
  "required": [
    "id"
  ]
}

コミュニティ

このサーバーを評価する

エビデンス

最近の観測

検証済みバージョンは記録されていませんツール 17 件