cmskite-mcp 0.1.1 → 0.1.2

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/README.md CHANGED
@@ -10,6 +10,11 @@ what the assistant needs; the defaults are read and write content. The token is
10
10
  shown once, and that dialogue generates the block below for whichever client you
11
11
  pick — **Set up a client** on the same screen shows it again afterwards.
12
12
 
13
+ The first start downloads the package, which can take longer than a client
14
+ waits for a server (often 30 seconds). If yours reports a timeout, run
15
+ `npx -y cmskite-mcp@latest` once in a terminal to fill the cache, or
16
+ `npm install -g cmskite-mcp` and use `cmskite-mcp` as the command.
17
+
13
18
  Every client runs the same process. They disagree only about where it is written
14
19
  and under what key, and a block copied from the wrong one pastes without
15
20
  complaint and then does nothing.
@@ -113,7 +118,8 @@ Settings (`cmd-shift-p` → “open settings”) — context servers, marked cus
113
118
 
114
119
  ## Tools
115
120
 
116
- **Where am I** — `whoami`, `list_projects`, `get_project`, `get_project_summary`
121
+ **Where am I** — `whoami`, `list_projects`, `get_project`, `get_project_summary`,
122
+ `update_project`
117
123
 
118
124
  **Shape** — `create_workspace`, `create_project`, `list_categories`,
119
125
  `create_category`, `update_category`, `delete_category`, `list_tags`,
@@ -125,9 +131,11 @@ Settings (`cmd-shift-p` → “open settings”) — context servers, marked cus
125
131
  **Keys** — `list_api_keys`, `create_api_key`
126
132
 
127
133
  **Connecting a website** — `get_integration_guide`, `check_integration`,
128
- `get_content_analytics`
134
+ `get_content_analytics`, `get_post_analytics`
129
135
 
130
- Start with `whoami`, then `list_projects` for a `prj_…` id. Every content tool
136
+ Start with `whoami`, then `list_projects` for a `prj_…` id. `whoami` returns
137
+ `agentGrants`, the token's own list: a tool works only when that list and the
138
+ owner's role both allow it. Every content tool
131
139
  needs one unless `CMSKITE_PROJECT_ID` is set.
132
140
 
133
141
  ### Connecting a website
@@ -149,7 +157,7 @@ Each tool needs the matching grant, and a token has only what was ticked:
149
157
  |---|---|
150
158
  | `whoami` | `member.read` — tick it, or the first call an assistant makes is the one that fails |
151
159
  | `list_projects`, `get_project`, `get_project_summary` | `project.read` |
152
- | `create_project` | `project.write` |
160
+ | `create_project`, `update_project` (including allowed origins) | `project.write` |
153
161
  | `create_workspace` | `workspace.create` |
154
162
  | `list_*`, `get_post`, `search_posts` | `content.read` |
155
163
  | `create_*`, `update_*` | `content.write` |
@@ -158,7 +166,7 @@ Each tool needs the matching grant, and a token has only what was ticked:
158
166
  | `list_api_keys` | `apikey.read` |
159
167
  | `create_api_key` | `apikey.write` |
160
168
  | `check_integration` | `project.read` |
161
- | `get_content_analytics` | `analytics.read` |
169
+ | `get_content_analytics`, `get_post_analytics` | `analytics.read` |
162
170
  | `get_integration_guide` | none — it reads nothing and changes nothing |
163
171
 
164
172
  New posts are drafts. Publishing is `update_post` with `status: "published"` —
package/dist/index.js CHANGED
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env node
2
+ import { createRequire } from 'node:module';
2
3
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
3
4
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
4
5
  import { CmsKiteClient } from './client.js';
@@ -14,10 +15,12 @@ import { allTools, registerTools } from './tools/index.js';
14
15
  * translator, not a second authorization layer, which is the only arrangement
15
16
  * where the two cannot disagree.
16
17
  */
