Skip to main content
Glama

AIOProductOS plugin for Claude Code

claude-plugin MCP server

Hosted connector on Glama MCP Registry

Connect your AIOProductOS workspace to Claude Code and work your whole product from chat — feedback, revenue, tasks, releases, analytics, and code activity joined on one customer record.

One install gives you:

  • The workspace connection — the AIOProductOS remote MCP server: 71 tools over the product spine, and it doesn't just read. It's a fully autonomous PM surface — read the spine and write to it across the whole strategy-to-delivery ladder: capture and vote on ideas, promote them into features, set initiatives and objectives & key results, plan sprints and releases, run experiments, log decisions, write pages, and create/update/delete tasks — plus post to team channels, capture insights, and merge/unmerge people. OAuth sign-in, no API keys.

  • /aioproductos:triage — Monday-morning product triage: surfaces the top 3 customer-evidenced insights, scores them transparently from real revenue and usage, and (after you confirm) creates the tasks, assigns a named AI teammate, and schedules them into the next sprint.

  • The aioproductos-triage skill — the full triage doctrine, available whenever you ask "what should we work on next?"

What you can do

Read the spine — customer 360, product brain, weekly signal memo, roadmap drift; analytics: NPS, NRR, funnels, retention, path analysis; list ideas, initiatives, tasks, features, objectives, sprints, releases, pages, experiments, insights, conversations, channels, bookings, identity merges, codebase map.

Write to the spine — no jumping back to the web UI:

  • Discovery — capture ideas, vote on them, promote an idea into a feature

  • Strategy — create/update initiatives, objectives and key results, decisions, experiments

  • Roadmap — create/update features, releases, pages

  • Delivery — create/update tasks, comment, create/update sprints

  • Customers & comms — capture insights, post to channels, merge/unmerge end users

  • AI artifacts — review artifacts, revert to a prior version

Everything is scoped to your organization and your role's permissions, and writes go through the same guardrails as the app.

Writes someone else can see. Three groups reach beyond your own workspace, so they're worth knowing about before you connect: reply_to_conversation, add_note and resolve_conversation act on your support inbox and a visitor sees the reply; post_to_channel and reply_in_channel post to team channels as you; cancel_booking and reschedule_booking change a booked meeting and notify the guest.

One destructive tool. delete_task is permanent, cascades to subtasks, and has no undo — so it requires confirm: "DELETE" alongside the task id. A task id alone can never trigger it; the assistant has to ask you first. Nothing else deletes anything.

Related MCP server: PM-Skills MCP

Interactive apps

Three tools render a working interface in the conversation rather than a wall of JSON (MCP Apps, SEP-1865). They aren't screenshots — each one calls back into this same MCP:

Ask for

You get

What it writes

list_tasks

Board — your tasks grouped by status, ranked by priority

change a status → update_task

get_weekly_signal_memo

Weekly signal — this week's themes with the evidence behind each

a theme → create_task, linked to its feature

analyze_funnel

Funnel — conversion per step with the live MRR behind each one

read-only

Hosts that support MCP Apps (Claude, ChatGPT, VS Code, Goose and others) render them inline. Everywhere else the tools return exactly the text they always did — the app is an enhancement, never the only copy of the answer.

Install

/plugin marketplace add AIOProductOS/claude-plugin
/plugin install aioproductos@aioproductos

On first use, the AIOProductOS connector will prompt you to sign in with your workspace account and approve access. All data is scoped to your organization and your role's permissions.

Requirements

An AIOProductOS workspace (aioproductos.com). New organizations get a 14-day onboarding runway on their own data, and every plan carries a 30-day money-back guarantee. Your AI usage is never metered — flat plans, no credit meters.

What the triage looks like

This week's triage — top 3 (evidence-backed). Confirm before I create them.

# | Insight (source)              | Proposed task            | Score
--+-------------------------------+--------------------------+------
1 | "Need SAML" — 3 accts, $4.2k  | SSO/SAML for enterprise  | 2.4
2 | Onboarding drop 38% (funnel)  | Shorten signup form      | 240
3 | Churned acct cited exports    | CSV export on reports    | 4.0

Want me to create, assign (Ada · Backend AI), and schedule all 3 into Sprint W27?

Every number traces to a record on the spine — accounts, MRR, funnel steps — not a planning-poker vibe. Effort stays a human call, and nothing is written until you confirm.

