FlowyTeam OKR MCP Server

Connect Claude, ChatGPT, n8n or any MCP-compatible AI agent straight to your OKRs, KPIs, tasks and team data. Read objectives, update key results and run reports in plain language. No middleware, no custom code.

OKRs & KPIs

Manage OKRs and KPIs from Claude or ChatGPT

FlowyTeam is a native OKR MCP server. Once connected, your AI agent can read every objective and key result in your workspace, post check-ins, update progress and summarise performance — without you opening the dashboard. Ask in plain language:

  • “Show me all Q3 objectives below 50% progress.”
  • “Check in on my key results and update this week's numbers.”
  • “Create an objective for the sales team with three key results.”
  • “Which KPIs are off target this month, and who owns them?”
  • “Summarise our OKR progress for the leadership review.”
  • “Align my objectives to the company goal for this cycle.”

Unlike single-purpose OKR MCP servers, FlowyTeam exposes the whole workspace through the same connection — OKRs, KPIs, tasks, projects, HR, attendance, tickets and CRM.

Open Standard

What is an MCP Server?

MCP (Model Context Protocol) is an open standard that lets AI agents talk directly to your tools. FlowyTeam ships as a native MCP server — so your AI can read and write real OKR, KPI, task and HR data inside your workspace without any intermediary layer, integration platform or custom code.

Capabilities

What Your AI Can Do

Auth Register

Create a new FlowyTeam company account. Only call this tool when the user explicitly requests account creation and provides all required details. Requires MCP registration to be enabled by the platform administrator. Password is optional — if omitted, a secure temporary password is generated and included in the verification email. A verification email with a 6-digit code is sent — ask the user to share the code, then call auth_verify_email to activate the account and receive the api_token immediately. Alternatively the user can click the verification link in the email to activate via the browser, then copy the api_token from FlowyTeam Settings → MCP & AI Integration.

POST
Auth Verify Email

Activate a newly registered FlowyTeam account and receive the api_token. Call this after auth_register once the user shares the 6-digit code from their verification email. Also accepts the long token from the verification link URL as a fallback. On success, the account is activated and an api_token is returned — use it as the Bearer token and reconfigure the MCP connection.

POST
Auth Login

Retrieve the api_token for an existing FlowyTeam account using email and password. Only call this tool when the user explicitly provides their credentials and requests a login — never proactively. Note: for new accounts use auth_register + auth_verify_email instead. Existing users can also copy their token directly from FlowyTeam Settings → MCP & AI Integration. Returns an api_token — reconfigure the MCP connection with it as the Bearer token.

POST
Tasks

Manage tasks: list, create, update, delete, mark complete. Filter by status, priority, project, assignee, due date; archived=true lists archived tasks. A new task needs the person it is assigned to (assigned_to), as on the web form. DELETE archives a task: dry_run=true previews it, permanent=true removes an archived one for good, and PUT with restore=true brings it back.

GET POST PUT DELETE
Projects

Manage projects and their sub-resources (milestones, members, categories, files). Set resource=project (default), milestone, member, category, or file. All lookups are name-based — no IDs needed. Admins have full access. Members can view/update their own projects, and perform full CRUD on milestones, members, and files. POST requires project_name, start_date, and either deadline (Y-m-d) or without_deadline=true. If the user has not given a deadline, ask which they want before calling this tool, do not call it and wait to be refused.

GET POST PUT DELETE
Task Category

Manage task categories: list, create, update, delete. Lookup by ID or category name.

GET POST PUT DELETE
Leave

Manage employee leave requests: list, create, approve, reject, cancel. Filter by status, employee, date range. Approving or rejecting recalculates the allowance and notifies the employee, and settles every date of a multi-date request at once. Approval authority follows the company leave approval setting: an admin caller may decide any request, a reporting manager may decide their own team when the setting allows managers, and nobody but an admin decides their own request. Every write returns the employee remaining days, used days and allowance, so no follow-up call is needed to read them. Set reject_reason when rejecting.

GET POST PUT DELETE
Leave Type

Manage leave types (annual, sick, etc.): list, create, update, delete. Admin-only for write operations. POST needs type_name and no_of_leaves, the days each employee is entitled to per year.

GET POST PUT DELETE
Leave Entitlement

Read how many leave days an employee is entitled to, has used, and has left, per leave type. Name the person with employee_name. PUT recalculates the figures, the same recalculation the admin leave pages run; it needs employee_name, or all set to true for every employee. Approving leave already recalculates on its own, so PUT is only for a manual refresh.

