Use the Model Context Protocol (MCP) to connect your Perdoo account with ChatGPT, Claude, Perplexity, or any MCP-compatible tool.
Configuring the Perdoo MCP server
You can use the below image as the icon for the app/connection:
ChatGPT / OpenAI
Click on our ChatGPT app
Click Connect
Sign into your Perdoo account.
Claude
Sign into your paid Claude account
Go to Settings > Connectors
Click Add custom connector
Fill in the connector details:
Name: Perdoo
Remote MCP server URL: https://mcp.perdoo.com
Advanced settings > OAuth Client ID: 7QSbCViY5hsv1Br6ZNVmWq30U0ps56gLpWYRVRjZ
Click Add
Go to Settings > Connectors
Find Perdoo, click Connect and then Authorize
You'll see in the top-right corner that you're connected to Perdoo!
Perplexity
Click on + Custom connector
Fill in the connector details:
Name: Perdoo
MCP Server URL: https://mcp.perdoo.com
Advanced > OAuth > Client ID: 7QSbCViY5hsv1Br6ZNVmWq30U0ps56gLpWYRVRjZ
Click Add
Click on the connector to authorize your Perdoo account
After a successful authorization, you should see this message:
Copilot Studio (via Power Automate)
Create a Perdoo API token
Personal settings > API token, copy the token immediately and store it securely since it will not be displayed again
Select the environment that contains the agent
Open the agent, select Tools, then click + New tool
In the New tool dialog, click Model Context Protocol
Fill in the connector details:
Server name: Perdoo MCP
Server description: Connect Copilot Studio to Perdoo data and actions.
Server URL: https://mcp.perdoo.com/
Authentication: API key
Type: Header
Header name: Authorization
Click Create
Select the Perdoo MCP server
In Power Automate, 5. Test: + New connection > Paste
Bearer api_key> InvokeMCP > Raw Body On > Test operationReturn to the Copilot Studio and select the new connection if it was not selected automatically
Click + Add to agent from the 3 dot menu, then Add.
If creating the connector from Power Automate: New custom connector > Create from blank > Swagger editor > Create connector > 5. Test: + New connection > Paste Bearer api_key > InvokeMCP > Raw Body On > Test operation
Available tools
Tool | Description |
get_me | Get the currently authenticated user's profile |
get_company | Get the currently authenticated user's profile |
list_okrs | List OKRs (Objectives together with their Key results) |
list_objectives | List OKR objectives with optional filters, progress, and status |
get_objective | Get a single objective by ID, including Key results, lead, timeframe, tags, custom field values, and update frequency |
list_results | List Key results and Initiatives |
get_result | Get a single Key result or Initiative by ID, including custom field values and target frequency |
list_kpis | List KPIs (Key Performance Indicators) with optional filters, including custom field values, target frequency, and update frequency |
get_kpi | Get a single KPI by ID, including lead, teams, tags, current and target value, custom field values, target frequency, and update frequency |
list_strategic_pillars | List Strategic pillars with optional filters |
get_strategic_pillar | Get a single strategic pillar by ID, including children and progress details |
list_teams | List teams with optional filters |
get_team | Get a single team by ID, including members, sub-teams, and parent |
list_users | List users/team members with optional filters |
list_timeframes | List timeframes (planning periods) with optional filters |
list_reviews | List reviews |
list_updates | List progress updates (value changes on goals) |
search_all | Search across all Perdoo entities (objectives, key results, KPIs, users, teams, etc.) |
draft_okrs | Creates a DRAFT Objective and its Key results in one call, so a full OKR can be drafted in conversation and reviewed in Perdoo before going live |
create_objective | Creates an Objective in a timeframe (DRAFT by default; pass stage ACTIVE to publish immediately) |
create_result | Creates a Key result or Initiative under an Objective |
create_kpi | Creates a KPI with metric unit, target type/frequency, update cadence, lead and teams |
update_goal_progress | Logs a progress update (new value + status + note) on a KPI or key result |
update_goals | Edits an existing Objective, Key result or KPI: rename, change lead, adjust targets, move stage DRAFT to ACTIVE to CLOSED |
includeNotes | Notes/comments on get_kpi, get_objective, get_result via includeNotes + the 25 most recent activity-feed comments |
includeProgressHistory | Progress history on get_kpi and get_result via includeProgressHistory, with optional date range |
includeTargets | Targets via includeTargets — raw target rows, plus a per-period target grid for KPIs that flags whether each point was explicitly set or carried forwar |
Example prompts
Which of my team's OKRs are off track this quarter?
The model calls `list_timeframes` to find the current timeframe, then `list_okrs` with `stage=ACTIVE` and `status=BEHIND` to retrieve at-risk Objectives and their Key results.
Summarize progress on our 'Expansion Strategy' strategic pillar.
The model calls `search_all` with `query="Expansion Strategy"` to locate the pillar, then `get_strategic_pillar` with its ID to retrieve the full pillar, its child Objectives, and rolled-up progress.
Who leads the Engineering team and what KPIs do they own?
The model calls `list_teams` with `nameContains="Engineering"`, follows up with `get_team` to list members and the team lead, then `list_kpis` with the lead's `leadId` to return their active KPIs and current values.
Show my most recent progress update and which key result it belongs to.
The model calls `get_me` to identify the current user, then `list_updates` with that `userId` ordered by `commitDate` to return the latest update and the Key result it applies to.
Have a question?
Contact our friendly Support team via the in-app chat at the bottom-right of your screen, or email support@perdoo.com.










