{"apiVersion":"v1","directorySlug":"crosstabs-mcp-328f3867f7","title":"Crosstabs","description":"Analyze survey data with crosstabs, statistical checks, and editable reports. Use your browser, local MCP, or consented temporary hosting. No Crosstabs account required.","pageUrl":"https://www.mcpbundles.com/skills/crosstabs-mcp-328f3867f7","connectPath":"importable","connectAction":"import_server","catalogListing":false,"bundleSlug":null,"listingKind":"remote_mcp","kind":"provider","transportUrl":"https://mcp.crosstabs.com/mcp","hostedMcpUrl":null,"toolCount":52,"toolInventoryStatus":"observed","refreshedAt":"2026-11-03T13:26:00.516172+00:00","registryName":"com.crosstabs/crosstabs-mcp-328f3867f7","registryVersion":"2026.11.3","registryEligible":true,"tools":[{"name":"search","description":"Discover fixed Crosstabs methodology, limitations, and evidence pages.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["query"],"properties":{"query":{"type":"string","maxLength":500,"minLength":1}}},"title":"Search Crosstabs methodology","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"search","displayName":"Search Crosstabs methodology"},{"name":"fetch","description":"Fetch one fixed Crosstabs evidence record by identifier.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["id"],"properties":{"id":{"type":"string","maxLength":160,"minLength":1}}},"title":"Fetch Crosstabs evidence","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"fetch","displayName":"Fetch Crosstabs evidence"},{"name":"analyze_crosstab","description":"Compute deterministic statistics from a bounded aggregate contingency matrix.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["observed","inputSemantics"],"properties":{"observed":{"type":"array","items":{"type":"array","items":{"type":"integer","maximum":1000000000000,"minimum":0},"maxItems":12,"minItems":2},"maxItems":12,"minItems":2},"weighted":{"type":"boolean","const":false,"default":false},"rowLabels":{"type":"array","items":{"type":"string","maxLength":120,"minLength":1},"maxItems":12,"minItems":2},"percentage":{"enum":["column","row","count"],"type":"string","default":"column"},"rowVariable":{"type":"string","maxLength":120,"minLength":1},"columnLabels":{"type":"array","items":{"type":"string","maxLength":120,"minLength":1},"maxItems":12,"minItems":2},"columnVariable":{"type":"string","maxLength":120,"minLength":1},"inputSemantics":{"type":"string","const":"integer_frequency_counts"}}},"title":"Analyze aggregate crosstab","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"analyze_crosstab","displayName":"Analyze aggregate crosstab"},{"name":"render_crosstab","description":"Render a deterministic evidence-linked aggregate crosstab widget.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["observed","inputSemantics"],"properties":{"observed":{"type":"array","items":{"type":"array","items":{"type":"integer","maximum":1000000000000,"minimum":0},"maxItems":12,"minItems":2},"maxItems":12,"minItems":2},"weighted":{"type":"boolean","const":false,"default":false},"rowLabels":{"type":"array","items":{"type":"string","maxLength":120,"minLength":1},"maxItems":12,"minItems":2},"percentage":{"enum":["column","row","count"],"type":"string","default":"column"},"rowVariable":{"type":"string","maxLength":120,"minLength":1},"columnLabels":{"type":"array","items":{"type":"string","maxLength":120,"minLength":1},"maxItems":12,"minItems":2},"columnVariable":{"type":"string","maxLength":120,"minLength":1},"inputSemantics":{"type":"string","const":"integer_frequency_counts"}}},"title":"Render aggregate crosstab","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"render_crosstab","displayName":"Render aggregate crosstab"},{"name":"get_started","description":"Get client-specific connection guidance, a health check, and the first prompt to try. No account, workspace, or upload is required.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"client":{"enum":["ChatGPT","Claude","Codex","Cursor","Other"],"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_started","displayName":"get_started","title":"get_started"},{"name":"run_demo_analysis","description":"Run an instant, upload-free tour using a fixed synthetic survey table. Returns an AI-ready answer, numbers, interpretation, warnings and next action.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"run_demo_analysis","displayName":"run_demo_analysis","title":"run_demo_analysis"},{"name":"get_headless_capabilities","description":"Describe the full accountless hosted MCP, privacy, retention and execution limits.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_headless_capabilities","displayName":"get_headless_capabilities","title":"get_headless_capabilities"},{"name":"get_runtime_status","description":"Inspect this hosted runtime and its fixed resource limits.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_runtime_status","displayName":"get_runtime_status","title":"get_runtime_status"},{"name":"create_workspace","description":"Create a private temporary workspace without signing in. Explain that uploads leave the device, then obtain consent. The secret token is the sole access credential and cannot be recovered.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["consentToUpload"],"properties":{"consentToUpload":{"type":"boolean","const":true}}},"logicalName":"create_workspace","displayName":"create_workspace","title":"create_workspace","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_workspace","description":"List this temporary workspace's files, recent jobs and expiry. Includes a private upload link.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["workspaceToken"],"properties":{"workspaceToken":{"type":"string","pattern":"^ctw_[a-f0-9-]{36}\\.[A-Za-z0-9_-]{43}$"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_workspace","displayName":"get_workspace","title":"get_workspace"},{"name":"delete_workspace","description":"Permanently delete the temporary workspace and all active project, file and job data. This revokes its token.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["workspaceToken","confirmDelete"],"properties":{"confirmDelete":{"type":"boolean","const":true},"workspaceToken":{"type":"string","pattern":"^ctw_[a-f0-9-]{36}\\.[A-Za-z0-9_-]{43}$"}}},"logicalName":"delete_workspace","displayName":"delete_workspace","title":"delete_workspace","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_job","description":"Read a queued analysis job. Wait at least two seconds between polls. Only succeeded jobs contain completed results; failed jobs contain an error. Use get_download_link for artifact IDs, or get_rendered_table for completed render_project_table jobs.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["workspaceToken","jobId"],"properties":{"jobId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"workspaceToken":{"type":"string","pattern":"^ctw_[a-f0-9-]{36}\\.[A-Za-z0-9_-]{43}$"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_job","displayName":"get_job","title":"get_job"},{"name":"get_download_link","description":"Create a private browser download link for an uploaded file or generated artifact in this workspace. The link contains a secret in its fragment; never share it publicly.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["workspaceToken","fileId"],"properties":{"fileId":{"type":"string","maxLength":200,"minLength":1},"workspaceToken":{"type":"string","pattern":"^ctw_[a-f0-9-]{36}\\.[A-Za-z0-9_-]{43}$"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_download_link","displayName":"get_download_link","title":"get_download_link"},{"name":"get_rendered_table","description":"Render the canonical aggregate result of a succeeded render_project_table job. Respondent rows are never included in the widget.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["workspaceToken","jobId"],"properties":{"jobId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"workspaceToken":{"type":"string","pattern":"^ctw_[a-f0-9-]{36}\\.[A-Za-z0-9_-]{43}$"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_rendered_table","displayName":"get_rendered_table","title":"get_rendered_table"},{"name":"analyze_survey","description":"Run a governed crosstab for an existing hosted project. This task shortcut uses the same deterministic run_table engine and returns a job to poll with get_job.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["projectId","tableId","workspaceToken","requestId"],"properties":{"waveId":{"type":"string","minLength":1},"tableId":{"type":"string","minLength":1},"projectId":{"type":"string","minLength":1},"requestId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"workspaceToken":{"type":"string","pattern":"^ctw_[a-f0-9-]{36}\\.[A-Za-z0-9_-]{43}$"}},"additionalProperties":false},"title":"Analyze a survey question","logicalName":"analyze_survey","displayName":"Analyze a survey question","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"build_tab_book","description":"Build a reusable tab book for an existing hosted project. This task shortcut uses the same deterministic run_tab_book engine and returns a job to poll with get_job.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["projectId","workspaceToken","requestId"],"properties":{"waveId":{"type":"string","minLength":1},"tableIds":{"type":"array","items":{"type":"string","minLength":1},"minItems":1},"projectId":{"type":"string","minLength":1},"requestId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"workspaceToken":{"type":"string","pattern":"^ctw_[a-f0-9-]{36}\\.[A-Za-z0-9_-]{43}$"}},"additionalProperties":false},"title":"Build a survey tab book","logicalName":"build_tab_book","displayName":"Build a survey tab book","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"compare_survey_waves","description":"Compare compatible saved survey waves. This task shortcut uses the same deterministic compare_waves engine and preserves all comparability warnings.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["projectId","tableId","fromWaveId","toWaveId","workspaceToken","requestId"],"properties":{"tableId":{"type":"string","minLength":1},"toWaveId":{"type":"string","minLength":1},"projectId":{"type":"string","minLength":1},"requestId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"fromWaveId":{"type":"string","minLength":1},"workspaceToken":{"type":"string","pattern":"^ctw_[a-f0-9-]{36}\\.[A-Za-z0-9_-]{43}$"}},"additionalProperties":false},"title":"Compare survey waves","logicalName":"compare_survey_waves","displayName":"Compare survey waves","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"create_editable_report","description":"Generate an editable PPTX or DOCX report pack from an existing hosted project. Use get_download_link on the returned artifact ID after the job succeeds.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["projectId","expectedRevision","idempotencyKey","format","workspaceToken","requestId"],"properties":{"format":{"enum":["pptx","docx"],"type":"string"},"waveId":{"type":"string","minLength":1},"tableIds":{"type":"array","items":{"type":"string","minLength":1},"minItems":1},"projectId":{"type":"string","minLength":1},"requestId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"templateId":{"type":"string","minLength":1},"idempotencyKey":{"type":"string","maxLength":200,"minLength":1},"workspaceToken":{"type":"string","pattern":"^ctw_[a-f0-9-]{36}\\.[A-Za-z0-9_-]{43}$"},"expectedRevision":{"type":"integer","maximum":9007199254740991,"exclusiveMinimum":0}},"additionalProperties":false},"title":"Create an editable report","logicalName":"create_editable_report","displayName":"Create an editable report","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"create_analysis_plan","description":"Create a portable revision-bound document for explicitly selected saved tables without mutating the project. Queues a hosted job; use get_job to retrieve its result.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["projectId","expectedRevision","tableIds","workspaceToken","requestId"],"properties":{"name":{"type":"string","maxLength":200,"minLength":1},"waveId":{"type":"string","minLength":1},"tableIds":{"type":"array","items":{"type":"string","minLength":1},"maxItems":20,"minItems":1},"projectId":{"type":"string","minLength":1},"requestId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"workspaceToken":{"type":"string","pattern":"^ctw_[a-f0-9-]{36}\\.[A-Za-z0-9_-]{43}$"},"expectedRevision":{"type":"integer","maximum":9007199254740991,"exclusiveMinimum":0}},"additionalProperties":false},"title":"Create analysis plan","logicalName":"create_analysis_plan","displayName":"Create analysis plan","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"validate_analysis_plan","description":"Preflight a portable analysis plan against the current workspace project and return actionable validation issues. Queues a hosted job; use get_job to retrieve its result.","inputSchema":{"type":"object","$defs":{"__schema0":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"},{"type":"array","items":{"$ref":"#/$defs/__schema0"}},{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/$defs/__schema0"}}]}},"$schema":"https://json-schema.org/draft/2020-12/schema","required":["projectId","plan","workspaceToken","requestId"],"properties":{"plan":{"$ref":"#/$defs/__schema0"},"projectId":{"type":"string","minLength":1},"requestId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"workspaceToken":{"type":"string","pattern":"^ctw_[a-f0-9-]{36}\\.[A-Za-z0-9_-]{43}$"}},"additionalProperties":false},"title":"Validate analysis plan","logicalName":"validate_analysis_plan","displayName":"Validate analysis plan","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"preview_raking_weights","description":"Preview explicit population margins against the saved active wave. Returns aggregate balance, trimming and effective-base diagnostics with a revision-bound review fingerprint; respondent weights remain in the temporary hosted workspace. Queues a hosted job; use get_job to retrieve its result.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["projectId","expectedRevision","waveId","targets","baseWeightId","trim","tolerance","maxIterations","workspaceToken","requestId"],"properties":{"trim":{"anyOf":[{"type":"object","required":["min","max"],"properties":{"max":{"type":"number","exclusiveMinimum":0},"min":{"type":"number","exclusiveMinimum":0}},"additionalProperties":false},{"type":"null"}]},"waveId":{"type":"string","maxLength":200,"minLength":1},"targets":{"type":"array","items":{"type":"object","required":["variable","proportions"],"properties":{"variable":{"type":"string","maxLength":200,"minLength":1},"proportions":{"type":"object","propertyNames":{"type":"string","maxLength":1000},"additionalProperties":{"type":"number","maximum":1,"minimum":0}}},"additionalProperties":false},"maxItems":10,"minItems":1},"projectId":{"type":"string","maxLength":200,"minLength":1},"requestId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"tolerance":{"type":"number","maximum":0.01,"minimum":0},"baseWeightId":{"anyOf":[{"type":"string","maxLength":200,"minLength":1},{"type":"null"}]},"maxIterations":{"type":"integer","maximum":1000,"minimum":1},"workspaceToken":{"type":"string","pattern":"^ctw_[a-f0-9-]{36}\\.[A-Za-z0-9_-]{43}$"},"expectedRevision":{"type":"integer","maximum":9007199254740991,"exclusiveMinimum":0}},"additionalProperties":false},"title":"Preview raking weights","logicalName":"preview_raking_weights","displayName":"Preview raking weights","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"create_project","description":"Create an empty, versioned research project. Queues a hosted job; use get_job to retrieve its result.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["name","idempotencyKey","workspaceToken","requestId"],"properties":{"name":{"type":"string","maxLength":160,"minLength":1},"requestId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"idempotencyKey":{"type":"string","maxLength":200,"minLength":1},"workspaceToken":{"type":"string","pattern":"^ctw_[a-f0-9-]{36}\\.[A-Za-z0-9_-]{43}$"}},"additionalProperties":false},"title":"Create project","logicalName":"create_project","displayName":"Create project","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"import_project","description":"Verify and import a full-data Crosstabs project package as a new workspace copy. Queues a hosted job; use get_job to retrieve its result.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["idempotencyKey","uploadId","workspaceToken","requestId"],"properties":{"uploadId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"requestId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"idempotencyKey":{"type":"string","maxLength":180,"minLength":1},"workspaceToken":{"type":"string","pattern":"^ctw_[a-f0-9-]{36}\\.[A-Za-z0-9_-]{43}$"}},"additionalProperties":false},"title":"Import project","logicalName":"import_project","displayName":"Import project","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"import_dataset","description":"Validate and import respondent records into a project wave. Queues a hosted job; use get_job to retrieve its result.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["projectId","expectedRevision","idempotencyKey","uploadId","workspaceToken","requestId"],"properties":{"uploadId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"projectId":{"type":"string","minLength":1},"requestId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"idempotencyKey":{"type":"string","maxLength":200,"minLength":1},"workspaceToken":{"type":"string","pattern":"^ctw_[a-f0-9-]{36}\\.[A-Za-z0-9_-]{43}$"},"expectedRevision":{"type":"integer","maximum":9007199254740991,"exclusiveMinimum":0}},"additionalProperties":false},"title":"Import dataset","logicalName":"import_dataset","displayName":"Import dataset","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"profile_dataset","description":"Return bounded types, missingness and cardinality diagnostics. Queues a hosted job; use get_job to retrieve its result.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["projectId","workspaceToken","requestId"],"properties":{"projectId":{"type":"string","minLength":1},"requestId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"workspaceToken":{"type":"string","pattern":"^ctw_[a-f0-9-]{36}\\.[A-Za-z0-9_-]{43}$"}},"additionalProperties":false},"title":"Profile dataset","logicalName":"profile_dataset","displayName":"Profile dataset","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"define_row_set","description":"Create or replace a reusable ordered row-variable set, with an optional cases-or-responses denominator for one detected multi-select question. Queues a hosted job; use get_job to retrieve its result.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["projectId","expectedRevision","idempotencyKey","tableIds","definition","workspaceToken","requestId"],"properties":{"tableIds":{"type":"array","items":{"type":"string","minLength":1},"minItems":1},"projectId":{"type":"string","minLength":1},"requestId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"definition":{"type":"object","required":["id","name","variableNames"],"properties":{"id":{"type":"string","minLength":1},"name":{"type":"string","minLength":1},"categoryOrder":{"type":"object","default":{},"propertyNames":{"type":"string"},"additionalProperties":{"type":"array","items":{"type":"string"}}},"variableNames":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"additionalProperties":false},"idempotencyKey":{"type":"string","maxLength":200,"minLength":1},"workspaceToken":{"type":"string","pattern":"^ctw_[a-f0-9-]{36}\\.[A-Za-z0-9_-]{43}$"},"expectedRevision":{"type":"integer","maximum":9007199254740991,"exclusiveMinimum":0},"multipleResponseDenominator":{"enum":["cases","responses"],"type":"string"}},"additionalProperties":false},"title":"Define row set","logicalName":"define_row_set","displayName":"Define row set","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"define_banner","description":"Create or replace a reusable multilevel banner. Queues a hosted job; use get_job to retrieve its result.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["projectId","expectedRevision","idempotencyKey","tableIds","definition","workspaceToken","requestId"],"properties":{"tableIds":{"type":"array","items":{"type":"string","minLength":1},"minItems":1},"projectId":{"type":"string","minLength":1},"requestId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"definition":{"type":"object","required":["id","name","levels"],"properties":{"id":{"type":"string","minLength":1},"name":{"type":"string","minLength":1},"levels":{"type":"array","items":{"type":"object","required":["id","label","variableNames"],"properties":{"id":{"type":"string","minLength":1},"label":{"type":"string","minLength":1},"filterId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"default":null},"variableNames":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"additionalProperties":false},"minItems":1},"categoryOrder":{"type":"object","default":{},"propertyNames":{"type":"string"},"additionalProperties":{"type":"array","items":{"type":"string"}}}},"additionalProperties":false},"idempotencyKey":{"type":"string","maxLength":200,"minLength":1},"workspaceToken":{"type":"string","pattern":"^ctw_[a-f0-9-]{36}\\.[A-Za-z0-9_-]{43}$"},"expectedRevision":{"type":"integer","maximum":9007199254740991,"exclusiveMinimum":0}},"additionalProperties":false},"title":"Define banner","logicalName":"define_banner","displayName":"Define banner","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"apply_filter","description":"Create and assign an auditable project filter. Queues a hosted job; use get_job to retrieve its result.","inputSchema":{"type":"object","$defs":{"__schema0":{"anyOf":[{"type":"object","required":["kind","variableName","values"],"properties":{"kind":{"type":"string","const":"include"},"values":{"type":"array","items":{"type":"string"}},"variableName":{"type":"string","minLength":1}},"additionalProperties":false},{"type":"object","required":["kind","expressions"],"properties":{"kind":{"enum":["and","or"],"type":"string"},"expressions":{"type":"array","items":{"$ref":"#/$defs/__schema0"},"minItems":1}},"additionalProperties":false},{"type":"object","required":["kind","expression"],"properties":{"kind":{"type":"string","const":"not"},"expression":{"$ref":"#/$defs/__schema0"}},"additionalProperties":false}]}},"$schema":"https://json-schema.org/draft/2020-12/schema","required":["projectId","expectedRevision","idempotencyKey","tableIds","definition","workspaceToken","requestId"],"properties":{"tableIds":{"type":"array","items":{"type":"string","minLength":1},"minItems":1},"projectId":{"type":"string","minLength":1},"requestId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"definition":{"type":"object","required":["id","name","expression"],"properties":{"id":{"type":"string","minLength":1},"name":{"type":"string","minLength":1},"expression":{"$ref":"#/$defs/__schema0"}},"additionalProperties":false},"idempotencyKey":{"type":"string","maxLength":200,"minLength":1},"workspaceToken":{"type":"string","pattern":"^ctw_[a-f0-9-]{36}\\.[A-Za-z0-9_-]{43}$"},"expectedRevision":{"type":"integer","maximum":9007199254740991,"exclusiveMinimum":0}},"additionalProperties":false},"title":"Apply filter","logicalName":"apply_filter","displayName":"Apply filter","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"set_weight","description":"Create and assign a validated weighting definition. Queues a hosted job; use get_job to retrieve its result. Obtain actual user approval before calling; do not fabricate approval fields.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["projectId","expectedRevision","idempotencyKey","tableIds","definition","approval","workspaceToken","requestId"],"properties":{"approval":{"type":"object","required":["approvedBy","approvedAt"],"properties":{"approvedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"approvedBy":{"type":"string","maxLength":200,"minLength":1}},"additionalProperties":false},"tableIds":{"type":"array","items":{"type":"string","minLength":1},"minItems":1},"projectId":{"type":"string","minLength":1},"requestId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"definition":{"type":"object","required":["id","name","variableName","invalidValues"],"properties":{"id":{"type":"string","minLength":1},"name":{"type":"string","minLength":1},"semanticKind":{"enum":["unspecified","frequency","sampling","calibration","analytic"],"type":"string","default":"unspecified"},"variableName":{"type":"string","minLength":1},"invalidValues":{"enum":["exclude","zero"],"type":"string"}},"additionalProperties":false},"idempotencyKey":{"type":"string","maxLength":200,"minLength":1},"workspaceToken":{"type":"string","pattern":"^ctw_[a-f0-9-]{36}\\.[A-Za-z0-9_-]{43}$"},"expectedRevision":{"type":"integer","maximum":9007199254740991,"exclusiveMinimum":0}},"additionalProperties":false},"title":"Set weight","logicalName":"set_weight","displayName":"Set weight","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"run_table","description":"Compute one crosstab with diagnostics and evidence metadata. Queues a hosted job; use get_job to retrieve its result.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["projectId","tableId","workspaceToken","requestId"],"properties":{"waveId":{"type":"string","minLength":1},"tableId":{"type":"string","minLength":1},"projectId":{"type":"string","minLength":1},"requestId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"workspaceToken":{"type":"string","pattern":"^ctw_[a-f0-9-]{36}\\.[A-Za-z0-9_-]{43}$"}},"additionalProperties":false},"title":"Run table","logicalName":"run_table","displayName":"Run table","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"render_project_table","description":"Render one revision-bound saved table execution through the canonical workspace evidence widget. Queues a hosted job; use get_job to retrieve its result.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["projectId","tableId","expectedRevision","evidenceId","workspaceToken","requestId"],"properties":{"waveId":{"type":"string","minLength":1},"tableId":{"type":"string","minLength":1},"projectId":{"type":"string","minLength":1},"requestId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"evidenceId":{"type":"string","maxLength":200,"minLength":1},"workspaceToken":{"type":"string","pattern":"^ctw_[a-f0-9-]{36}\\.[A-Za-z0-9_-]{43}$"},"expectedRevision":{"type":"integer","maximum":9007199254740991,"exclusiveMinimum":0}},"additionalProperties":false},"title":"Render project table","logicalName":"render_project_table","displayName":"Render project table","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"update_variable_metadata","description":"Apply an approved label, coding, missing-value, measurement, role, and display-format update without rewriting respondent rows. Queues a hosted job; use get_job to retrieve its result. Obtain actual user approval before calling; do not fabricate approval fields.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["projectId","expectedRevision","idempotencyKey","waveId","variableName","label","metadata","approval","workspaceToken","requestId"],"properties":{"label":{"type":"string","maxLength":10000,"minLength":1},"waveId":{"type":"string","maxLength":200,"minLength":1},"approval":{"type":"object","required":["approvedBy","approvedAt"],"properties":{"approvedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"approvedBy":{"type":"string","maxLength":200,"minLength":1}},"additionalProperties":false},"metadata":{"type":"object","required":["measurementLevel","role","valueLabels","userMissingValues","format","notes"],"properties":{"role":{"enum":["input","target","both","none","partition","split","weight","identifier"],"type":"string"},"notes":{"type":"string","maxLength":10000},"format":{"type":"object","required":["width","decimals","alignment"],"properties":{"width":{"type":"integer","maximum":10000,"minimum":1},"decimals":{"type":"integer","maximum":100,"minimum":0},"alignment":{"enum":["left","center","right"],"type":"string"}},"additionalProperties":false},"valueLabels":{"type":"object","propertyNames":{"type":"string","maxLength":1000},"additionalProperties":{"type":"string","maxLength":10000}},"measurementLevel":{"enum":["nominal","ordinal","scale","date"],"type":"string"},"userMissingValues":{"type":"array","items":{"type":"string","maxLength":1000},"maxItems":10000}},"additionalProperties":false},"projectId":{"type":"string","minLength":1},"requestId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"variableName":{"type":"string","maxLength":1000,"minLength":1},"idempotencyKey":{"type":"string","maxLength":200,"minLength":1},"workspaceToken":{"type":"string","pattern":"^ctw_[a-f0-9-]{36}\\.[A-Za-z0-9_-]{43}$"},"expectedRevision":{"type":"integer","maximum":9007199254740991,"exclusiveMinimum":0}},"additionalProperties":false},"title":"Update variable metadata","logicalName":"update_variable_metadata","displayName":"Update variable metadata","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"review_transformation","description":"Approve or reject a draft transformation recipe with recorded human approval. Queues a hosted job; use get_job to retrieve its result. Obtain actual user approval before calling; do not fabricate approval fields.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["projectId","expectedRevision","idempotencyKey","recipeId","decision","note","approval","workspaceToken","requestId"],"properties":{"note":{"type":"string","maxLength":10000},"approval":{"type":"object","required":["approvedBy","approvedAt"],"properties":{"approvedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"approvedBy":{"type":"string","maxLength":200,"minLength":1}},"additionalProperties":false},"decision":{"enum":["approved","rejected"],"type":"string"},"recipeId":{"type":"string","maxLength":200,"minLength":1},"projectId":{"type":"string","minLength":1},"requestId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"idempotencyKey":{"type":"string","maxLength":200,"minLength":1},"workspaceToken":{"type":"string","pattern":"^ctw_[a-f0-9-]{36}\\.[A-Za-z0-9_-]{43}$"},"expectedRevision":{"type":"integer","maximum":9007199254740991,"exclusiveMinimum":0}},"additionalProperties":false},"title":"Review transformation","logicalName":"review_transformation","displayName":"Review transformation","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"apply_transformation","description":"Apply an approved transformation to one workspace wave with recorded human approval and reversible provenance. Queues a hosted job; use get_job to retrieve its result. Obtain actual user approval before calling; do not fabricate approval fields.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["projectId","expectedRevision","idempotencyKey","recipeId","waveId","runId","approval","workspaceToken","requestId"],"properties":{"runId":{"type":"string","maxLength":200,"minLength":1},"waveId":{"type":"string","maxLength":200,"minLength":1},"approval":{"type":"object","required":["approvedBy","approvedAt"],"properties":{"approvedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"approvedBy":{"type":"string","maxLength":200,"minLength":1}},"additionalProperties":false},"recipeId":{"type":"string","maxLength":200,"minLength":1},"projectId":{"type":"string","minLength":1},"requestId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"idempotencyKey":{"type":"string","maxLength":200,"minLength":1},"workspaceToken":{"type":"string","pattern":"^ctw_[a-f0-9-]{36}\\.[A-Za-z0-9_-]{43}$"},"expectedRevision":{"type":"integer","maximum":9007199254740991,"exclusiveMinimum":0}},"additionalProperties":false},"title":"Apply transformation","logicalName":"apply_transformation","displayName":"Apply transformation","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"undo_transformation","description":"Mark one applied transformation run undone and restore its derived variable in this workspace. Queues a hosted job; use get_job to retrieve its result.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["projectId","expectedRevision","idempotencyKey","runId","workspaceToken","requestId"],"properties":{"runId":{"type":"string","maxLength":200,"minLength":1},"projectId":{"type":"string","minLength":1},"requestId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"idempotencyKey":{"type":"string","maxLength":200,"minLength":1},"workspaceToken":{"type":"string","pattern":"^ctw_[a-f0-9-]{36}\\.[A-Za-z0-9_-]{43}$"},"expectedRevision":{"type":"integer","maximum":9007199254740991,"exclusiveMinimum":0}},"additionalProperties":false},"title":"Undo transformation","logicalName":"undo_transformation","displayName":"Undo transformation","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"run_complex_survey_method","description":"Run a declared-design OLS, logistic, or K-means method and record bounded canonical evidence. Queues a hosted job; use get_job to retrieve its result.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["projectId","expectedRevision","idempotencyKey","method","waveId","surveyDesignId","workspaceToken","requestId"],"properties":{"seed":{"type":"integer","maximum":9007199254740991,"minimum":-9007199254740991},"method":{"enum":["ols","logistic","kmeans"],"type":"string"},"waveId":{"type":"string","maxLength":200,"minLength":1},"outcome":{"type":"string","maxLength":1000,"minLength":1},"clusters":{"type":"integer","maximum":12,"minimum":2},"filterId":{"anyOf":[{"type":"string","maxLength":200,"minLength":1},{"type":"null"}]},"projectId":{"type":"string","minLength":1},"requestId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"variables":{"type":"array","items":{"type":"string","maxLength":1000,"minLength":1},"maxItems":40,"minItems":1},"eventValue":{"anyOf":[{"type":"string","maxLength":1000,"minLength":1},{"type":"number"},{"type":"boolean"}]},"predictors":{"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000,"minLength":1},{"type":"object","required":["kind","variable"],"properties":{"kind":{"type":"string","const":"numeric"},"variable":{"type":"string","maxLength":1000,"minLength":1}},"additionalProperties":false},{"type":"object","required":["kind","variable","ordered","levels","reference"],"properties":{"kind":{"type":"string","const":"categorical"},"levels":{"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000,"minLength":1},{"type":"number"},{"type":"boolean"}]},"maxItems":500,"minItems":2},"ordered":{"type":"boolean"},"variable":{"type":"string","maxLength":1000,"minLength":1},"reference":{"anyOf":[{"type":"string","maxLength":1000,"minLength":1},{"type":"number"},{"type":"boolean"}]}},"additionalProperties":false}]},"maxItems":40,"minItems":1},"missingPolicy":{"enum":["listwise","fail"],"type":"string"},"idempotencyKey":{"type":"string","maxLength":200,"minLength":1},"referenceValue":{"anyOf":[{"type":"string","maxLength":1000,"minLength":1},{"type":"number"},{"type":"boolean"}]},"surveyDesignId":{"type":"string","maxLength":200,"minLength":1},"workspaceToken":{"type":"string","pattern":"^ctw_[a-f0-9-]{36}\\.[A-Za-z0-9_-]{43}$"},"expectedRevision":{"type":"integer","maximum":9007199254740991,"exclusiveMinimum":0}},"additionalProperties":false},"title":"Run complex-survey method","logicalName":"run_complex_survey_method","displayName":"Run complex-survey method","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"run_tab_book","description":"Compute the selected tab-book recipe with progress and cancellation. Queues a hosted job; use get_job to retrieve its result.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["projectId","workspaceToken","requestId"],"properties":{"waveId":{"type":"string","minLength":1},"tableIds":{"type":"array","items":{"type":"string","minLength":1},"minItems":1},"projectId":{"type":"string","minLength":1},"requestId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"workspaceToken":{"type":"string","pattern":"^ctw_[a-f0-9-]{36}\\.[A-Za-z0-9_-]{43}$"}},"additionalProperties":false},"title":"Run tab book","logicalName":"run_tab_book","displayName":"Run tab book","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"compare_waves","description":"Compare compatible tables across project waves. Queues a hosted job; use get_job to retrieve its result.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["projectId","tableId","fromWaveId","toWaveId","workspaceToken","requestId"],"properties":{"tableId":{"type":"string","minLength":1},"toWaveId":{"type":"string","minLength":1},"projectId":{"type":"string","minLength":1},"requestId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"fromWaveId":{"type":"string","minLength":1},"workspaceToken":{"type":"string","pattern":"^ctw_[a-f0-9-]{36}\\.[A-Za-z0-9_-]{43}$"}},"additionalProperties":false},"title":"Compare waves","logicalName":"compare_waves","displayName":"Compare waves","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"undo_change","description":"Reverse a recorded reversible project mutation. Queues a hosted job; use get_job to retrieve its result.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["projectId","expectedRevision","idempotencyKey","targetEventId","workspaceToken","requestId"],"properties":{"projectId":{"type":"string","minLength":1},"requestId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"targetEventId":{"type":"string","minLength":1},"idempotencyKey":{"type":"string","maxLength":200,"minLength":1},"workspaceToken":{"type":"string","pattern":"^ctw_[a-f0-9-]{36}\\.[A-Za-z0-9_-]{43}$"},"expectedRevision":{"type":"integer","maximum":9007199254740991,"exclusiveMinimum":0}},"additionalProperties":false},"title":"Undo change","logicalName":"undo_change","displayName":"Undo change","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"replace_dataset","description":"Import a replacement wave without overwriting prior source data. Queues a hosted job; use get_job to retrieve its result. Obtain actual user approval before calling; do not fabricate approval fields.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["projectId","expectedRevision","idempotencyKey","waveId","label","approval","uploadId","workspaceToken","requestId"],"properties":{"label":{"type":"string","minLength":1},"waveId":{"type":"string","minLength":1},"renames":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"approval":{"type":"object","required":["approvedBy","approvedAt"],"properties":{"approvedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"approvedBy":{"type":"string","maxLength":200,"minLength":1}},"additionalProperties":false},"uploadId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"projectId":{"type":"string","minLength":1},"requestId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"idempotencyKey":{"type":"string","maxLength":200,"minLength":1},"workspaceToken":{"type":"string","pattern":"^ctw_[a-f0-9-]{36}\\.[A-Za-z0-9_-]{43}$"},"expectedRevision":{"type":"integer","maximum":9007199254740991,"exclusiveMinimum":0}},"additionalProperties":false},"title":"Replace dataset","logicalName":"replace_dataset","displayName":"Replace dataset","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"detect_schema_drift","description":"Inspect wave compatibility and propose repairs without mutation. Queues a hosted job; use get_job to retrieve its result.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["projectId","uploadId","workspaceToken","requestId"],"properties":{"renames":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"uploadId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"projectId":{"type":"string","minLength":1},"requestId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"workspaceToken":{"type":"string","pattern":"^ctw_[a-f0-9-]{36}\\.[A-Za-z0-9_-]{43}$"}},"additionalProperties":false},"title":"Detect schema drift","logicalName":"detect_schema_drift","displayName":"Detect schema drift","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"generate_report_pack","description":"Generate an editable evidence-linked PPTX or DOCX pack. Queues a hosted job; use get_job to retrieve its result.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["projectId","expectedRevision","idempotencyKey","format","workspaceToken","requestId"],"properties":{"format":{"enum":["pptx","docx"],"type":"string"},"waveId":{"type":"string","minLength":1},"tableIds":{"type":"array","items":{"type":"string","minLength":1},"minItems":1},"projectId":{"type":"string","minLength":1},"requestId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"templateId":{"type":"string","minLength":1},"idempotencyKey":{"type":"string","maxLength":200,"minLength":1},"workspaceToken":{"type":"string","pattern":"^ctw_[a-f0-9-]{36}\\.[A-Za-z0-9_-]{43}$"},"expectedRevision":{"type":"integer","maximum":9007199254740991,"exclusiveMinimum":0}},"additionalProperties":false},"title":"Generate report pack","logicalName":"generate_report_pack","displayName":"Generate report pack","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"refresh_report_pack","description":"Refresh generated regions while preserving declared manual regions. Queues a hosted job; use get_job to retrieve its result. Obtain actual user approval before calling; do not fabricate approval fields.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["projectId","expectedRevision","idempotencyKey","generationId","approval","uploadId","workspaceToken","requestId"],"properties":{"waveId":{"type":"string","minLength":1},"approval":{"type":"object","required":["approvedBy","approvedAt"],"properties":{"approvedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"approvedBy":{"type":"string","maxLength":200,"minLength":1}},"additionalProperties":false},"uploadId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"projectId":{"type":"string","minLength":1},"requestId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"generationId":{"type":"string","minLength":1},"idempotencyKey":{"type":"string","maxLength":200,"minLength":1},"workspaceToken":{"type":"string","pattern":"^ctw_[a-f0-9-]{36}\\.[A-Za-z0-9_-]{43}$"},"expectedRevision":{"type":"integer","maximum":9007199254740991,"exclusiveMinimum":0}},"additionalProperties":false},"title":"Refresh report pack","logicalName":"refresh_report_pack","displayName":"Refresh report pack","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"export_project","description":"Export a definition-only package by default or an explicit full-data package to the temporary hosted workspace. Queues a hosted job; use get_job to retrieve its result.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["projectId","workspaceToken","requestId"],"properties":{"projectId":{"type":"string","minLength":1},"requestId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"dataPolicy":{"enum":["omitted","included"],"type":"string","default":"omitted"},"workspaceToken":{"type":"string","pattern":"^ctw_[a-f0-9-]{36}\\.[A-Za-z0-9_-]{43}$"}},"additionalProperties":false},"title":"Export project","logicalName":"export_project","displayName":"Export project","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"list_projects","description":"List redacted summaries from the workspace project store. Queues a hosted job; use get_job to retrieve its result.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["workspaceToken","requestId"],"properties":{"limit":{"type":"integer","maximum":100,"minimum":1},"cursor":{"type":"string","minLength":1},"requestId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"workspaceToken":{"type":"string","pattern":"^ctw_[a-f0-9-]{36}\\.[A-Za-z0-9_-]{43}$"}},"additionalProperties":false},"title":"List projects","logicalName":"list_projects","displayName":"List projects","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"inspect_project","description":"Inspect a redacted workspace project graph, capabilities and current revision. Queues a hosted job; use get_job to retrieve its result.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["projectId","workspaceToken","requestId"],"properties":{"projectId":{"type":"string","minLength":1},"requestId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"workspaceToken":{"type":"string","pattern":"^ctw_[a-f0-9-]{36}\\.[A-Za-z0-9_-]{43}$"}},"additionalProperties":false},"title":"Inspect project","logicalName":"inspect_project","displayName":"Inspect project","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_audit_history","description":"Return paginated append-only project audit events. Queues a hosted job; use get_job to retrieve its result.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["projectId","workspaceToken","requestId"],"properties":{"limit":{"type":"integer","maximum":500,"minimum":1},"projectId":{"type":"string","minLength":1},"requestId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"afterSequence":{"type":"integer","maximum":9007199254740991,"minimum":0},"workspaceToken":{"type":"string","pattern":"^ctw_[a-f0-9-]{36}\\.[A-Za-z0-9_-]{43}$"}},"additionalProperties":false},"title":"Get audit history","logicalName":"get_audit_history","displayName":"Get audit history","annotations":{"untrustedContentHint":true,"readOnlyHint":true}}],"toolSource":"directory_preview","agentAction":"both","installLinks":[{"id":"cursor","label":"Cursor","href":"cursor://anysphere.cursor-deeplink/mcp/install?name=Crosstabs&config=eyJ1cmwiOiAiaHR0cHM6Ly9tY3AuY3Jvc3N0YWJzLmNvbS9tY3AifQ%3D%3D"},{"id":"vscode","label":"VS Code","href":"vscode:mcp/install?%7B%22name%22%3A%22Crosstabs%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.crosstabs.com%2Fmcp%22%7D"},{"id":"vscode-insiders","label":"VS Code Insiders","href":"vscode-insiders:mcp/install?%7B%22name%22%3A%22Crosstabs%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.crosstabs.com%2Fmcp%22%7D"},{"id":"claude-web","label":"Claude.ai","href":"https://claude.ai/customize/connectors?modal=add-custom-connector&connectorName=Crosstabs&connectorUrl=https%3A%2F%2Fmcp.crosstabs.com%2Fmcp"},{"id":"codex","label":"Codex","copyText":"codex mcp add \"Crosstabs\" --url \"https://mcp.crosstabs.com/mcp\""},{"id":"chatgpt","label":"ChatGPT","href":"https://www.mcpbundles.com/docs/integrations/chatgpt"}],"catalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/crosstabs-mcp-328f3867f7","callUrl":"https://www.mcpbundles.com/api/directory/v1/servers/crosstabs-mcp-328f3867f7/tools/{tool}","mcpServerUrl":"https://mcp.crosstabs.com/mcp","liveCatalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/crosstabs-mcp-328f3867f7?live=1"}