GET PUT
Attendance

Manage attendance: clock-in, clock-out, list records. Filter by employee, date, month, year. A list returns at most 25 records with a total count; when total exceeds what was returned, say so in the answer.

GET POST PUT
Employees

Manage employees: list, show full profile, create, update (profile/department/designation/status/skills), deactivate/delete. Always resolve by name or email — never require an ID from the user. Members read and update their own record. With the view, add, edit or delete employees permission they also list other non-admin employees, create employees, update the basic record of other non-admin employees, or delete them, as in the web app. Salary, bank details, manager flag, status, login and reporting line changes need an admin. Pay, bank and identity fields are left out of every record unless include_private is true, for an admin or for your own record.

GET POST PUT DELETE
Department

Manage departments/teams: list, show details with members, create, update, delete, add/remove members. Always resolve by name — never require an ID from the user.

GET POST PUT DELETE
Designation

Manage job designations/positions: list (with member counts), create, update, delete. Always resolve by name — never require an ID from the user.

GET POST PUT DELETE
Clients

Manage clients: list, create, update, delete. Filter by name, company. POST requires email as well as the company or contact name. If the user has not given an email, ask for it before calling this tool rather than calling it and waiting to be refused.

GET POST PUT DELETE
Tickets

Manage support tickets and their conversation replies. Supports full CRUD (list, create, update, delete), reply/conversation management (resource=reply), ticket statistics (action=stats), and close/reopen actions. Name-based lookups for agent, requester, type, and channel. Admins and privileged members have full access. Regular members can manage their own tickets (create, view, reply, close, reopen).

GET POST PUT DELETE
Ticket Type

Manage ticket types/classifications: list, create, update, delete. Lookup by name or ID.

GET POST PUT DELETE
Ticket Channel

Manage ticket channels (e.g. email, phone, chat): list, create, update, delete. Requires the tickets module.

GET POST PUT DELETE
Ticket Agent

List ticket agents and their assigned groups.

GET
Objectives

Manage OKR objectives: list, create, update, delete. Filter by cycle, type (company/team/personal), team, employee or leader; archived=true lists the archived ones. Writes return the objective as stored. POST with the action parameter copies one into another cycle (target_cycle_id). PUT with retro writes its retro notes once its cycle is being scored. GET by id adds its retro, and with history=true every change with who, when and how. PUT with dry_run=true previews an update, an alignment change included, with the progress it moves; PUT with items updates up to 50 objectives at once, all or none. DELETE archives: one with key results needs cascade=true, dry_run=true previews it, permanent=true removes an archived one for good, and PUT with restore=true brings it back.

GET POST PUT DELETE
Key Result

Manage OKR key results: list, create, update, delete, update progress. Link to objectives. Each key result lists the tasks working toward it and its linked KPIs (indicator_ids); GET by id adds the confidence history. Use the checkins tool for check-in history and who has not checked in. GET finds key results at risk with confidence_max, status and stale_weeks, and archived=true lists the archived ones. In a cycle being scored, PUT sets final_score and score_note; contributor_ids names who helps (no rights); GET by id with history=true lists every change with who, when and how. PUT with move_to_objective_id moves one to another objective in its cycle; PUT with items updates up to 50 at once, all or none; POST with the action parameter turns one into a task under target_key_result_id and archives it. Each takes dry_run=true to preview. DELETE archives it and unlinks its tasks: dry_run=true previews that with the new weight total, permanent=true removes an archived one for good, and PUT with restore=true brings it back.

GET POST PUT DELETE
Checkins

Key result check-ins. GET lists the check-in history, newest first; with missing=true it lists the key results in a cycle nobody checked in on during a week, with their leader and the owner a reminder goes to. POST records a check-in on a key result: its current value, confidence, status, remarks, blockers and the source of the value. The key result and objective scores update as the web form updates them. DELETE with id archives a blank or mistaken check-in (the key result keeps its value; dry_run=true previews, permanent=true removes an archived one for good), and PUT with id and restore=true brings it back.

GET POST PUT DELETE
Okr Comments

Discussion threads on OKR objectives and key results, the same threads the web pages show. GET lists the comments on one objective or key result, oldest first, each with its replies. POST adds a comment, or a reply with parent_id. PUT edits your own comment. DELETE archives a comment with its replies (dry_run=true previews, permanent=true removes an archived one for good), and PUT with restore=true brings it back; the author, admins and the objective's owner or leader may. Anyone who can read the objective may comment.

GET POST PUT DELETE
Okr Alignment

