@clipform/mcp-server 2.10.5 → 2.10.7

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 CHANGED
@@ -2,11 +2,11 @@
2
2
  import {
3
3
  JSONRPCMessageSchema,
4
4
  createServer
5
- } from "./chunk-44LRAJJ3.js";
6
- import "./chunk-QZO6MGNN.js";
7
- import "./chunk-A5RVUIGS.js";
8
- import "./chunk-O35IVA4L.js";
9
- import "./chunk-ENHVQDSI.js";
5
+ } from "./chunk-JCCGDVUH.js";
6
+ import "./chunk-RMMQVPZN.js";
7
+ import "./chunk-6FVQBVKW.js";
8
+ import "./chunk-SAAH4U7O.js";
9
+ import "./chunk-HZMMOSEM.js";
10
10
  import {
11
11
  setMcpVersion
12
12
  } from "./chunk-PBQ5BQWD.js";
package/dist/prompts.js CHANGED
@@ -3,9 +3,9 @@ import {
3
3
  buildDiscovery,
4
4
  getWorkflowText,
5
5
  registerPrompts
6
- } from "./chunk-QZO6MGNN.js";
7
- import "./chunk-O35IVA4L.js";
8
- import "./chunk-ENHVQDSI.js";
6
+ } from "./chunk-RMMQVPZN.js";
7
+ import "./chunk-SAAH4U7O.js";
8
+ import "./chunk-HZMMOSEM.js";
9
9
  import "./chunk-PBQ5BQWD.js";
10
10
  import "./chunk-G3PMV62Z.js";
11
11
  export {
package/dist/resources.js CHANGED
@@ -3,9 +3,9 @@ import {
3
3
  QUIZ_VARIANTS,
4
4
  getGuideUri,
5
5
  registerResources
6
- } from "./chunk-A5RVUIGS.js";
7
- import "./chunk-O35IVA4L.js";
8
- import "./chunk-ENHVQDSI.js";
6
+ } from "./chunk-6FVQBVKW.js";
7
+ import "./chunk-SAAH4U7O.js";
8
+ import "./chunk-HZMMOSEM.js";
9
9
  import "./chunk-PBQ5BQWD.js";
10
10
  import "./chunk-G3PMV62Z.js";
11
11
  export {
package/dist/server.js CHANGED
@@ -3,11 +3,11 @@ import {
3
3
  RENDER_TIMING,
4
4
  buildInstructions,
5
5
  createServer
6
- } from "./chunk-44LRAJJ3.js";
7
- import "./chunk-QZO6MGNN.js";
8
- import "./chunk-A5RVUIGS.js";
9
- import "./chunk-O35IVA4L.js";
10
- import "./chunk-ENHVQDSI.js";
6
+ } from "./chunk-JCCGDVUH.js";
7
+ import "./chunk-RMMQVPZN.js";
8
+ import "./chunk-6FVQBVKW.js";
9
+ import "./chunk-SAAH4U7O.js";
10
+ import "./chunk-HZMMOSEM.js";
11
11
  import "./chunk-PBQ5BQWD.js";
12
12
  import "./chunk-G3PMV62Z.js";
