@aioproductoscom/mcp 0.10.0 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client.js +6 -0
- package/dist/index.js +10 -1
- package/package.json +1 -1
package/dist/client.js
CHANGED
|
@@ -61,6 +61,12 @@ export class PlatformClient {
|
|
|
61
61
|
const qs = productId ? `?product_id=${encodeURIComponent(productId)}` : "";
|
|
62
62
|
return this.req(`/api/me/brain${qs}`);
|
|
63
63
|
}
|
|
64
|
+
captureInsight(body) {
|
|
65
|
+
return this.req("/api/me/insight", { method: "POST", body: JSON.stringify(body) });
|
|
66
|
+
}
|
|
67
|
+
customer360(query) {
|
|
68
|
+
return this.req(`/api/me/customer?q=${encodeURIComponent(query)}`);
|
|
69
|
+
}
|
|
64
70
|
funnel(opts) {
|
|
65
71
|
const p = new URLSearchParams();
|
|
66
72
|
if (opts.productId)
|
package/dist/index.js
CHANGED
|
@@ -18,7 +18,7 @@ function text(data) {
|
|
|
18
18
|
],
|
|
19
19
|
};
|
|
20
20
|
}
|
|
21
|
-
const server = new McpServer({ name: "productos", version: "0.
|
|
21
|
+
const server = new McpServer({ name: "productos", version: "0.11.0" }, {
|
|
22
22
|
instructions: "You manage product work on ProductOS for the connected member — board, insights, features, and " +
|
|
23
23
|
"analytics all hang off one spine. Call get_pm_playbook first for how to operate: ground in " +
|
|
24
24
|
"get_product_brain, keep work tied to the spine (insight→feature→task→outcome), and prioritize on " +
|
|
@@ -53,6 +53,15 @@ server.tool("update_task", "Update a task's fields (status, priority, title, des
|
|
|
53
53
|
}, async ({ id, ...body }) => text(await client.updateTask(id, body)));
|
|
54
54
|
server.tool("comment_on_task", "Add a comment to a task.", { id: z.string(), body: z.string() }, async (a) => text(await client.comment(a.id, a.body)));
|
|
55
55
|
server.tool("get_product_brain", "Read a grounded, read-only snapshot of the org's product so YOU can reason about it on your own model: revenue + top paying accounts, web + product analytics, features, recent verbatim customer signals, and open work. Optional product_id; omit for the primary product. Returns the brain text plus the list of products you can ask about.", { product_id: z.string().optional() }, async (a) => text(await client.brain(a.product_id)));
|
|
56
|
+
server.tool("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. The money + people + voice join on one record — use it before answering anything about a specific account.", { query: z.string() }, async (a) => text(await client.customer360(a.query)));
|
|
57
|
+
server.tool("capture_insight", "Write a piece of customer feedback to the spine (the agent's own hand, not just reading). It fires the same insight.created webhook a manual capture does. Tie it to the account it's about (account_id) and the feature it concerns (feature_id) when you know them; kind='opportunity' for a prioritizable ask. Defaults to the primary product.", {
|
|
58
|
+
body: z.string(),
|
|
59
|
+
title: z.string().optional(),
|
|
60
|
+
kind: z.enum(["insight", "opportunity"]).optional(),
|
|
61
|
+
product_id: z.string().optional(),
|
|
62
|
+
feature_id: z.string().optional(),
|
|
63
|
+
account_id: z.string().optional(),
|
|
64
|
+
}, async (a) => text(await client.captureInsight(a)));
|
|
56
65
|
server.tool("analyze_funnel", "Build a conversion funnel from the product's own events and reason over it on your model. Pass `steps` as an ordered list of event names (2+) to compute the funnel: distinct users per step, conversion, and drop-off. Omit `steps` to get the menu of available event names first. Optional product_id (defaults to the primary product) and window_days (default 30).", {
|
|
57
66
|
steps: z.array(z.string()).optional(),
|
|
58
67
|
product_id: z.string().optional(),
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aioproductoscom/mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.11.0",
|
|
4
4
|
"description": "ProductOS MCP — manage tickets, read your product brain + analytics, and run the support inbox from Claude Code, Cursor, Codex, and any MCP host.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|