How a performance cycle's OKRs align. Returns the objectives in tree order from the company objectives down, each with its depth, its key results and which objectives support each key result; then the team objectives (and with include_personal the personal ones) aligned to nothing, the objectives aligned to something the tree does not reach, and the company key results nothing contributes to. Defaults to the current cycle. Personal objectives are left out unless include_personal is true.

GET
Okr Health

OKR health check for a performance cycle, in one call: objectives and key results with no owner (a key result counts as owned when someone would get its check-in reminder, and those owned through their objective are listed apart), objectives whose key result weights do not total 100 (a notice: scores are weighted averages), key results with no check-in for stale_weeks (default 2), key results off track or at confidence 3 or below for their last two check-ins, objectives with fewer than 2 key results or more than the workspace allows, team and personal objectives aligned to nothing, company key results nothing supports, and KPIs linked to no key result. Each check gives a count and up to 50 items. Defaults to the current cycle; narrow with objective_type or team_id. Only what you can read is counted.

GET
Okr Webhooks

Webhooks for OKR events, admins only: a check-in saved, a key result changing status or going off track, an objective archived, a cycle going into scoring or closing (the event parameter lists them). GET lists them; POST subscribes a URL (target_url) to an event, optionally with a secret that signs each delivery (X-FlowyTeam-Signature: sha256 HMAC of the body); DELETE removes one by id. A delivery is JSON with the event, the company, when it was sent and the data; it goes out within a minute and is retried three times.

GET POST DELETE
Okr Reminders

OKR reminders that FlowyTeam sends in the app, and by email when asked, under the admin's name. GET with preview=true shows who a reminder would reach and who it would leave out, without sending; show it to the user before sending. POST sends it. GET without preview lists the reminders sent. Audiences: the owners of key results with no check-in in a week, or everyone leading an objective or key result in a cycle. A person gets one reminder per audience per week. Admins only.

GET POST
Indicators

Manage KPI indicators: list, create, update, delete. Filter by category, employee. Lookup by title or ID. GET returns each KPI's owner, red and green thresholds, latest recorded value and the key results it is linked to.

GET POST PUT DELETE
Indicator Category

Manage KPI indicator categories/types: list, create, update, delete. Lookup by name or ID.

GET POST PUT DELETE
Indicator Record

Manage KPI indicator records (actual values per period): list, add, delete. Lookup by indicator_id + period_key.

GET POST DELETE
Performance Cycle

Manage OKR performance cycles: list, create, update, delete. Lookup by name or ID. GET flags the cycle the workspace is in today as current and gives each status. End of cycle: PUT status moves a cycle to scoring (final scores on key results open) and to closed, which freezes the scores and locks it; dry_run=true lists what is missing first and fill_missing=true fills unscored key results. GET by id with scorecard=true returns each objective and key result with its baseline, target, final value, score and retro, and averages per objective type and team; history=true lists who changed the cycle.

GET POST PUT DELETE
Holiday

Manage company holidays: list, create, update, delete. Filter by year, upcoming/past. Lookup by ID or holiday name.

GET POST PUT DELETE
Leads

Manage sales leads: list, create, update, delete. Filter by status, agent, date range.

GET POST PUT DELETE
Invoices

Manage client invoices: list, create, update status, delete. Filter by client, status, date range.

GET POST PUT DELETE
Estimates

Manage client estimates/quotes: list, create, update, delete. Filter by client, status, date.

GET POST PUT DELETE
Events

Manage company events/calendar: list, create, update, delete. Filter by month, year, date range.

GET POST PUT DELETE
Expenses

Manage expenses and claims: list, create, update status (approve/reject), delete. Filter by employee, category, status, date range.

GET POST PUT DELETE
Expense Category

Manage expense categories: list, create, update, delete. Admin-only for write operations.

GET POST PUT DELETE
Notices

Manage notice board: list, create, update, delete. Filter by date range or audience (all/employee/client).

GET POST PUT DELETE
Contracts

Manage client contracts: list, create, update, delete. Filter by client, status, date range.

GET POST PUT DELETE
Timelogs

Manage project/task time logs: list, create (start timer), update (stop timer/edit), delete. Filter by project, employee, date.

GET POST PUT DELETE
Quick Setup

How to Connect

Connect your AI agent in minutes — whether you have an existing account or are signing up for the first time.

1

Generate your API Key

Go to Settings → API & Integrations in your FlowyTeam dashboard and create a new API key with the scopes you need.

2

Add the MCP config