13
13
  export {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@clipform/mcp-server",
3
- "version": "2.10.5",
3
+ "version": "2.10.7",
4
4
  "mcpName": "io.github.Clipform/mcp-server",
5
5
  "description": "MCP server for building and managing Clipform video forms",
6
6
  "license": "MIT",
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/lib/auth-context.ts"],"sourcesContent":["import { AsyncLocalStorage } from \"node:async_hooks\";\n\n/**\n * Identity of the end-user a given MCP request is acting on behalf of.\n *\n * Populated by the in-process host (apps/api) after validating an OAuth\n * Bearer on /mcp. The MCP tool layer reads it to decide which workspace\n * forms should land in and which plan tier gates apply.\n *\n * NOT populated when the server runs as a local stdio process (npx) - in\n * that mode tools fall back to edit-token based auth.\n */\nexport interface McpAuthContext {\n user_id: string;\n workspace_id: string;\n scopes: string[];\n tool_name?: string;\n api_key?: string;\n // Set when the human behind this tool call is an anonymous Supabase\n // session (apps/api's app-chat lane, #2983/#2984) - api-client.ts's\n // getAuthHeaders reads it to mark the outgoing bot-key HTTP request so the\n // API can propagate the restriction even though the request itself\n // authenticates with an API key, not a JWT.\n is_anonymous?: boolean;\n // #3330 review fix (blocker 1): an HMAC proof (apps/api's mcp-mint-proof.ts)\n // that THIS exact request's #1415 anon lane freshly minted a brand-new anon\n // identity for `workspace_id` - set only on the mint branch of\n // resolveAnonymousMcpAuth, never when auth was resolved via an inbound\n // form_id (even the caller's own). Lets create-form.ts safely offer a\n // same-UID claim link without ever deriving \"who to bind it to\" from a\n // body-supplied id, which would let a batch smuggling another tenant's\n // form_id alongside a create_form call mint a claim token for THAT\n // tenant's identity instead of the caller's own.\n mcp_mint_proof?: string;\n}\n\n/**\n * Marker header the in-process MCP tool layer sets on its outgoing API\n * requests (api-client.ts) when `is_anonymous` is true, so an anonymous\n * app-chat session can't launder itself into an unrestricted API-key caller\n * by asking the bot to publish/mint credentials on its behalf. apps/api's\n * authMiddleware / workspaceAccessMiddleware / requireWorkspaceWriteAuth\n * read this on the API-key path and set isAnonymous accordingly - trusting\n * it is safe because it can only RESTRICT a caller: a real integration that\n * sets this header on its own API-key requests only denies itself, it can\n * never use it to gain anonymous-JWT privileges it doesn't already have.\n */\nexport const MCP_ANONYMOUS_HEADER = \"x-clipform-anonymous\";\n\n/**\n * Carries `mcp_mint_proof` on the same outgoing bot-key request. Unlike\n * MCP_ANONYMOUS_HEADER (a boolean that can only ever RESTRICT), this header's\n * VALUE matters - it names an identity a claim token gets bound to - so its\n * value is HMAC-signed (mcp-mint-proof.ts) rather than trusted raw: a direct\n * external caller reaching `POST /v1/forms` with any valid workspace API key\n * could otherwise hand-set an unsigned \"mint uid\" header to an arbitrary\n * victim's uid themselves (#3330 review).\n */\nexport const MCP_MINT_PROOF_HEADER = \"x-clipform-mcp-mint-proof\";\n\nconst storage = new AsyncLocalStorage<McpAuthContext>();\n\nexport function runWithMcpAuth<T>(ctx: McpAuthContext, fn: () => Promise<T> | T): Promise<T> | T {\n return storage.run(ctx, fn);\n}\n\nexport function getMcpAuth(): McpAuthContext | undefined {\n return storage.getStore();\n}\n\nexport function runWithMcpTool<T>(toolName: string, fn: () => Promise<T> | T): Promise<T> | T {\n const parent = storage.getStore();\n if (!parent) return fn();\n return storage.run({ ...parent, tool_name: toolName }, fn);\n}\n"],"mappings":";AAAA,SAAS,yBAAyB;AA+C3B,IAAM,uBAAuB;AAW7B,IAAM,wBAAwB;AAErC,IAAM,UAAU,IAAI,kBAAkC;AAE/C,SAAS,eAAkB,KAAqB,IAA0C;AAC/F,SAAO,QAAQ,IAAI,KAAK,EAAE;AAC5B;AAEO,SAAS,aAAyC;AACvD,SAAO,QAAQ,SAAS;AAC1B;AAEO,SAAS,eAAkB,UAAkB,IAA0C;AAC5F,QAAM,SAAS,QAAQ,SAAS;AAChC,MAAI,CAAC,OAAQ,QAAO,GAAG;AACvB,SAAO,QAAQ,IAAI,EAAE,GAAG,QAAQ,WAAW,SAAS,GAAG,EAAE;AAC3D;","names":[]}