18
+ /** From package.json, so the handshake reports the version that is actually running. */
19
+ const { version } = createRequire(import.meta.url)('../package.json');
17
20
  async function main() {
18
21
  const config = readConfig();
19
22
  const client = new CmsKiteClient(config);
20
- const server = new McpServer({ name: 'cmskite', version: '0.1.0' }, {
23
+ const server = new McpServer({ name: 'cmskite', version }, {
21
24
  instructions: 'CMSKite manages blog content behind an API. A workspace holds projects; a project is ' +
22
25
  'one website and holds the posts, categories, tags and authors. Start with `whoami`, ' +
23
26
  'then `list_projects` to get a `prj_...` id — every content tool needs one unless ' +
@@ -31,7 +34,7 @@ async function main() {
31
34
  // message corrupts the stream and the client drops the connection, so every
32
35
  // diagnostic in this process goes to stderr.
33
36
  await server.connect(new StdioServerTransport());
34
- process.stderr.write(`cmskite-mcp ready: ${allTools.length} tools against ${config.apiUrl}\n`);
37
+ process.stderr.write(`cmskite-mcp ${version} ready: ${allTools.length} tools against ${config.apiUrl}\n`);
35
38
  }
36
39
  main().catch((err) => {
37
40
  process.stderr.write(`cmskite-mcp failed to start: ${err instanceof Error ? err.message : String(err)}\n`);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAA;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAE1D;;;;;;;;;GASG;AACH,KAAK,UAAU,IAAI;IACjB,MAAM,MAAM,GAAG,UAAU,EAAE,CAAA;IAC3B,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,CAAA;IAExC,MAAM,MAAM,GAAG,IAAI,SAAS,CAC1B,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,EACrC;QACE,YAAY,EACV,uFAAuF;YACvF,sFAAsF;YACtF,mFAAmF;YACnF,mFAAmF;YACnF,8EAA8E;YAC9E,sFAAsF;YACtF,4DAA4D;KAC/D,CACF,CAAA;IAED,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;IAEvC,gFAAgF;IAChF,4EAA4E;IAC5E,6CAA6C;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,oBAAoB,EAAE,CAAC,CAAA;IAChD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,QAAQ,CAAC,MAAM,kBAAkB,MAAM,CAAC,MAAM,IAAI,CAAC,CAAA;AAChG,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;IAC5B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gCAAgC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAC1G,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAA;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAE1D;;;;;;;;;GASG;AACH,wFAAwF;AACxF,MAAM,EAAE,OAAO,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,iBAAiB,CAAwB,CAAA;AAE5F,KAAK,UAAU,IAAI;IACjB,MAAM,MAAM,GAAG,UAAU,EAAE,CAAA;IAC3B,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,CAAA;IAExC,MAAM,MAAM,GAAG,IAAI,SAAS,CAC1B,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,EAC5B;QACE,YAAY,EACV,uFAAuF;YACvF,sFAAsF;YACtF,mFAAmF;YACnF,mFAAmF;YACnF,8EAA8E;YAC9E,sFAAsF;YACtF,4DAA4D;KAC/D,CACF,CAAA;IAED,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;IAEvC,gFAAgF;IAChF,4EAA4E;IAC5E,6CAA6C;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,oBAAoB,EAAE,CAAC,CAAA;IAChD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,OAAO,WAAW,QAAQ,CAAC,MAAM,kBAAkB,MAAM,CAAC,MAAM,IAAI,CAAC,CAAA;AAC3G,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;IAC5B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gCAAgC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAC1G,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC,CAAC,CAAA"}
@@ -74,5 +74,23 @@ export const diagnosticTools = [
74
74
  return { summary, topPosts: top };
75
75
  },
76
76
  }),
77
+ defineTool({
78
+ name: 'get_post_analytics',
79
+ title: 'One post, day by day',
80
+ description: 'Views, unique readers and clicks for one post, per day. The way to check that a specific ' +
81
+ 'post\'s view landed after wiring up tracking: open the post in a real browser (headless ' +
82
+ 'browsers are not counted), wait about a minute for the rollup, then call this. A reader ' +
83
+ 'counts once per post per day. Requires the analytics.read grant.',
84
+ input: {
85
+ projectId: z.string().describe('The project id, as `prj_...`.'),
86
+ postId: z.string().describe('The post id, as `post_...`. Not the slug.'),
87
+ from: z.string().regex(/^\d{4}-\d{2}-\d{2}$/).optional().describe('Inclusive UTC day. Defaults to 30 days ago.'),
88
+ to: z.string().regex(/^\d{4}-\d{2}-\d{2}$/).optional().describe('Inclusive UTC day. Defaults to today.'),
89
+ },
90
+ readOnly: true,
91
+ run: (client, args) => client.request(`/v1/analytics/content/posts/${segment(args.postId)}`, {
92
+ query: { projectId: args.projectId, from: args.from, to: args.to },
93
+ }),
94
+ }),
77
95
  ];
78
96
  //# sourceMappingURL=diagnose.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"diagnose.js","sourceRoot":"","sources":["../../src/tools/diagnose.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAE1C;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,UAAU,CAAC;QACT,IAAI,EAAE,mBAAmB;QACzB,KAAK,EAAE,mCAAmC;QAC1C,WAAW,EACT,uFAAuF;YACvF,oFAAoF;YACpF,2DAA2D;YAC3D,0FAA0F;YAC1F,0FAA0F;YAC1F,4EAA4E;QAC9E,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC,EAAE;QAC1E,QAAQ,EAAE,IAAI;QACd,GAAG,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CACpB,MAAM,CAAC,OAAO,CAAC,gBAAgB,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC;KAC/E,CAAC;IAEF,UAAU,CAAC;QACT,IAAI,EAAE,uBAAuB;QAC7B,KAAK,EAAE,2BAA2B;QAClC,WAAW,EACT,yFAAyF;YACzF,uFAAuF;YACvF,sFAAsF;YACtF,6EAA6E;YAC7E,uBAAuB;QACzB,KAAK,EAAE;YACL,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;YAC/D,IAAI,EAAE,CAAC;iBACJ,MAAM,EAAE;iBACR,KAAK,CAAC,qBAAqB,CAAC;iBAC5B,QAAQ,EAAE;iBACV,QAAQ,CAAC,6CAA6C,CAAC;YAC1D,EAAE,EAAE,CAAC;iBACF,MAAM,EAAE;iBACR,KAAK,CAAC,qBAAqB,CAAC;iBAC5B,QAAQ,EAAE;iBACV,QAAQ,CAAC,uCAAuC,CAAC;YACpD,QAAQ,EAAE,CAAC;iBACR,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,GAAG,CAAC,CAAC,CAAC;iBACN,GAAG,CAAC,EAAE,CAAC;iBACP,QAAQ,EAAE;iBACV,QAAQ,CAAC,6DAA6D,CAAC;SAC3E;QACD,QAAQ,EAAE,IAAI;QACd,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;YAC1B,MAAM,KAAK,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAA;YACzE,yEAAyE;YACzE,yEAAyE;YACzE,wEAAwE;YACxE,YAAY;YACZ,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBACvC,MAAM,CAAC,OAAO,CAAU,+BAA+B,EAAE,EAAE,KAAK,EAAE,CAAC;gBACnE,MAAM,CAAC,OAAO,CAAU,iCAAiC,EAAE;oBACzD,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,IAAI,EAAE,EAAE;iBAChD,CAAC;aACH,CAAC,CAAA;YACF,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAA;QACnC,CAAC;KACF,CAAC;CACM,CAAA"}
1
+ {"version":3,"file":"diagnose.js","sourceRoot":"","sources":["../../src/tools/diagnose.ts"],"names":[],"mappings":"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"}
@@ -23,6 +23,7 @@ import { defineTool } from './register.js';
23
23
  const framework = z
24
24
  .enum([
25
25
  'nextjs-app',
26
+ 'nextjs',
26
27
  'nextjs-pages',
27
28
  'react',
28
29
  'node',
@@ -34,7 +35,8 @@ const framework = z
34
35
  'other',
35
36
  ])
36
37
  .describe('What the project is. Look at the files rather than guessing. ' +
37
- 'JavaScript: `next` in package.json with an app/ directory is `nextjs-app`, `next` with ' +
38
+ 'JavaScript: `next` in package.json with an app/ directory is `nextjs-app` (`nextjs` is ' +
39
+ 'accepted as the same thing), `next` with ' +
38
40
  'pages/ is `nextjs-pages`, `react` without `next` is `react`, a package.json with no ' +
39
41
  'framework is `node`. ' +
40
42
  'Not JavaScript: .html files and no build step is `html`; wp-config.php or a wp-content/ ' +
@@ -76,15 +78,20 @@ const RAW = new Set(['html', 'php', 'wordpress', 'laravel', 'python', 'other']);
76
78
  /** A site whose content is fetched by the browser, not by a server. */
77
79
  const BROWSER_FETCHED = new Set(['html', 'react']);
78
80
  function guide(args) {
81
+ // The obvious first guess. The App Router is what `create-next-app` makes today.
82
+ if (args.framework === 'nextjs')
83
+ args = { ...args, framework: 'nextjs-app' };
79
84
  const analytics = args.includeAnalytics !== false;
80
85
  const raw = RAW.has(args.framework);
81
86
  const notes = [
82
87
  'Fetch the content on the server, report the view from the browser. That split IS the ' +
83
88
  'integration, and it is the part that gets missed: a site that only fetches content ' +
84
89
  'works perfectly and counts nobody.',
85
- 'A CMSKite key is read-only and returns published content only. There is no secret ' +
86
- 'credential here — but use two keys anyway, so the one in the page can be revoked ' +
87
- 'without taking the site down.',
90
+ 'A website uses a PROJECT key, which starts `csk_live_`. It is read-only and returns ' +
91
+ 'published content only, so it is safe in a page — use two anyway, so the one in the ' +
92
+ 'page can be revoked without taking the site down. An AGENT token (`cka_live_`, the kind ' +
93
+ 'this MCP server runs on) is not a website key: it can write and delete, and must never ' +
94
+ 'be put in a browser bundle or reused as the site key, even though it can read content.',
88
95
  'A view is reported by the page that renders the post, never inferred from an API ' +
89
96
  'request. A build fetching every post is two hundred requests and no readers.',
90
97
  'The tracker needs the post’s `id` (`post_...`), not its slug. Render the id into the ' +
@@ -99,8 +106,19 @@ function guide(args) {
99
106
  notes.push('Set allowed origins under Project → Settings → Allowed origins. Until that is set, any ' +
100
107
  'page anywhere can read this project’s published content.');
101
108
  }
109
+ if (args.framework.startsWith('nextjs') || args.framework === 'react') {
110
+ notes.push('Browser variables (NEXT_PUBLIC_*, VITE_*) are compiled into the bundle at BUILD time. ' +
111
+ 'Setting one on the host changes nothing until the site is rebuilt and redeployed; until ' +
112
+ 'then the tracker reads undefined and stays off. The tracker below is written so a ' +
113
+ 'missing key switches it off instead of failing.');
114
+ }
115
+ notes.push('Views count once per reader, per post, per day, and only from a real browser: headless ' +
116
+ 'browsers, curl and scripts are dropped silently (the endpoint still answers 202). To ' +
117
+ 'verify, open a post in an ordinary browser and look for the POST to /v1/blog/events.');
102
118
  if (args.projectId) {
103
- notes.push(`Create the keys for project ${args.projectId} with the create_api_key tool.`);
119
+ notes.push(`Create the keys for project ${args.projectId} with the create_api_key tool. That needs ` +
120
+ 'the apikey.write grant; if this token lacks it, the person creates the key in the ' +
121
+ 'dashboard under Project → API keys and puts it in the site themselves.');
104
122
  }
105
123
  const keys = browserOnly(args.framework)
106
124
  ? [
@@ -237,8 +255,13 @@ import { useTrackView } from 'cmskite/react'
237
255
  * and the tracker remembers the post for the tab besides. Nothing here can
238
256
  * throw, and nothing blocks the page.
239
257
  */
258
+ // A project key (csk_live_...), never an agent token. NEXT_PUBLIC_ values are
259
+ // baked in at build time: after setting it, redeploy.
260
+ const KEY = process.env.NEXT_PUBLIC_CMSKITE_KEY
261
+
240
262
  export function TrackView({ postId }: { postId: string }) {
241
- useTrackView(postId, { apiKey: process.env.NEXT_PUBLIC_CMSKITE_KEY! })
263
+ // Off until the key exists, and off in \`next dev\` so local reloads are not counted.
264
+ useTrackView(postId, { apiKey: KEY ?? '', enabled: Boolean(KEY) && process.env.NODE_ENV === 'production' })
242
265
  return null
243
266
  }
244
267
  `;
@@ -309,7 +332,7 @@ ${analytics ? "import { useTrackView } from 'cmskite/react'\n" : ''}import type
309
332
  import { cms } from '../../lib/cmskite'
310
333
 
311
334
  export default function BlogPost({ post }: { post: Post }) {
312
- ${analytics ? " useTrackView(post.id, { apiKey: process.env.NEXT_PUBLIC_CMSKITE_KEY! })\n\n" : ''} return (
335
+ ${analytics ? " // Off until NEXT_PUBLIC_CMSKITE_KEY exists (it is baked in at build time), and off in dev.\n useTrackView(post.id, {\n apiKey: process.env.NEXT_PUBLIC_CMSKITE_KEY ?? '',\n enabled: Boolean(process.env.NEXT_PUBLIC_CMSKITE_KEY) && process.env.NODE_ENV === 'production',\n })\n\n" : ''} return (
313
336
  <article>
314
337
  <h1>{post.title}</h1>
315
338
  <div dangerouslySetInnerHTML={{ __html: post.body }} />
@@ -356,7 +379,7 @@ export function BlogPost({ slug }: { slug: string }) {
356
379
  const [post, setPost] = useState<Post | null>(null)
357
380
  const [error, setError] = useState<string | null>(null)
358
381
 
359
- ${analytics ? " useTrackView(post?.id, { apiKey: import.meta.env.VITE_CMSKITE_KEY })\n\n" : ''} useEffect(() => {
382
+ ${analytics ? " // Off until VITE_CMSKITE_KEY exists (it is baked in at build time), and off in dev.\n useTrackView(post?.id, {\n apiKey: import.meta.env.VITE_CMSKITE_KEY ?? '',\n enabled: Boolean(import.meta.env.VITE_CMSKITE_KEY) && import.meta.env.PROD,\n })\n\n" : ''} useEffect(() => {
360
383
  // Cancelled on unmount, and when a newer slug supersedes this one.
361
384
  const controller = new AbortController()
362
385
  cms.posts
@@ -1 +1 @@
1
- {"version":3,"file":"integrate.js","sourceRoot":"","sources":["../../src/tools/integrate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"integrate.js","sourceRoot":"","sources":["../../src/tools/integrate.ts"],"names":[],"mappings":"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"}
@@ -14,7 +14,9 @@ export const workspaceTools = [
14
14
  name: 'whoami',
15
15
  title: 'Who this token is',
16
16
  description: 'The account this token acts as and the workspaces it can see. Call this first in a new ' +
17
- 'conversation: it confirms the token works and names the workspace everything else happens in.',
17
+ 'conversation: it confirms the token works and names the workspace everything else happens in. ' +
18
+ '`agentGrants` is what THIS TOKEN may do; `permissions` is what its owner may do. A tool ' +
19
+ 'works only when both allow it, so read `agentGrants` to know which tools will succeed.',
18
20
  input: {},
19
21
  readOnly: true,
20
22
  run: (client) => client.request('/v1/auth/me'),
@@ -61,6 +63,23 @@ export const workspaceTools = [
61
63
  },
62
64
  run: (client, args) => client.request('/v1/projects', { method: 'POST', body: args }),
63
65
  }),
66
+ defineTool({
67
+ name: 'update_project',
68
+ title: 'Update a project',
69
+ description: 'Change a project\'s name, description, website, or allowed origins. Only the fields ' +
70
+ 'passed change. `allowedOrigins` REPLACES the list: pass every origin, like ' +
71
+ '["https://example.com", "https://www.example.com"] — scheme and host, no path. It decides ' +
72
+ 'which websites may use the project key from a browser. Requires the project.write grant.',
73
+ input: {
74
+ projectId: z.string().describe('The project id, as `prj_...`.'),
75
+ name: z.string().min(1).max(200).optional(),
76
+ description: z.string().max(500).nullable().optional(),
77
+ websiteName: z.string().max(200).nullable().optional(),
78
+ websiteUrl: z.string().max(300).nullable().optional().describe('Display only. Not a CORS allowance.'),
79
+ allowedOrigins: z.array(z.string()).max(20).optional().describe('The complete list. [] removes the restriction.'),
80
+ },
81
+ run: (client, { projectId, ...body }) => client.request(`/v1/projects/${segment(projectId)}`, { method: 'PATCH', body }),
82
+ }),
64
83
  defineTool({
65
84
  name: 'get_project_summary',
66
85
  title: 'Project summary',
@@ -1 +1 @@
1
- {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../src/tools/workspace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../src/tools/workspace.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cmskite-mcp",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "MCP server for CMSKite. Gives an assistant the workspace, project and content surface behind one agent token.",
5
5
  "license": "MIT",
6
6
  "author": "CMSKite",