# Productboard — how to use (mcp.ai)

Connect your Productboard account and use 99 tools for product management straight from your AI agent. Connect in one click, no API key needed. Productboard is a product management platform that gathers feedback, prioritizes features, and aligns roadmaps based on customer insights and strategic goals.

## Option A — via MCP (recommended)
Remote MCP endpoint (HTTP, streamable): `https://api.mcp.ai/p_productboard?ms=1787296020000`
Add it as a custom/remote MCP connector in your client (Claude, Cursor, VS Code…), then authenticate when prompted. Once connected, ask the agent to use the server's tools (e.g. `productboard_add_note_followers`).

## Option B — via direct REST API
Base URL: `https://api.mcp.ai/api/productboard`
Auth: `Authorization: Bearer sk_live_…` — create a workspace API key at https://mcp.ai/settings/api-keys
Discover endpoints: `GET https://api.mcp.ai/api/productboard/_endpoints`

### Endpoints
- `POST https://api.mcp.ai/api/productboard/add/note/followers` — Tool to add multiple followers to a Productboard note. Use when you need to bulk-add existing users as followers to a specific note by their email addresses.
  - body: { emails: string[], noteId: string }
- `POST https://api.mcp.ai/api/productboard/add/note/tag` — Adds a tag to a Productboard note for categorization and organization. Use this action to apply tags to notes based on their content, priority, source, or any other classification criteria. Tags help 
  - body: { noteId: string, tagName: string }
- `POST https://api.mcp.ai/api/productboard/create/company` — Tool to create a new company in Productboard. Use when you need to add a company record after gathering its details and optional metadata.
  - body: { name: string, domain?: string, source?: object, description?: string }
- `POST https://api.mcp.ai/api/productboard/create/company/field` — Tool to create a new custom field for companies. Use when you need to define custom company attributes in Productboard after confirming the field schema.
  - body: { body: object }
- `POST https://api.mcp.ai/api/productboard/create/component` — Tool to create a new (sub)component under a product or component. Use after determining the parent component ID.
  - body: { data: object }
- `POST https://api.mcp.ai/api/productboard/create/entities/relationships/v2` — Tool to create a relationship between two entities in Productboard. Use when you need to establish a parent, child, link, or dependency relationship between entities.
  - body: { id: string, data: object }
- `POST https://api.mcp.ai/api/productboard/create/entities/v2` — Tool to create a new entity in Productboard using the v2 API. Use when you need to create products, components, features, subfeatures, initiatives, objectives, key results, releases, or release groups
  - body: { data: object }
- `POST https://api.mcp.ai/api/productboard/create/feature` — Tool to create a new feature or subfeature in Productboard. Use when you need to add a feature to a product or component, or create a subfeature under an existing feature.
  - body: { data: object }
- `POST https://api.mcp.ai/api/productboard/create/feature/objective/link` — Tool to create a link between a feature and an objective (OKR). Use when associating a feature with a specific objective to track alignment.
  - body: { id: string, objectiveId: string }
- `POST https://api.mcp.ai/api/productboard/create/note/link` — Tool to create a link between a note and an entity. Use when associating a note with a productboard entity.
  - body: { noteId: string, entityId: string }
- `POST https://api.mcp.ai/api/productboard/create/notes/v2` — Tool to create a new note in Productboard using the v2 API. Use when you need to create simple text notes or conversation-style notes with optional relationships to customers, companies, or external l
  - body: { data: object }
- `POST https://api.mcp.ai/api/productboard/create/objectives` — Tool to create a new objective in Productboard. Use when you need to create a strategic objective with optional details like owner, parent, status, and timeframe.
  - body: { data: object }
- `POST https://api.mcp.ai/api/productboard/create/objectives/links/features` — Tool to create a new link between an objective and a feature. Use when associating a feature with an objective (OKR).
  - body: { id: string, featureId: string }
- `POST https://api.mcp.ai/api/productboard/create/release` — Tool to create a new release in Productboard. Use when you need to create a release with a name, description, and assigned release group.
  - body: { data: object }
- `POST https://api.mcp.ai/api/productboard/create/users` — Tool to create a new user in Productboard. Use when you need to add a user with email, name, and/or external identifier.
  - body: { data: object }
