jujugrowth-mcp 1.0.9 → 1.1.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.
Files changed (2) hide show
  1. package/package.json +2 -2
  2. package/server.mjs +27 -7
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "jujugrowth-mcp",
3
- "version": "1.0.9",
4
- "description": "MCP server connecting your AI coding assistant (Claude, Cursor, Codex) to jujugrowth — pull recommendations and apply them in your repo.",
3
+ "version": "1.1.0",
4
+ "description": "MCP server connecting your AI coding assistant (Claude, Cursor, Codex) to jujugrowth — pull your living marketing plan's dev tasks + recommendations and apply them in your repo.",
5
5
  "type": "module",
6
6
  "bin": {
7
7
  "jujugrowth-mcp": "server.mjs"
package/server.mjs CHANGED
@@ -71,6 +71,23 @@ const TOOLS = [
71
71
  `/recommendations${a.tenantId ? `?tenantId=${encodeURIComponent(a.tenantId)}` : ""}`,
72
72
  ),
73
73
  },
74
+ {
75
+ name: "list_plan_tasks",
76
+ description:
77
+ "List the dev-AI tasks from this site's LIVING MARKETING PLAN — the roadmap steps the plan assigned to the developer AI (changes to the business's own site/app/code; jujugrowth executes the 'autonomous' marketing steps itself). Each task has a ready-to-run `prompt`, plus why it matters, its priority, and the plan's north-star + strategy for context. This is your growth to-do list for the business: pull it, implement the highest-priority tasks in the repo (verify current state first; show a diff/PR), and the next plan regeneration reflects what you shipped via its evidence-grounded status. Pass `tenantId` to target a site; if more than one is connected and you omit it you get {needsSite:true,...} — ASK the user which site, then call again. Never pick a site for them.",
78
+ inputSchema: {
79
+ type: "object",
80
+ properties: {
81
+ tenantId: {
82
+ type: "string",
83
+ description: "the site (optional; required when more than one site is connected)",
84
+ },
85
+ },
86
+ additionalProperties: false,
87
+ },
88
+ run: async (a) =>
89
+ call("GET", `/plan-tasks${a.tenantId ? `?tenantId=${encodeURIComponent(a.tenantId)}` : ""}`),
90
+ },
74
91
  {
75
92
  name: "get_recommendation",
76
93
  description:
@@ -146,13 +163,16 @@ async function handle(msg) {
146
163
  // Workflow the AI should follow unprompted (so the human never has to
147
164
  // say "now mark it handled"). Surfaced to the model by MCP clients.
148
165
  instructions:
149
- `This server provides growth recommendations for ${SITE_LABEL ? `the site "${SITE_LABEL}"` : "the user's site(s)"} and connects them to your code work. Standard loop:\n` +
150
- "1) list_recommendations.\n" +
151
- "2) get_recommendation for one you'll act on.\n" +
152
- "3) Before changing anything, VERIFY the brief's current-state claims against the actual code — they can be stale; skip what's already done.\n" +
153
- "4) Implement in the user's repo, scoped to wording/structure/SEO. Never change checkout, auth, or analytics events. Show a diff / open a PR for the user to review.\n" +
154
- "5) ALWAYS call mark_recommendation_handled with a short note of what you changed once it's shipped — don't wait to be told.\n" +
155
- "Skip GA4-console toggles and business-judgment items flag those for the user instead of editing code. Campaigns and ad budgets are NOT here those are owner decisions in the jujugrowth web UI. This server is bound to ONE site; never act on another.",
166
+ `This server connects ${SITE_LABEL ? `the site "${SITE_LABEL}"` : "the user's site(s)"} growth work to your coding. Two task sources:\n` +
167
+ "• list_plan_tasks — the dev-AI steps of the business's LIVING MARKETING PLAN (the strategic roadmap). Start here: these are the prioritized site/app/code changes the growth plan needs (each has a ready-to-run prompt + the north-star for context).\n" +
168
+ " list_recommendations individual one-off growth recommendations.\n" +
169
+ "Standard loop:\n" +
170
+ "1) list_plan_tasks (and/or list_recommendations).\n" +
171
+ "2) get_recommendation for any rec you'll act on.\n" +
172
+ "3) Before changing anything, VERIFY current-state claims against the actual code — they can be stale; skip what's already done.\n" +
173
+ "4) Implement in the user's repo, scoped to wording/structure/SEO/tracking the plan asks for. Show a diff / open a PR for the user to review.\n" +
174
+ "5) ALWAYS call mark_recommendation_handled with a short note once a recommendation is shipped — don't wait to be told. (Plan-task progress is reflected automatically by the next plan regeneration's evidence-grounded status.)\n" +
175
+ "Campaigns and ad budgets are NOT here — those are owner decisions the jujugrowth system runs itself. This server is bound to ONE site; never act on another.",
156
176
  },
157
177
  });
158
178
  }