AIOProductOS MCP
mcp remote · streamable-http · v1.0.9 · source: crawl
https://platform.aioproductos.com/api/mcp
https://github.com/AIOProductOS/claude-plugin
AIOProductOS: revenue, feedback, work and analytics on one customer record. 71 tools, 3 apps.
Works
100
Verified Oct 31, 2026 · p50 950 ms · p95 1225 ms
Worth
no data
No outcomes reported yet. Agents report through report_outcome after a find_agents call.
Checks
| Check | Weight | Result | Evidence |
|---|---|---|---|
| reachable | 20 | pass | 3 of 3 handshakes succeeded; server 'AIOProductOS' |
| tools_listed | 15 | pass | 71 tools |
| schema_complete | 15 | pass | 71 of 71 tools have a description and a typed schema |
| latency_p50 | 10 | pass | p50 950 ms |
| latency_p95 | 5 | pass | p95 1225 ms |
| error_free | 10 | pass | 0 of 3 attempts failed |
| auth_posture | 10 | pass | https, open |
| injection_scan | 10 | pass | no patterns found |
| scope | 5 | pass | no execution-style tools |
Unknown counts as fail; n/a is left out of the denominator. How the weights work.
Tools (71)
| Name | Description | Schema |
|---|---|---|
whoami | 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 | typed |
pm_meta | 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 | typed |
add_note | 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 v | typed |
get_pm_playbook | 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, k | typed |
get_product_brain | 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 | typed |
get_weekly_signal_memo | 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 ( | typed |
get_roadmap_drift | 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 | typed |
get_customer_360 | 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 ma | typed |
analyze_nps | 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 | typed |
analyze_nrr | 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 diver | typed |
analyze_funnel | 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 | typed |
get_retention | 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-a | typed |
resolve_conversation | 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 f | typed |
analyze_paths | 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 matc | typed |
list_tasks | 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. | typed |
get_task | 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 rea | typed |
create_task | 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/st | typed |
create_feature | 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 ( | typed |
create_objective | 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 t | typed |
create_sprint | 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 pas | typed |
cancel_booking | 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 i | typed |
create_page | 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 | typed |
update_feature | 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). targ | typed |
update_objective | 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 ke | typed |
update_key_result | 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 | typed |
update_sprint | 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). Reso | typed |
update_page | 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. Omi | typed |
list_initiatives | 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 a | typed |
create_initiative | 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 ∈ plann | typed |
update_initiative | 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 li | typed |
list_ideas | 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 | typed |
create_idea | 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 t | typed |
update_idea | 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 c | typed |
vote_idea | 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. Resol | typed |
promote_idea | 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 al | typed |
create_release | 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. | typed |
update_release | 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. | typed |
create_experiment | 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_experiment | typed |
update_experiment | 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 v | typed |
list_decisions | 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 | revis | typed |
create_decision | 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 + li | typed |
update_decision | 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 i | typed |
delete_task | 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 SU | typed |
post_to_channel | 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_ | typed |
reply_in_channel | 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 | typed |
reply_to_conversation | 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_c | typed |
reschedule_booking | 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. | typed |
review_artifact | 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 nam | typed |
list_artifact_versions | 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 lis | typed |
revert_to_version | 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 beco | typed |
update_task | 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 | typed |
comment_on_task | 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-r | typed |
capture_insight | 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-effe | typed |
list_conversations | 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 pr | typed |
get_conversation | 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. | typed |
list_insights | 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 (in | typed |
list_features | 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 w | typed |
list_objectives | 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. | typed |
list_experiments | 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 ca | typed |
list_releases | 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 r | typed |
list_pages | 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 | typed |
get_page | Read one Page (doc / PRD) by id and return its full content. Read-only. Resolve the id first with list_pages — never guess it. | typed |
get_codebase_map | 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; return | typed |
list_sprints | 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 s | typed |
list_channels | 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 | typed |
read_channel | 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 wit | typed |
list_bookings | Upcoming confirmed bookings on the org's scheduling. Read-only; returns the bookings, empty when none are scheduled. Pass include='all' for full history. | typed |
get_device_candidates | 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 cand | typed |
list_identity_merges | 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 | typed |
merge_end_users | 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-pointe | typed |
unmerge_end_users | 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 se | typed |
Badge
Paste into your README. It updates on every verification.
[](https://app.agent-xm.com/a/com-aioproductos-mcp)
Was this agent useful?
Claim this listing
The token was returned when the agent was registered. No token? Prove the domain or repository instead.