Paste the JSON snippet below into your Claude Code MCP configuration (Claude Code CLI or project mcp.json). Note: Claude Desktop is not supported.

Option A — with API token (existing account)

Claude Code CLI

claude mcp add --transport http flowyteam \
  https://flowyteam.com/api/v2/mcp/rpc \
  -H "Authorization: Bearer YOUR_API_TOKEN"

~/.claude/mcp.json (Claude Code project config)

{
  "mcpServers": {
    "flowyteam": {
      "transport": "http",
      "url": "https://flowyteam.com/api/v2/mcp/rpc",
      "headers": { "Authorization": "Bearer YOUR_API_TOKEN" }
    }
  }
}

Option B — Existing account, no token handy

Go to FlowyTeam → Settings → MCP & AI Integration → copy your API token, then use Option A above.

Can't access the settings page yet? Connect to the Gateway endpoint and ask Claude to log you in:

Step 1 — Connect to Gateway

claude mcp add --transport http flowyteam \
  https://flowyteam.com/api/mcp/gateway

Step 2 — Ask Claude to retrieve your token

"Get my FlowyTeam API token — my email is [email protected] and my password is ••••••••"

Claude retrieves your api_token. Reconnect using Option A with that token.

Option C — Create a new account via Gateway

No account yet? Ask Claude to register one. Password is optional — if you skip it, a secure temporary password is generated and included in your verification email. You can change it after your first login.

Step 1 — Connect to Gateway & register

"Register a new FlowyTeam account — name: Alice Smith, email: [email protected], company: Acme Corp"

Claude calls auth_register. A verification email is sent — it includes your temporary login password if you didn't set one.

Step 2 — Verify your email (choose one path)

Path A — Paste 6-digit code to Claude Code CLI

Open the verification email and copy the 6-digit code from the email body.

Then tell Claude: "verify my email with code 123456"

Claude calls auth_verify_email and returns your api_token immediately.

Path B — Click link in browser

Click the verification link in the email to activate your account in the browser.

Then go to FlowyTeam → Settings → MCP & AI Integration → copy your api_token and reconnect using Option A.

Reconnect using Option A with the returned token.

3

Start a new Claude Code session

Open a new Claude Code chat session. FlowyTeam tools will be available automatically — just ask Claude to use them.

Important Notice

Claude Code Only — Claude Desktop Not Supported

FlowyTeam MCP Server currently only works with Claude Code (the CLI tool). It is NOT compatible with Claude Desktop. Please make sure you are using the Claude Code command-line tool when connecting.

Integrations

Compatible AI Clients

FlowyTeam's MCP Server has been verified with Claude Code (CLI). Support for other MCP clients is coming soon.

Claude Code
Claude Code

CLI Tool (Supported)

FlowyTeam
ChatGPT

OpenAI

FlowyTeam
n8n

Workflow Automation

FlowyTeam
Cursor

AI Code Editor

FAQ

OKR MCP Server — Frequently Asked Questions

Is there an MCP server for OKRs?

Yes. FlowyTeam is a native OKR MCP server. Connect Claude, ChatGPT, n8n or any MCP-compatible agent and it can read objectives and key results, post check-ins, update progress and generate OKR reports directly in your workspace. It is free to start and needs no middleware.

How do I connect Claude to my OKRs?

Generate an API key in Settings → MCP & AI Integration, add the FlowyTeam MCP server to your Claude Code configuration, and start a new session. Claude picks up the FlowyTeam tools automatically and can immediately query and update your OKRs. The full setup takes about two minutes.

Can ChatGPT update my key results?

Yes. The key-result tool supports both reading and writing, so an agent can post a check-in, move a key result's current value and recalculate objective progress. Every write is scoped to your workspace and to the permissions of the API key you issued.

What can the FlowyTeam OKR MCP server do beyond OKRs?

The same connection also exposes KPIs and indicators, tasks and projects, employees, attendance and leave, tickets, clients, leads, invoices, estimates, expenses and timelogs. Most OKR MCP servers cover objectives only; FlowyTeam gives an agent the whole workspace.

Is the FlowyTeam OKR MCP server free?

MCP access is included on every plan, including the free tier for up to 10 users. There is no separate charge and no API add-on.

Which AI clients are supported?

FlowyTeam's MCP server is verified with Claude Code (the CLI tool). It also works with n8n and other MCP-compatible clients over the HTTP gateway. Support for further clients is rolling out.

Ready to connect your AI to your OKRs?

Create your free FlowyTeam account and have your first AI agent reading and updating OKRs in under five minutes.