Plaky MCP by usefulapi

Read boards and items, create items, set field values and add comments in Plaky.

我该使用它吗

质量与安全性

A
描述质量
100%
模式完整度
95%
命名质量
79%
投毒风险
100%
权限匹配度
100%
协议合规性
100%

发现(1)

  • LOWTool 'plaky_get_item_file_download_url' name length outside 3-30 range在 plaky_get_item_file_download_url 中

基于对工具定义和协议合规性的自动分析。

上下文开销

~4,808token 数(工具定义)
~1.9 KB典型响应大小
对注意力有显著影响(占 128k 上下文窗口的 3.76%)

这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 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"
}

社区

评价此服务器

证据

最近观测

已验证未记录版本20 个工具