Back to tracker
Plugin tracker
Tools
Explore what tracked Claude Connectors and ChatGPT Plugins can actually do. Search by tool, Plugin, Brand, category, verb, or access requirement.
Latest snapshot2026-09-12USmethodology registry-public-v1
Searchable tools
113,018
Authless tools
7,424
Auth required
100,766
Described tools
61,167
113,018 tools
- Get generation statuspollo · Check generation status (data only — renders no UI) with the `taskId` returned by pollo_generate_*. On MCP-Apps hosts you normally do NOT need to call this: task-status UI polls it itself and updates in place.Pollo AIPollo AI
PluginrequiredContent & Design - List Pollo modelspollo · List Pollo models available for generation. Each row contains the brand, model, capability type, accepted fields, and constraints. Filter by capability type and/or model alias.Pollo AIPollo AI
PluginrequiredContent & Design - Open media uploaderpollo · Open an interactive uploader UI so the user can upload one or more local images (multi-select, up to `maxImages`, default 9). Accepted formats are JPG, PNG, WebP, GIF, BMP and TIFF, up to 50 MB per image — these limits are fixed and not configurable. The user can drop an image from the list before confirming. When they finish and click Continue, it sends the resulting public HTTPS URL(s) into the chat for you to use as image input(s) in pollo_generate_*. Use this whenever the user wants to generate from a local/attached image — this remote server cannot read local files, so a plain HTTPS URL or this uploader is required. Pass `maxImages` to cap how many images the user may upload (e.g. a model that takes a single reference image → maxImages: 1). After calling it, just wait for the user to confirm the upload; do not poll or call other tools.Pollo AIPollo AI
PluginrequiredContent & Design - Show generation statuspollo · Validate and display the generation task owned by the current user. The initial result includes status, input, and prompt; unfinished tasks continue updating in the widget until every output succeeds or fails.Pollo AIPollo AI
PluginrequiredContent & Design - Upload a ChatGPT image attachmentpollo · Upload one image attached directly to the ChatGPT conversation and return a stable HTTPS accessURL for generation input. Accepts raster images up to 50 MiB.Pollo AIPollo AI
PluginrequiredContent & Design - Upload generation mediapollo · Upload an image/video input for a generation. Four modes: (1) pass `browserUpload: true` with `filename` + `contentType` to get { sign, uploadKey } for a browser-direct PUT into the upload inbox — this is what the uploader widget uses (bytes never pass through the MCP channel, so there is no message-size ceiling); (2) pass `uploadKey` (and nothing else) to confirm that direct upload: the server validates it and returns { accessURL }; (3) pass `dataBase64` (a base64 data URL of the file) and the server uploads it for you, returning { accessURL } — no CORS to configure, but the bytes travel through the MCP message, so the gateway caps this at roughly 3.5 MB per file; (4) pass just `filename` to only get a presigned URL for the asset bucket: returns { sign, accessURL }, and you PUT the raw bytes to `sign` yourself (for programmatic/agent callers). Use `accessURL` as the image field in a generate tool. The remote server cannot read your local disk. Note: /file/sign may be limited to certain accounts.Pollo AIPollo AI
PluginrequiredContent & Design - find_professionalsfind · Find professionals by skill and optional location/rate filters.QwikyoQwikyo
PluginnoneOperations - get_categoriesget · List Qwikyo service categories.QwikyoQwikyo
PluginnoneOperations - get_cities_in_stateget · List cities in a state.QwikyoQwikyo
PluginnoneOperations - get_professional_profileget · Get a professional profile by username.QwikyoQwikyo
PluginnoneOperations - get_skillsget · List service skills used on Qwikyo professional profiles.QwikyoQwikyo
PluginnoneOperations - get_statesget · List Indian states.QwikyoQwikyo
PluginnoneOperations - get_task_detailsget · Get full details for a specific task by id.QwikyoQwikyo
PluginnoneOperations - search_locationssearch · Search locations (cities/areas) by query.QwikyoQwikyo
PluginnoneOperations - search_taskssearch · Search public Qwikyo tasks by keyword/category (optionally scoped to a city).QwikyoQwikyo
PluginnoneOperations - Add library selection to itemadd · Attach a selection the account's library already holds to an item as an option. It lands on the item's selection list in the same pending state as an option added by hand, and takes effect only once the user approves it in Fixture & Finish. Takes an item_id from find_items and a selection_id from search_selections, and returns a review_url. Products that are not in the library yet are handled by import_selection_candidate.Fixture and FinishFixture and Finish
PluginrequiredOperations - Create taskcreate · Create a to-do task on a Fixture & Finish project: a reminder, a follow-up, or a punch-list item. Takes a project_id from list_projects and a title, plus optional details, due date, priority, room, assignee, and selection category. An assignee is notified exactly as if the task had been assigned in the app. Returns a link to the task.Fixture and FinishFixture and Finish
PluginrequiredOperations - Find itemsfind · Find items across the user's Fixture & Finish projects and return what each one is, what was chosen for it, and what it costs. Filter by any combination of query, category, room, status, and project_id; at least one is required. category takes a parent like "Appliances" and covers every subcategory under it, or a full "Appliances > Range" path for one leaf, which is how a whole category arrives in a single call. Each row carries the item, its room and project, its category path, quantity, notes, the approved selection (name, model number, vendor), and its price with the line subtotal already worked out, so a budget needs no follow-up call and no arithmetic. Totals for the whole result say how many rows were priced and how many were not. Returns at most 250 rows and refuses rather than truncating past that, since a partial total reads as a complete one.Fixture and FinishFixture and Finish
PluginrequiredOperations - Get item contextget · Full detail on one item in a Fixture & Finish project, covering both what the item should look like and where its order stands. Returns the item and its current selections, the room it is in with up to 6 of that room's inspiration images, the project's style and existing-selections palette, the account's preferred and avoided vendors, the approved selection's locked price, and any order lines with expected delivery dates. item_id comes from find_items or from the item_id parameter of a Fixture & Finish URL.Fixture and FinishFixture and Finish
PluginrequiredOperations - Get procurement summaryget · Procurement status across the user's Fixture & Finish projects, in four sections: approved items with no order yet, open order lines with expected dates and late flags, lines received off-site awaiting the trip to the job, and lines marked delivered to the job site in the last 7 days. Together these answer what still needs ordering, what is late, what has arrived but is not yet on site, and what was delivered this week. This is the cross-project roll-up; per-item order detail lives in get_item_context. project_id from list_projects narrows to one project. Each section returns at most 100 rows.Fixture and FinishFixture and Finish
PluginrequiredOperations - Import product from URLimport · Import a product from its page URL into the account's selection library and attach it to an item as an option. If the library already holds that product the existing selection is attached immediately; otherwise Fixture & Finish fetches the page in the background and the resulting selection lands on the item's ready-to-approve list. Either way it takes effect only once the user approves it in Fixture & Finish. Returns a review_url. The URL must be https, and it should be the variant-specific product page, because a finish, size, handle style, or spout height each imports as its own selection.Fixture and FinishFixture and Finish
PluginrequiredOperations - List projectslist · List the Fixture & Finish projects (homes/jobs) this user can access. Returns each project's id, name, status, and address. The id is the project_id the other Fixture & Finish tools take, so a project named "Leesburg" resolves here.Fixture and FinishFixture and Finish
PluginrequiredOperations - List selection categorieslist · The selection categories items are filed under, as "Main > Sub" paths, with how many items sit in each. This is where the category argument to find_items comes from, so a whole category can be asked for by name instead of guessed at one leaf at a time. A count on a parent covers its whole branch, which is what find_items returns when given that parent. project_id from list_projects counts only that project and leaves out categories it does not use; without one, the full taxonomy comes back.Fixture and FinishFixture and Finish
PluginrequiredOperations - Search selection librarysearch · Search the account's selection library, meaning products already captured in Fixture & Finish, by name, model number, or description. A query like "Kohler Purist" returns each match's selection_id, name, model number, category, vendor, and reference link, and that selection_id is what add_selection_to_item takes. This covers the product library rather than the items inside a project, which find_items covers. Rows come back closest match first, so the first row is the best answer to the query and a phrase like "vanity faucet" still finds the bathroom faucets, since no product is named for the room it lands in. Returns at most 25 rows.Fixture and FinishFixture and Finish
PluginrequiredOperations - Customer propertiescustomer · Custom properties on customers.
Actions:
list (no required params; optional cursor, per_page);
retrieve (property_id);
create (display_name, property_type; optional relation_type, description, is_required, is_multi, is_active, default_value, options, display_format, external_source, external_id);
update (property_id; optional display_name, relation_type, description, is_required, is_multi, is_active, default_value, options, external_source, external_id) -- only the fields you pass are changed;
delete (property_id);
get_values (customer_id; optional property_id) -- omit property_id to read them all;
set_values (customer_id, values) -- replaces the values of the properties named; others keep theirs.
display_name is the user-facing label and must be unique in the workspace -- the stored name is derived from it. property_type is one of: TEXT, DATETIME, DECIMAL, BOOLEAN, OPTION, RELATION, URL, EMAIL, FILE, FORMULA. relation_type (required for RELATION) is one of: ISSUE, USER, RELEASE, RICH_TEXT. display_format is required by TEXT (single-line, multi-line, readonly) and DATETIME (MMM dd, yyyy, dd/MM/yyyy, MM/dd/yyyy, yyyy/MM/dd). options takes a JSON array of {"name", "description", "is_default"} objects. values takes a JSON object of property id to a list of strings, e.g. {"<id>": ["Enterprise"]} -- every value is a string whatever the property type, and a single-item list unless is_multi.PlanePlane
PluginrequiredProductivity - Customer requestscustomer · Requests raised by a customer.
Actions:
list (customer_id; optional query, cursor, per_page);
retrieve (customer_id, request_id);
create (customer_id, name; optional description_html, link, workitem_ids) -- workitem_ids can only be set here; change links afterwards with customer manage_workitems;
update (customer_id, request_id; optional name, description_html, link) -- only the fields you pass are changed;
delete (customer_id, request_id).
link is a URL associated with the request. workitem_ids is never echoed back -- read the links with `customer list_workitems`.PlanePlane
PluginrequiredProductivity - Customerscustomer · Customers in the workspace.
Actions:
list (no required params; optional query, cursor, per_page);
retrieve (customer_id);
create (name; optional description_html, email, website_url, domain, employees, stage, contract_status, revenue, external_source, external_id) -- upsert: matches on external_source + external_id, else on name, so it never duplicates;
update (customer_id; optional name, description_html, email, website_url, domain, employees, stage, contract_status, revenue, external_source, external_id) -- only the fields you pass are changed;
delete (no required params; optional customer_id, external_source, external_id) -- address by customer_id, or by external_source plus external_id;
list_workitems (customer_id; optional customer_request_id, search);
manage_workitems (customer_id; optional link_ids, unlink_ids, customer_request_id) -- pass at least one of link_ids or unlink_ids; returns nothing, read back with list_workitems.
domain is the customer's industry, shown as "Industry" in Plane -- the website goes in website_url. stage renders as one of: lead, sales_qualified_lead, contract_negotiation, closed_won, closed_lost. contract_status renders as one of: active, pre_contract, signed, inactive. Both are stored free-form; anything else is kept but not displayed. revenue is annual revenue as a string.PlanePlane
PluginrequiredProductivity - Cyclescycle · Cycles (time-boxed iterations) in a project.
Actions:
list (project_id; optional archived, status, cursor, per_page, order_by);
retrieve (project_id, cycle_id);
create (project_id, name, owned_by; optional description, start_date, end_date, timezone, external_source, external_id);
update (project_id, cycle_id; optional name, description, start_date, end_date, owned_by, timezone, external_source, external_id) -- only the fields you pass are changed;
delete (project_id, cycle_id);
list_workitems (project_id, cycle_id; optional pql, order_by, cursor, per_page, expand, fields);
manage_workitems (project_id, cycle_id; optional add_ids, remove_ids) -- pass at least one of add_ids or remove_ids; returns nothing, read back with list_workitems;
transfer_workitems (project_id, cycle_id, new_cycle_id) -- moves only the unfinished work items to new_cycle_id; the source cycle must have ended first, so complete it before transferring or the call is rejected;
complete (project_id, cycle_id) -- sets end_date to today;
archive (project_id, cycle_id) -- ends the cycle first if it is still running;
unarchive (project_id, cycle_id).
status filters active cycles: current, upcoming, completed, draft, incomplete; it is ignored when archived is true. Dates are ISO 8601 (YYYY-MM-DD). owned_by is a member id. Optional Plane Query Language (PQL) filter. Examples: `priority = "urgent" AND assignee = currentUser()`, `stateGroup IN openStates() AND isOverdue()`. UUID fields (project, assignee, state, label, cycle, module, type, milestone, createdBy) need UUIDs — resolve a name to its UUID first if you only have a name or short identifier (e.g. `LSS` → `project list` and match `identifier` to get `id`). Call `get_pql_reference` for full PQL syntax before composing complex queries.PlanePlane
PluginrequiredProductivity - Initiativesinitiative · Workspace initiatives.
Actions:
list (no required params) -- returns every initiative; this endpoint does not paginate;
retrieve (initiative_id);
create (name; optional description_html, start_date, end_date, state, lead);
update (initiative_id; optional name, description_html, start_date, end_date, state, lead) -- only the fields you pass are changed;
delete (initiative_id);
list_projects (initiative_id; optional cursor, per_page);
add_projects (initiative_id, project_ids) -- returns nothing, read back with list_projects;
remove_projects (initiative_id, project_ids) -- returns nothing, read back with list_projects.
state is one of: DRAFT, PLANNED, ACTIVE, COMPLETED, CLOSED. Dates are ISO 8601 (YYYY-MM-DD). lead is a member id. project_ids takes project UUIDs.PlanePlane
PluginrequiredProductivity - Intake queueintake · The intake (triage) queue for a project.
Actions:
list (project_id; optional cursor, per_page);
retrieve (project_id, workitem_id);
create (project_id, name; optional description_html, priority);
update (project_id, workitem_id; optional status, snoozed_till, duplicate_to, source, source_email) -- pass status to make a triage decision;
delete (project_id, workitem_id).
workitem_id is the `issue` field of an intake record, not the record's own id. status: -2 pending, -1 declined, 0 snoozed (needs snoozed_till), 1 accepted, 2 duplicate (needs duplicate_to). priority is one of: urgent, high, medium, low, none.PlanePlane
PluginrequiredProductivity - Labelslabel · Labels within a project.
Actions:
list (project_id; optional cursor, per_page);
retrieve (project_id, label_id);
create (project_id, name; optional color, description, parent, sort_order, external_source, external_id);
update (project_id, label_id; optional name, color, description, parent, sort_order, external_source, external_id) -- only the fields you pass are changed;
delete (project_id, label_id).
color is a hex code such as #EF4444. parent is the UUID of another label, for nesting.PlanePlane
PluginrequiredProductivity - Members and rolesmember · Workspace and project members, and role definitions.
Actions:
me (no required params) -- the authenticated user;
list_workspace (no required params; optional first_name, last_name, email, display_name, role_slug, is_active, is_bot, cursor, per_page, order_by) -- name filters match case-insensitively and combine with AND;
list_project (project_id);
list_roles (no required params; optional namespace, cursor, per_page);
retrieve_role (role_id).
namespace is 'workspace' (Owner/Admin/Member/Guest) or 'project' (Admin/Contributor/Commenter/Guest); omit for both. A role slug is stable but not globally unique -- key on (namespace, slug).PlanePlane
PluginrequiredProductivity - Milestonesmilestone · Milestones within a project.
Actions:
list (project_id; optional cursor, per_page);
retrieve (project_id, milestone_id);
create (project_id, title; optional target_date, external_source, external_id);
update (project_id, milestone_id; optional title, target_date, external_source, external_id) -- only the fields you pass are changed;
delete (project_id, milestone_id);
list_workitems (project_id, milestone_id; optional cursor, per_page);
manage_workitems (project_id, milestone_id; optional add_ids, remove_ids) -- pass at least one of add_ids or remove_ids; returns nothing, read back with list_workitems.
target_date is ISO 8601 (YYYY-MM-DD). add_ids and remove_ids take work item UUIDs.PlanePlane
PluginrequiredProductivity - Modulesmodule · Modules (feature groupings) in a project.
Actions:
list (project_id; optional archived, cursor, per_page, order_by);
retrieve (project_id, module_id);
create (project_id, name; optional description, start_date, target_date, status, lead, members, external_source, external_id);
update (project_id, module_id; optional name, description, start_date, target_date, status, lead, members, external_source, external_id) -- only the fields you pass are changed;
delete (project_id, module_id);
list_workitems (project_id, module_id; optional pql, order_by, cursor, per_page, expand, fields);
manage_workitems (project_id, module_id; optional add_ids, remove_ids) -- pass at least one of add_ids or remove_ids; returns nothing, read back with list_workitems;
archive (project_id, module_id);
unarchive (project_id, module_id).
status is one of: backlog, planned, in-progress, paused, completed, cancelled. Dates are ISO 8601 (YYYY-MM-DD). lead and members are member ids. Optional Plane Query Language (PQL) filter. Examples: `priority = "urgent" AND assignee = currentUser()`, `stateGroup IN openStates() AND isOverdue()`. UUID fields (project, assignee, state, label, cycle, module, type, milestone, createdBy) need UUIDs — resolve a name to its UUID first if you only have a name or short identifier (e.g. `LSS` → `project list` and match `identifier` to get `id`). Call `get_pql_reference` for full PQL syntax before composing complex queries.PlanePlane
PluginrequiredProductivity - PQL referenceget · Plane Query Language (PQL) syntax reference. Call this before composing a `pql` filter for the workitem list, list_archived or count actions.
Actions:
read (no required params; optional detail) -- this tool has no action parameter.
detail 'full' gives operators, functions, common mistakes and worked examples; 'brief' gives the compact field and operator quick reference.PlanePlane
PluginrequiredProductivity - Page collectionscollection · Collections grouping workspace pages.
Actions:
list (no required params);
retrieve (collection_id);
create (name; optional access) -- access is fixed at creation and cannot be changed afterwards;
update (collection_id; optional name, sort_order) -- only the fields you pass are changed;
delete (collection_id; optional archive_pages) -- the pages survive; archive_pages defaults to true, pass false to leave them unfiled instead;
list_pages (collection_id; optional search, parent_id, cursor, per_page);
search_pages (collection_id; optional search) -- pages not yet in this collection, to pick ids for add_pages;
add_pages (collection_id, page_ids) -- files existing pages; use page create to make new ones;
remove_page (collection_id, page_collection_id) -- page_collection_id is the membership id from list_pages, not the page id; the page itself is kept;
list_members (collection_id);
add_member (collection_id, user_id, member_access);
update_member (collection_id, collection_member_id, member_access);
remove_member (collection_id, collection_member_id) -- collection_member_id is the membership id from list_members, not the user id.
access is one of: public, private -- a private collection is visible only to its members, and the level cannot be changed once the collection exists. member_access is one of: view, comment, edit and is a separate scale from access. Collections group workspace pages only; a project's pages cannot be filed in one. To file or move a page, use `page set_collection` -- it works out which collection holds the page for you, so it needs no membership id.PlanePlane
PluginrequiredProductivity - Pagespage · Pages at workspace or project scope.
Actions:
list (no required params; optional project_id, cursor, per_page) -- workspace pages unless project_id is given;
retrieve (page_id; optional project_id);
create (name, description_html; optional project_id, parent_id, collection_id, access, color, is_locked, external_source, external_id) -- parent_id nests the new page under an existing one; collection_id files it. Pass one or the other, never both;
update (page_id; optional project_id, name, description_html) -- pass name, description_html, or both; description_html replaces the whole body, so retrieve the page first when editing part of it; a locked or archived page is refused;
archive (page_id; optional project_id, archive) -- archive defaults to true; pass archive=false to restore;
delete (page_id; optional project_id) -- requires the page to be archived first;
set_collection (page_id, collection_id) -- files a page into a collection, or moves it out of the one it is in; workspace pages only, and collection_id comes from the collection tool;
list_workitem_pages (project_id, workitem_id);
attach_to_workitem (project_id, workitem_id, page_id);
detach_from_workitem (project_id, workitem_id, workitem_page_id) -- workitem_page_id is the link id from list_workitem_pages, not the page id.
description_html is the page body as HTML. access is the page access level. update changes only the fields you pass. A page must be archived before it can be deleted. Omit project_id to work with workspace-level pages. A page's parent is fixed at creation -- pass parent_id to create to build a hierarchy, since nothing can reparent it afterwards. list and retrieve both report a page's parent_id and the collection_id it is filed in, so neither needs looking up. Collections themselves live in the collection tool; here, create files a new page into one and set_collection files or moves an existing page.PlanePlane
PluginrequiredProductivity - Project estimatesproject · A project's estimate system and its points.
Actions:
retrieve (project_id) -- a project has at most one estimate;
create (project_id, name; optional type, description, last_used, external_source, external_id) -- creates the estimate only; add its values afterwards with create_points;
update (project_id; optional name, description, external_source, external_id);
delete (project_id);
link (project_id, estimate_id) -- makes that estimate the project's active one;
list_points (project_id, estimate_id);
create_points (project_id, estimate_id, points);
update_point (project_id, estimate_id, estimate_point_id; optional value, key, description, external_source, external_id);
delete_point (project_id, estimate_id, estimate_point_id).
type is one of: categories, points, time. A point's `value` is its display label ("5", "XL") and its `key` is the sort order. points takes a JSON array such as [{"value": "1", "key": 0}]. To set a work item's estimate: retrieve to get the estimate_id, list_points to see the available values, then pass the chosen point's id to `workitem update` as estimate_point.PlanePlane
PluginrequiredProductivity - Projectsproject · Projects in a workspace.
Actions:
list (no required params; optional cursor, per_page, order_by) -- trimmed fields; use retrieve for full detail;
retrieve (project_id);
create (name, identifier; optional description, description_html, project_lead, default_assignee, emoji, cover_image, timezone, archive_in, close_in, external_source, external_id);
update (project_id; optional name, description, description_html, identifier, project_lead, default_assignee, emoji, cover_image, network, timezone, archive_in, close_in, default_state, estimate, is_time_tracking_enabled, external_source, external_id) -- only the fields you pass are changed;
delete (project_id);
archive (project_id);
unarchive (project_id);
worklog_summary (project_id);
get_features (project_id);
update_features (project_id; optional modules, cycles, views, pages, intakes, workitem_types, epics, parallel_cycles, project_updates, workflows) -- toggles project features on or off.
identifier is the short work item prefix, such as ENG. network is 0 for secret or 2 for public. project_lead and default_assignee are member ids -- get them from `member list_workspace`. Feature toggles are booleans; omitted ones are left as they are.PlanePlane
PluginrequiredProductivity - Release labelsrelease · Release labels, workspace palette and per release.
Actions:
list (no required params; optional release_id, cursor, per_page) -- the workspace palette unless release_id is given;
create (name; optional color, sort_order) -- adds to the workspace palette;
update (label_id; optional name, color, sort_order);
delete (label_id) -- removes it from the palette entirely;
attach (release_id, label_ids) -- returns nothing, read back with list;
detach (release_id, label_ids) -- returns nothing, read back with list.
color is a hex code such as #4E5355. label_ids takes palette label ids. Detaching a label leaves it in the palette; delete removes it for everyone.PlanePlane
PluginrequiredProductivity - Release tagsrelease · Release tags (version markers).
Actions:
list (no required params; optional cursor, per_page);
retrieve (tag_id);
create (version; optional description, commit_hash, git_tag);
update (tag_id; optional version, description, commit_hash, git_tag) -- only the fields you pass are changed;
delete (tag_id).
version is a version string such as "v1.2.0". A tag id is what release takes as tag_id.PlanePlane
PluginrequiredProductivity - Releasesrelease · Releases in the workspace.
Actions:
list (no required params; optional cursor, per_page);
retrieve (release_id);
create (name; optional description_html, status, release_date, target_date, tag_id, lead_id, is_prerelease, external_source, external_id);
update (release_id; optional name, description_html, status, release_date, target_date, tag_id, lead_id, is_prerelease) -- only the fields you pass are changed;
delete (release_id);
get_changelog (release_id);
update_changelog (release_id; optional description_html, description_stripped);
list_workitems (release_id; optional cursor, per_page);
manage_workitems (release_id; optional add_ids, remove_ids) -- pass at least one of add_ids or remove_ids; returns nothing, read back with list_workitems.
status is one of: unreleased, released, cancelled, defaulting to unreleased. release_date is what the Plane UI labels "Target date" (YYYY-MM-DD); target_date is a separate stored date that the UI does not show. tag_id comes from `release_tag list`, lead_id from `member list_workspace`. For the changelog pass description_html, or description_stripped for plain text. A changelog is created empty with the release, so get_changelog always returns one.PlanePlane
PluginrequiredProductivity - Templatestemplate · Reusable templates for work items, pages and projects.
Actions:
list (kind; optional project_id);
create (kind, name, template_data; optional project_id, description);
update (kind, template_id; optional project_id, name, description, template_data) -- only the fields you pass are changed;
delete (kind, template_id; optional project_id).
kind is one of: workitem, page, project. project_id chooses the scope a write lands in; omit it for the workspace, which is also the only scope a project kind can live at. For a workitem or page kind, listing without project_id is the wider view: it returns a project's templates as well as the workspace's own, told apart by a non-null project. Pass project_id to list one project's alone. template_data is a JSON object holding what gets templated -- for a work item template, the fields a work item created from it starts with, such as {"name": "Spec", "description_html": "<p>Context / Acceptance criteria</p>", "priority": "medium"}. update merges it into what is there rather than replacing it, so pass only what changes. description is the template's own summary, not the templated body.PlanePlane
PluginrequiredProductivity - Work item activityworkitem · Change history for a work item.
Actions:
list (project_id, workitem_id; optional cursor, per_page);
retrieve (project_id, workitem_id, activity_id).PlanePlane
PluginrequiredProductivity - Work item attachmentsworkitem · Files attached to a work item.
Actions:
list (project_id, workitem_id);
read (project_id, workitem_id, attachment_id) -- returns images and text inline; use download_url for anything else;
download_url (project_id, workitem_id, attachment_id);
upload_from_url (project_id, workitem_id, url; optional name);
delete (project_id, workitem_id, attachment_id).
read supports PNG/JPEG/GIF/WEBP up to 5 MB and TXT/MD/CSV/HTML/XML/YAML/JSON up to 1 MB. Get attachment_id from the list action. upload_from_url fetches the file server-side, so the URL must be reachable without authentication and must not resolve to a private address.PlanePlane
PluginrequiredProductivity - Work item commentsworkitem · Comments on a work item.
Actions:
list (project_id, workitem_id; optional cursor, per_page);
retrieve (project_id, workitem_id, comment_id);
create (project_id, workitem_id, comment_html; optional access, external_source, external_id);
update (project_id, workitem_id, comment_id; optional comment_html, access, external_source, external_id);
delete (project_id, workitem_id, comment_id).
comment_html is HTML, e.g. '<p>Looks good.</p>'. access is INTERNAL or EXTERNAL.PlanePlane
PluginrequiredProductivity - Work item linksworkitem · External links attached to a work item.
Actions:
list (project_id, workitem_id; optional cursor, per_page);
retrieve (project_id, workitem_id, link_id);
create (project_id, workitem_id, url);
update (project_id, workitem_id, link_id, url);
delete (project_id, workitem_id, link_id).PlanePlane
PluginrequiredProductivity - Work item propertiesworkitem · Custom work item properties and their options.
Actions:
list (no required params; optional project_id, workitem_type_id, cursor, per_page) -- no ids lists every workspace property in one call -- the fast path for PQL;
retrieve (workitem_property_id; optional project_id, workitem_type_id);
create (display_name, property_type; optional project_id, workitem_type_id, description, relation_type, is_required, is_multi, is_active, default_value, options, display_format, external_source, external_id);
update (workitem_property_id; optional project_id, workitem_type_id, display_name, property_type, description, relation_type, is_required, is_multi, is_active, default_value, display_format, external_source, external_id) -- only the fields you pass are changed;
delete (workitem_property_id; optional project_id, workitem_type_id);
manage_type_properties (workitem_type_id; optional project_id, attach_ids, detach_ids) -- omit project_id where the workspace owns types; detach removes the association only, it does not delete the property;
list_options (property_id; optional project_id);
retrieve_option (property_id, option_id; optional project_id);
create_option (property_id, name; optional project_id, description, color, is_default, external_source, external_id);
update_option (property_id, option_id; optional project_id, name, description, color, is_default, external_source, external_id);
delete_option (property_id, option_id; optional project_id);
get_value (project_id, workitem_id, property_id);
set_value (project_id, workitem_id, property_id, value; optional external_source, external_id) -- upsert; for a multi-value property this replaces every existing value;
delete_value (project_id, workitem_id, property_id).
property_type is one of: TEXT, DATETIME, DECIMAL, BOOLEAN, OPTION, RELATION, URL, EMAIL, FILE, FORMULA. relation_type (for RELATION properties) is one of: ISSUE, USER, RELEASE, RICH_TEXT. A property id is what goes in a PQL cf["<id>"] filter; for OPTION properties the value is an option id. options takes a JSON array of {"name", "color", "is_default"} objects. display_format is required by TEXT (single-line, multi-line, readonly) and DATETIME (MMM dd, yyyy, dd/MM/yyyy, MM/dd/yyyy, yyyy/MM/dd) properties. A property lives with its type: where the workspace owns types, pass workitem_type_id without project_id and it is created in the workspace catalogue and associated for you. list resolves scope in this order: project_id + workitem_type_id is type-scoped (falling back to project-flat then workspace when empty), project_id alone is every property in the project, and neither is every workspace property. To filter by property name in PQL, call list with no ids -- one workspace-wide fetch beats iterating types -- then match display_name in memory to get the id for a cf[] condition. The *_value actions read and write a property on one work item: pass value in the type the property expects -- TEXT/URL/EMAIL/FILE as a string; DATETIME as a YYYY-MM-DD or YYYY-MM-DD HH:MM:SS string; DECIMAL as a number; BOOLEAN as true or false; OPTION and RELATION as an option or record id string, or an array of them when the property is multi-value. Send the value's own type, not a stringified form: "007" stays the text 007, whereas 7 is the number.PlanePlane
PluginrequiredProductivity - Work item relationsworkitem · Relations between work items, and the definitions that type them.
Actions:
list (project_id, workitem_id);
create (project_id, workitem_id, workitem_ids; optional relation_type, relation_definition_id, relation_definition_label) -- pass relation_type for a dependency, or definition id + label for a custom relation;
delete (project_id, workitem_id, related_workitem_id; optional is_dependency) -- removes one relation; dependencies and custom relations are independent, so is_dependency must match the kind that was created (default false);
list_definitions (no required params; optional is_default, is_active);
create_definition (name; optional outward, inward, is_active, color);
update_definition (definition_id; optional name, outward, inward, is_active, color);
delete_definition (definition_id).
Call list_definitions first and match the user's wording to an entry. A built_in_dependencies value (blocking, blocked_by, start_before, start_after, finish_before, finish_after) goes in relation_type; a custom definition needs its id in relation_definition_id and the matched outward or inward label in relation_definition_label, which sets direction.PlanePlane
PluginrequiredProductivity - Work item typesworkitem · Work item types, at project or workspace scope.
Actions:
list (no required params; optional project_id, cursor, per_page) -- workspace scope when project_id is omitted;
retrieve (workitem_type_id; optional project_id);
resolve (project_id, name) -- finds or creates a named type usable in the project; never duplicates;
create (name; optional project_id, description, project_ids, is_active, external_source, external_id);
update (workitem_type_id; optional project_id, name, description, project_ids, is_active, external_source, external_id) -- only the fields you pass are changed;
delete (workitem_type_id; optional project_id);
import_to_project (project_id, workitem_type_ids) -- links workspace types to a project.
Omit project_id to work at workspace scope. A type's id is the type_id for `workitem create` and the workitem_type_id for `workitem_property list`. Prefer resolve over create when you just need a usable type such as Epic or Initiative: it handles both modes, matches exactly (case-sensitive, whitespace-stripped) and never duplicates. Where the workspace owns the vocabulary, creating a type on a project is rejected and importing is the only valid path -- resolve does that for you.PlanePlane
PluginrequiredProductivity
What is Tool Explorer?
Tool Explorer indexes the callable tool names and descriptions attached to public registry profiles. It is useful for seeing what agents can actually invoke, not just which profile exists.
How do category and verb filters work?
Category filters use the live registry category rollup. Verb filters use the public tool insights rollup, so the page stays backed by the same read models as the tracker charts.
Why do auth requirements matter?
Auth requirements show whether a tool is likely usable without account connection, requires authentication, is private, or is unknown in the current snapshot.