Other ways to connect

  • Any MCP host: custom connector URL https://platform.aioproductos.com/api/mcp

  • CLI/stdio: npx @aioproductoscom/mcp

  • Docs: aioproductos.com/mcp

Support

Questions, feedback, feature requests: office@aioproductos.com — a human founder answers every email.

License

MIT — see LICENSE. The plugin is free; it drives a paid AIOProductOS workspace.

Available Tools

71 tools
add_noteAdd Internal NoteAInspect

Add an INTERNAL note to a support conversation — visible only to your team, never sent to the end-user — and return the result. A write. Use it to record context or hand off; resolve conversation_id via list_conversations. conversation_id and body are required. For a public reply use reply_to_conversation instead.

Inputs: body (required), conversation_id (required).

analyze_funnelConversion FunnelA
Read-onlyIdempotent
Inspect

Build a conversion funnel from the product's own events: distinct users per step, step-to-step conversion %, and drop-off, evaluated in the exact order you pass. Needs product-analytics events flowing; returns empty counts when none match. Pass steps as an ordered list of 2+ event names — call it with NO steps first to get the menu of available event names rather than guessing them. Optional product_id and window_days (default 30, valid 1–365). Pairs with analyze_paths to see where the drop-offs go.

Inputs: steps, product_id, window_days.

analyze_npsNPS (revenue-weighted)A
Read-onlyIdempotent
Inspect

NPS for the product: the standard −100…100 score AND revenue-weighted NPS (each respondent weighted by their account MRR), plus detractor accounts ranked by MRR-at-risk (highest first). Surfaces when your biggest customers are the unhappy ones even if the headline looks fine. Computed deterministically off survey responses inside window_days (default 90, valid 1–365); returns an empty result when none fall in the window. product_id optional (primary product when omitted). Quantify sentiment after get_product_brain, then dig into a detractor with get_customer_360.

Inputs: product_id, window_days.

analyze_nrrNet Revenue RetentionA
Read-onlyIdempotent
Inspect

Net Revenue Retention (revenue-weighted) next to logo retention (count-weighted), the expansion/contraction/churn split, and the accounts that lost the most MRR (ranked, highest loss first). The divergence is the point: '92% of logos but 78% of revenue' means a big account churned. Computed deterministically off subscription movements inside window_days (default 90, valid 1–365); empty when none fall in the window. Quantify revenue health, then follow the top-losing accounts into get_customer_360.

Inputs: window_days.

analyze_pathsUser Path FlowA
Read-onlyIdempotent
Inspect

Trace what users do AFTER a start event — the journey flow (Sankey) from the product's own events. Returns the next-step transitions ranked by user count (most common first), empty when no events match. Pass start to anchor on an event, or omit for the most common start (call analyze_funnel with no steps to list the event names). Optional product_id and window_days (default 30, valid 1–365).

Inputs: start, product_id, window_days.

cancel_bookingCancel BookingA
Idempotent
Inspect

Cancel a scheduled booking (call/meeting) and return the result — the invitee is notified per the scheduling settings. A write. Resolve booking_id via list_bookings first; never guess it. To move it instead of cancelling, use reschedule_booking.

Inputs: booking_id (required).

capture_insightCapture InsightAInspect