- `POST https://api.mcp.ai/api/productboard/create/webhook` — Tool to create a new webhook subscription. Use when you need to register a public endpoint to receive webhooks from Productboard.
  - body: { url: string, name: string, events: object[], notification_headers?: object, notification_version: integer }
- `POST https://api.mcp.ai/api/productboard/delete/company` — Tool to delete a specific company. Use when you have confirmed the company ID and need to remove it from Productboard.
  - body: { id: string }
- `POST https://api.mcp.ai/api/productboard/delete/company/field` — Tool to delete a specific company custom field. Use after confirming the field ID and ensuring no dependencies remain.
  - body: { id: string }
- `POST https://api.mcp.ai/api/productboard/delete/custom/field/value` — Tool to delete a custom field value from a hierarchy entity in Productboard. Use when you need to remove a custom field value from a product, component, or feature after confirming the field and entit
  - body: { customField.id: string, hierarchyEntity.id: string }
- `POST https://api.mcp.ai/api/productboard/delete/entities/relationships/v2` — Tool to delete a relationship between two entities. Use when you need to remove a specific relationship type between entities in Productboard.
  - body: { id: string, type: string, targetId: string }
- `POST https://api.mcp.ai/api/productboard/delete/entities/v2` — Tool to delete a PM entity using the v2 API. Use when you need to permanently remove an entity from Productboard. Returns 204 on success.
  - body: { id: string }
- `POST https://api.mcp.ai/api/productboard/delete/feature` — Tool to delete a specific feature. Use when you have confirmed the feature ID and deleted its subfeatures before removal.
  - body: { id: string }
- `POST https://api.mcp.ai/api/productboard/delete/feature/objective/link` — Tool to delete a link between a feature and an objective. Use when you need to remove the association between a specific feature and objective.
  - body: { id: string, objectiveId: string }
- `POST https://api.mcp.ai/api/productboard/delete/initiatives` — Tool to delete a specific initiative. Use when you have confirmed the initiative ID and need to permanently remove it from Productboard.
  - body: { id: string }
- `POST https://api.mcp.ai/api/productboard/delete/key/results` — Tool to delete a specific key result from Productboard. Use when you need to remove a key result that is no longer relevant or was created in error.
  - body: { id: string }
- `POST https://api.mcp.ai/api/productboard/delete/note/tag` — Tool to remove a tag from a Productboard note. Use when you need to detach a specific tag from a note after tagging.
  - body: { noteId: string, tagName: string }
- `POST https://api.mcp.ai/api/productboard/delete/notes/relationships/v2` — Tool to delete a note relationship. Use when you need to remove a specific relationship between a note and another entity (customer or link) in Productboard.
  - body: { id: string, targetId: string, targetType: string }
- `POST https://api.mcp.ai/api/productboard/delete/notes/v2` — Tool to delete a note using the v2 API. Permanently removes the note and all its associated data. Returns 204 on success.
  - body: { id: string }
- `POST https://api.mcp.ai/api/productboard/delete/objectives` — Tool to delete a specific objective from Productboard. Use when you have confirmed the objective ID and need to permanently remove it.
  - body: { id: string }
- `POST https://api.mcp.ai/api/productboard/delete/objectives/links/features` — Tool to delete a link between an objective and a feature. Use when you need to remove the association between a specific objective and feature.
  - body: { id: string, feature_id: string }
- `POST https://api.mcp.ai/api/productboard/delete/release` — Tool to delete a specific release. Use when you have confirmed the release ID and need to remove it from Productboard.
  - body: { id: string }
- `POST https://api.mcp.ai/api/productboard/delete/user` — Tool to delete a specific user. Use when you have confirmed the user ID and need to remove it from Productboard.
  - body: { id: string }
- `POST https://api.mcp.ai/api/productboard/delete/webhook` — Tool to delete a webhook subscription. Use when you need to remove a webhook subscription from Productboard.
  - body: { id: string }
- `POST https://api.mcp.ai/api/productboard/get/component` — Tool to retrieve details of a specific component. Use when you have the component ID to fetch its full details including description, parent hierarchy, owner, and timestamps.
  - body: { id: string }
