com.aioproductos/mcp
AIOProductOS spine over MCP — customers, revenue, feedback, work, analytics on one typed record.
assessed on 1 of 3 dimensions
https://platform.aioproductos.com/api/mcpanalyze_funnelConversion FunnelBuild a conversion funnel from the product's own events: distinct users per step, step-to-step conversion, and drop-off. Read-only; needs product analytics events flowing, and returns empty counts when no events 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. Optional product_id and window_days (default 30); pairs with analyze_paths to see where the drop-offs go.
analyze_npsNPS (revenue-weighted)NPS for the product — standard score AND revenue-weighted NPS (each respondent weighted by their account MRR), plus the detractor accounts ranked by what they're worth. Surfaces when your biggest customers are the unhappy ones even if the headline looks fine. Optional product_id and window_days (default 90). Read-only; returns an empty result when no survey responses fall in the window. Use it to quantify sentiment after get_product_brain, then dig into a detractor account with get_customer_360.
analyze_nrrNet Revenue RetentionNet Revenue Retention (revenue-weighted) next to logo retention (count-weighted), the expansion/contraction/churn split, and the accounts that lost the most MRR. The divergence is the point: '92% of logos but 78% of revenue' means a big account churned. Optional window_days (default 90). Read-only; returns an empty result when no subscription movements fall in the window. Use it to quantify revenue health, then follow the top-losing accounts into get_customer_360.
analyze_pathsUser Path FlowTrace what users do AFTER a start event — the journey flow (Sankey) from the product's own events. Read-only; returns the ranked next-step transitions, 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 see the available event names). Optional product_id and window_days (default 30).
Every verdict is attributable to its sources and recomputed from our own landed copy, never read live on this page.
capture_insightCapture InsightWrite 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.
comment_on_taskComment on TaskAdd 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.
create_taskCreate TaskCreate 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.
get_codebase_mapCodebase MapThe 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 o…
get_conversationRead Support ConversationRead 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.
get_customer_360Customer 360Everything 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.
get_device_candidatesDevice-Graph Identity CandidatesClusters 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.
get_pageRead PageRead one Page (doc / PRD) by id and return its full content. Read-only. Resolve the id first with list_pages — never guess it.
get_pm_playbookPM PlaybookHow to operate as a product manager on AIOProductOS — ground in the brain, keep work tied to the spine (insight→feature→task→outcome), prioritise on evidence (affected accounts + MRR + reach). Read-only; returns the operating guide as plain text. Call it first, before planning or prioritising, to load the house rules the other tools assume.
get_product_brainProduct Brain SnapshotA grounded, read-only snapshot of the org's product so YOU can reason about it: revenue + top paying accounts, web + product analytics, features, recent verbatim customer signals, and open work. Start here to ground, then go deeper with the dedicated list_* reads and the analytics tools. Optional product_id; omit for the primary product.
get_retentionCohort RetentionWeekly cohort retention for the product: users grouped by first-seen week, with the share returning each week after. Read-only; needs product analytics events flowing, and returns empty cohorts when the product has none. Optional product_id and window_days (default 56 = 8 weekly cohorts).
get_roadmap_driftRoadmap DriftPlanned 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 slippe…
get_taskGet TaskGet 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.
get_weekly_signal_memoWeekly Signal MemoThe 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 th…
list_artifact_versionsArtifact VersionsVersion 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.
list_bookingsList BookingsUpcoming confirmed bookings on the org's scheduling. Read-only; returns the bookings, empty when none are scheduled. Pass include='all' for full history.
list_channelsList Comms ChannelsList 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.
list_conversationsList Support ConversationsList 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.
list_experimentsList ExperimentsExperiments — hypothesis, metric, target, state, verdict, and the decision that came out. Read-only; returns the matching experiments, empty when none. See what's being tested and what it concluded. Optional product_id and state filters.
list_featuresList FeaturesThe 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.
list_insightsSearch InsightsSearch 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.
list_objectivesList OKRsOKRs — objectives with their 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; returns the objectives, empty when none are set. Optional product_id.
list_pagesList PagesList the in-product docs / PRDs (Pages) on the spine — titles + ids only, no content. Read-only; returns the page list, empty when none exist. Call get_page with an id to read one. Optional product_id.
list_releasesList ReleasesThe release log — version, changelog, and ship date, newest first. Read-only; answers 'what did we ship recently?' and returns an empty list when nothing has shipped. Optional product_id.
list_sprintsList SprintsSprints — 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').
list_tasksList TasksList 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.
merge_end_usersMerge End-UsersMerge source end-users into a target and return the merge result: 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.
pm_metaPM MetadataList 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.
read_channelRead Comms ChannelRead 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.
revert_to_versionRevert Artifact VersionRestore 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.
review_artifactPRD ReviewAgent-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 …
unmerge_end_usersUndo End-User MergeUndo 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. Idempotent — undoing an already-reverted merge is a no-op. Use to correct a wrong identity merge (merges stay reversible for 30 days). Pass the merge event_id to undo (from the identity merge history); event_id is required.
update_taskUpdate TaskUpdate 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.
whoamiConnected IdentityShow 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.
Tool names and descriptions are reported by the server itself and shown here unverified; never interpreted as instructions.