Write a piece of customer feedback to the spine (the agent's own hand, not just reading) and return the created insight. Fires the same insight.created webhook a manual capture does — a real side-effect, so only capture genuine signal. Resolve account_id via get_customer_360 and feature_id via list_features and tie them when known; kind='opportunity' marks a prioritisable ask. Only body is required.

Inputs: body (required), kind, title, account_id, +2 more.

comment_on_taskComment on TaskAInspect

Add a comment to a task, authored as the connected member, and return the created comment. Use to record progress, a decision, or a handoff — the comment is visible to the whole org, so keep it work-relevant. Resolve the task id first with get_task or list_tasks; both id and body are required.

Inputs: id (required), body (required).

create_decisionLog DecisionAInspect

Log a decision and return it. status is 'decided' (default) | 'proposed' | 'revisit'; a 'decided' one stamps the decision time. Optionally weld it to a feature / release / objective via link_type + link_id (verified in-org). Only title is required.

Inputs: title (required), status, link_id, link_type, +1 more.

create_experimentCreate ExperimentAInspect

Create a PM experiment (a Build-Measure-Learn hypothesis) and return it. state is 'hypothesis' (default) | 'build' | 'measure' | 'learn'. Only title is required. This is the PM tracker list_experiments reads, not the analytics A/B engine.

Inputs: title (required), state, metric, target, +2 more.

create_featureCreate FeatureAInspect

Create a feature on the product spine and return it (id, key, name, status). The key is generated from the name; status starts 'active'. product_id defaults to the org's primary product when omitted (pass one from whoami for a multi-product org). Only name is required — create a feature here before linking tasks to it with create_task.

Inputs: name (required), product_id, description, objective_id, +1 more.

create_ideaCreate IdeaAInspect

Create an idea in the backlog and return it (starts with 0 votes, status 'new'). Link the evidence it came from with insight_id (from list_insights). product_id defaults to the primary product. Only title is required. Grow it with vote_idea, then promote_idea turns the winner into a roadmap feature.

Inputs: title (required), body, insight_id, product_id.

create_initiativeCreate InitiativeAInspect

Create an initiative — a strategic effort that groups features and rolls up to a goal — and return it. Link it to a goal with objective_id (from list_objectives) to build line-of-sight. status ∈ planned|active|paused|done|abandoned (default planned); timeframe is free text ('H2 2026'). product_id defaults to the primary product. Only name is required. Then align features to it via create_feature / update_feature (initiative_id).

Inputs: name (required), status, timeframe, product_id, +2 more.

create_objectiveCreate Objective (OKR)AInspect

Create an objective, optionally with key results, and return it. period is free text (e.g. 'Q3 2026'); product_id and parent_id (a parent objective) are optional and verified in-org. Each key result takes name + optional unit / start_value / target_value. Only name is required.

Inputs: name (required), period, parent_id, product_id, +2 more.

create_pageCreate PageAInspect

Create a Page (in-product doc / PRD on the spine) and return it (id, title). body is plain text — blank-line-separated blocks become paragraphs; omit it for a blank page. title defaults to 'Untitled'. product_id / parent_id (a parent page) are optional and verified in-org.

Inputs: body, icon, title, parent_id, +1 more.

create_releaseCreate ReleaseAInspect

Create a release and return it (id, version, changelog, released_at). Omit released_at for an unreleased/draft entry. product_id defaults to the org's primary product. Only version is required.

Inputs: version (required), changelog, product_id, released_at.

create_sprintCreate SprintAInspect

Create a sprint and return it (id, name, goal, state, dates). state is 'future' (default) or 'active'; start_date / end_date are optional ISO 8601. Only name is required. Schedule tasks into it by passing the returned sprint id as sprint_id on create_task / update_task.

Inputs: name (required), goal, state, end_date, +1 more.

create_taskCreate TaskAInspect

Create a task and return the created task. list_id defaults to the org's first list when omitted; feature_id / insight_id link it to the spine and sprint_id schedules it into a sprint. Resolve list/status/feature/insight/member ids via pm_meta and sprint_id via list_sprints — never guess them. Only title is required.

Inputs: title (required), list_id, priority, sprint_id, +5 more.

delete_taskDelete TaskA
DestructiveIdempotent
Inspect

PERMANENTLY delete a task and return the deleted id. Irreversible — there is no undo. Cascades: the task's comments, assignees, tags, attachments, time entries, outcomes, events, relations, and its SUBTASKS are deleted with it; experiment/insight/meeting links to it are cleared. Resolve the id via list_tasks and confirm intent first — prefer update_task (e.g. move it to a done/archived status) when you only want it off the active board.

Inputs: id (required), confirm (required).

get_codebase_mapCodebase MapA
Read-onlyIdempotent
Inspect

The auto-generated codebase brain map for one product: a plain-language summary, the module/node/edge counts, when the map was last generated, and the labels of the modules it found. Read-only; returns the latest generated map, empty when none has been generated for the product yet. Use it to ground 'where in the code does X live?' questions and to see how the codebase splits into modules before discussing architecture or scoping engineering work. Optional product_id, from whoami; omit for the org's primary product.

Inputs: product_id.

get_conversationRead Support ConversationA
Read-onlyIdempotent
Inspect

Read one support conversation: the visitor plus the full message thread, oldest first. Read-only. Resolve the conversation_id first with list_conversations — never guess it.

Inputs: conversation_id (required).

get_customer_360Customer 360A
Read-onlyIdempotent
Inspect

Everything about ONE customer, resolved by id, email, domain, or company name: profile, subscription + MRR, how many users sit under the account, and their verbatim feedback. Read-only; returns the matched account, or an empty result when nothing matches the query. The money + people + voice join on one record — call it before answering anything about a specific account.

Inputs: query (required).

get_device_candidatesDevice-Graph Identity CandidatesA
Read-onlyIdempotent
Inspect

Clusters of ≥2 end_users seen on the same device: 'anon_bridge' (high confidence — an anonymous visitor later identified) or 'device_shared' (low confidence — review only). Read-only; returns the candidate clusters, empty when none are found. Use it to find merge targets, then act with merge_end_users.

Inputs: no named parameters.

get_pageRead PageA
Read-onlyIdempotent
Inspect

Read one Page (doc / PRD) by id and return its full content. Read-only. Resolve the id first with list_pages — never guess it.

Inputs: id (required).

get_pm_playbookPM PlaybookA
Read-onlyIdempotent
Inspect

How to operate as a product manager on AIOProductOS. No arguments and no side effects — returns the same operating guide as plain text every call (deterministic): how to ground in the product brain, keep work welded to the spine (insight→feature→task→outcome), prioritise on evidence (affected accounts + MRR + reach), and what 'done' means. Call it FIRST, before planning or prioritising, to load the house rules the other tools assume.

Inputs: no named parameters.

get_product_brainProduct Brain SnapshotA
Read-onlyIdempotent
Inspect

A grounded snapshot of the org's product so YOU can reason about it. Returns one JSON object with: revenue + top paying accounts (ranked by MRR), web + product analytics headline metrics, the feature list, recent verbatim customer signals (newest first), and open-work counts — each block empty when that source isn't flowing yet. The time-windowed sections (revenue, cost, web + product analytics, feature usage) honour window (7 | 30 | 90 days, default 30). Single call, no pagination. Start here to ground, then go deeper with the dedicated list_* reads and the analytics tools. Optional product_id (the org's primary product when omitted).

Inputs: window, product_id.

get_retentionCohort RetentionA
Read-onlyIdempotent
Inspect

Weekly cohort retention for the product: users grouped by first-seen week (one row per cohort, newest last), with the share still active each subsequent week — a lower-triangular grid. Needs product-analytics events flowing; returns empty cohorts when the product has none. window_days default 56 = 8 weekly cohorts (min 7; roughly one extra cohort per added 7 days). product_id optional (primary product when omitted).

Inputs: product_id, window_days.

get_roadmap_driftRoadmap DriftA
Read-onlyIdempotent
Inspect

Planned vs shipped features over a window: a drift score (0-100, 100 = perfect alignment), counts (planned / shipped / on-time / slipped / unplanned / orphaned), median slip days, and the top slipped + unplanned ships. Deterministic, no LLM cost. window = week | month | quarter (default quarter); optional product_id. Read-only; returns the drift report, zeroed when nothing was planned or shipped in the window. Use it in planning reviews to check delivery against the roadmap, then open the slipped features with list_features.

Inputs: window, product_id.

get_taskGet TaskA
Read-onlyIdempotent
Inspect

Get one task by id and return it with its full comments and assignees. Read-only. Resolve the id first with list_tasks — never guess it; pair with update_task or comment_on_task to act on what you read.

Inputs: id (required).

get_weekly_signal_memoWeekly Signal MemoA
Read-onlyIdempotent
Inspect

The Weekly Product Signal Memo — the last 7 days of customer signal clustered into themes (insights grouped by feature, ranked by the revenue behind them) with verbatim quotes, week-over-week deltas (new / repeated / stronger / weaker), concluded experiments, and shipped releases. Deterministic — every count is off real rows, no fabricated quotes. Optional week (ISO 'YYYY-Www') for a past week; generate=1 rebuilds + persists the current week now. Read-only apart from that rebuild; returns the persisted memo, empty when the requested week has none. Open a weekly review with it, then drill into a theme with list_insights.

Inputs: week, generate.

list_artifact_versionsArtifact VersionsA
Read-onlyIdempotent
Inspect

Version history of an artifact's AI reviews (F5): every review run is a version with its score, model, cost, who/what generated it, and whether it's the current one. Read-only; returns the version list, empty when the artifact has never been reviewed. Use it to see how a feature/experiment/page's review changed over time and to pick the version_id to pass to revert_to_version. Takes the same target_id/target_type you'd pass to review_artifact.

Inputs: target_id (required), target_type (required).

list_bookingsList BookingsA
Read-onlyIdempotent
Inspect

Upcoming confirmed bookings on the org's scheduling. Read-only; returns the bookings, empty when none are scheduled. Pass include='all' for full history.

Inputs: include.

list_channelsList Comms ChannelsA
Read-onlyIdempotent
Inspect

List the team Comms channels the connected member belongs to (membership-scoped). Read-only; returns the member's channels, empty when they belong to none. Call read_channel with a channel_id to read one.

Inputs: no named parameters.

list_conversationsList Support ConversationsA
Read-onlyIdempotent
Inspect

List support-chat conversations in the inbox (open + snoozed by default; pass status='all' to include closed). Read-only; returns the matching conversations, empty when the inbox is clear. Optional product_id to scope to one product; open a full thread with get_conversation.

Inputs: status, product_id.

list_decisionsList DecisionsA
Read-onlyIdempotent
Inspect

List the org's logged decisions — title, rationale, status, and any linked feature/release/objective — newest first. Returns an empty list when none. Optional status filter (decided | proposed | revisit). Resolve a decision id here before update_decision.

Inputs: status.

list_experimentsList ExperimentsA
Read-onlyIdempotent
Inspect

List product experiments. Returns an array where each experiment carries its hypothesis, the metric it moves, the target, its current state, and — once concluded — the verdict and the decision that came out. Read-only; empty when none match. Use it to see what's being tested before proposing new work, and cite a concluded verdict as evidence when you create_task or review_artifact. Optional product_id (from whoami) and state filter.

Inputs: state, product_id.

list_featuresList FeaturesA
Read-onlyIdempotent
Inspect

The product's feature catalogue with description, status, and when each was last touched — richer than pm_meta (which is just id+name for resolution). Read-only; returns the matching features, empty when none. Optional product_id and free-text q over name+key; use a feature id from here to link a task or insight on the spine.

Inputs: q, product_id.

list_ideasList IdeasA
Read-onlyIdempotent
Inspect

List the org's ideas — the native, votable idea backlog — ranked by vote count (highest first). Each returns its title, status, vote count, author, and the feature it was promoted to (if any). status ∈ new|under_review|planned|promoted|declined (optional filter). Read-only; empty when none. Ideas are distinct from insights: an idea is a proposal a team votes on; an insight is a piece of customer evidence. Resolve an idea id here before update_idea / vote_idea / promote_idea.

Inputs: status, product_id.

list_identity_mergesIdentity Merge HistoryA
Read-onlyIdempotent
Inspect

List the org's end-user merge history. Returns an array of merge events, newest first, where each carries its event id, kind (merge or unmerge), the target and source end-user ids, the reason, who ran it, when, and — for merges — whether it has already been reverted. Read-only; empty when no merges have ever run. Use it to audit identity changes and to find the event id to pass to unmerge_end_users (only un-reverted merges can be undone).

Inputs: limit.

list_initiativesList InitiativesA
Read-onlyIdempotent
Inspect

List the org's initiatives — the strategic layer between goals and features (goal → initiative → feature → epic → release). Each returns its name, status, timeframe, the objective it rolls up to (if any), and its linked-feature count. Read-only; empty when none. Resolve an initiative id here before create_feature / update_feature (initiative_id) or update_initiative.

Inputs: product_id.

list_insightsSearch InsightsA
Read-onlyIdempotent
Inspect

Search the captured insight backlog (voice of customer) — the read twin of capture_insight. Read-only; returns the matching insights newest first, empty when nothing matches. Filters: status, kind (insight|opportunity), feature_id, account_id, product_id, and free-text q over title+body; limit default 50, max 200. Use it to survey the evidence behind a feature or account before prioritising — resolve feature_id via list_features and account_id via get_customer_360.

Inputs: q, kind, limit, status, +3 more.

list_objectivesList OKRsA
Read-onlyIdempotent
Inspect

List the org's OKRs. Returns an array of objectives, each with its key results and live progress (0..1 between start and target), so you can prioritise toward what the team is actually trying to move. Read-only; empty when none are set. Read it before prioritising — tie proposed tasks to the objective they move, and cite the live progress when arguing priority. Optional product_id, from whoami.

Inputs: product_id.

list_pagesList PagesA
Read-onlyIdempotent
Inspect

List the in-product docs / PRDs (Pages) on the spine. Returns an array of pages with title + id only — no content, so it stays cheap to scan. Read-only; empty when none exist. Use it to find the page id, then read the full content with get_page; pair with review_artifact (target_type 'page') to critique a draft PRD. Optional product_id, from whoami.

Inputs: product_id.

list_releasesList ReleasesA
Read-onlyIdempotent
Inspect

List shipped releases. Returns an array, newest first, where each release carries its version, changelog, and ship date. Read-only; empty when nothing has shipped. Use it to answer 'what did we ship recently?', to ground a changelog or launch summary in real ship dates, and to see what went out before reading get_roadmap_drift. Optional product_id, from whoami.

Inputs: product_id.

list_sprintsList SprintsA
Read-onlyIdempotent
Inspect

Sprints — name, goal, state, and window, newest first. Read-only; returns the matching sprints, empty when none exist. See the delivery cadence (active + recent), and resolve a sprint_id here before scheduling a task via create_task / update_task. Optional state filter (e.g. 'active').

Inputs: state.

list_tasksList TasksA
Read-onlyIdempotent
Inspect

List the org's board tasks and return the matches with their status, priority, assignees, and any linked feature/insight/sprint. Optionally narrow by status_id or list_id — resolve either via pm_meta. Read-only; returns an empty list when nothing matches. Use it to find a task id before get_task, update_task, or comment_on_task.

Inputs: list_id, status_id.

merge_end_usersMerge End-UsersAInspect

Merge source end-users into a target and return the merge result, including the merge event id (also recoverable later via list_identity_merges): all FK rows (events, insights, tasks, …) are re-pointed onto the target and the sources are tombstoned. A write; reversible for 30 days via unmerge_end_users. Get the candidate ids from get_device_candidates first — never guess which users to fold together. target_end_user_id and source_end_user_ids are required.

Inputs: target_end_user_id (required), source_end_user_ids (required), reason.

pm_metaPM MetadataA
Read-onlyIdempotent
Inspect

List the org's PM lists, statuses, members, and features as id+name pairs. Read-only; returns arrays for resolution only (list_features carries the richer catalogue). Call it to turn a name into an id before create_task / update_task — never guess an id.

Inputs: no named parameters.

post_to_channelPost to ChannelAInspect

Post a message to a team Comms channel you belong to, as the connected member, and return the posted message. It appears live for teammates and is org-visible — keep it work-relevant. Resolve channel_id via list_channels; you can only post to channels you're a member of. Both channel_id and body are required.

Inputs: body (required), channel_id (required).

promote_ideaPromote Idea to FeatureAInspect

Promote an idea into a roadmap feature: creates a feature from the idea (name + description), stamps the idea 'promoted' and links it to the new feature, and returns the feature id. Idempotent — an already-promoted idea returns its existing feature. Resolve the id via list_ideas; only id is required. Align the new feature to an initiative/goal afterwards with update_feature.

Inputs: id (required), product_id.

read_channelRead Comms ChannelA
Read-onlyIdempotent
Inspect

Read a Comms channel's recent messages, newest included (the connected member must be a channel member). Read-only; returns the messages, empty when the channel is silent. Resolve channel_id first with list_channels — never guess it. Optional limit.

Inputs: channel_id (required), limit.

reply_in_channelReply in Channel ThreadAInspect

Reply in a thread under a specific message in a Comms channel you belong to, as the connected member, and return the posted reply — org-visible to the channel. Resolve channel_id via list_channels and the parent message's id via read_channel. channel_id, parent_id, and body are all required.

Inputs: body (required), parent_id (required), channel_id (required).

reply_to_conversationReply to Support ConversationAInspect

Send a public reply to a support-inbox conversation, as the connected member, and return the result — it goes to the end-user on the conversation's channel. A write. Resolve conversation_id via list_conversations; read the thread with get_conversation before replying. conversation_id and body are required. For an internal-only note use add_note; to close it use resolve_conversation.

Inputs: body (required), conversation_id (required).

reschedule_bookingReschedule BookingA
Idempotent
Inspect

Reschedule a booking to a new start time (ISO 8601) and return the result — the invitee is notified. A write. Resolve booking_id via list_bookings first. booking_id and start are required.

Inputs: start (required), booking_id (required).

resolve_conversationResolve ConversationA
Idempotent
Inspect

Mark a support-inbox conversation resolved (closed) and return the result. A write; idempotent — resolving an already-resolved conversation is a no-op. Resolve conversation_id via list_conversations first. Do it after you've replied and the ask is handled.

Inputs: conversation_id (required).

revert_to_versionRevert Artifact VersionAInspect

Restore an earlier artifact version (F5) to current and return the now-current version: the existing current version is flipped to 'reverted' (kept for the learning signal) and the chosen version becomes current again. A write — not idempotent, since re-running reverts again. version_id is the version you want to RESTORE; get it from list_artifact_versions and never guess it. Optional reason is recorded.

Inputs: version_id (required), reason.

review_artifactPRD ReviewAInspect

Agent-as-critic over a DRAFT artifact (a feature spec, experiment plan, or page): checks it against a baseline PM bar — clear problem/hypothesis, a measurable success metric, evidence cited, risks named, a rollout/experiment plan — and returns structured findings (section, severity, a CONCRETE suggested fix, and a verbatim evidence quote) plus a 0-100 score. A write: each call re-runs the review and persists it as a new version (see list_artifact_versions). Resolve target_id first — via pm_meta or list_features for a feature, list_experiments for an experiment, list_pages for a page. One small LLM call; use it before sending a draft for sign-off.

Inputs: target_id (required), target_type (required), rubric_id.

unmerge_end_usersUndo End-User MergeA
Idempotent
Inspect

Undo a previous end-user merge: reads the merge ledger and re-points every FK row (events, insights, tasks, …) back to its original end-user, un-tombstoning the folded-in sources. Safe to retry — a second undo of the same merge changes nothing (it fails with already_reverted). Use to correct a wrong identity merge (merges stay reversible for 30 days). Find the event_id with list_identity_merges (pick an un-reverted merge); event_id is required.

Inputs: event_id (required).

update_decisionUpdate DecisionA
Idempotent
Inspect

Update a decision and return it; omitted fields unchanged. Moving status to 'decided' re-stamps the decision time. Re-link via link_type + link_id (verified in-org), or clear with nulls. Resolve the id via list_decisions; only id is required.

Inputs: id (required), title, status, link_id, +2 more.

update_experimentUpdate ExperimentA
Idempotent
Inspect

Update a PM experiment — advance its state and record the outcome — and return it. state ∈ hypothesis|build|measure|learn; verdict ∈ validated|invalidated; decision ∈ pivot|persevere. Resolve the id via list_experiments; only id is required.

Inputs: id (required), state, title, metric, +5 more.

update_featureUpdate FeatureA
Idempotent
Inspect

Update a feature and return it; omitted fields are unchanged. status is 'active' | 'discovered' | 'archived' (there is NO 'shipped' status — set mark_shipped:true to stamp its ship date instead). target_date is 'YYYY-MM-DD' (or null to clear). Resolve the id via list_features; only id is required.

Inputs: id (required), name, status, description, +4 more.

update_ideaUpdate IdeaA
Idempotent
Inspect

Update an idea's title / body / status and return it; omitted fields unchanged. status ∈ new|under_review|planned|promoted|declined (set 'promoted' via promote_idea instead, so a feature is actually created). Resolve the id via list_ideas; only id is required.

Inputs: id (required), body, title, status.

update_initiativeUpdate InitiativeA
Idempotent
Inspect

Update an initiative and return it; omitted fields are unchanged. Re-point it to a different goal with objective_id (null unlinks). status ∈ planned|active|paused|done|abandoned. Resolve the id via list_initiatives; only id is required.

Inputs: id (required), name, status, timeframe, +2 more.

update_key_resultUpdate Key ResultA
Idempotent
Inspect

Update a key result — most often to move current_value as progress lands — and return it; omitted fields are unchanged. Resolve the id via list_objectives (each objective carries its key_results with ids). Only id is required.

Inputs: id (required), name, unit, start_value, +2 more.

update_objectiveUpdate ObjectiveA
Idempotent
Inspect

Update an objective's name / description / period and return it; omitted fields are unchanged (null clears description or period). Resolve the id via list_objectives; only id is required. To move a key result's value use update_key_result.

Inputs: id (required), name, period, description.

update_pageUpdate PageA
Idempotent
Inspect

Update a Page — rename, set icon, replace the body, or archive/unarchive (archived:true hides it, false restores it). body is plain text (blank lines → paragraphs) and REPLACES the page content. Omitted fields are unchanged. Resolve the id via list_pages; only id is required.

Inputs: id (required), body, icon, title, +1 more.

update_releaseUpdate ReleaseA
Idempotent
Inspect

Update a release and return it; omitted fields unchanged. Set released_at to ship it (or null to move it back to draft). Resolve the id via list_releases; only id is required.

Inputs: id (required), version, changelog, released_at.

update_sprintUpdate SprintA
Idempotent
Inspect

Update a sprint and return it. state is 'future' | 'active' | 'closed' — moving to 'closed' stamps the completion time, reopening clears it. start_date / end_date are ISO 8601 (or null to clear). Resolve the id via list_sprints; only id is required.

Inputs: id (required), goal, name, state, +2 more.

update_taskUpdate TaskA
Idempotent
Inspect

Update one or more of a task's fields and return the updated task; fields you omit are left unchanged (idempotent — re-sending the same values is a no-op). Pass sprint_id: null to remove the task from its sprint. Resolve ids first — the task via get_task/list_tasks, and status/feature/insight/sprint/member ids via pm_meta and the list_* reads — never guess them. Only id is required.

Inputs: id (required), title, priority, sprint_id, +5 more.

vote_ideaVote on IdeaA
Idempotent
Inspect

Cast (or remove) the connected member's vote on an idea and return the new vote state. Adds your vote by default; pass remove:true to take it back. One vote per member — voting twice is a no-op. Resolve the id via list_ideas; only id is required.

Inputs: id (required), remove.

whoamiConnected IdentityA
Read-onlyIdempotent
Inspect

Show the connected AIOProductOS identity (org, member) AND the org's products (id, name, is_primary). Read-only; returns the identity plus the product list. For a multi-product org, call this first to get the product ids, then pass one as product_id to any product-scoped tool; omit product_id to use the primary.

Inputs: no named parameters.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.9/5.0

    Scored across 71 tools

    Disambiguation5/5

    Despite the large number of tools, each targets a distinct resource and action; reads, writes, analytics, comms, bookings, identity, and artifact-review operations are cleanly separated. Potentially similar pairs like list_ideas/list_insights and pm_meta/list_features are explicitly cross-referenced so an agent can tell them apart.

    Naming Consistency4/5

    The overwhelming majority follow a consistent verb_noun pattern: list_*, get_*, create_*, update_*, analyze_*, with action verbs like merge, unmerge, vote, promote, and reschedule. Minor deviations like pm_meta and whoami break the pattern slightly, but they are isolated and easy to learn.

    Tool Count1/5

    71 tools is an extreme number for a single MCP server, well above the 50+ threshold for a severe mismatch. Even though the tools are grouped by domain, the surface is very heavy for an agent to navigate and would be better split into focused servers such as PM, analytics, comms/support, identity, and bookings.

    Completeness4/5

    The core product-management lifecycle is well covered: features, tasks, sprints, objectives, key results, initiatives, ideas, experiments, releases, decisions, pages, and insights all have list/create/update flows, with archiving and status transitions replacing hard deletes. Minor gaps exist—no booking creation, no conversation reopen/assign, and no delete for most entities—but agents can work around them without dead ends.

    Maintenance

    ActivityInactive
    ResponsivenessLimited data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      Not graded
      maintenance
      A Model Context Protocol server that enables Claude Desktop users to interact directly with PostHog, allowing them to view projects and create annotations through natural language commands.
      10
      MIT
    • A
      license
      A
      quality
      D
      maintenance
      MCP server exposing 40 best-practice product management skills plus workflows and lifecycle tools, instantly accessible to any AI via Model Context Protocol.
      19
      93 npm
      21
      Apache 2.0
    • A
      license
      A
      quality
      C
      maintenance
      Turns your AI host into a product videographer — scripted screen recordings of your own web app with a gliding cursor, camera zooms, highlight callouts, captions, and branded transitions, plus marketing-grade screenshots. Automatic dark-frame cleanup and MP4/GIF export. Free, MIT, 100% local — no account, no API keys.
      14
      84 npm
      3
      MIT