- `POST https://api.mcp.ai/api/productboard/get/custom/field/value` — Tool to retrieve a custom field's value for a specific hierarchy entity. Use when you need to get the current value of a custom field on a product, component, or feature.
  - body: { customField.id: string, hierarchyEntity.id: string }
- `POST https://api.mcp.ai/api/productboard/get/entities/configurations/v2` — Tool to retrieve entity configuration for a specific type. Use when you need to understand the structure, fields, and relationships available for an entity type in Productboard.
  - body: { type: string }
- `POST https://api.mcp.ai/api/productboard/get/entities/v2` — Tool to retrieve a PM entity using the v2 API. Use when you need to fetch details of a specific entity by its UUID. Returns entity data with optional field filtering.
  - body: { id: string, fields?: string[] }
- `POST https://api.mcp.ai/api/productboard/get/feature/release/assignment` — Tool to retrieve a specific feature release assignment. Use when you need to check if a particular feature is assigned to a specific release. Returns assignment status (true/false) and entity referenc
  - body: { feature.id: string, release.id: string }
- `POST https://api.mcp.ai/api/productboard/get/hierarchy/entities/custom/fields` — Tool to retrieve a specific custom field definition for hierarchy entities. Use when you have a custom field ID to fetch its complete details including type, name, description, and options.
  - body: { id: string }
- `POST https://api.mcp.ai/api/productboard/get/notes/configurations/v2` — Tool to retrieve note configuration by type (simple, conversation, or opportunity). Use when you need to understand the fields, relationships, and constraints for a specific note type.
  - body: { type: string }
- `POST https://api.mcp.ai/api/productboard/get/notes/v2` — Tool to retrieve a note using the v2 API. Use when you need to fetch details of a specific note by its UUID.
  - body: { id: string, fields?: string[] }
- `POST https://api.mcp.ai/api/productboard/get/objective` — Tool to retrieve details of a specific objective. Use when you have the objective ID to fetch its full details including name, description, status, timeframe, and owner.
  - body: { id: string }
- `POST https://api.mcp.ai/api/productboard/get/release` — Tool to retrieve details of a specific release by ID. Use when you need complete information about a single release.
  - body: { id: string }
- `POST https://api.mcp.ai/api/productboard/get/release/group` — Tool to retrieve details of a specific release group. Use when you have the release group ID to fetch its full details.
  - body: { id: string }
- `POST https://api.mcp.ai/api/productboard/get/webhooks` — Tool to retrieve details of a specific webhook subscription. Use when you have the webhook ID to fetch its complete configuration.
  - body: { id: string }
- `POST https://api.mcp.ai/api/productboard/list/analytics/member/activities/v2` — Tool to retrieve member activity analytics data from Productboard. Use when you need to analyze member engagement metrics, activity patterns, or usage statistics. Supports date-range filtering and pag
  - body: { limit?: integer, dateTo?: string, dateFrom?: string, pageCursor?: string }
- `POST https://api.mcp.ai/api/productboard/list/companies` — Tool to list companies. Use when you need a paginated list of companies with optional filters.
  - body: { term?: string, hasNotes?: string, featureId?: string, pageLimit?: integer, pageOffset?: integer }
- `POST https://api.mcp.ai/api/productboard/list/company/fields` — Lists all custom field definitions for companies in your Productboard workspace. This endpoint returns metadata about company custom fields (field schemas), not the actual values. Use this to discover
- `POST https://api.mcp.ai/api/productboard/list/custom/field/values` — Lists custom field values for hierarchy entities (products, components, features) in Productboard. Returns only non-empty values. Filter by custom field type or specific field ID. Combine filters to n
  - body: { type?: string[], pageLimit?: integer, pageCursor?: string, customField.id?: string, hierarchyEntity.id?: string }
- `POST https://api.mcp.ai/api/productboard/list/custom/fields` — Lists custom field definitions for hierarchy entities (Products, Components, Features). Returns metadata about custom fields (name, type, description) but not their values. Use this to discover availa
  - body: { type: string[], pageLimit?: integer, pageCursor?: string }
- `POST https://api.mcp.ai/api/productboard/list/entities/configurations/v2` — Tool to retrieve configurations for all entity types in Productboard. Use when you need to understand available fields, relationships, and metadata for entity types like features, components, products
  - body: { page_cursor?: string }
