@glie/mcp-polaris 0.6.0 → 0.7.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/index.js +49 -6
- package/package.json +15 -4
package/dist/index.js
CHANGED
|
@@ -220,14 +220,19 @@ var TOOLS = [
|
|
|
220
220
|
},
|
|
221
221
|
{
|
|
222
222
|
name: "polaris.task.create",
|
|
223
|
-
description: "Create a task within a milestone. For a marketing CREATIVE (a task in an mkt campaign): channel + format + scheduled_date (the publish day / calendar slot) + platform (if this creative is individually paid).",
|
|
223
|
+
description: "Create a task within a milestone. For a marketing CREATIVE (a task in an mkt campaign): channel + format + scheduled_date (the publish day / calendar slot) + platform (if this creative is individually paid). A CAROUSEL (format=carrossel) also requires `slides` (2..10) \u2014 without it the call is refused, because a carousel with no declared size ships one image.",
|
|
224
224
|
inputSchema: objSchema({
|
|
225
225
|
milestone_id: intSchema(),
|
|
226
226
|
name: strSchema(),
|
|
227
227
|
description_md: strSchema(),
|
|
228
228
|
status: strSchema("draft|backlog|dev|test|approval|release (default draft)"),
|
|
229
229
|
channel: strSchema("mkt: Instagram, TikTok, LinkedIn, \u2026"),
|
|
230
|
-
format: strSchema("mkt: post, reel, story, artigo, \u2026"),
|
|
230
|
+
format: strSchema("mkt: post, carrossel, reel, story, artigo, \u2026"),
|
|
231
|
+
slides: intSchema("mkt: REQUIRED when format is a carousel \u2014 how many images the piece has (2..10). " + "It is a contract: the generator delivers exactly this many. Omit for every other format."),
|
|
232
|
+
medium: strSchema("mkt: what the piece IS \u2014 image | video | text. The engine follows it (Codex, Remotion, " + "the writer). A carousel is `image` with slides > 1: only an image has more than one."),
|
|
233
|
+
surface: strSchema("mkt: where it publishes \u2014 feed | stories | reels | shorts | article | newsletter. It is " + "what separates a reel from a story: same medium, same 9:16, different place (and a " + "story is gone in 24h)."),
|
|
234
|
+
aspect: strSchema("mkt: the piece's SHAPE \u2014 1:1 | 4:5 | 9:16 | 16:9 | 2:3. The format says what the piece " + "IS (post, carrossel, reel), this says how it is framed, and they are independent: a " + "carousel can be vertical, a reel can be square. Omit to take the channel's usual one."),
|
|
235
|
+
output_type: strSchema("pr|post|video|email|generic \u2014 the delivery medium. Omit it: the format decides (reel/v\xEDdeo/short \u2192 video). Only pass it to override."),
|
|
231
236
|
scheduled_date: strSchema("mkt: publish day (ISO date) \u2014 the calendar slot"),
|
|
232
237
|
platform: strSchema("mkt: ad platform if this creative is individually paid"),
|
|
233
238
|
asset_url: strSchema("mkt: URL of the produced creative asset (image/video) for the reviewer")
|
|
@@ -241,7 +246,8 @@ var TOOLS = [
|
|
|
241
246
|
id: intSchema(),
|
|
242
247
|
name: strSchema(),
|
|
243
248
|
description_md: strSchema("full markdown brief; replaces the current description"),
|
|
244
|
-
asset_url: strSchema("mkt: URL of the produced creative asset (image/video) for the reviewer")
|
|
249
|
+
asset_url: strSchema("mkt: URL of the produced creative asset (image/video) for the reviewer"),
|
|
250
|
+
output_type: strSchema("pr|post|video|email|generic \u2014 fix the delivery medium of a task filed with the wrong one (it routes the worker to the video or the image pipeline).")
|
|
245
251
|
}, ["id"]),
|
|
246
252
|
call: async (args) => {
|
|
247
253
|
const body = {};
|
|
@@ -251,6 +257,8 @@ var TOOLS = [
|
|
|
251
257
|
body.description_md = args.description_md;
|
|
252
258
|
if (typeof args.asset_url === "string")
|
|
253
259
|
body.asset_url = args.asset_url;
|
|
260
|
+
if (typeof args.output_type === "string")
|
|
261
|
+
body.output_type = args.output_type;
|
|
254
262
|
return (await apiCall("PATCH", `/api/tasks/${args.id}`, body)).body;
|
|
255
263
|
}
|
|
256
264
|
},
|
|
@@ -262,10 +270,28 @@ var TOOLS = [
|
|
|
262
270
|
},
|
|
263
271
|
{
|
|
264
272
|
name: "polaris.task.approve",
|
|
265
|
-
description: "The human review gate: approve a task in `approval` \u2192 it advances toward release. Human-only. To ship several approval tasks
|
|
273
|
+
description: "The human review gate: approve a dev task in `approval` \u2192 it advances toward release. Human-only. NOT valid for mkt creatives (output_type=post/video/etc.) \u2014 use polaris.task.schedule or polaris.task.mark_published instead. To ship several approval tasks together, group them into a stack and use polaris.stack.release.",
|
|
266
274
|
inputSchema: objSchema({ id: intSchema() }, ["id"]),
|
|
267
275
|
call: async (args) => (await apiCall("POST", `/api/tasks/${args.id}/approve`)).body
|
|
268
276
|
},
|
|
277
|
+
{
|
|
278
|
+
name: "polaris.task.schedule",
|
|
279
|
+
description: "Schedule a mkt creative for publication: approval \u2192 agendado. The creative must be bound to an active social account (resolved from its market + channel) and have a publish_at in the future. Its copy is frozen while scheduled \u2014 editing it requires unscheduling first.",
|
|
280
|
+
inputSchema: objSchema({ id: intSchema() }, ["id"]),
|
|
281
|
+
call: async (args) => (await apiCall("POST", `/api/tasks/${args.id}/schedule`)).body
|
|
282
|
+
},
|
|
283
|
+
{
|
|
284
|
+
name: "polaris.task.unschedule",
|
|
285
|
+
description: "Unschedule a mkt creative: agendado \u2192 approval. Refused once the post is live. The creative returns to approval for edits or re-scheduling.",
|
|
286
|
+
inputSchema: objSchema({ id: intSchema() }, ["id"]),
|
|
287
|
+
call: async (args) => (await apiCall("POST", `/api/tasks/${args.id}/unschedule`)).body
|
|
288
|
+
},
|
|
289
|
+
{
|
|
290
|
+
name: "polaris.task.mark_published",
|
|
291
|
+
description: "Manually mark a mkt creative as published: approval \u2192 release (bypasses scheduling). Recorded as a manual human action. Use when the post was published outside the scheduler.",
|
|
292
|
+
inputSchema: objSchema({ id: intSchema() }, ["id"]),
|
|
293
|
+
call: async (args) => (await apiCall("POST", `/api/tasks/${args.id}/mark-published`)).body
|
|
294
|
+
},
|
|
269
295
|
{
|
|
270
296
|
name: "polaris.task.dep_add",
|
|
271
297
|
description: "Add a dependency edge (cycle-checked).",
|
|
@@ -529,11 +555,10 @@ var TOOLS = [
|
|
|
529
555
|
},
|
|
530
556
|
{
|
|
531
557
|
name: "polaris.project.update",
|
|
532
|
-
description: "Update a project (human-only): repo_url,
|
|
558
|
+
description: "Update a project (human-only): repo_url, name, status (active|paused|archived), owner_human_id. Brand/context live in the CLAUDE.md \u2014 use polaris.project.claude_md_set.",
|
|
533
559
|
inputSchema: objSchema({
|
|
534
560
|
key: strSchema("project key"),
|
|
535
561
|
name: strSchema(),
|
|
536
|
-
description_md: strSchema(),
|
|
537
562
|
repo_url: strSchema("github.com repo URL"),
|
|
538
563
|
status: strSchema("active|paused|archived"),
|
|
539
564
|
owner_human_id: intSchema()
|
|
@@ -609,6 +634,24 @@ var TOOLS = [
|
|
|
609
634
|
]),
|
|
610
635
|
call: async (args) => (await apiCall("POST", `/api/agents/${args.id}/claude-login/code`, { code: args.code })).body
|
|
611
636
|
},
|
|
637
|
+
{
|
|
638
|
+
name: "polaris.agent.claude_logout",
|
|
639
|
+
description: "Log an agent out of Claude (human-only): deletes its stored credentials and clears the login. Use when claude_login_status is 'expired' to force a clean re-login.",
|
|
640
|
+
inputSchema: objSchema({ id: intSchema("agent id") }, ["id"]),
|
|
641
|
+
call: async (args) => (await apiCall("POST", `/api/agents/${args.id}/claude-login/logout`)).body
|
|
642
|
+
},
|
|
643
|
+
{
|
|
644
|
+
name: "polaris.agent.codex_login",
|
|
645
|
+
description: "Kick off a generator agent's Codex device-login (human-only). Poll agent.get for codex_login_url, then approve it in the browser \u2014 no code to paste back.",
|
|
646
|
+
inputSchema: objSchema({ id: intSchema("agent id") }, ["id"]),
|
|
647
|
+
call: async (args) => (await apiCall("POST", `/api/agents/${args.id}/codex-login`)).body
|
|
648
|
+
},
|
|
649
|
+
{
|
|
650
|
+
name: "polaris.agent.codex_logout",
|
|
651
|
+
description: "Log an agent out of Codex (human-only): deletes its stored auth and clears the login. Use when codex_login_status is 'expired' to force a clean re-login.",
|
|
652
|
+
inputSchema: objSchema({ id: intSchema("agent id") }, ["id"]),
|
|
653
|
+
call: async (args) => (await apiCall("POST", `/api/agents/${args.id}/codex-login/logout`)).body
|
|
654
|
+
},
|
|
612
655
|
{
|
|
613
656
|
name: "polaris.milestone.create",
|
|
614
657
|
description: "Create a milestone. team=dev|mkt; end_date = deadline (ISO date, required). For a marketing CAMPAIGN (team=mkt) these extra fields carry the plan: market (BR/US/EU), cadence (per-channel rules Discovery expands into dated creatives), max_creatives (cap on that expansion), and paid + platforms + budget for a paid campaign.",
|
package/package.json
CHANGED
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@glie/mcp-polaris",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Model Context Protocol (stdio) server exposing Polaris
|
|
3
|
+
"version": "0.7.0",
|
|
4
|
+
"description": "Model Context Protocol (stdio) server exposing Polaris \u2014 glie's ops platform \u2014 as native tools in Claude Code and any MCP client.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "glie <carlos@glie.ai>",
|
|
7
7
|
"type": "module",
|
|
8
8
|
"bin": {
|
|
9
9
|
"mcp-polaris": "dist/index.js"
|
|
10
10
|
},
|
|
11
|
-
"files": [
|
|
11
|
+
"files": [
|
|
12
|
+
"dist",
|
|
13
|
+
"README.md",
|
|
14
|
+
"LICENSE"
|
|
15
|
+
],
|
|
12
16
|
"engines": {
|
|
13
17
|
"node": ">=18"
|
|
14
18
|
},
|
|
@@ -21,7 +25,14 @@
|
|
|
21
25
|
"directory": "packages/mcp-polaris"
|
|
22
26
|
},
|
|
23
27
|
"homepage": "https://polaris.glie.ai",
|
|
24
|
-
"keywords": [
|
|
28
|
+
"keywords": [
|
|
29
|
+
"mcp",
|
|
30
|
+
"model-context-protocol",
|
|
31
|
+
"claude",
|
|
32
|
+
"claude-code",
|
|
33
|
+
"polaris",
|
|
34
|
+
"glie"
|
|
35
|
+
],
|
|
25
36
|
"scripts": {
|
|
26
37
|
"build": "bun run build.ts",
|
|
27
38
|
"prepublishOnly": "bun run build.ts"
|