jujugrowth-mcp 1.0.7 → 1.0.8

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 (3) hide show
  1. package/README.md +3 -1
  2. package/package.json +1 -1
  3. package/server.mjs +1 -13
package/README.md CHANGED
@@ -49,7 +49,9 @@ commands pre-filled.
49
49
  - `get_recommendation` — the full brief for one (implement it in your repo)
50
50
  - `mark_recommendation_handled` — mark it done (with a note of what you changed)
51
51
  - `request_site_advice` — Pro: trigger a fresh website analysis
52
- - `request_campaign_brief` — Pro: trigger a campaign brief
52
+
53
+ (Campaigns/ad briefs aren't here by design — those are owner budget
54
+ decisions, handled in the jujugrowth web UI, not dev-AI work.)
53
55
 
54
56
  A token can be scoped to one business; the server then announces itself as
55
57
  `jujugrowth (yoursite.com)` and only ever touches that site. Generate scoped
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jujugrowth-mcp",
3
- "version": "1.0.7",
3
+ "version": "1.0.8",
4
4
  "description": "MCP server connecting your AI coding assistant (Claude, Cursor, Codex) to jujugrowth — pull recommendations and apply them in your repo.",
5
5
  "type": "module",
6
6
  "bin": {
package/server.mjs CHANGED
@@ -106,18 +106,6 @@ const TOOLS = [
106
106
  },
107
107
  run: async (a) => call("POST", `/site-advice/${a.tenantId}`),
108
108
  },
109
- {
110
- name: "request_campaign_brief",
111
- description:
112
- "Pro: kick off a campaign brief for a business (the system picks the platform). Files a new recommendation with the economics shown (~2-3 min). Costs LLM tokens; requires an active (Pro) account.",
113
- inputSchema: {
114
- type: "object",
115
- properties: { tenantId: { type: "string" } },
116
- required: ["tenantId"],
117
- additionalProperties: false,
118
- },
119
- run: async (a) => call("POST", `/campaign-brief/${a.tenantId}`),
120
- },
121
109
  ];
122
110
 
123
111
  function send(msg) {
@@ -147,7 +135,7 @@ async function handle(msg) {
147
135
  "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" +
148
136
  "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" +
149
137
  "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" +
150
- "Skip GA4-console toggles and business-judgment items — flag those for the user instead of editing code. This server is bound to ONE site; never act on another.",
138
+ "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.",
151
139
  },
152
140
  });
153
141
  }