- `POST https://api.mcp.ai/api/productboard/list/entities/relationships/v2` — Tool to retrieve relationships for an entity in Productboard. Use when you need to find parent, child, or link relationships between entities.
  - body: { id: string, type?: string, targetId?: string, pageCursor?: string }
- `POST https://api.mcp.ai/api/productboard/list/entities/v2` — Tool to list entities from Productboard using the v2 API. Use when you need a paginated list of PM entities (products, components, features, subfeatures, initiatives, objectives, key results, releases
  - body: { name?: string, type: string, fields?: string[], archived?: boolean, owner.id?: string, parent.id?: string, status.id?: string, pageCursor?: string, owner.email?: string, status.name?: string }
- `POST https://api.mcp.ai/api/productboard/list/feature/initiatives` — Tool to list initiatives linked to a given feature. Use when you need to retrieve all initiatives associated with a feature after confirming its ID.
  - body: { id: string, page_cursor?: string }
- `POST https://api.mcp.ai/api/productboard/list/feature/objectives` — Lists all objectives (OKRs) linked to a top-level feature. Returns objective IDs and hypermedia links. Note: This endpoint only works with top-level features, not subfeatures. Use PRODUCTBOARD_LIST_FE
  - body: { id: string, pageCursor?: string }
- `POST https://api.mcp.ai/api/productboard/list/feature/release/assignments` — Tool to list feature–release assignments. Use when you need to retrieve assignments for a specific feature or release with optional state or date filters; paginate using links.next.
  - body: { pageLimit?: integer, feature.id?: string, pageCursor?: string, release.id?: string, release.state?: string, release.timeframe.endDate.to?: string, release.timeframe.endDate.from?: string }
- `POST https://api.mcp.ai/api/productboard/list/feature/statuses` — Tool to list feature statuses. Use when you need to retrieve all feature status records in a paginated form. Follow 'links.next' for additional pages.
  - body: { next_page_url?: string }
- `POST https://api.mcp.ai/api/productboard/list/feedback/form/configurations` — Tool to list feedback form configurations. Use when you need a paginated list of feedback form configurations.
  - body: { pageLimit?: integer, pageOffset?: integer }
- `POST https://api.mcp.ai/api/productboard/list/initiatives` — Tool to list initiatives from Productboard. Use when you need a paginated list of initiatives with optional filters for archived status, owner, and status. Follow 'links.next' URL to retrieve addition
  - body: { archived?: boolean, pageLimit?: integer, status.id?: string, pageCursor?: string, owner.email?: string, status.name?: string }
- `POST https://api.mcp.ai/api/productboard/list/jira/integrations` — Tool to list Jira integrations. Use when you need to retrieve Productboard's connected Jira integrations with optional pagination.
  - body: { pageUrl?: string }
- `POST https://api.mcp.ai/api/productboard/list/key/results` — List key results from Productboard. Key results are measurable outcomes that track progress toward objectives. Use this action to: - Get all key results in the workspace - Filter key results by parent
  - body: { archived?: boolean, pageLimit?: integer, parent.id?: string, status.id?: string, pageCursor?: string, owner.email?: string, status.name?: string }
- `POST https://api.mcp.ai/api/productboard/list/note/tags` — Tool to retrieve all tags associated with a specific Productboard note. Use when you need to view the current tags applied to a note for filtering, categorization, or analysis purposes.
  - body: { noteId: string }
- `POST https://api.mcp.ai/api/productboard/list/notes/configurations/v2` — Tool to list note configurations from Productboard v2 API. Use when you need to discover available fields, relationships, and validation rules for different note types (simple, conversation, opportuni
  - body: { type?: string[] }
- `POST https://api.mcp.ai/api/productboard/list/notes/links` — Tool to list links associated with a note. Returns entities (products, components, features, or subfeatures) linked to the specified note.
  - body: { noteId: string }
- `POST https://api.mcp.ai/api/productboard/list/notes/relationships/v2` — Tool to retrieve relationships associated with a note. Returns entities (users, companies, features, components, products) linked to the specified note via customer or link relationships.
  - body: { id: string, limit?: integer, pageCursor?: string }
- `POST https://api.mcp.ai/api/productboard/list/notes/v2` — Tool to retrieve a paginated list of notes from Productboard using the v2 API. Use when you need to list notes with advanced filtering by archived/processed status, owner, creator, source, or date ran
  - body: { fields?: string[], archived?: boolean, owner_id?: string, createdTo?: string, processed?: boolean, updatedTo?: string, creator_id?: string, pageCursor?: string, createdFrom?: string, owner_email?: string, updatedFrom?: string, creator_email?: string, source_recordId?: string }
- `POST https://api.mcp.ai/api/productboard/list/objectives/links/features` — Lists all features linked to a specific objective. Returns feature IDs and hypermedia links for each linked feature.
  - body: { id: string, pageCursor?: string }
- `POST https://api.mcp.ai/api/productboard/list/objectives/links/initiatives` — Tool to list initiatives linked to a specific objective. Use when you need to retrieve all initiatives associated with an objective after confirming its ID.
  - body: { id: string, page_cursor?: string }
- `POST https://api.mcp.ai/api/productboard/list/plugin/integrations` — List all plugin integrations in the Productboard workspace. Plugin integrations allow you to add columns to the Productboard Features board that integrate with third-party systems (e.g., Jira, GitHub)
  - body: { pageUrl?: string }
- `POST https://api.mcp.ai/api/productboard/list/release/groups` — Lists all release groups in the Productboard workspace. Release groups allow organizing multiple sets of releases (e.g., sprints, development cycles, internal releases, or marketing launches). Use thi
  - body: { pageLimit?: integer, pageCursor?: string }
- `POST https://api.mcp.ai/api/productboard/list/releases` — Tool to list all releases in Productboard. Use when you need a paginated list of releases; follow links.next for more pages.
  - body: { releaseGroup.id?: string }
- `POST https://api.mcp.ai/api/productboard/list/users` — Retrieves a paginated list of all users in the Productboard workspace. Returns user details including id, name, email, externalId, and companyId. The API paginates results (up to 100 users per page). 
  - body: { next?: string }
- `POST https://api.mcp.ai/api/productboard/list/webhooks` — Tool to list all webhook subscriptions. Use when you need to retrieve all registered webhook endpoints and their configurations.
- `POST https://api.mcp.ai/api/productboard/remove/note/follower` — Tool to remove a follower from a Productboard note. Use after confirming the note ID and follower email are correct.
  - body: { email: string, noteId: string }
- `POST https://api.mcp.ai/api/productboard/retrieve/company` — Tool to retrieve details of a specific company. Use when you have the company ID to fetch its full details.
  - body: { id: string }
- `POST https://api.mcp.ai/api/productboard/retrieve/company/field` — Tool to retrieve details of a specific company custom field. Use when you have the custom field ID and need its metadata.
  - body: { id: string }
- `POST https://api.mcp.ai/api/productboard/retrieve/company/field/value` — Tool to retrieve a specific company custom field value. Use when you need the current value of a custom field for a given company by its IDs.
  - body: { companyId: string, companyCustomFieldId: string }
- `POST https://api.mcp.ai/api/productboard/retrieve/feature` — Tool to retrieve details of a specific feature. Use when you need complete info on one feature.
  - body: { id: string }
- `POST https://api.mcp.ai/api/productboard/retrieve/product` — Tool to retrieve details of a specific product. Use when you have the product ID to fetch its full details.
  - body: { id: string }
- `POST https://api.mcp.ai/api/productboard/retrieve/user` — Tool to retrieve details of a specific user. Use when you have the user ID to fetch its full details.
  - body: { id: string }
- `POST https://api.mcp.ai/api/productboard/scim/list/users` — Tool to list users via SCIM. Use when checking for existing users before creation.
  - body: { count?: integer, filter?: string, sortBy?: string, sortOrder?: string, startIndex?: integer }
- `POST https://api.mcp.ai/api/productboard/search/entities/v2` — Tool to search for entities across Productboard using the v2 API. Use when you need to find entities by various criteria like IDs, name, type, status, owner, parent, or archived status. Supports pagin
  - body: { data: object, pageCursor?: string }
- `POST https://api.mcp.ai/api/productboard/set/company/field/value` — Tool to set or replace a specific company custom field's value. Use when you need to update a company's custom field after confirming the field ID and ensuring the new value matches the field type.
  - body: { value: string|integer|number, companyId: string, companyCustomFieldId: string }
- `POST https://api.mcp.ai/api/productboard/set/custom/field/value` — Tool to set a custom field value on a hierarchy entity. Use when you need to update a product, component, or feature field with a specific value after confirming the field and entity IDs.
  - body: { value: string|integer|number|boolean|string[], customField.id: string, hierarchyEntity.id: string }
- `POST https://api.mcp.ai/api/productboard/set/entities/relationships/parent/v2` — Tool to set parent relationship on an entity. Use when establishing hierarchical relationships between entities in Productboard.
  - body: { id: string, data: object }
- `POST https://api.mcp.ai/api/productboard/set/feature/release/assignment` — Tool to update a feature release assignment. Use when you need to assign a feature to a release (set assigned=true) or remove it from a release (set assigned=false).
  - body: { assigned: boolean, feature.id: string, release.id: string }
- `POST https://api.mcp.ai/api/productboard/set/features` — Tool to update a feature by ID. Use when you need to modify feature properties like name, description, status, parent, timeframe, or archived flag.
  - body: { id: string, data: object }
- `POST https://api.mcp.ai/api/productboard/set/notes/relationships/customer/v2` — Tool to set a customer relationship on a note in Productboard. Use when you need to associate a note with a user or company customer entity.
  - body: { id: string, data: object }
- `POST https://api.mcp.ai/api/productboard/set/product` — Tool to update a product using PUT method in Productboard. Use when you need to modify a product's name, description, or owner with full replacement semantics.
  - body: { id: string, data: object }
- `POST https://api.mcp.ai/api/productboard/update/companies/custom/fields` — Tool to update a company custom field name. Use when you need to rename an existing company custom field in Productboard.
  - body: { id: string, name: string }
- `POST https://api.mcp.ai/api/productboard/update/company` — Tool to update an existing company in Productboard. Use when you need to modify company details such as name, description, domain, or source metadata.
  - body: { id: string, data: object }
- `POST https://api.mcp.ai/api/productboard/update/component` — Tool to update an existing component. Use when you need to modify component name, description, owner, or parent entity.
  - body: { id: string, data: object }
- `POST https://api.mcp.ai/api/productboard/update/entities/v2` — Tool to update a PM entity using the v2 API. Use when you need to modify entity fields or apply patch operations to products, components, features, subfeatures, initiatives, objectives, key results, r
  - body: { id: string, data: object }
- `POST https://api.mcp.ai/api/productboard/update/features` — Tool to update a feature in Productboard. Use when modifying feature details like name, description, status, owner, parent, or timeframe.
  - body: { id: string, data: object }
- `POST https://api.mcp.ai/api/productboard/update/notes/v2` — Tool to update a note using the v2 API. Supports two update methods: direct field updates via 'fields' parameter or granular patch operations via 'patch' parameter. Use 'fields' for simple updates (e.
  - body: { id: string, patch?: object[], fields?: object }
- `POST https://api.mcp.ai/api/productboard/update/objectives` — Tool to update an existing objective in Productboard. Use when you need to modify objective properties such as name, description, owner, status, timeframe, or archive state.
  - body: { id: string, data: object }
- `POST https://api.mcp.ai/api/productboard/update/product` — Tool to update a product in Productboard. Use when you need to modify a product's name, description, or owner.
  - body: { id: string, data: object }
- `POST https://api.mcp.ai/api/productboard/update/release` — Tool to update an existing release in Productboard. Use when you need to modify release properties such as name, description, state, archived status, release group, or timeframe.
  - body: { id: string, name?: string, state?: string, archived?: boolean, timeframe?: object, description?: string, releaseGroup?: object }
- `POST https://api.mcp.ai/api/productboard/update/user` — Tool to update a user's information. Use when you need to modify a user's name, email, or external ID.
  - body: { id: string, data: object }

## Example prompts
- "What can I do in Productboard?"
- "Show me a summary of my Productboard account"

## More
- Page: https://mcp.ai/productboard
- Agent spec (llms.txt): https://mcp.ai/productboard/llms.txt
- Postman collection: https://mcp.ai/productboard/postman.json
