Plaky MCP by usefulapi
Read boards and items, create items, set field values and add comments in Plaky.
我该使用它吗
质量与安全性
发现(1)
- LOW在 plaky_get_item_file_download_url 中
基于对工具定义和协议合规性的自动分析。
上下文开销
这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。
安装
一键安装
将以下内容添加到你的 `claude_desktop_config.json` 文件中:
{
"mcpServers": {
"plaky": {
"url": "https://plaky.usefulapi.io/mcp"
}
}
}远程端点
https://plaky.usefulapi.io/mcpstreamable-http它能做什么
工具清单
工具(20)
🟢plaky_get_current_user
Return the owner of the API key: id, name, email, role (OWNER/ADMIN/MEMBER/VIEWER) and status. Good first call to verify the key works. Plaky API: GET /v1/public/users/me.
输入模式
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢plaky_list_users(emails, status, type, page, page_size)
List workspace users, optionally filtered by email, status (ACTIVE/PENDING/INACTIVE) or role (OWNER/ADMIN/MEMBER/VIEWER). Plaky API: GET /v1/public/users.
输入模式
{
"type": "object",
"properties": {
"emails": {
"description": "Only users with these email addresses.",
"type": "array",
"items": {
"type": "string"
}
},
"status": {
"description": "Only users in this status.",
"type": "string",
"enum": [
"ACTIVE",
"PENDING",
"INACTIVE"
]
},
"type": {
"description": "Only users with this role.",
"type": "string",
"enum": [
"OWNER",
"ADMIN",
"MEMBER",
"VIEWER"
]
},
"page": {
"description": "Page number, 1-indexed (default 1).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page_size": {
"description": "Results per page (default 50).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢plaky_list_teams(page, page_size)
List workspace teams. Use the team ids when you subscribe teams to items. Plaky API: GET /v1/public/teams.
输入模式
{
"type": "object",
"properties": {
"page": {
"description": "Page number, 1-indexed (default 1).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page_size": {
"description": "Results per page (default 50).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢plaky_get_team(team_id)
Get one team by id, with its members. Plaky API: GET /v1/public/teams/{teamId}.
输入模式
{
"type": "object",
"properties": {
"team_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Team id (from plaky_list_teams)."
}
},
"required": [
"team_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢plaky_list_spaces(expand, page, page_size)
List spaces in the workspace. Pass expand=['board'] to include each space's boards. Plaky API: GET /v1/public/spaces.
输入模式
{
"type": "object",
"properties": {
"expand": {
"description": "Use 'board' to include boards inside each space.",
"type": "array",
"items": {
"type": "string",
"enum": [
"board"
]
}
},
"page": {
"description": "Page number, 1-indexed (default 1).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page_size": {
"description": "Results per page (default 50).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢plaky_get_space(space_id, expand)
Get one space by id. Pass expand=['board'] to include its boards. Plaky API: GET /v1/public/spaces/{spaceId}.
输入模式
{
"type": "object",
"properties": {
"space_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Space id (from plaky_list_spaces)."
},
"expand": {
"description": "Use 'board' to include boards.",
"type": "array",
"items": {
"type": "string",
"enum": [
"board"
]
}
}
},
"required": [
"space_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢plaky_list_boards(space_id, page, page_size)
List the boards in one space. Plaky API: GET /v1/public/spaces/{spaceId}/boards.
输入模式
{
"type": "object",
"properties": {
"space_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Space id (from plaky_list_spaces)."
},
"page": {
"description": "Page number, 1-indexed (default 1).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page_size": {
"description": "Results per page (default 50).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"space_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢plaky_get_board(space_id, board_id)
Get one board: its fields (keys, titles, types, allowed values) and groups. Call it first to learn the field keys before you set values. Plaky API: GET /v1/public/spaces/{spaceId}/boards/{boardId}.
输入模式
{
"type": "object",
"properties": {
"space_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Space id (from plaky_list_spaces)."
},
"board_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Board id (from plaky_list_boards)."
}
},
"required": [
"space_id",
"board_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢plaky_list_item_groups(space_id, board_id, page, page_size)
List the item groups (sections) of a board. Use their ids for plaky_create_item and plaky_move_item_to_group. Plaky API: GET /v1/public/spaces/{spaceId}/boards/{boardId}/item-groups.
输入模式
{
"type": "object",
"properties": {
"space_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Space id (from plaky_list_spaces)."
},
"board_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Board id (from plaky_list_boards)."
},
"page": {
"description": "Page number, 1-indexed (default 1).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page_size": {
"description": "Results per page (default 50).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"space_id",
"board_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢plaky_list_items(space_id, board_id, board_view_id, parent_id, subitems_behaviour, ...)
List items on a board, optionally in one board view or under one parent item. subitems_behaviour: INCLUDE (default), EXCLUDE or EMBED. Plaky API: GET /v1/public/spaces/{spaceId}/boards/{boardId}/items.
输入模式
{
"type": "object",
"properties": {
"space_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Space id (from plaky_list_spaces)."
},
"board_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Board id (from plaky_list_boards)."
},
"board_view_id": {
"description": "Only items shown in this board view.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"parent_id": {
"description": "Only subitems of this parent item.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"subitems_behaviour": {
"description": "How subitems appear (default INCLUDE).",
"type": "string",
"enum": [
"INCLUDE",
"EXCLUDE",
"EMBED"
]
},
"page": {
"description": "Page number, 1-indexed (default 1).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page_size": {
"description": "Results per page (default 50).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"expand": {
"description": "Relationships to return as full objects instead of ids.",
"type": "array",
"items": {
"type": "string",
"enum": [
"space",
"board",
"group",
"createdBy",
"parent",
"subscriptions",
"fields"
]
}
}
},
"required": [
"space_id",
"board_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢plaky_get_item(space_id, board_id, item_id, expand)
Get one item with its field values, group and subitem count. Plaky API: GET /v1/public/spaces/{spaceId}/boards/{boardId}/items/{itemId}.
输入模式
{
"type": "object",
"properties": {
"space_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Space id (from plaky_list_spaces)."
},
"board_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Board id (from plaky_list_boards)."
},
"item_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Item id (from plaky_list_items)."
},
"expand": {
"description": "Relationships to return as full objects instead of ids.",
"type": "array",
"items": {
"type": "string",
"enum": [
"space",
"board",
"group",
"createdBy",
"parent",
"subscriptions",
"fields"
]
}
}
},
"required": [
"space_id",
"board_id",
"item_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢plaky_list_subitems(space_id, board_id, item_id, page, page_size, ...)
List the subitems of one item. Plaky API: GET /v1/public/spaces/{spaceId}/boards/{boardId}/items/{itemId}/sub-items.
输入模式
{
"type": "object",
"properties": {
"space_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Space id (from plaky_list_spaces)."
},
"board_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Board id (from plaky_list_boards)."
},
"item_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Item id (from plaky_list_items)."
},
"page": {
"description": "Page number, 1-indexed (default 1).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page_size": {
"description": "Results per page (default 50).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"expand": {
"description": "Relationships to return as full objects instead of ids.",
"type": "array",
"items": {
"type": "string",
"enum": [
"space",
"board",
"group",
"createdBy",
"parent",
"subscriptions",
"fields"
]
}
}
},
"required": [
"space_id",
"board_id",
"item_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢plaky_list_item_comments(space_id, board_id, item_id)
List the comments on one item, with replies and reactions. Plaky API: GET /v1/public/spaces/{spaceId}/boards/{boardId}/items/{itemId}/comments.
输入模式
{
"type": "object",
"properties": {
"space_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Space id (from plaky_list_spaces)."
},
"board_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Board id (from plaky_list_boards)."
},
"item_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Item id (from plaky_list_items)."
}
},
"required": [
"space_id",
"board_id",
"item_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢plaky_list_item_files(space_id, board_id, item_id)
List the files attached to one item (name, size, type, uploader). Plaky API: GET /v1/public/spaces/{spaceId}/boards/{boardId}/items/{itemId}/files.
输入模式
{
"type": "object",
"properties": {
"space_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Space id (from plaky_list_spaces)."
},
"board_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Board id (from plaky_list_boards)."
},
"item_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Item id (from plaky_list_items)."
}
},
"required": [
"space_id",
"board_id",
"item_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢plaky_get_item_file_download_url(space_id, board_id, item_id, item_file_id)
Return a short-lived presigned download URL for one item file (see expiresInSeconds). The file bytes are not returned. Plaky API: GET .../files/{itemFileId}/download.
输入模式
{
"type": "object",
"properties": {
"space_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Space id (from plaky_list_spaces)."
},
"board_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Board id (from plaky_list_boards)."
},
"item_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Item id (from plaky_list_items)."
},
"item_file_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "File id (from plaky_list_item_files)."
}
},
"required": [
"space_id",
"board_id",
"item_id",
"item_file_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴plaky_create_item(space_id, board_id, title, parent_id, group_id, ...)
Create an item on a board, or a subitem when parent_id is set. Fields map a field key or title to a value. Writes data: creates a new item on each call. Plaky API: POST /v1/public/spaces/{spaceId}/boards/{boardId}/items.
输入模式
{
"type": "object",
"properties": {
"space_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Space id (from plaky_list_spaces)."
},
"board_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Board id (from plaky_list_boards)."
},
"title": {
"description": "Item title (default 'New Item', or 'New Subitem').",
"type": "string",
"maxLength": 255
},
"parent_id": {
"description": "Parent item id: creates a subitem under it.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"group_id": {
"description": "Item group id to place the item in (from plaky_list_item_groups).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"fields": {
"description": "Field values keyed by field key or title.",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
},
{
"type": "array",
"items": {}
},
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
],
"description": "Field value by type: text or number as-is; status as label or id; tag as array of labels or ids; date as ISO-8601 string; timeline as {start,end}; person as {users:[{id|email}],teams:[{id|title}]}; link as URL or {url,displayText}."
}
}
},
"required": [
"space_id",
"board_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡plaky_update_item_field(space_id, board_id, item_id, field_key, value)
Set the value of one field on an item. The field is a key ('status-1') or a title ('Status'). Setting the same value again changes nothing. Plaky API: PATCH .../items/{itemId}/fields/{itemFieldKey}.
输入模式
{
"type": "object",
"properties": {
"space_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Space id (from plaky_list_spaces)."
},
"board_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Board id (from plaky_list_boards)."
},
"item_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Item id (from plaky_list_items)."
},
"field_key": {
"type": "string",
"minLength": 1,
"description": "Field key or field title, from plaky_get_board."
},
"value": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
},
{
"type": "array",
"items": {}
},
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
],
"description": "Field value by type: text or number as-is; status as label or id; tag as array of labels or ids; date as ISO-8601 string; timeline as {start,end}; person as {users:[{id|email}],teams:[{id|title}]}; link as URL or {url,displayText}."
}
},
"required": [
"space_id",
"board_id",
"item_id",
"field_key",
"value"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴plaky_move_item_to_group(space_id, board_id, item_id, item_group_id)
Move an item to another item group on the same board. The item is added to the end of the target group. Plaky API: PATCH .../items/{itemId}/group.
输入模式
{
"type": "object",
"properties": {
"space_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Space id (from plaky_list_spaces)."
},
"board_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Board id (from plaky_list_boards)."
},
"item_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Item id (from plaky_list_items)."
},
"item_group_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Destination item group id (from plaky_list_item_groups)."
}
},
"required": [
"space_id",
"board_id",
"item_id",
"item_group_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴plaky_add_item_comment(space_id, board_id, item_id, text, reply_to_comment_id)
Add a comment to an item, or a reply when reply_to_comment_id is set. Writes data: each call posts a new comment. Plaky API: POST .../items/{itemId}/comments.
输入模式
{
"type": "object",
"properties": {
"space_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Space id (from plaky_list_spaces)."
},
"board_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Board id (from plaky_list_boards)."
},
"item_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Item id (from plaky_list_items)."
},
"text": {
"type": "string",
"minLength": 1,
"description": "Comment text."
},
"reply_to_comment_id": {
"description": "Comment id to reply to (from plaky_list_item_comments).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"space_id",
"board_id",
"item_id",
"text"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡plaky_set_comment_reactions(space_id, board_id, item_id, comment_id, reaction_codes)
Set the emoji reactions the API key's user leaves on one comment. Replaces the current reactions; an empty list removes them. Emoji codes are hex, e.g. '1f44d' (thumbs up). Plaky API: PUT .../comments/{itemCommentId}/reactions.
输入模式
{
"type": "object",
"properties": {
"space_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Space id (from plaky_list_spaces)."
},
"board_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Board id (from plaky_list_boards)."
},
"item_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Item id (from plaky_list_items)."
},
"comment_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Comment id (from plaky_list_item_comments)."
},
"reaction_codes": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"description": "Emoji hex codes, e.g. ['1f44d']. Empty list removes all."
}
},
"required": [
"space_id",
"board_id",
"item_id",
"comment_id",
"reaction_codes"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}社区
证据