Skip to main content
Glama

Space Monkey Mailchimp Dashboard

List sync runs

sm_list_sync_runs
Read-onlyIdempotent

List recent data-pipeline sync runs with status and results. Operational tool for checking data freshness before trusting an analysis. Results are paginated with pageSize capped at 100 rows.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
cursorNoOpaque keyset pagination cursor returned as `nextCursor` by the previous page. Must be replayed with identical query filters.
pageSizeNoMaximum number of rows to return per page. Omit to use the default page size of 100. MCP tool calls are capped at 100 rows per page to protect the model's context window.
projectIdYesRequired. The opaque alphanumeric project identifier of 8 or more characters to scope this request to. Call GET /_api/public/v1/enterprise/projects to list the project IDs available to your API key. Omitting it returns 400 VALIDATION_ERROR.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
codeNoA machine-readable identifier for the error type. For the full code taxonomy, see the sm_get_schema tool or the Enterprise API OpenAPI ErrorResponse component.
runsNoSync run rows.
errorNoA human-readable error message detailing what went wrong.
hasMoreNoTrue if additional results exist beyond this page.
pageSizeNoThe maximum number of items returned in this page.
projectIdNoAn opaque alphanumeric project identifier of 8 or more characters identifying a Space Monkey Project. Treat this value as entirely opaque; do not parse, sequentialize, or auto-generate it.
nextCursorNoA keyset cursor marking the continuation point. Contract: this value is non-null if and only if `hasMore` is true. Clients MUST echo this token verbatim on the subsequent request and MUST NEVER attempt to parse or manually construct it.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed11 schema fields changed
    • changedOutput schema / description
      Previous value: -"Output for the sm_list_sync_runs tool. Failure payloads arrive in the same envelope as { error, message, code }."New value: +"Output for the sm_list_sync_runs tool. Failure payloads arrive in the same envelope as { error, code }."
    • addedOutput schema / properties / runs / description
      Added value: +"Sync run rows."
    • addedOutput schema / properties / runs / items / properties / errorMessage / description
      Added value: +"Failure detail, or null on success."
    • addedOutput schema / properties / runs / items / properties / id / description
      Added value: +"Identifier for the sync run."
    • addedOutput schema / properties / runs / items / properties / projectId / description
      Added value: +"Project the run belongs to."
    • addedOutput schema / properties / runs / items / properties / projectName / description
      Added value: +"Project name."
    • addedOutput schema / properties / runs / items / properties / resultsCount / description
      Added value: +"Per-stage results recorded."
    • addedOutput schema / properties / runs / items / properties / retryCount / description
      Added value: +"Retries applied, or null."
    • addedOutput schema / properties / runs / items / properties / status / description
      Added value: +"Run status, for example queued, running, completed, or failed."
    • addedOutput schema / properties / runs / items / properties / totalTables / description
      Added value: +"Target tables covered."
    • addedOutput schema / properties / runs / items / properties / triggerType / description
      Added value: +"What initiated the run."
  2. Changed4 schema fields changed
    • addedInput schema / properties / cursor / description
      Added value: +"Opaque keyset pagination cursor returned as `nextCursor` by the previous page. Must be replayed with identical query filters."
    • addedInput schema / properties / pageSize / description
      Added value: +"Maximum number of rows to return per page. Omit to use the default page size of 100. MCP tool calls are capped at 100 rows per page to protect the model's context window."
    • addedInput schema / properties / projectId / description
      Added value: +"Required. The opaque alphanumeric project identifier of 8 or more characters to scope this request to. Call GET /_api/public/v1/enterprise/projects to list the project IDs available to your API key. Omitting it returns 400 VALIDATION_ERROR."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": true,
      +  "description": "Output for the sm_list_sync_runs tool. Failure payloads arrive in the same envelope as { error, message, code }.",
      +  "properties": {
      +    "code": {
      +      "description": "A machine-readable identifier for the error type. For the full code taxonomy, see the sm_get_schema tool or the Enterprise API OpenAPI ErrorResponse component.",
      +      "type": "string"
      +    },
      +    "error": {
      +      "description": "A human-readable error message detailing what went wrong.",
      +      "type": "string"
      +    },
      +    "hasMore": {
      +      "description": "True if additional results exist beyond this page.",
      +      "type": "boolean"
      +    },
      +    "nextCursor": {
      +      "description": "A keyset cursor marking the continuation point. Contract: this value is non-null if and only if `hasMore` is true. Clients MUST echo this token verbatim on the subsequent request and MUST NEVER attempt to parse or manually construct it.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "pageSize": {
      +      "description": "The maximum number of items returned in this page.",
      +      "type": "integer"
      +    },
      +    "projectId": {
      +      "description": "An opaque alphanumeric project identifier of 8 or more characters identifying a Space Monkey Project. Treat this value as entirely opaque; do not parse, sequentialize, or auto-generate it.",
      +      "type": "string"
      +    },
      +    "runs": {
      +      "items": {
      +        "additionalProperties": true,
      +        "description": "Represents a single sync run in the paginated list.",
      +        "properties": {
      +          "createdAt": {
      +            "description": "ISO 8601 UTC timestamp.",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "endedAt": {
      +            "description": "ISO 8601 UTC timestamp.",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "errorMessage": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "id": {
      +            "type": "string"
      +          },
      +          "projectId": {
      +            "type": "string"
      +          },
      +          "projectName": {
      +            "type": "string"
      +          },
      +          "resultsCount": {
      +            "type": "integer"
      +          },
      +          "retryCount": {
      +            "type": [
      +              "integer",
      +              "null"
      +            ]
      +          },
      +          "startedAt": {
      +            "description": "ISO 8601 UTC timestamp.",
      +            "type": "string"
      +          },
      +          "status": {
      +            "enum": [
      +              "queued",
      +              "pending",
      +              "running",
      +              "paused",
      +              "success",
      +              "partial",
      +              "failed",
      +              "cancelled"
      +            ],
      +            "type": "string"
      +          },
      +          "totalTables": {
      +            "type": "integer"
      +          },
      +          "triggerType": {
      +            "enum": [
      +              "manual",
      +              "scheduled"
      +            ],
      +            "type": "string"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "type": "object"
      +}
  3. First observed

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive and open-world, so the safety profile is covered. The description adds pagination behavior and the 100-row cap, but the cap is already stated verbatim in the pageSize schema, and the 'recent' window, cursor replay rules, and ordering are left unspecified.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the action and resource before context and pagination notes. Nothing is redundant, though 'with status and results' and the cap sentence are marginally low-value given the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, annotations covering safety, and 100% parameter coverage, the description does not need to explain return values. It supplies the missing use-case framing; only the undefined 'recent' window is a small gap for a paginated list tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so cursor, pageSize and projectId are all fully documented with constraints and defaults. The description restates the pageSize cap without adding syntax or semantics beyond what the schema provides; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List recent data-pipeline sync runs') plus what each row carries ('status and results'), which is enough to distinguish it from sm_get_sync_run's single-run lookup. It never names a sibling explicitly, so the differentiation is implied by 'list recent' rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides a clear operational context: 'checking data freshness before trusting an analysis.' That tells the agent when the tool is relevant, but gives no when-not condition and does not route to sm_get_sync_run for drilling into a specific run.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources