@sellable/mcp 0.1.904 → 0.1.905

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.
@@ -235,6 +235,11 @@ export declare const integrationsToolDefinitions: ({
235
235
  maxLength: number;
236
236
  description: string;
237
237
  };
238
+ arguments: {
239
+ type: string;
240
+ description: string;
241
+ additionalProperties: boolean;
242
+ };
238
243
  appSlug: {
239
244
  readonly type: "string";
240
245
  readonly minLength: 1;
@@ -416,6 +421,7 @@ export declare function integrationsDescribeTool(input?: SelectorInput & {
416
421
  toolName?: unknown;
417
422
  propName?: unknown;
418
423
  optionQuery?: unknown;
424
+ arguments?: unknown;
419
425
  }, actor?: TrustedAgentIntegrationRequestContext | null, agentEffectId?: string): Promise<IntegrationsResultEnvelope>;
420
426
  export declare function integrationsCallTool(input?: SelectorInput & {
421
427
  toolName?: unknown;
@@ -368,7 +368,7 @@ export const integrationsToolDefinitions = [
368
368
  },
369
369
  {
370
370
  name: "integrations_describe_tool",
371
- description: "Describe one allowed provider action's arguments before calling it: per argument you get its type, whether it is required, its default, and its category. For an argument whose valid values come from a remote lookup you get either the resolved option list or an explicit marker telling you to ask the user or narrow the query. The connected account is pinned server-side and is never an argument you supply. Use this instead of guessing at an argument shape.",
371
+ description: "Describe one allowed provider action's arguments before calling it: per argument you get its type, whether it is required, its default, and its category. For a dynamic action, pass values already selected in arguments to receive the reloaded schema. For an argument whose valid values come from a remote lookup you get either the resolved option list or an explicit marker telling you to ask the user or narrow the query. The connected account is pinned server-side and is never an argument you supply. Use this instead of guessing at an argument shape.",
372
372
  inputSchema: {
373
373
  type: "object",
374
374
  properties: {
@@ -391,6 +391,11 @@ export const integrationsToolDefinitions = [
391
391
  maxLength: 200,
392
392
  description: "A server-side filter applied while resolving that argument's options, so a large list can be narrowed rather than truncated.",
393
393
  },
394
+ arguments: {
395
+ type: "object",
396
+ description: "Values already selected for a dynamic action. Sellable reloads the schema server-side; never include an account id or provider authorization.",
397
+ additionalProperties: true,
398
+ },
394
399
  },
395
400
  required: ["toolName"],
396
401
  additionalProperties: false,
@@ -707,6 +712,15 @@ export async function integrationsDescribeTool(input = {}, actor, agentEffectId)
707
712
  const tool = validateToolName(input.toolName);
708
713
  if (!tool.ok)
709
714
  return tool.envelope;
715
+ const args = input.arguments;
716
+ if (args !== undefined &&
717
+ (args === null || typeof args !== "object" || Array.isArray(args))) {
718
+ return envelope({
719
+ ok: false,
720
+ error: "integration_arguments_rejected",
721
+ guidance: "arguments must be an object of values already selected for the dynamic action.",
722
+ });
723
+ }
710
724
  const home = resolveIntegrationHomeWorkspacePin();
711
725
  if (!home.ok)
712
726
  return home.envelope;
@@ -720,6 +734,7 @@ export async function integrationsDescribeTool(input = {}, actor, agentEffectId)
720
734
  ...(typeof input.optionQuery === "string" && input.optionQuery
721
735
  ? { optionQuery: input.optionQuery }
722
736
  : {}),
737
+ ...(args ? { arguments: args } : {}),
723
738
  ...trustedIntegrationContextBody(actor),
724
739
  }, {
725
740
  timeoutMs: READ_TIMEOUT_MS,
@@ -22,6 +22,11 @@ export declare const allTools: ({
22
22
  maxLength: number;
23
23
  description: string;
24
24
  };
25
+ arguments: {
26
+ type: string;
27
+ description: string;
28
+ additionalProperties: boolean;
29
+ };
25
30
  appSlug: {
26
31
  readonly type: "string";
27
32
  readonly minLength: 1;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sellable/mcp",
3
- "version": "0.1.904",
3
+ "version": "0.1.905",
4
4
  "type": "module",
5
5
  "description": "Sellable MCP server for Claude Code, Codex, and Hermes campaign workflows",
6
6
  "main": "dist/index.js",