Integration details
Description
Bring your strategy into the AI era with the Perdoo MCP server. This connector allows your AI agents and assistants to interact directly with your company’s OKRs, KPIs, and strategic goals, bridging the gap between your high-level mission and everyday AI workflows.
- Integration type
- Plugin
- Verification status
- Not applicable
- Platform
- ChatGPT
- Primary Subcategory
- OKR & Strategy Execution
- Secondary Subcategories
- None listed
- Brand
- Perdoo
- Access
- Account required
- First tracked
- 2026-04-23
- Tool count
- 40
- Geography
- US
The Primary Subcategory used for this profile’s headline score.
Other Subcategories where the Integration is listed.
Get alerts for Perdoo
Get updates when Perdoo’s Discoverability Score or category rank changes.
ChatGPT Plugin Discovery Score
ChatGPT Plugin discovery is coming soon
ChatGPT can surface a Plugin when it matches a user's request.Your Plugin Discovery Score measures how often yours appears.
No spam. Unsubscribe any time.
What discovery looks like

Competing in ChatGPT OKR & Strategy Execution
View Category40 tools agents can invoke
Add or edit one of the authenticated user's personal tasks. Omit `id` to add a new one, or pass `id` to change an existing one, which only touches the fields you send. A new task belongs to whoever created it and cannot be assigned to anyone else. Tick a task off by setting `completedAt` to the current time, and reopen it by passing null. Tasks cannot be deleted here.
upsert_task
Create a new KPI (key performance indicator) to track an ongoing metric. Requires a name, a lead, and the target type plus the start and end values that define the metric's range. Returns the created KPI including its ID. To log progress on it afterwards, use `update_goal_progress`.
create_kpi
Create a new OKR objective in a timeframe. Created as a DRAFT by default so it can be reviewed in Perdoo before going live — pass stage ACTIVE to publish immediately. Requires a name and timeframe ID (use `list_timeframes` to find one). Returns the created objective including its ID; add key results to it with `create_result`, or use `draft_okrs` to create an objective with key results in one call.
create_objective
Create a new key result or initiative under an objective. Requires the objective ID, a name, and the target type plus the start and end values that define what 'done' means. Key results are measurable outcomes; initiatives are action items. The result inherits its draft/active stage from the parent objective. Returns the created result including its ID. To log progress on it afterwards, use `update_goal_progress`.
create_result
Create a strategic pillar — a long-range company goal that objectives and KPIs roll up into. Requires a name, and an owner unless the company has individual OKRs on: either pass the owning team IDs in `groupIds` or set `isCompanyGoal` for a company-wide pillar. A pillar has no lead, timeframe, target or update cadence; its progress comes from the goals aligned to it. Pass `parentId` to sit it under another pillar. Returns the created pillar including its ID.
create_strategic_pillar
Create a tag for the authenticated company. Check `list_tags` first and reuse a tag that already exists — names are unique per company, so a duplicate is refused. Creating a tag is admin-only, and below the Supreme plan the number of tags a company may have is capped; the API refuses the call and says which limit was hit. Returns the created tag including its ID, which the `tagIds` field on the `create_*` and `update_*` goal tools takes. Tags cannot be renamed or deleted through this tool — that is done in Perdoo's company settings.
create_tag
Create or update a team. Omit `id` to create one, pass `id` to change an existing one — an update only touches the fields you send. Read the team with `get_team` first when replacing its members or sub-teams. Every ID must belong to the authenticated company, and teams cannot be archived or deleted here.
upsert_team
Draft a complete OKR in one call: creates an objective in the DRAFT stage together with its key results, so it can be reviewed in Perdoo before going live. Requires an objective name and a timeframe ID (use `list_timeframes` to find one). Key results are created in order; if one fails, the rest are still attempted and the call returns an error listing the objective that was created, the key results that succeeded, and the ones that failed — retry only the failed ones with `create_result`. To publish the draft later, use `update_goals` to set the objective's stage to ACTIVE.
draft_okrs
Get information about the authenticated user's Perdoo company (tenant), including its name, country, ultimate goal, timezone, framework type, whether KPIs and strategic pillars are enabled, whether goals can be aligned to results, and the check-in frequency. Use this when the user asks about company-wide settings or needs company context before calling broader tools like list_strategic_pillars or list_timeframes.
get_company
Get the currently authenticated Perdoo user's profile, including their ID, name, email, role, job position, active status, and manager. Use this as the first call when the user asks something about 'me', 'my objectives', or 'my KPIs' so you can resolve their user ID and pass it to follow-up tools like list_objectives, list_okrs, or list_updates.
get_me
Get a single KPI by ID, including its lead, owning teams, tags, targets, and custom field values. Set `includeNotes` for its notes (activity-feed comments), `includeProgressHistory` for its progress update history, and `includeTargets` for its per-period target rows.
get_kpi
Get the authenticated user's latest review and the periods a review can be filed for. `checkIns` holds the last review filed and the cycle it landed in, and `checkInDue` says whether the open period is still outstanding. Earlier periods follow from that cycle and the company's review frequency — count back from it. Also returns whether reviews are switched on for the company, how often it asks for one, whether it asks for a Pulse rating, and the company's reflections template. Call this before `submit_review`: work out the recent periods, show them to the user and ask which one they want to file for. To check whether an older period already has a review, call `list_reviews` with your own `userId` and that period's `start`/`end` as `submittedGte`/`submittedLte`. Use the template's headings when drafting the body so the review matches what the rest of the company writes.
get_latest_review
Get a team's latest review and the periods a team review can be filed for. `checkIns` holds the last review filed, the cycle it landed in and who filed it, and `group.checkInDue` says whether the open period is still outstanding. Earlier periods follow from that cycle and the company's team review frequency — count back from it. Team reviews run on their own cadence, usually less frequent than individual ones, so these periods rarely line up with the personal ones. Also returns whether team reviews are switched on for the company, how often it asks for one, and the company's team reflections template. Call this before `submit_team_review`: work out the recent periods, show them to the user and ask which one they want to file for. To check whether an older period already has a team review, call `list_reviews` with the `teamId`, `cycleType: TEAM` and that period's `start`/`end` as `submittedGte`/`submittedLte`. Team reviews have no Pulse rating.
get_latest_team_review
Get one meeting in full: when it is, which series it belongs to, its organizer and participants, the meetings either side of it, and everything written down in it — the agenda's talking points, the tasks assigned in it, and the notes (takeaways) kept against it. Talking points and tasks come back together under `items`, told apart by `type`; a note marked `private` is only ever visible to its own author. Look the meeting ID up with `list_meetings` first.
get_meeting
Get a single objective by ID, including its key results, lead, timeframe, tags, update cadence, and custom field values. Set `includeNotes` for the objective's notes (activity-feed comments).
get_objective
Get a single key result or initiative by ID, including its parent objective, lead, tags, targets, and custom field values. Set `includeNotes` for its notes (activity-feed comments), `includeProgressHistory` for its progress update history, and `includeTargets` for its per-period target rows (each target applies from its startDate until the next target's startDate).
get_result
Get a single strategic pillar by ID, including children, lead, timeframe, tags, and progress details.
get_strategic_pillar
Get a single team by ID, including members, sub-teams, and parent teams.
get_team
List the Explore folders in the authenticated company. Folders group shared Explore views in the sidebar, are one level deep, and hold shared views only. Returns each folder's ID and name, to pass as `folderId` when creating or moving a view with `upsert_explore_view`.
list_explore_folders
List the saved Explore views the authenticated user can open — every view shared with the company, plus their own private ones. A view is a named, saved set of goal filters plus a type saying how to draw them. Returns each view's ID, type, URL, whether it is shared, which folder it sits in, and every filter it has saved. Use this to find a view by name, and to read its current filters before `upsert_explore_view`, which replaces them rather than merging.
list_explore_views
List KPIs (key performance indicators) with optional filters. KPIs track ongoing metrics rather than time-boxed goals.
list_kpis
List the meeting series the authenticated user organizes or takes part in — the recurring 1:1s and team syncs shown on Perdoo's Meetings page. Returns each series' ID, title, organizer, participants, and the next and last meeting in it, so a phrase like "Thursday's sync" can be resolved to a series and then to a specific meeting. Start here before `list_meetings` or `get_meeting`; a series the user neither organizes nor attends is never returned.
list_meeting_series
List the authenticated user's meeting tasks — the checkbox to-dos assigned to them in meetings, as shown on the Perdoo home page's "My tasks" tab. Each task carries the meeting and meeting series it came from, so you can say where a to-do originated. Defaults reproduce that tab exactly: open tasks only, from the most recent past meeting of each active series. Widen it by setting `complete` for finished tasks, `previousMeeting` false for everything still outstanding across earlier meetings, or `meetingId` for one meeting's tasks. Meeting tasks always belong to the signed-in user; there is no way to read someone else's.
list_meeting_tasks
List individual meetings — the dated occurrences within a meeting series. Filter by series, by date range, or by `upcoming` to separate what is still ahead from what has already happened. A series holds only the occurrences someone has scheduled, so `upcoming` can come back empty; nothing here schedules one. With `upcoming` the meeting nearest to now comes first, so the next occurrence of a series is the first row; otherwise newest first. `orderBy` overrides either. Use it to pick the right occurrence (last Thursday's sync versus the next one) and pass its ID to `get_meeting`, `upsert_meeting_item`, or `upsert_meeting_note`. Like `list_meeting_tasks`, the result has no `totalCount` — page with `first` plus `offset` or `after` until `pageInfo.hasNextPage` is false.
list_meetings
List OKRs — objectives together with their key results. This is the best tool for getting a complete picture of OKR progress.
list_okrs
List OKR objectives with optional filters. Returns paginated results with progress and status.
list_objectives
List progress updates with optional filters. Shows value changes on key results, KPIs, and goals. Unlike the other list tools this one cannot be sorted, and its result has no `totalCount` — page with `first` plus `offset` or `after` until `pageInfo.hasNextPage` is false.
list_updates
List key results and initiatives (children of objectives). Key results are measurable outcomes; initiatives are action items that drive key results. Use the 'type' filter to narrow by type.
list_results
List reviews (progress updates submitted by users) with optional filters.
list_reviews
List strategic pillars (long-range company goals) in the authenticated company, optionally filtered by status, stage, lead user, or timeframe. Strategic pillars sit above OKRs in the Perdoo hierarchy — they are multi-quarter or multi-year goals that objectives and KPIs roll up into. Returns each pillar's ID, name, progress, status, stage, timeframe, and lead. Use this when the user asks about company strategy, long-term direction, or 'pillars'; for the full hierarchy of child objectives and roll-up progress, follow up with `get_strategic_pillar` using the returned ID.
list_strategic_pillars
List the tags defined in the authenticated company. Tags are free-form labels attached to objectives, key results, initiatives, KPIs, and strategic pillars — companies use them for themes, departments, or initiatives that cut across teams. Returns each tag's ID, name, description, and color. Use this to turn a tag name the user mentioned into the ID that the `tagIds` filter on the `list_*` goal tools takes, or that the `tagIds` field on the `create_*` and `update_*` goal tools puts on a goal. When no tag matches the name the user asked for, `create_tag` makes one.
list_tags
List the authenticated user's personal tasks — the standalone to-dos they keep on the Perdoo home page's "My tasks" tab, as opposed to the ones that came out of a meeting (`list_meeting_tasks`). Each task carries its title, due date, and completion time. Defaults to what is still open, newest due date last; set `open` false for the completed ones. Personal tasks are private to the person who owns them, so there is no way to read someone else's.
list_tasks
List teams in the authenticated company, optionally filtered by exact name, name-contains, member, parent team, or archived state. Perdoo teams form a hierarchy: every team has an optional parent team and may have sub-teams. Returns each team's ID, name, mission, lead, and archived status. Use this to discover the company's team structure, find a team by partial name (e.g. 'Engineering'), or resolve a team ID to pass into `list_okrs`, `list_kpis`, `list_users`, or `get_team` for full membership detail.
list_teams
List timeframes (planning periods) with optional filters. Use active=true to get current timeframes.
list_timeframes
List Perdoo users in the authenticated company, optionally filtered by name, email, active status, team, role, or manager. Returns each user's ID, name, email, role (VIEWONLY, STANDARD, ADMIN, SUPERADMIN), job position, active status, and manager. Use this to find a specific person by name/email or to enumerate the members of a team; combine with `get_team` for full team detail, or pass a returned user ID as `leadId` / `userId` into other list tools to scope OKRs, KPIs, or updates to that person.
list_users
Search across all Perdoo entities (objectives, key results, KPIs, users, teams, etc.) by keyword.
search_all
Submit the authenticated user's review. Reviews can only be filed for yourself. The period is the caller's choice: ask the user which period they are filing for and pass its last day as `periodEnd`, or omit it for the period that is still open. Draft the body from the user's actual activity — `list_updates`, `list_okrs`, `list_results` and `list_kpis` cover the period — and follow the headings in the company template from `get_latest_review`. Set `confirmed` only after showing the user the exact text you are about to file and getting their go-ahead. The Pulse rating is the user's own answer to "How do you feel at work?": ask them for it and never infer or guess a value. Call `get_latest_review` first for the periods on offer and what was filed last — nothing stops a second review landing in a period that already has one, so check before filing.
submit_review
Update fields on an existing objective, key result/initiative, or KPI — e.g. rename it, change its lead, change what it is aligned to with `parentId`, adjust target settings, or move an objective between stages (set stage ACTIVE to publish a draft, CLOSED to close it). Only the fields you pass are changed. This edits the goal's definition; to log a new progress value, use `update_goal_progress` instead. Goals cannot be archived or deleted through this tool.
update_goals
Log a progress update (check-in) on a KPI, key result, or initiative by creating a commit with a new value. Identify the goal with `goalId`, whichever of the three it is. Optionally set the status and add an update note. The goal must be active — publish a draft with `update_goals` first. This is for logging progress; to edit a goal's fields (name, lead, targets, ...), use `update_goals` instead.
update_goal_progress
Update a strategic pillar's name, description, owning teams, company-wide ownership, or tags. Only the fields you pass are changed. A pillar has no lead, timeframe, target or update cadence, so there is nothing else to set; use `parentId` to change which pillar it sits under. A pillar is owned by its teams or by the company. A closed or archived pillar is read-only and has to be reopened in Perdoo first. Pillars cannot be archived or deleted through this tool.
update_strategic_pillar
How do I improve a ChatGPT Plugin's discoverability?
The levers are the listing surface agents actually read: names, descriptions, keywords, tool metadata, and registry health. Which lever matters depends on where discovery breaks, which is what continuous measurement shows.
What are Perdoo alternatives on ChatGPT?
As of 2026-09-28, Perdoo competes with Genchi, Profit.co, Rhythm Systems, Rhythms, Steady, Stratws, Strety, Success.co in ChatGPT OKR & Strategy Execution, ranked by public Discoverability Score.
Where is this profile measured?
This profile uses the geography attached to the latest public registry snapshot: US. Locale tags are intentionally omitted.