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개