@kezlahd/atlas-mcp 0.2.0 → 0.3.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/api.js +1 -1
- package/dist/index.js +431 -84
- package/dist/index.js.map +1 -1
- package/dist/section-catalog.js +25 -14
- package/dist/section-catalog.js.map +1 -1
- package/package.json +3 -3
package/dist/section-catalog.js
CHANGED
|
@@ -9,18 +9,22 @@
|
|
|
9
9
|
* to reason about the shape; what it needs is a nudge on the field
|
|
10
10
|
* *names* and *ranges*, not a full API doc.
|
|
11
11
|
*/
|
|
12
|
-
|
|
12
|
+
/** Every section accepts a top-level `hidden: boolean`. Appended to each
|
|
13
|
+
* entry's `common_fields` by the exported `SECTION_CATALOG` so Claude
|
|
14
|
+
* sees it on every describe-section-type call. */
|
|
15
|
+
const HIDDEN_FIELD = "hidden?: boolean — hide section from the printed output without deleting (dimmed in editor)";
|
|
16
|
+
const RAW_CATALOG = [
|
|
13
17
|
{
|
|
14
18
|
type: "cover",
|
|
15
19
|
purpose: "Full-bleed cover page: title, subtitle, date, workspace lockup, optional hero image.",
|
|
16
|
-
data_shape: "Held on TemplateContent.cover,
|
|
20
|
+
data_shape: "Held on TemplateContent.cover, NOT on a section.data. Update via atlas_update_cover (scoped merge) — atlas_update_section can't touch the cover.",
|
|
17
21
|
common_fields: [
|
|
18
22
|
"subtitle: string",
|
|
19
23
|
"date: string (free-form or ISO)",
|
|
20
|
-
"bgImageUrl: string | null",
|
|
24
|
+
"bgImageUrl: string | null — SIGNED URL (not a storage key) — pass storage keys through atlas_get_file_url first",
|
|
21
25
|
"titlePosition: '(top|middle|bottom)-(left|center|right)'",
|
|
22
26
|
"accentColor: hex",
|
|
23
|
-
"presentedBy: { enabled, showLogo, logoUrl, size, position, ... }",
|
|
27
|
+
"presentedBy: { enabled, showLogo, logoUrl (signed URL), size, position, ... }",
|
|
24
28
|
],
|
|
25
29
|
},
|
|
26
30
|
{
|
|
@@ -72,7 +76,7 @@ export const SECTION_CATALOG = [
|
|
|
72
76
|
},
|
|
73
77
|
{
|
|
74
78
|
type: "team",
|
|
75
|
-
purpose: "DEPRECATED — the Atlas loader auto-migrates `team` sections into `people-link` on open (TeamPerson → LinkedPerson, external=true). New docs
|
|
79
|
+
purpose: "DEPRECATED — the Atlas loader auto-migrates `team` sections into `people-link` on open (TeamPerson → LinkedPerson, external=true), and the API rejects new `team` writes with a 400. New docs must use `people-link` directly; this entry is kept so Claude can still answer questions about legacy docs.",
|
|
76
80
|
data_shape: "section.data — { title, people: [{ name, role }] } (legacy)",
|
|
77
81
|
common_fields: ["people: object[]"],
|
|
78
82
|
},
|
|
@@ -102,7 +106,7 @@ export const SECTION_CATALOG = [
|
|
|
102
106
|
purpose: "Mixed list of workspace members and external contacts.",
|
|
103
107
|
data_shape: "section.data — { title, people: LinkedPerson[] }",
|
|
104
108
|
common_fields: [
|
|
105
|
-
"people: [{ userId?, name, role?, email?, phone?, external? }]",
|
|
109
|
+
"people: [{ userId?, name, role?, email?, phone?, external?, photoUrl? (SIGNED URL — not a storage key) }]",
|
|
106
110
|
],
|
|
107
111
|
},
|
|
108
112
|
{
|
|
@@ -114,29 +118,30 @@ export const SECTION_CATALOG = [
|
|
|
114
118
|
{
|
|
115
119
|
type: "moodboard",
|
|
116
120
|
purpose: "Image grid with configurable rows/cols/spacing/radius/aspect.",
|
|
117
|
-
data_shape: "section.data — { title, images: (MoodBoardImage|null)[], rows, cols, aspect, spacing, radius, ... }",
|
|
121
|
+
data_shape: "section.data — { title, images: (MoodBoardImage|null)[], rows, cols, aspect, spacing, radius, ... } where MoodBoardImage = { id, url (SIGNED URL — not a storage key), alt? }",
|
|
118
122
|
common_fields: [
|
|
119
|
-
"images: length === rows * cols (missing slots are null)",
|
|
123
|
+
"images: length === rows * cols (missing slots are null); each image is { id, url (signed), alt? } — raw storage keys render as 404s",
|
|
120
124
|
"aspect: 'square' | 'portrait' | 'landscape'",
|
|
121
|
-
"rows, cols: number",
|
|
125
|
+
"rows, cols: number — default 3x3",
|
|
122
126
|
],
|
|
123
127
|
},
|
|
124
128
|
{
|
|
125
129
|
type: "palette",
|
|
126
130
|
purpose: "Colour palette extracted from a source moodboard (or manually curated).",
|
|
127
|
-
data_shape: "section.data — { title,
|
|
131
|
+
data_shape: "section.data — { title, sourceId, rows, cols, numColors, extractedColours, ... }",
|
|
128
132
|
common_fields: [
|
|
129
|
-
"
|
|
133
|
+
"sourceId: string (id of a moodboard section — the field is `sourceId`, not `sourceSectionId`)",
|
|
130
134
|
"rows, cols: number",
|
|
131
|
-
"
|
|
135
|
+
"numColors: number (rows * cols on new palettes; legacy docs may only have numColors)",
|
|
136
|
+
"extractedColours: PaletteColour[] (hex + weight)",
|
|
132
137
|
],
|
|
133
138
|
},
|
|
134
139
|
{
|
|
135
140
|
type: "calendar-event",
|
|
136
|
-
purpose: "Embed one or more workspace shoots inline — card / table / banner layouts, optional attendee avatars.",
|
|
141
|
+
purpose: "Embed one or more ALREADY-SCHEDULED workspace shoots inline — card / table / banner layouts, optional attendee avatars. This section only references `eventIds`; it does NOT schedule the shoot. Use atlas_add_calendar_event_to_doc to schedule a shoot AND wire it into the section in one call.",
|
|
137
142
|
data_shape: "section.data — { title, eventIds: string[], layout: 'card'|'table'|'banner', showAttendees, showLocation, showDescription, radius, ... }",
|
|
138
143
|
common_fields: [
|
|
139
|
-
"eventIds: uuid[] (from workspace shoots)",
|
|
144
|
+
"eventIds: uuid[] (from workspace shoots — must already exist; create via atlas_create_event or atlas_add_calendar_event_to_doc)",
|
|
140
145
|
"layout: 'card' | 'table' | 'banner'",
|
|
141
146
|
"showAttendees, showLocation, showDescription: boolean",
|
|
142
147
|
"radius: number (px, card + banner only)",
|
|
@@ -159,6 +164,12 @@ export const SECTION_CATALOG = [
|
|
|
159
164
|
common_fields: ["css: string (legacy — use docSettings.customCss instead)"],
|
|
160
165
|
},
|
|
161
166
|
];
|
|
167
|
+
/** Final catalogue — every entry gets the shared `hidden` field appended
|
|
168
|
+
* to common_fields so Claude sees it uniformly. */
|
|
169
|
+
export const SECTION_CATALOG = RAW_CATALOG.map((entry) => ({
|
|
170
|
+
...entry,
|
|
171
|
+
common_fields: [...entry.common_fields, HIDDEN_FIELD],
|
|
172
|
+
}));
|
|
162
173
|
export function findSection(type) {
|
|
163
174
|
return SECTION_CATALOG.find((s) => s.type === type) ?? null;
|
|
164
175
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"section-catalog.js","sourceRoot":"","sources":["../src/section-catalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AASH,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"section-catalog.js","sourceRoot":"","sources":["../src/section-catalog.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kezlahd/atlas-mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "MCP server for the Atlas creative-team platform – lets Claude Code and other AI agents edit doc templates, files, and gear.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"homepage": "https://atlas.mjsons.net",
|
|
9
9
|
"repository": {
|
|
10
10
|
"type": "git",
|
|
11
|
-
"url": "https://github.com/KezLahd/atlas.git",
|
|
11
|
+
"url": "git+https://github.com/KezLahd/atlas.git",
|
|
12
12
|
"directory": "packages/atlas-mcp"
|
|
13
13
|
},
|
|
14
14
|
"bugs": {
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"access": "public"
|
|
27
27
|
},
|
|
28
28
|
"bin": {
|
|
29
|
-
"atlas-mcp": "
|
|
29
|
+
"atlas-mcp": "dist/index.js"
|
|
30
30
|
},
|
|
31
31
|
"main": "./dist/index.js",
|
|
32
32
|
"files": [
|