이 MCP로 할 수 있는 일
Manages workspace signals, opportunities, decisions, backlogs, documents, integrations, evidence, analytics, and operational maps.
도구
입력 스키마
{'type': 'object', 'properties': {'limit': {'type': 'number', 'minimum': 1, 'description': ' Max grouped rows; over-asks clamp.'}, 'cursor': {'type': 'string', 'description': 'From stream.next_cursor â\x80\x94 pages grouped rows beyond `limit`.'}, 'domain': {'type': 'string', 'maxLength': 120, 'minLength': 2, 'description': 'Free-text product area, resolved to map nodes.'}, 'filters': {'type': 'object', 'properties': {'sources': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 20, 'description': 'Transport, not provenance (captures store `manual`); claim/solution aggregates ignore it.'}, 'node_ids': {'type': 'array', 'items': {'type': 'string', 'format': 'uuid'}, 'maxItems': 20}, 'claim_ids': {'type': 'array', 'items': {'type': 'string', 'format': 'uuid'}, 'maxItems': 50}, 'lifecycle': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 10, 'description': 'Known lifecycle stages (case-insensitive).'}, 'claim_status': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 10, 'description': 'Known claim statuses (case-insensitive).'}, 'signal_origin': {'type': 'array', 'items': {'enum': ['customer', 'internal', 'operational'], 'type': 'string'}, 'maxItems': 3, 'description': 'customer | internal | operational â\x80\x94 separates what `sources` cannot (claim matches if ANY snippet matches).'}}, 'description': 'Filters: AND across fields, OR within a field.'}, 'metrics': {'type': 'array', 'items': {'enum': ['claim_count', 'snippet_count', 'avg_power_score', 'decision_count', 'activity_count', 'effort_proxy_avg'], 'type': 'string', 'description': 'Aggregate metric computed per group.'}, 'maxItems': 4, 'description': 'Aggregate metrics per group (1-4).'}, 'subject': {'enum': ['claims', 'solutions', 'activity'], 'type': 'string', 'description': 'Dataset: claims (opportunities), solutions, or activity (decisions + events).'}, 'analysis': {'enum': ['summary', 'table', 'bar', 'line', 'scatter'], 'type': 'string', 'description': 'summary (prose), table, or chart kind (bar/line/scatter); trend aliases line.'}, 'group_by': {'type': 'array', 'items': {'enum': ['claim', 'node', 'day', 'week', 'status', 'source'], 'type': 'string', 'description': 'Row grouping dimension. lifecycle is an alias for status.'}, 'maxItems': 2, 'description': 'Row grouping dimensions (1-2).'}, 'time_range': {'type': 'object', 'properties': {'to': {'type': 'string'}, 'from': {'type': 'string'}, 'preset': {'enum': ['7d', '30d', '90d'], 'type': 'string', 'description': 'Relative time window preset.'}}, 'description': 'Preset (7d/30d/90d) or explicit from/to ISO dates. Defaults to 30d.'}}}
출력 스키마
{'type': 'object', 'required': ['data', 'meta'], 'properties': {'data': {'type': 'object', 'required': ['resolved_query', 'summary', 'dataset', 'sources', 'warnings', 'assumptions'], 'properties': {'chart': {'type': 'object', 'required': ['kind', 'title', 'x_key', 'y_key'], 'properties': {'kind': {'enum': ['bar', 'line', 'scatter'], 'type': 'string'}, 'title': {'type': 'string'}, 'x_key': {'type': 'string'}, 'y_key': {'type': 'string'}, 'series_key': {'type': 'string'}}}, 'stream': {'type': 'object', 'required': ['checkpoint', 'has_more'], 'properties': {'has_more': {'type': 'boolean'}, 'checkpoint': {'type': 'string'}, 'next_cursor': {'type': 'string'}}}, 'dataset': {'type': 'object', 'required': ['columns', 'rows', 'row_count'], 'properties': {'rows': {'type': 'array', 'items': {'type': 'object', 'properties': {}}}, 'columns': {'type': 'array', 'items': {'type': 'string'}}, 'row_count': {'type': 'number', 'minimum': 0}, 'total_rows': {'type': 'number', 'minimum': 0}}}, 'sources': {'type': 'object', 'required': ['views_used', 'row_count'], 'properties': {'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'row_count': {'type': 'number', 'minimum': 0}, 'views_used': {'type': 'array', 'items': {'type': 'string'}}}}, 'summary': {'type': 'string'}, 'artifact': {'type': 'object', 'required': ['artifact_type', 'artifact_data'], 'properties': {'artifact_data': {'type': 'object', 'required': ['title', 'summary', 'resolved_query', 'dataset', 'sources', 'warnings', 'assumptions'], 'properties': {'chart': {'type': 'object', 'required': ['kind', 'title', 'x_key', 'y_key'], 'properties': {'kind': {'enum': ['bar', 'line', 'scatter'], 'type': 'string'}, 'title': {'type': 'string'}, 'x_key': {'type': 'string'}, 'y_key': {'type': 'string'}, 'series_key': {'type': 'string'}}}, 'title': {'type': 'string'}, 'dataset': {'type': 'object', 'required': ['columns', 'rows', 'row_count'], 'properties': {'rows': {'type': 'array', 'items': {'type': 'object', 'properties': {}}}, 'columns': {'type': 'array', 'items': {'type': 'string'}}, 'row_count': {'type': 'number', 'minimum': 0}, 'total_rows': {'type': 'number', 'minimum': 0}}}, 'sources': {'type': 'object', 'required': ['views_used', 'row_count'], 'properties': {'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'row_count': {'type': 'number', 'minimum': 0}, 'views_used': {'type': 'array', 'items': {'type': 'string'}}}}, 'summary': {'type': 'string'}, 'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'assumptions': {'type': 'array', 'items': {'type': 'string'}}, 'resolved_query': {'type': 'object', 'required': ['subject', 'time_range', 'group_by', 'metrics', 'analysis', 'filters', 'resolved_nodes'], 'properties': {'domain': {'type': 'string'}, 'filters': {'type': 'object', 'properties': {'sources': {'type': 'array', 'items': {'type': 'string'}}, 'node_ids': {'type': 'array', 'items': {'type': 'string'}}, 'claim_ids': {'type': 'array', 'items': {'type': 'string'}}, 'lifecycle': {'type': 'array', 'items': {'type': 'string'}}, 'claim_status': {'type': 'array', 'items': {'type': 'string'}}}}, 'metrics': {'type': 'array', 'items': {'enum': ['claim_count', 'snippet_count', 'avg_power_score', 'decision_count', 'activity_count', 'effort_proxy_avg'], 'type': 'string', 'description': 'Aggregate metric computed per group.'}}, 'subject': {'enum': ['claims', 'solutions', 'activity'], 'type': 'string', 'description': 'Dataset: claims (opportunities), solutions, or activity (decisions + events).'}, 'analysis': {'enum': ['summary', 'table', 'bar', 'line', 'scatter'], 'type': 'string', 'description': 'summary (prose), table, or chart kind (bar/line/scatter); trend aliases line.'}, 'group_by': {'type': 'array', 'items': {'enum': ['claim', 'node', 'day', 'week', 'status', 'source'], 'type': 'string', 'description': 'Row grouping dimension. lifecycle is an alias for status.'}}, 'time_range': {'type': 'object', 'required': ['from', 'to', 'timezone', 'preset'], 'properties': {'to': {'type': 'string'}, 'from': {'type': 'string'}, 'preset': {'enum': ['7d', '30d', '90d', 'custom'], 'type': 'string'}, 'timezone': {'type': 'string'}}}, 'resolved_nodes': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name'], 'properties': {'id': {'type': 'string'}, 'name': {'type': 'string'}, 'score': {'type': 'number'}}}}}}}}, 'artifact_type': {'enum': ['analytics-report'], 'type': 'string'}}}, 'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'assumptions': {'type': 'array', 'items': {'type': 'string'}}, 'resolved_query': {'type': 'object', 'required': ['subject', 'time_range', 'group_by', 'metrics', 'analysis', 'filters', 'resolved_nodes'], 'properties': {'domain': {'type': 'string'}, 'filters': {'type': 'object', 'properties': {'sources': {'type': 'array', 'items': {'type': 'string'}}, 'node_ids': {'type': 'array', 'items': {'type': 'string'}}, 'claim_ids': {'type': 'array', 'items': {'type': 'string'}}, 'lifecycle': {'type': 'array', 'items': {'type': 'string'}}, 'claim_status': {'type': 'array', 'items': {'type': 'string'}}}}, 'metrics': {'type': 'array', 'items': {'enum': ['claim_count', 'snippet_count', 'avg_power_score', 'decision_count', 'activity_count', 'effort_proxy_avg'], 'type': 'string', 'description': 'Aggregate metric computed per group.'}}, 'subject': {'enum': ['claims', 'solutions', 'activity'], 'type': 'string', 'description': 'Dataset: claims (opportunities), solutions, or activity (decisions + events).'}, 'analysis': {'enum': ['summary', 'table', 'bar', 'line', 'scatter'], 'type': 'string', 'description': 'summary (prose), table, or chart kind (bar/line/scatter); trend aliases line.'}, 'group_by': {'type': 'array', 'items': {'enum': ['claim', 'node', 'day', 'week', 'status', 'source'], 'type': 'string', 'description': 'Row grouping dimension. lifecycle is an alias for status.'}}, 'time_range': {'type': 'object', 'required': ['from', 'to', 'timezone', 'preset'], 'properties': {'to': {'type': 'string'}, 'from': {'type': 'string'}, 'preset': {'enum': ['7d', '30d', '90d', 'custom'], 'type': 'string'}, 'timezone': {'type': 'string'}}}, 'resolved_nodes': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name'], 'properties': {'id': {'type': 'string'}, 'name': {'type': 'string'}, 'score': {'type': 'number'}}}}}}}}, 'meta': {'type': 'object', 'required': ['tenant_plan', 'workspace_id', 'workspace_name', 'timestamp'], 'properties': {'persona': {'type': 'string'}, 'timestamp': {'type': 'string'}, 'tenant_plan': {'enum': ['free', 'pro', 'enterprise'], 'type': 'string'}, 'workspace_id': {'type': 'string'}, 'gates_applied': {'type': 'array', 'items': {'type': 'string'}}, 'scoring_model': {'type': 'string'}, 'workspace_name': {'type': 'string'}, 'contract_version': {'type': 'string'}}}}}
입력 스키마
{'type': 'object', 'required': ['mode'], 'properties': {'ops': {}, 'body': {}, 'mode': {'enum': ['signal', 'signal_batch', 'knowledge', 'update_artefact', 'patch_artefact', 'add_artefact_evidence'], 'type': 'string', 'description': 'Capture mode. Notes per mode in meta.guidance.'}, 'note': {'type': 'string', 'maxLength': 500, 'description': 'Why it matters (signal).'}, 'text': {'type': 'string', 'maxLength': 5000, 'minLength': 10, 'description': 'Signal text.'}, 'items': {'type': 'array', 'items': {'type': 'object', 'required': ['text', 'client_request_id'], 'properties': {'text': {'type': 'string', 'maxLength': 5000, 'minLength': 10, 'description': 'Signal text; max 5000 chars.'}, 'source': {'enum': ['manual', 'github', 'webhook'], 'type': 'string'}, 'modality': {'enum': ['Q', 'O', 'M'], 'type': 'string'}, 'classification': {'enum': ['problem', 'idea', 'question'], 'type': 'string'}, 'client_request_id': {'type': 'string', 'maxLength': 200, 'minLength': 8, 'description': 'Idempotency key.'}, 'corrects_prior_evidence': {'type': 'boolean'}}}, 'maxItems': 100, 'description': 'Batch; max 100 items.'}, 'title': {'type': 'string', 'maxLength': 200, 'description': 'Knowledge title.'}, 'source': {'enum': ['manual', 'github', 'webhook'], 'type': 'string', 'description': 'Signal source.'}, 'content': {'type': 'string', 'maxLength': 100000, 'description': 'Knowledge content.'}, 'message': {}, 'node_id': {'type': 'string', 'format': 'uuid', 'description': 'knowledge: alias for scope_id (scope_type=node).'}, 'patches': {}, 'category': {'type': 'string', 'maxLength': 60, 'description': 'knowledge: free-form category label â\x89¤60 chars.'}, 'claim_id': {'type': 'string', 'format': 'uuid', 'description': 'knowledge: alias for scope_id (scope_type=claim).'}, 'evidence': {'type': 'object', 'properties': {'title': {'type': 'string', 'maxLength': 200, 'description': 'Evidence block title.'}, 'status': {'enum': ['supported', 'contradicted', 'inconclusive', 'tracking_missing', 'informational'], 'type': 'string', 'description': 'Relation to the hypothesis.'}, 'provider': {'type': 'string', 'maxLength': 80, 'description': 'Provider name, e.g. posthog, amplitude, custom_sql.'}, 'warnings': {'type': 'array', 'items': {'type': 'string', 'maxLength': 500}, 'maxItems': 20, 'description': 'Provider warnings shown with the block.'}, 'block_type': {'enum': ['query', 'metric', 'external_insight', 'chart_snapshot', 'link'], 'type': 'string', 'description': 'Evidence block kind.'}, 'confidence': {'type': 'number', 'maximum': 1, 'minimum': 0, 'description': 'Confidence from 0 to 1.'}, 'query_text': {'type': 'string', 'maxLength': 20000, 'description': 'Query, event name, API request, or investigation prompt.'}, 'external_url': {'type': 'string', 'maxLength': 2048, 'description': 'External insight/dashboard/query URL, if available.'}, 'interpretation': {'type': 'string', 'maxLength': 5000, 'description': 'What this evidence means in the artefact context.'}, 'query_language': {'enum': ['hogql', 'sql', 'api_request', 'natural_language', 'event'], 'type': 'string', 'description': 'Language of query_text.'}, 'refresh_policy': {'enum': ['manual', 'scheduled', 'none'], 'type': 'string', 'description': 'Refresh cadence for the snapshot.'}, 'result_snapshot': {'type': 'object', 'properties': {'summary': {'type': 'string', 'maxLength': 5000, 'description': 'Text summary of tabular or non-numeric provider output.'}, 'event_name': {'type': 'string', 'maxLength': 500, 'description': 'Provider event/metric name for refreshable metric blocks.'}, 'data_points': {'type': 'array', 'items': {'type': 'object', 'required': ['date', 'value'], 'properties': {'date': {'type': 'string', 'maxLength': 80}, 'value': {'type': 'number'}}}, 'maxItems': 365, 'description': 'Optional compact time series snapshot.'}, 'latest_date': {'type': 'string', 'maxLength': 80, 'description': 'Date or timestamp for latest_value.'}, 'latest_value': {'type': 'number', 'description': 'Latest numeric value from the provider, when available.'}, 'time_range_days': {'type': 'number', 'maximum': 365, 'minimum': 1, 'description': 'Lookback window for refreshable metric blocks. Defaults to 30.'}}, 'description': 'Result snapshot; event_name + time_range_days make it refreshable.'}}, 'description': 'Evidence fields; document_id top-level.'}, 'modality': {'enum': ['Q', 'O', 'M'], 'type': 'string', 'description': 'Q=Quote, O=Observation, M=Metric; inferred if omitted.'}, 'patchOps': {}, 'scope_id': {'type': 'string', 'format': 'uuid', 'description': 'Target scope UUID; required for node/claim/solution/map.'}, 'file_name': {'type': 'string', 'maxLength': 200}, 'mime_type': {'type': 'string', 'maxLength': 120}, 'patch_ops': {'type': 'array', 'items': {'type': 'object', 'required': ['op', 'section_id', 'markdown'], 'properties': {'op': {'enum': ['append_to_section', 'replace_section', 'annotate', 'add_section'], 'type': 'string'}, 'kind': {'enum': ['note', 'contradiction', 'update'], 'type': 'string'}, 'markdown': {'type': 'string', 'maxLength': 20000}, 'section_id': {'type': 'string', 'maxLength': 64}}}, 'maxItems': 20}, 'agent_name': {'type': 'string', 'maxLength': 120}, 'scope_type': {'enum': ['company', 'workspace', 'node', 'claim', 'solution', 'map'], 'type': 'string', 'description': 'Scope kind; company = active workspace.'}, 'attachments': {'type': 'array', 'items': {'type': 'object', 'required': ['data_base64', 'file_name', 'mime_type'], 'properties': {'file_name': {'type': 'string', 'maxLength': 200}, 'mime_type': {'enum': ['image/png', 'image/jpeg', 'image/webp', 'application/pdf'], 'type': 'string'}, 'data_base64': {'type': 'string', 'maxLength': 4200000, 'minLength': 4, 'description': 'Base64.'}}, 'description': 'PNG/JPG/WebP/PDF; no extraction.'}, 'maxItems': 5, 'description': '1-5 files; 3 MB combined.'}, 'document_id': {'type': 'string', 'format': 'uuid', 'description': 'Living document UUID (artefact modes).'}, 'solution_id': {'type': 'string', 'format': 'uuid', 'description': 'knowledge: alias for scope_id (scope_type=solution).'}, 'capture_mode': {'enum': ['context_only', 'signals_only', 'context_and_signals'], 'type': 'string', 'description': 'Knowledge routing.'}, 'captured_from': {'type': 'string', 'maxLength': 120}, 'change_summary': {'type': 'string', 'maxLength': 300, 'description': 'patch_artefact: REQUIRED top-level change_summary (or note) â\x80\x94 one sentence of what changed.'}, 'classification': {'enum': ['problem', 'idea', 'question'], 'type': 'string', 'description': 'Signal classification hint.'}, 'dirty_event_id': {'type': 'string', 'format': 'uuid', 'description': 'Dirty event resolved on success'}, 'knowledge_kind': {'enum': ['auto', 'transcript', 'transcript_customer', 'notes'], 'type': 'string'}, 'coverage_updates': {'description': 'buckets snippets/ideas/claims; snippets[].{snippet_id, status, rationale}'}, 'client_request_id': {'type': 'string', 'maxLength': 200, 'minLength': 8, 'description': 'signal: retry key.'}, 'expected_content_hash': {'type': 'string', 'maxLength': 64, 'description': 'doc_patch_context content_hash'}, 'corrects_prior_evidence': {'type': 'boolean', 'description': 'signal: TRUE to CORRECT prior evidence, not repeat it (skips dedup; when/why in meta.guidance).'}}}
출력 스키마
{'type': 'object', 'required': ['result'], 'properties': {'result': {}}}
입력 스키마
{'type': 'object', 'properties': {'kind': {'enum': ['webhook', 'email'], 'type': 'string', 'description': 'mode=create: "email" provisions the ingest address; default webhook.'}, 'mode': {'enum': ['list', 'catalog', 'create', 'configure', 'pause', 'resume', 'sync_now', 'delete', 'composio_catalog', 'composio_actions', 'composio_create', 'composio_authorize'], 'type': 'string', 'description': 'list/catalog need no ids; others need connection_id or create fields.'}, 'label': {'type': 'string', 'maxLength': 120, 'description': 'create/configure: human name for the source, e.g. "Freshdesk".'}, 'query': {'type': 'string', 'maxLength': 100, 'description': 'mode=catalog only: filter by name, category or description.'}, 'config': {'type': 'object', 'properties': {}, 'description': 'mode=create with provider: catalog required_fields. Stored encrypted, never readable again.'}, 'toolkit': {'type': 'string', 'maxLength': 80, 'description': 'composio_actions / composio_create: Composio app slug (e.g. "freshdesk", "jira").'}, 'provider': {'type': 'string', 'maxLength': 40, 'description': 'mode=create: NATIVE provider from catalog native_providers. Pair with config.'}, 'pull_tool': {'type': 'string', 'maxLength': 120, 'description': 'composio_create, DAILY apps: read-only action from composio_actions.'}, 'recipe_id': {'type': 'string', 'maxLength': 100, 'description': 'mode=create: catalog recipe id â\x80\x94 applies its curated mapping.'}, 'json_paths': {'type': 'object', 'required': ['raw_text'], 'properties': {'source': {'type': 'string'}, 'channel': {'type': 'string'}, 'user_id': {'type': 'string', 'description': 'Path to who said it â\x80\x94 enables company attribution.'}, 'raw_text': {'type': 'string', 'description': 'REQUIRED: path to the customer\'s own words, e.g. "ticket.description".'}, 'occurred_at': {'type': 'string', 'description': 'Path to the timestamp; else ingestion time.'}, 'deep_link_url': {'type': 'string', 'description': 'Path to a URL opening the item in the origin tool.'}, 'native_object_id': {'type': 'string'}, 'native_revision_id': {'type': 'string'}}, 'description': "create/configure: dotted paths into the POSTed payload's JSON body."}, 'rate_limit': {'type': 'number', 'maximum': 10000, 'description': 'create/configure: max requests per minute accepted. Default 100.'}, 'sync_every': {'enum': ['hourly', 'daily', 'weekly'], 'type': 'string', 'description': 'PULL sources only: cadence. Default daily.'}, 'trigger_slug': {'type': 'string', 'maxLength': 120, 'description': 'composio_create, INSTANT apps: trigger from composio_catalog.'}, 'connection_id': {'type': 'string', 'format': 'uuid', 'description': 'Connection id from mode=list; required for configure/pause/resume/sync_now/delete.'}, 'pull_arguments': {'type': 'object', 'properties': {}, 'description': 'composio_create with pull_tool: action arguments.'}, 'collection_path': {'type': 'string', 'maxLength': 200, 'description': 'composio_create with pull_tool: dotted path to the record array if not inferable.'}, 'source_category': {'enum': ['conversation_message', 'survey_response', 'document_revision', 'transcript_session', 'operational_event'], 'type': 'string', 'description': 'mode=create with your own mapping: what the payload carries.'}, 'skip_attribution': {'type': 'boolean', 'description': 'mode=create: true for anonymous public-forum sources with no attributable customer.'}}}
출력 스키마
{'type': 'object', 'properties': {'result': {}}}
입력 스키마
{'type': 'object', 'required': ['mode'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'description': 'delete_knowledge/set_knowledge_category doc id.'}, 'mode': {'enum': ['triage', 'rename_claim', 'delete_claim', 'combine_claims', 'reassign_snippet', 'create_claim_from_snippet', 'split_snippet', 'create_solution', 'create_living_doc', 'update_solution', 'dispatch_solution', 'record_outcome', 'delete_solution', 'apply_solution_spec', 'update_strategy', 'log_decision', 'update_artefact_schedule', 'create_solution_doc', 'deal_breaker', 'declare_pm_exception', 'delete_knowledge', 'set_knowledge_category', 'set_claim_review_status', 'set_snippet_status', 'check_coverage', 'mark_reviewed', 'validate_delivery'], 'type': 'string', 'description': 'Resolve names to UUIDs before mutating; notes per mode in meta.guidance.'}, 'note': {'type': 'string', 'maxLength': 5000, 'description': 'record_outcome narrative max 5000; triage/log_decision rationale max 2000.'}, 'spec': {'type': 'object', 'required': ['problem', 'evidence', 'hypothesis', 'successCriteria'], 'properties': {'files': {'type': 'array', 'items': {'type': 'string', 'maxLength': 500}, 'maxItems': 50}, 'problem': {'type': 'string', 'maxLength': 5000}, 'evidence': {'type': 'array', 'items': {'type': 'string', 'maxLength': 1000}, 'maxItems': 30}, 'proposal': {'type': 'string', 'maxLength': 5000, 'description': 'What we will build; distinct from hypothesis.'}, 'hypothesis': {'type': 'string', 'maxLength': 5000}, 'constraints': {'type': 'array', 'items': {'type': 'string', 'maxLength': 500}, 'maxItems': 50}, 'decisionLog': {'type': 'object', 'required': ['alternatives', 'reasoning'], 'properties': {'reasoning': {'type': 'string', 'maxLength': 5000}, 'assumptions': {'type': 'string', 'maxLength': 3000}, 'alternatives': {'type': 'array', 'items': {'type': 'string', 'maxLength': 1000}, 'maxItems': 20}}}, 'successCriteria': {'type': 'string', 'maxLength': 5000, 'description': 'What must be TRUE at launch. Template: implementation_context.'}}}, 'brief': {'type': 'string', 'maxLength': 20000, 'description': 'dispatch_solution: agent brief.'}, 'force': {'type': 'boolean', 'description': 'Confirms a source-deleting reassignment; omit = CONFIRMATION_REQUIRED.'}, 'title': {'type': 'string', 'maxLength': 500}, 'effort': {'type': 'number', 'maximum': 52, 'minimum': 0.5, 'description': 'Size estimate, person-weeks. Sizing only, never affects order.'}, 'matrix': {'type': 'array', 'items': {'type': 'object', 'required': ['criterion', 'status'], 'properties': {'note': {'type': 'string', 'maxLength': 500, 'description': 'Required for an incomplete to be accepted: alternative method, or blocker.'}, 'status': {'enum': ['preview_verified', 'production_verified', 'not_applicable', 'incomplete', 'superseded'], 'type': 'string'}, 'evidence': {'type': 'string', 'maxLength': 500, 'description': 'What you did and saw â\x80\x94 required in spirit for *_verified.'}, 'criterion': {'type': 'string', 'maxLength': 200, 'description': "Success criterion, in the living doc's words where possible."}, 'evidence_refs': {'type': 'array', 'items': {'type': 'string', 'maxLength': 300}, 'maxItems': 10, 'description': 'Durable refs: PR, dashboard, log.'}}}, 'maxItems': 20, 'description': 'validate_delivery: one entry per success criterion.'}, 'pr_url': {'type': 'string', 'format': 'uri', 'maxLength': 500}, 'status': {'enum': ['signal', 'noise', 'review'], 'type': 'string', 'description': 'Target classification.'}, 'comment': {'type': 'string', 'maxLength': 10000, 'description': 'update_solution: thread report as the agent.'}, 'mission': {'type': 'string', 'maxLength': 2000, 'description': 'update_strategy: informational only. â\x89¤2000.'}, 'node_id': {'type': 'string', 'format': 'uuid'}, 'outcome': {'enum': ['success', 'partial', 'miss', 'unexpected'], 'type': 'string', 'description': 'record_outcome: launch impact.'}, 'roadmap': {'type': 'string', 'maxLength': 5000, 'description': 'update_strategy: informational only. â\x89¤5000.'}, 'verdict': {'enum': ['real_fixed', 'noise'], 'type': 'string', 'description': 'mode=triage: BOTH values close the claim â\x80\x94 see guidance.'}, 'category': {'type': 'string', 'maxLength': 60, 'description': 'label to set; null clears.'}, 'claim_id': {'type': 'string', 'format': 'uuid', 'description': 'Claim UUID â\x80\x94 resolve names with atisbo_lookup mode=resolve first'}, 'decision': {'type': 'string'}, 'strategy': {'type': 'string', 'maxLength': 5000, 'description': 'update_strategy: the only functional field.'}, 'unassign': {'type': 'boolean'}, 'claim_ids': {'type': 'array', 'items': {'type': 'string', 'format': 'uuid'}, 'maxItems': 50}, 'kpi_after': {'type': 'string', 'maxLength': 200}, 'lifecycle': {'type': 'string', 'description': 'IDEA|DESIGNING|IN_DEVELOPMENT; LAUNCHED only via update_solution.'}, 'target_id': {'type': 'string', 'format': 'uuid'}, 'agent_name': {'type': 'string', 'maxLength': 120, 'description': 'Signs comments/assignments/decisions. Default "Agent".'}, 'kpi_before': {'type': 'string', 'maxLength': 200}, 'risk_notes': {'type': 'array', 'items': {'type': 'string', 'maxLength': 1000}, 'maxItems': 50, 'description': 'check_coverage: unresolved contradictions acknowledged by id.'}, 'snippet_id': {'type': 'string', 'format': 'uuid'}, 'updated_at': {'type': 'string', 'description': 'Optimistic lock; stale edits fail STALE_DATA.'}, 'description': {'type': 'string', 'maxLength': 2000}, 'document_id': {'type': 'string', 'format': 'uuid'}, 'instruction': {'type': 'string', 'maxLength': 2000}, 'observed_at': {'type': 'string', 'format': 'date-time'}, 'review_kind': {'enum': ['signal_triage', 'claim_structure', 'solution_quality'], 'type': 'string'}, 'snooze_days': {'type': 'number'}, 'solution_id': {'type': 'string', 'format': 'uuid', 'description': 'Solution UUID â\x80\x94 resolve names with atisbo_lookup mode=resolve first'}, 'target_type': {'enum': ['claim', 'solution', 'snippet', 'tenant', 'pm_context', 'node', 'edge', 'map', 'chat_session', 'context_document', 'mcp_connection', 'mcp_server_key', 'decision_signal', 'integration', 'workspace', 'access_link'], 'type': 'string'}, 'alternatives': {'type': 'array', 'items': {'type': 'string', 'maxLength': 1000}, 'maxItems': 20}, 'out_of_scope': {'type': 'array', 'items': {'type': 'string', 'maxLength': 128}, 'maxItems': 100, 'description': 'check_coverage: ids intentionally NOT addressed.'}, 'product_name': {'type': 'string', 'maxLength': 200}, 'snooze_clear': {'type': 'boolean'}, 'clear_discard': {'type': 'boolean'}, 'covered_ideas': {'type': 'array', 'items': {'type': 'string', 'maxLength': 128}, 'maxItems': 100, 'description': 'check_coverage: idea ids from the coverage map.'}, 'decision_type': {'type': 'string', 'maxLength': 60, 'description': 'log_decision: e.g. product_decision, note (full list in the error).'}, 'evidence_refs': {'type': 'array', 'items': {'type': 'string', 'maxLength': 500}, 'maxItems': 20, 'description': 'record_outcome: durable evidence refs.'}, 'main_features': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'description'], 'properties': {'name': {'type': 'string', 'maxLength': 200}, 'description': {'type': 'string', 'maxLength': 1000}}}}, 'assign_node_id': {'type': 'string', 'format': 'uuid', 'description': 'update_solution: taxonomy node.'}, 'covered_claims': {'type': 'array', 'items': {'type': 'string', 'maxLength': 128}, 'maxItems': 50, 'description': 'check_coverage: claim ids this work implements.'}, 'design_context': {'type': 'string', 'maxLength': 8000}, 'discard_reason': {'type': 'string', 'maxLength': 500, 'description': 'update_solution: divergence loser (ADR-224); needs CANCELED.'}, 'force_reassign': {'type': 'boolean', 'description': 'dispatch_solution: audited takeover of an in-progress Solution; omit refuses contested dispatch.'}, 'metric_current': {'type': 'number', 'description': 'record_outcome (automated): fresh metric reading.'}, 'priority_boost': {'type': 'number', 'maximum': 5, 'minimum': 0.5, 'description': 'update_solution: PM multiplier over evidence-weighted priority.'}, 'assign_to_agent': {'type': 'boolean', 'description': 'update_solution: take ownership.'}, 'is_deal_breaker': {'type': 'boolean', 'description': 'deal_breaker: true = confirm/flag, false = reject/unflag.'}, 'target_claim_id': {'type': 'string', 'format': 'uuid', 'description': 'Claim UUID â\x80\x94 resolve names with atisbo_lookup mode=resolve first'}, 'attach_claim_ids': {'type': 'array', 'items': {'type': 'string', 'format': 'uuid'}, 'maxItems': 20}, 'detach_claim_ids': {'type': 'array', 'items': {'type': 'string', 'format': 'uuid'}, 'maxItems': 20}, 'refresh_schedule': {'enum': ['none', 'hourly', 'daily', 'weekly', 'biweekly', 'monthly'], 'type': 'string'}, 'criteria_left_out': {'type': 'array', 'items': {'type': 'string', 'maxLength': 500}, 'maxItems': 20, 'description': 'update_solution: criteria left OUT (ADR-234); only with LAUNCHED.'}, 'expected_behavior': {'type': 'array', 'items': {'type': 'string', 'maxLength': 500}, 'maxItems': 50, 'description': 'check_coverage: observable behavior delivered.'}, 'replace_confirmed': {'type': 'boolean', 'description': 'validate_delivery: true ONLY to confirm deliberately replacing a longer recorded matrix with a shorter one.'}, 'chosen_solution_id': {'type': 'string', 'format': 'uuid', 'description': 'update_solution: the winning sibling.'}, 'clear_pm_exception': {'type': 'boolean'}, 'outcome_confidence': {'enum': ['high', 'medium', 'low'], 'type': 'string'}, 'pm_exception_reason': {'type': 'string', 'maxLength': 1000, 'description': 'update_solution / declare_pm_exception: needs a PERSON decision; not ops (use operational_block_reason).'}, 'verification_method': {'type': 'string', 'maxLength': 500, 'description': 'record_outcome: how verified (max 500 chars).'}, 'contradictions_found': {'type': 'boolean', 'description': 'record_outcome (automated): attest a contradiction sweep.'}, 'clear_operational_block': {'type': 'boolean'}, 'criteria_left_out_reason': {'type': 'string', 'maxLength': 1000, 'description': 'Why each criterion is out; required with criteria_left_out.'}, 'operational_block_reason': {'type': 'string', 'maxLength': 500, 'description': 'update_solution: operational blocker; not a decision.'}, 'operational_block_category': {'enum': ['credentials', 'permissions', 'budget', 'provider_capacity', 'external_dependency'], 'type': 'string'}}}
출력 스키마
{'type': 'object', 'properties': {'result': {}}}
입력 스키마
{'type': 'object', 'required': ['mode'], 'properties': {'ref': {'type': 'string', 'maxLength': 120, 'minLength': 3, 'description': 'open: a handle ref (claim:UUID, snippet://UUID).'}, 'mode': {'enum': ['open', 'resolve', 'claims', 'get', 'similar_claims', 'solutions', 'outcome_review', 'similar_solutions', 'work_queue', 'orphans', 'maps', 'context', 'knowledge', 'living_doc', 'attachments', 'accounts', 'deal_breakers', 'doc_patch_context', 'implementation_context', 'receipts'], 'type': 'string', 'description': 'Named by its enum value; notes per mode in meta.guidance.'}, 'refs': {'type': 'array', 'items': {'type': 'string', 'maxLength': 120, 'minLength': 3}, 'maxItems': 10, 'description': 'open: several refs (max 10).'}, 'type': {'enum': ['problem', 'idea', 'question', 'unclassified'], 'type': 'string', 'description': 'claims: classification.'}, 'view': {'enum': ['executable', 'propose', 'needs_pm'], 'type': 'string', 'description': 'work_queue: one whole bucket by whose move it is.'}, 'depth': {'enum': ['summary', 'work'], 'type': 'string', 'description': 'summary (alias: brief) = compact fields; work = full context (default).'}, 'focus': {'enum': ['agent_work', 'all'], 'type': 'string', 'description': 'claims: agent_work | all.'}, 'limit': {'type': 'number', 'maximum': 200, 'minimum': 1, 'description': 'Max results (1â\x80\x93200); page with next_cursor.'}, 'query': {'type': 'string', 'maxLength': 500, 'minLength': 2, 'description': 'Topic search: claims/solutions/knowledge/context; resolve: nameâ\x86\x92id.'}, 'scope': {'enum': ['company', 'node', 'claim', 'solution', 'map'], 'type': 'string', 'description': 'Scope for context / living_doc list.'}, 'state': {'enum': ['active', 'todo', 'draft', 'in_review', 'launched', 'monitoring', 'needs_review', 'came_back', 'didnt_work', 'partly_worked', 'worked', 'delivered', 'replaced', 'canceled'], 'type': 'string', 'description': 'work tokens (todo=DESIGNING, active=agent-consumable) or post-launch kinds.'}, 'types': {'type': 'array', 'items': {'enum': ['claim', 'solution', 'node', 'map'], 'type': 'string'}, 'maxItems': 4, 'description': 'resolve: entity kinds.'}, 'cursor': {'type': 'string', 'description': 'Pagination cursor from a previous response.'}, 'entity': {'enum': ['claim', 'solution', 'node', 'map'], 'type': 'string', 'description': 'get: which entity kind the id field carries. Omit â\x80\x94 the id field names the entity.'}, 'map_id': {'type': 'string', 'format': 'uuid', 'description': 'Map UUID (mode=get).'}, 'status': {'enum': ['active', 'all', 'archived'], 'type': 'string', 'description': 'Status filter.'}, 'node_id': {'type': 'string', 'format': 'uuid', 'description': 'Node UUID (get; claims/solutions filter).'}, 'sort_by': {'enum': ['priority', 'created_at', 'lifecycle'], 'type': 'string', 'description': 'Solution order (priority = evidence-weighted Ã\x97 boost).'}, 'anchored': {'enum': ['any', 'anchored', 'unanchored'], 'type': 'string', 'description': 'Claim list anchoring filter.'}, 'category': {'type': 'string', 'maxLength': 60, 'description': 'knowledge: exact category filter.'}, 'claim_id': {'type': 'string', 'format': 'uuid', 'description': 'Claim UUID â\x80\x94 resolve names with atisbo_lookup mode=resolve first'}, 'scope_id': {'type': 'string', 'format': 'uuid', 'description': 'Scope UUID unless scope/scope_type is company/workspace.'}, 'lifecycle': {'type': 'array', 'items': {'enum': ['IDEA', 'DESIGNING', 'IN_DEVELOPMENT', 'IN_REVIEW', 'LAUNCHED', 'CANCELED'], 'type': 'string'}, 'maxItems': 10, 'description': 'Solution lifecycle filters.'}, 'target_id': {'type': 'string', 'format': 'uuid', 'description': 'UUID for claim/solution/node/map/doc.'}, 'command_id': {'type': 'string', 'maxLength': 200, 'description': 'receipts: probe ONE write â\x80\x94 the exact key on a listed receipt; omit for your 25 latest.'}, 'scope_type': {'enum': ['company', 'workspace', 'node', 'claim', 'solution', 'map'], 'type': 'string', 'description': 'Alias of scope (either name works); workspace is treated as company.'}, 'claim_state': {'enum': ['open', 'in_progress', 'resolved'], 'type': 'string', 'description': 'Claim state; open=untouched.'}, 'debug_score': {'type': 'boolean', 'description': 'get claim: PowerScore breakdown.'}, 'document_id': {'type': 'string', 'format': 'uuid', 'description': 'Living document UUID.'}, 'review_kind': {'enum': ['signal_triage', 'claim_structure', 'solution_quality'], 'type': 'string', 'description': 'unreviewed only (see atisbo_decide mode=mark_reviewed).'}, 'solution_id': {'type': 'string', 'format': 'uuid', 'description': 'Solution UUID â\x80\x94 resolve names with atisbo_lookup mode=resolve first'}, 'action_cursor': {'type': 'string', 'description': 'work_queue action_queue cursor; restart at page 1 after a mutation.'}, 'content_limit': {'type': 'number'}, 'include_stale': {'type': 'boolean', 'description': 'claims: include stale claims.'}, 'content_offset': {'type': 'number'}, 'dirty_event_id': {'type': 'string', 'format': 'uuid', 'description': "doc_patch_context: loads this event's snippets."}, 'evidence_limit': {'type': 'number', 'maximum': 25, 'minimum': 1, 'description': 'get entity=claim: evidence rows on page one (1â\x80\x9325); cursor reaches the rest.'}, 'exception_cursor': {'type': 'string', 'description': 'pages pm_exceptions.'}, 'judgement_cursor': {'type': 'string', 'description': 'pages needs_judgement.'}, 'operational_block_cursor': {'type': 'string', 'description': 'work_queue: pages operational_blocks.'}}}
출력 스키마
{'type': 'object', 'required': ['result'], 'properties': {'result': {}}}
입력 스키마
{'type': 'object', 'required': ['mode'], 'properties': {'mode': {'enum': ['apply', 'create', 'rename', 'delete', 'generate_nodes', 'create_node', 'update_node', 'delete_node', 'anchor', 'create_edge', 'delete_edge', 'metric_bind', 'metric_update', 'preview_claim_snipes', 'sync_claim_snipes', 'regroup', 'link_claims'], 'type': 'string', 'description': 'Notes per mode in meta.guidance.'}, 'name': {'type': 'string', 'maxLength': 200, 'description': 'Map, node, or metric name.'}, 'note': {'type': 'string', 'maxLength': 500, 'description': 'link_claims: rationale stored on every link.'}, 'label': {'type': 'string', 'maxLength': 100}, 'level': {'type': 'number', 'maximum': 5, 'minimum': 1, 'description': 'Node hierarchy depth.'}, 'map_id': {'type': 'string', 'format': 'uuid', 'description': 'Map UUID.'}, 'anchors': {'type': 'array', 'items': {'type': 'object', 'properties': {'node_id': {'type': 'string', 'format': 'uuid'}, 'claim_id': {'type': 'string', 'format': 'uuid'}}}, 'maxItems': 200, 'description': 'Batch claim anchors.'}, 'edge_id': {'type': 'string', 'format': 'uuid', 'description': 'Edge UUID for delete_edge mode.'}, 'node_id': {'type': 'string', 'format': 'uuid', 'description': 'Node UUID.'}, 'preview': {'type': 'boolean', 'description': 'regroup: read-only preview â\x80\x94 ALWAYS run it first.'}, 'branches': {'type': 'array', 'items': {'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'maxLength': 200}, 'claim_ids': {'type': 'array', 'items': {'type': 'string', 'format': 'uuid'}, 'maxItems': 500}, 'description': {'type': 'string', 'maxLength': 2000, 'description': 'Branch description.'}}}, 'maxItems': 50, 'description': 'Branches for apply mode.'}, 'claim_id': {'type': 'string', 'format': 'uuid', 'description': 'Claim UUID â\x80\x94 resolve names with atisbo_lookup mode=resolve first'}, 'map_type': {'enum': ['taxonomy', 'kpi_tree', 'ost', 'custom'], 'type': 'string'}, 'provider': {'type': 'string', 'description': 'Metric provider: posthog, amplitude, stripe, manualâ\x80¦'}, 'template': {'enum': ['taxonomy', 'metric_tree', 'goal_tree', 'opportunity_solution_tree', 'freeform'], 'type': 'string'}, 'claim_ids': {'type': 'array', 'items': {'type': 'string', 'format': 'uuid'}, 'maxItems': 200, 'description': 'link_claims: claims to place under node_id.'}, 'direction': {'enum': ['broader', 'specific'], 'type': 'string', 'description': 'regroup: broader merges; specific splits.'}, 'edge_type': {'enum': ['causal', 'sequential', 'associative'], 'type': 'string'}, 'new_level': {'type': 'number', 'maximum': 5, 'minimum': 1, 'description': 'New depth after a move.'}, 'parent_id': {'type': 'string', 'format': 'uuid', 'description': 'Parent node UUID.'}, 'binding_id': {'type': 'string', 'format': 'uuid', 'description': 'metric_update: binding to update (atisbo_lookup mode=get, metrics[].id).'}, 'event_name': {'type': 'string', 'maxLength': 200}, 'snippet_id': {'type': 'string', 'format': 'uuid'}, 'updated_at': {'type': 'string', 'format': 'date-time', 'description': 'metric_update: binding updated_at from your last read (stale edits fail).'}, 'assignments': {'type': 'array', 'items': {'type': 'object', 'properties': {'branchKey': {'type': 'string', 'maxLength': 120}, 'snippetId': {'type': 'string', 'format': 'uuid'}, 'branchName': {'type': 'string', 'maxLength': 200}, 'branch_key': {'type': 'string', 'maxLength': 120}, 'snippet_id': {'type': 'string', 'format': 'uuid'}, 'branch_name': {'type': 'string', 'maxLength': 200}}, 'description': 'One snippet per L2 branch: snippet_id + branch_key.'}, 'maxItems': 500}, 'description': {'type': 'string', 'maxLength': 2000, 'description': 'Map/node/branch description.'}, 'metric_name': {'type': 'string', 'maxLength': 200}, 'metric_type': {'enum': ['input', 'north_star', 'business_kpi'], 'type': 'string'}, 'target_value': {'type': 'number'}, 'current_value': {'type': 'number', 'description': "metric_update: today's value; same-day re-entry replaces it."}, 'grouping_mode': {'enum': ['classification', 'mece', 'tasks', 'journey', 'severity', 'custom'], 'type': 'string'}, 'new_parent_id': {'type': 'string', 'format': 'uuid', 'description': 'Move target parent; null promotes to root.'}, 'regroup_level': {'enum': ['conservative', 'moderate', 'aggressive'], 'type': 'string', 'description': 'regroup broader: merge aggressiveness.'}, 'source_map_id': {'type': 'string', 'format': 'uuid'}, 'branch_options': {'type': 'array', 'items': {'type': 'object', 'required': ['key', 'label'], 'properties': {'key': {'type': 'string', 'maxLength': 120}, 'label': {'type': 'string', 'maxLength': 200}}}, 'maxItems': 20}, 'source_node_id': {'type': 'string', 'format': 'uuid'}, 'target_node_id': {'type': 'string', 'format': 'uuid'}, 'workspace_wide': {'type': 'boolean', 'description': 'regroup: explicit YES to run WORKSPACE-WIDE (refused without it).'}, 'context_answers': {'type': 'object', 'properties': {}, 'description': 'Grounding answers for AI map generation.'}, 'historical_data': {'type': 'array', 'items': {'type': 'object', 'required': ['date', 'value'], 'properties': {'date': {'type': 'string'}, 'value': {'type': 'number'}}}, 'maxItems': 365, 'description': 'metric_update: full series REPLACEMENT (omit to append current_value).'}, 'time_range_days': {'type': 'number'}, 'target_threshold': {'type': 'number', 'maximum': 0.98, 'minimum': 0.5, 'description': 'regroup direction=specific: split threshold.'}}}
출력 스키마
{'type': 'object', 'properties': {'result': {}}}
입력 스키마
{'type': 'object', 'properties': {'mode': {'enum': ['snapshot', 'whats_new', 'strategy', 'integrations'], 'type': 'string', 'description': 'snapshot (alias: workspace) uses task; whats_new uses since_checkpoint; strategy/integrations need no IDs.'}, 'task': {'enum': ['triage', 'planning', 'operations', 'executive'], 'type': 'string', 'description': 'triage = untriaged inbox; planning = confirmed opportunities by priority; operations = signals & integrations; executive = KPIs & strategy.'}, 'depth': {'enum': ['summary', 'work'], 'type': 'string', 'description': 'summary (alias: brief) = compact fields; work = full context (default).'}, 'limit': {'type': 'number', 'minimum': 1, 'description': 'Max items. snapshot clamps to 20; whats_new to 50.'}, 'cursor': {'type': 'string', 'description': 'Pagination cursor.'}, 'since_checkpoint': {'type': 'string', 'description': 'ISO 8601 checkpoint for delta reads.'}}}
출력 스키마
{'type': 'object', 'required': ['result'], 'properties': {'result': {}}}
입력 스키마
{'type': 'object', 'required': ['problem'], 'properties': {'area': {'enum': ['ingestion', 'integrations', 'clustering', 'mcp', 'workspace', 'billing', 'unknown'], 'type': 'string', 'description': 'Narrows which checks run. Omit when unsure â\x80\x94 the full set costs the same round-trip.'}, 'problem': {'type': 'string', 'maxLength': 2000, 'minLength': 10, 'description': 'What went wrong, in your words. Do NOT paste customer feedback, document bodies or credentials â\x80\x94 this string IS filed if a report is created.'}, 'share_report': {'type': 'boolean', 'description': 'File a verdict-only report when the problem is not caller-side; false = diagnose only.'}, 'observed_error': {'type': 'string', 'maxLength': 1000, 'description': 'The failing error string VERBATIM â\x80\x94 diagnostics cannot see the failed call, so this is often the only evidence.'}}}
출력 스키마
{'type': 'object', 'required': ['data', 'meta'], 'properties': {'data': {'type': 'object', 'required': ['outcome', 'headline', 'explanation', 'findings', 'next_steps', 'reported'], 'properties': {'outcome': {'enum': ['resolved', 'answer', 'known_issue', 'captured'], 'type': 'string'}, 'findings': {'type': 'array', 'items': {'type': 'object', 'required': ['check', 'status', 'facts', 'detail'], 'properties': {'check': {'type': 'string'}, 'facts': {'type': 'object', 'properties': {}}, 'detail': {'type': 'string'}, 'status': {'enum': ['ok', 'warn', 'fail', 'skipped'], 'type': 'string'}, 'playbook': {'type': 'string'}}}}, 'headline': {'type': 'string'}, 'reported': {'type': 'boolean'}, 'report_id': {'type': 'string'}, 'next_steps': {'type': 'array', 'items': {'type': 'string'}}, 'explanation': {'type': 'string'}, 'known_issue': {'type': 'object', 'required': ['claim_id', 'title', 'status', 'affected_report_count'], 'properties': {'title': {'type': 'string'}, 'status': {'type': 'string'}, 'claim_id': {'type': 'string'}, 'affected_report_count': {'type': 'number'}}}}}, 'meta': {'type': 'object', 'required': ['tenant_plan', 'workspace_id', 'workspace_name', 'timestamp'], 'properties': {'persona': {'type': 'string'}, 'timestamp': {'type': 'string'}, 'tenant_plan': {'enum': ['free', 'pro', 'enterprise'], 'type': 'string'}, 'workspace_id': {'type': 'string'}, 'gates_applied': {'type': 'array', 'items': {'type': 'string'}}, 'scoring_model': {'type': 'string'}, 'workspace_name': {'type': 'string'}, 'contract_version': {'type': 'string'}}}}}
최근 도구 변경
유사한 MCP 서버
AIOProductOS MCP
Combines customer records, support conversations, feedback, product analytics, roadmaps, tasks, experiments, releases, and retent…
roadflow
Creates and shares roadmap graphs, and manages structured model registers containing parameters, observations, formulas, dictiona…
DeskMonitor
Supports workforce attendance, timesheets, employee management, team hours, productivity reporting, workload alerts, approvals, a…
Elasticflow
Provides a team workspace with tables, documents, workflow automation, dashboards, and analytics.
freedom-mcp
Supports company operations through commitments, teams, agents, customer evidence, leads, content workflows, spreadsheets, commer…
synter-ads
Manages cross-platform advertising campaigns, audiences, tracking, creative, landing pages, campaign audits, technology intellige…
synter-ads
Manages cross-platform advertising campaigns, audiences, tracking, creative, landing pages, campaign audits, technology intellige…
Stratalize Finance
Provides financial, macroeconomic, banking, credit, commodities, M&A, ESG, labor, and regulatory benchmarks for analysis and plan…