このMCPでできること
Analyzes SaaS and infrastructure stacks, finds lower-cost alternatives, compares vendor pricing, and produces savings or replacement plans.
ツール
入力スキーマ
{'type': 'object', 'required': ['services'], 'properties': {'services': {'type': 'array', 'items': {'type': 'object', 'required': ['vendor'], 'properties': {'name': {'type': 'string', 'maxLength': 200, 'description': 'detect.mjs output (ignored)'}, 'plan': {'type': 'string', 'maxLength': 100, 'description': "Their plan, e.g. 'Business Standard' (else read from the name or evidence)"}, 'seats': {'type': 'integer', 'maximum': 100000, 'minimum': 1, 'description': 'Paid seats'}, 'usage': {'type': 'object', 'properties': {'MAU': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'mau': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'mtu': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'apps': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'db_gb': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'files': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'seats': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'sites': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'videos': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'domains': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'inboxes': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'members': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'records': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'contacts': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'monitors': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'projects': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'sso_users': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'storage_gb': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'event_types': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'bandwidth_gb': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'history_days': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'sms_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'video_minutes': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'emails_per_day': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'vectors_stored': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'active_accounts': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'meeting_minutes': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'session_minutes': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'sso_connections': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'tasks_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'emails_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'errors_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'events_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'images_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'keywords_tracked': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'requests_per_day': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'scim_connections': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'tokens_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'call_participants': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'credits_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'gmv_usd_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'payouts_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'searches_per_hour': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'cpu_ms_per_request': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'disputes_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'proxy_gb_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'requests_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'searches_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'concurrent_sessions': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'pageviews_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'responses_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'tokens_in_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'characters_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'tokens_out_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'vcpu_hours_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'video_minutes_stored': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'credits_usd_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'gpu_seconds_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'revenue_usd_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'job_executions_per_day': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'object_reads_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'stream_hours_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'transactions_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'audio_minutes_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'browser_hours_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'cached_tokens_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'object_writes_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'phone_minutes_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'sandbox_hours_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'verifications_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'cache_commands_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'inbound_emails_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'job_executions_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'vector_queries_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'payout_volume_usd_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'vector_read_units_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'vector_write_units_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'video_minutes_delivered_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}}, 'description': 'Their usage, checked against each plan\'s caps (priced with published overage and add-ons). Units: seats, members, mau, emails_per_month, emails_per_day, contacts, domains, events_per_month, pageviews_per_month, errors_per_month, requests_per_month, requests_per_day, searches_per_month, cpu_ms_per_request, db_gb, storage_gb, bandwidth_gb, projects, sites, videos, video_minutes, responses_per_month, tasks_per_month, keywords_tracked, credits_per_month, history_days, apps, files, event_types, monitors, tokens_per_month, images_per_month, audio_minutes_per_month, characters_per_month, transactions_per_month, sandbox_hours_per_month, concurrent_sessions, session_minutes, call_participants, meeting_minutes, records, inboxes, tokens_in_per_month, tokens_out_per_month, cached_tokens_per_month, video_minutes_stored, video_minutes_delivered_per_month, gmv_usd_per_month, payouts_per_month, active_accounts, verifications_per_month, browser_hours_per_month, proxy_gb_per_month, job_executions_per_month, sso_connections, sso_users, inbound_emails_per_month, stream_hours_per_month, vcpu_hours_per_month, credits_usd_per_month, disputes_per_month, payout_volume_usd_per_month, object_writes_per_month, object_reads_per_month, job_executions_per_day, scim_connections, searches_per_hour, sms_per_month, vectors_stored, vector_queries_per_month, cache_commands_per_month, mtu, gpu_seconds_per_month, revenue_usd_per_month, phone_minutes_per_month, vector_read_units_per_month, vector_write_units_per_month (MAU is accepted for mau). Example: {"emails_per_month": 40000, "domains": 4, "db_gb": 3}. get_usage_questions says which units matter for a vendor and where the user finds each number.', 'additionalProperties': False}, 'vendor': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': "Vendor id from the scan (e.g. 'sendgrid') or a product name as on the invoice ('Airtable', 'Slack Pro')"}, 'account': {'type': 'string', 'maxLength': 100, 'minLength': 1, 'description': "Billing account key (e.g. 'supabase-org-main'): lines with the same vendor and key share one bill; different keys are separate bills. Give the bill once"}, 'billing': {'type': 'object', 'properties': {'scope': {'enum': ['dedicated', 'shared', 'unknown'], 'type': 'string', 'maxLength': 2000}, 'source': {'type': 'string', 'maxLength': 1000, 'minLength': 1}, 'account_id': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'allocated_monthly_usd': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'avoidable_monthly_usd': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'avoidability_confirmed': {'type': 'boolean'}, 'commitment_months_remaining': {'type': 'number', 'maximum': 120, 'minimum': 0}}, 'description': 'Billing evidence: scope (dedicated, shared or unknown), account_id (a non-secret alias; the account key), allocated_monthly_usd (attribution only, never a saving), avoidable_monthly_usd with avoidability_confirmed (what leaving actually removes from the bill; 0 is valid), commitment_months_remaining (non-refundable months left; 0 only when cancellable now) and source (a reference, no private contents). With billing, a path is eligible only once the avoidable amount, scope, commitment and source are all given', 'additionalProperties': False}, 'project': {'type': 'string', 'maxLength': 100, 'minLength': 1, 'description': "Which of their projects or products this line is for (portfolio audits): lines of one vendor across projects are audited as one account. Give each project's own usage on its line and the account's bill once"}, 'category': {'type': 'string', 'maxLength': 100, 'description': 'detect.mjs output (ignored)'}, 'evidence': {'type': 'array', 'items': {'type': 'string', 'maxLength': 500}, 'maxItems': 50, 'description': "Scan evidence labels and usage facts in words ('db 1.5 GB', '40,000 emails/mo', '37 domains')"}, 'confirmed': {'type': 'boolean', 'description': 'true when the user confirmed they pay for this (with plan: its list price counts as confirmed spend). Scanner-only lines are unconfirmed'}, 'confidence': {'type': 'string', 'maxLength': 20, 'description': "detect.mjs output: 'low' (only a config file) means no paid plan is assumed"}, 'in_catalog': {'type': 'boolean', 'description': 'detect.mjs output (ignored)'}, 'service_id': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'A distinct bill when the same vendor appears more than once (an account key, like account; lines with the same key are one bill)'}, 'last_active': {'type': 'string', 'maxLength': 100, 'description': "When this resource (project, app, account) was last used: an ISO date ('2026-03-10'), 'never', or '5 months ago'. 90+ days idle or never used gets a cleanup lever"}, 'shared_with': {'type': 'integer', 'maximum': 100000, 'minimum': 1, 'description': "How many products share this bill (one account, org or team), when only this product is audited: moving one product off it saves only what it adds to the bill, never the whole bill. monthly_spend_usd is then the whole account's bill"}, 'active_users': {'type': 'number', 'maximum': 1000000000, 'minimum': 0, 'description': 'People or accounts active in the last 30 days (0 = unused: cleanup levers and sanity checks)'}, 'features_used': {'type': 'array', 'items': {'type': 'string', 'maxLength': 200}, 'maxItems': 50, 'description': "Features the code or the user relies on; sizes and counts ('4,000 contacts') are read as usage"}, 'feature_counts': {'type': 'array', 'items': {'type': 'object'}, 'maxItems': 100, 'description': 'detect.mjs output (ignored)'}, 'files_referencing': {'type': 'integer', 'maximum': 1000000000000, 'minimum': 0, 'description': 'detect.mjs output: marks the line as scan-only (unconfirmed); never read as usage'}, 'monthly_spend_usd': {'type': 'number', 'maximum': 1000000, 'minimum': 0, 'description': 'What they pay per month for it, all seats, if known'}, 'revenue_usd_per_month': {'type': 'number', 'maximum': 1000000000, 'minimum': 0, 'description': "The product's revenue per month (context for sanity checks: no revenue, cost per user, fees vs revenue; never a cap)"}, 'replacement_validation': {'type': 'object', 'required': ['path_id', 'capacity_and_price_confirmed', 'source'], 'properties': {'source': {'type': 'string', 'maxLength': 1000, 'minLength': 1, 'description': 'Where the check comes from (usage report, pricing page, quote); no private contents'}, 'path_id': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'The path id (from find_alternatives or audit_stack)'}, 'capacity_and_price_confirmed': {'type': 'boolean', 'description': 'true only after checking the price, capacity, burst limits and required add-ons'}}, 'description': "A replacement path the user checked themselves: its current price, capacity, burst limits and paid add-ons against their usage. It answers that path's capacity checks (never its must-haves) and ranks it first", 'additionalProperties': False}}, 'additionalProperties': False}, 'maxItems': 200, 'minItems': 1}, 'limit_paths': {'type': 'integer', 'default': 3, 'maximum': 8, 'minimum': 1}, 'active_users': {'type': 'number', 'maximum': 1000000000, 'minimum': 0, 'description': 'People or accounts active in the last 30 days (0 = unused: cleanup levers and sanity checks)'}, 'revenue_usd_per_month': {'type': 'number', 'maximum': 1000000000, 'minimum': 0, 'description': "The product's revenue per month (context for sanity checks: no revenue, cost per user, fees vs revenue; never a cap)"}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', 'required': ['needs'], 'properties': {'needs': {'type': 'array', 'items': {'type': 'object', 'required': ['job'], 'properties': {'job': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': "A job id from list_stack_jobs (llm_inference, image_generation_api, video_delivery, object_storage, sandbox_compute, browser_automation, job_queue, auth_b2b, email_inbound, identity_verification, marketplace_payouts, database, auth, hosting, email_transactional, …) or plain words ('send email', 'video hosting (HLS)', 'KYC'). Unknown or ambiguous jobs come back in unsupported_jobs, never as an error"}, 'volume': {'type': 'object', 'required': ['amount', 'unit'], 'properties': {'unit': {'enum': ['seats', 'members', 'mau', 'emails_per_month', 'emails_per_day', 'contacts', 'domains', 'events_per_month', 'pageviews_per_month', 'errors_per_month', 'requests_per_month', 'requests_per_day', 'searches_per_month', 'cpu_ms_per_request', 'db_gb', 'storage_gb', 'bandwidth_gb', 'projects', 'sites', 'videos', 'video_minutes', 'responses_per_month', 'tasks_per_month', 'keywords_tracked', 'credits_per_month', 'history_days', 'apps', 'files', 'event_types', 'monitors', 'tokens_per_month', 'images_per_month', 'audio_minutes_per_month', 'characters_per_month', 'transactions_per_month', 'sandbox_hours_per_month', 'concurrent_sessions', 'session_minutes', 'call_participants', 'meeting_minutes', 'records', 'inboxes', 'tokens_in_per_month', 'tokens_out_per_month', 'cached_tokens_per_month', 'video_minutes_stored', 'video_minutes_delivered_per_month', 'gmv_usd_per_month', 'payouts_per_month', 'active_accounts', 'verifications_per_month', 'browser_hours_per_month', 'proxy_gb_per_month', 'job_executions_per_month', 'sso_connections', 'sso_users', 'inbound_emails_per_month', 'stream_hours_per_month', 'vcpu_hours_per_month', 'credits_usd_per_month', 'disputes_per_month', 'payout_volume_usd_per_month', 'object_writes_per_month', 'object_reads_per_month', 'job_executions_per_day', 'scim_connections', 'searches_per_hour', 'sms_per_month', 'vectors_stored', 'vector_queries_per_month', 'cache_commands_per_month', 'mtu', 'gpu_seconds_per_month', 'revenue_usd_per_month', 'phone_minutes_per_month', 'vector_read_units_per_month', 'vector_write_units_per_month', 'MAU', 'tokens', 'tokens_in', 'tokens_out', 'cached_tokens', 'images', 'video_minutes_delivered', 'gb_stored', 'gb_egress', 'transactions', 'gmv_usd', 'sandbox_seconds', 'sandbox_hours', 'vm_hours', 'vcpu_hours', 'browser_hours', 'proxy_gb', 'job_executions', 'verifications', 'inbound_emails', 'emails', 'events', 'errors', 'exceptions', 'requests', 'pageviews', 'searches', 'payouts', 'credits_usd', 'stream_hours', 'audio_minutes', 'characters', 'payout_volume_usd', 'disputes', 'object_writes', 'object_reads', 'sms', 'vectors', 'vector_queries', 'cache_commands', 'gpu_seconds', 'gpu_hours', 'revenue_usd', 'phone_minutes'], 'type': 'string', 'maxLength': 2000, 'description': 'A units.json unit, or an alias: tokens_in, tokens_out, images, gb_stored, gb_egress, transactions, gmv_usd, sandbox_seconds, sandbox_hours, vcpu_hours, browser_hours, job_executions, verifications, inbound_emails, video_minutes_delivered, sso_connections, sso_users, emails, events, requests, credits_usd, MAU (= mau). *_per_month units are monthly, *_per_day daily, *_gb and video_minutes_stored are totals.'}, 'amount': {'type': 'number', 'maximum': 1000000000000000, 'minimum': 0}}, 'additionalProperties': False}, 'volumes': {'type': 'array', 'items': {'type': 'object', 'required': ['amount', 'unit'], 'properties': {'unit': {'enum': ['seats', 'members', 'mau', 'emails_per_month', 'emails_per_day', 'contacts', 'domains', 'events_per_month', 'pageviews_per_month', 'errors_per_month', 'requests_per_month', 'requests_per_day', 'searches_per_month', 'cpu_ms_per_request', 'db_gb', 'storage_gb', 'bandwidth_gb', 'projects', 'sites', 'videos', 'video_minutes', 'responses_per_month', 'tasks_per_month', 'keywords_tracked', 'credits_per_month', 'history_days', 'apps', 'files', 'event_types', 'monitors', 'tokens_per_month', 'images_per_month', 'audio_minutes_per_month', 'characters_per_month', 'transactions_per_month', 'sandbox_hours_per_month', 'concurrent_sessions', 'session_minutes', 'call_participants', 'meeting_minutes', 'records', 'inboxes', 'tokens_in_per_month', 'tokens_out_per_month', 'cached_tokens_per_month', 'video_minutes_stored', 'video_minutes_delivered_per_month', 'gmv_usd_per_month', 'payouts_per_month', 'active_accounts', 'verifications_per_month', 'browser_hours_per_month', 'proxy_gb_per_month', 'job_executions_per_month', 'sso_connections', 'sso_users', 'inbound_emails_per_month', 'stream_hours_per_month', 'vcpu_hours_per_month', 'credits_usd_per_month', 'disputes_per_month', 'payout_volume_usd_per_month', 'object_writes_per_month', 'object_reads_per_month', 'job_executions_per_day', 'scim_connections', 'searches_per_hour', 'sms_per_month', 'vectors_stored', 'vector_queries_per_month', 'cache_commands_per_month', 'mtu', 'gpu_seconds_per_month', 'revenue_usd_per_month', 'phone_minutes_per_month', 'vector_read_units_per_month', 'vector_write_units_per_month', 'MAU', 'tokens', 'tokens_in', 'tokens_out', 'cached_tokens', 'images', 'video_minutes_delivered', 'gb_stored', 'gb_egress', 'transactions', 'gmv_usd', 'sandbox_seconds', 'sandbox_hours', 'vm_hours', 'vcpu_hours', 'browser_hours', 'proxy_gb', 'job_executions', 'verifications', 'inbound_emails', 'emails', 'events', 'errors', 'exceptions', 'requests', 'pageviews', 'searches', 'payouts', 'credits_usd', 'stream_hours', 'audio_minutes', 'characters', 'payout_volume_usd', 'disputes', 'object_writes', 'object_reads', 'sms', 'vectors', 'vector_queries', 'cache_commands', 'gpu_seconds', 'gpu_hours', 'revenue_usd', 'phone_minutes'], 'type': 'string', 'maxLength': 2000, 'description': 'A units.json unit, or an alias: tokens_in, tokens_out, images, gb_stored, gb_egress, transactions, gmv_usd, sandbox_seconds, sandbox_hours, vcpu_hours, browser_hours, job_executions, verifications, inbound_emails, video_minutes_delivered, sso_connections, sso_users, emails, events, requests, credits_usd, MAU (= mau). *_per_month units are monthly, *_per_day daily, *_gb and video_minutes_stored are totals.'}, 'amount': {'type': 'number', 'maximum': 1000000000000000, 'minimum': 0}}, 'additionalProperties': False}, 'maxItems': 8, 'minItems': 1, 'description': "Several dimensions at once, e.g. [{amount: 15000000, unit: 'tokens_in'}, {amount: 7500000, unit: 'tokens_out'}]"}, 'features': {'type': 'array', 'items': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'maxItems': 20, 'description': "Must-haves, e.g. ['Custom domain', 'CAPTCHA solving', 'platform holds funds', 'refunds enabled', 'unbounded sessions', '2 vCPU / 4 GiB', 'gpt-6-sol']. Sizes and counts ('30 GB database') are checked as volumes; a model or plan name pins that model; SSO, SOC 2, audit logs and region needs are listed as unverified requirements"}, 'per_user': {'type': 'array', 'items': {'type': 'object', 'required': ['amount', 'unit'], 'properties': {'unit': {'enum': ['seats', 'members', 'mau', 'emails_per_month', 'emails_per_day', 'contacts', 'domains', 'events_per_month', 'pageviews_per_month', 'errors_per_month', 'requests_per_month', 'requests_per_day', 'searches_per_month', 'cpu_ms_per_request', 'db_gb', 'storage_gb', 'bandwidth_gb', 'projects', 'sites', 'videos', 'video_minutes', 'responses_per_month', 'tasks_per_month', 'keywords_tracked', 'credits_per_month', 'history_days', 'apps', 'files', 'event_types', 'monitors', 'tokens_per_month', 'images_per_month', 'audio_minutes_per_month', 'characters_per_month', 'transactions_per_month', 'sandbox_hours_per_month', 'concurrent_sessions', 'session_minutes', 'call_participants', 'meeting_minutes', 'records', 'inboxes', 'tokens_in_per_month', 'tokens_out_per_month', 'cached_tokens_per_month', 'video_minutes_stored', 'video_minutes_delivered_per_month', 'gmv_usd_per_month', 'payouts_per_month', 'active_accounts', 'verifications_per_month', 'browser_hours_per_month', 'proxy_gb_per_month', 'job_executions_per_month', 'sso_connections', 'sso_users', 'inbound_emails_per_month', 'stream_hours_per_month', 'vcpu_hours_per_month', 'credits_usd_per_month', 'disputes_per_month', 'payout_volume_usd_per_month', 'object_writes_per_month', 'object_reads_per_month', 'job_executions_per_day', 'scim_connections', 'searches_per_hour', 'sms_per_month', 'vectors_stored', 'vector_queries_per_month', 'cache_commands_per_month', 'mtu', 'gpu_seconds_per_month', 'revenue_usd_per_month', 'phone_minutes_per_month', 'vector_read_units_per_month', 'vector_write_units_per_month', 'MAU', 'tokens', 'tokens_in', 'tokens_out', 'cached_tokens', 'images', 'video_minutes_delivered', 'gb_stored', 'gb_egress', 'transactions', 'gmv_usd', 'sandbox_seconds', 'sandbox_hours', 'vm_hours', 'vcpu_hours', 'browser_hours', 'proxy_gb', 'job_executions', 'verifications', 'inbound_emails', 'emails', 'events', 'errors', 'exceptions', 'requests', 'pageviews', 'searches', 'payouts', 'credits_usd', 'stream_hours', 'audio_minutes', 'characters', 'payout_volume_usd', 'disputes', 'object_writes', 'object_reads', 'sms', 'vectors', 'vector_queries', 'cache_commands', 'gpu_seconds', 'gpu_hours', 'revenue_usd', 'phone_minutes'], 'type': 'string', 'maxLength': 2000, 'description': 'A units.json unit, or an alias: tokens_in, tokens_out, images, gb_stored, gb_egress, transactions, gmv_usd, sandbox_seconds, sandbox_hours, vcpu_hours, browser_hours, job_executions, verifications, inbound_emails, video_minutes_delivered, sso_connections, sso_users, emails, events, requests, credits_usd, MAU (= mau). *_per_month units are monthly, *_per_day daily, *_gb and video_minutes_stored are totals.'}, 'amount': {'type': 'number', 'maximum': 1000000000000000, 'minimum': 0}}, 'additionalProperties': False}, 'maxItems': 8, 'minItems': 1, 'description': "Volumes per monthly active user per month, e.g. [{amount: 6, unit: 'images'}]; multiplied by MAU (from scales, a mau volume or the project text)"}, 'peak_volume': {'type': 'object', 'required': ['amount', 'unit'], 'properties': {'unit': {'enum': ['emails_per_day', 'requests_per_day', 'requests_per_second'], 'type': 'string', 'maxLength': 2000}, 'amount': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}}, 'description': "Peak or burst requirement (1.6.0), e.g. {amount: 1500, unit: 'emails_per_day'} for a launch day. Checked against a tier's published daily cap where the index has one; otherwise it stays an open check (the index doesn't prove burst or rate limits), so no option is a plain fit", 'additionalProperties': False}, 'sandbox_size': {'type': 'object', 'properties': {'vcpu': {'type': 'number', 'maximum': 512, 'minimum': 0.1}, 'ram_gib': {'type': 'number', 'maximum': 4096, 'minimum': 0.1}}, 'description': 'Sandbox size for sandbox_compute', 'additionalProperties': False}, 'avg_amount_usd': {'type': 'number', 'maximum': 10000000, 'minimum': 0, 'description': 'Average payment in USD; with transactions it prices payment fees'}}, 'additionalProperties': False}, 'maxItems': 12, 'minItems': 1}, 'prefer': {'enum': ['cheapest', 'managed', 'open_source'], 'type': 'string', 'default': 'cheapest', 'maxLength': 2000, 'description': 'managed leaves out self-hosted options'}, 'scales': {'type': 'array', 'items': {'type': 'number', 'maximum': 1000000000, 'minimum': 0.001}, 'maxItems': 6, 'minItems': 1, 'description': 'Price the stack at several scales, e.g. [1000, 20000, 200000] MAU (scale_by mau) or [1, 10, 100] (scale_by multiplier): per-job cost curve, tier changes and break-even points between options'}, 'project': {'type': 'string', 'maxLength': 4000, 'description': "What is being built. Volumes written here ('1,200,000 preview images/mo', '20k MAU') are used and echoed as assumptions. Say 'personal' or 'hobby' if it is non-commercial; otherwise plans that forbid commercial use (e.g. Vercel Hobby) are blocked."}, 'scale_by': {'enum': ['mau', 'multiplier'], 'type': 'string', 'default': 'mau', 'maxLength': 2000, 'description': 'mau: scales are monthly active users (per_user volumes × MAU; other monthly volumes and sizes grow in proportion to the MAU they were given at); multiplier: every monthly volume and size is multiplied'}, 'limit_per_job': {'type': 'integer', 'default': 4, 'maximum': 10, 'minimum': 1}, 'unit_economics': {'type': 'object', 'properties': {'billing': {'enum': ['monthly', 'one_time'], 'type': 'string', 'default': 'monthly', 'maxLength': 2000, 'description': 'one_time: price_usd per purchase, conversion_rate = purchases per MAU per month'}, 'price_usd': {'type': 'number', 'maximum': 1000000, 'minimum': 0, 'description': 'What a paying user pays'}, 'conversion_rate': {'type': 'number', 'maximum': 1, 'minimum': 0, 'description': 'Share of MAU who pay, e.g. 0.03'}, 'revenue_per_mau': {'type': 'number', 'maximum': 10000, 'minimum': 0, 'description': 'Average monthly revenue per MAU (instead of price_usd × conversion_rate)'}, 'variable_cost_alert_pct': {'type': 'number', 'default': 20, 'maximum': 100, 'minimum': 1, 'description': 'Flag jobs whose monthly cost is above this % of revenue'}}, 'description': 'Revenue model for gross margin per scale: price_usd with conversion_rate, or revenue_per_mau', 'additionalProperties': False}, 'budget_monthly_usd': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', 'required': ['vendor'], 'properties': {'plan': {'type': 'string', 'maxLength': 100, 'description': "Their plan, e.g. 'Essential' (else read from the vendor name)"}, 'limit': {'type': 'integer', 'default': 8, 'maximum': 20, 'minimum': 1}, 'seats': {'type': 'integer', 'maximum': 100000, 'minimum': 1, 'description': 'Paid seats; per-seat prices on both sides scale with it'}, 'usage': {'type': 'object', 'properties': {'MAU': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'mau': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'mtu': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'apps': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'db_gb': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'files': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'seats': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'sites': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'videos': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'domains': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'inboxes': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'members': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'records': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'contacts': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'monitors': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'projects': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'sso_users': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'storage_gb': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'event_types': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'bandwidth_gb': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'history_days': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'sms_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'video_minutes': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'emails_per_day': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'vectors_stored': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'active_accounts': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'meeting_minutes': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'session_minutes': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'sso_connections': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'tasks_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'emails_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'errors_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'events_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'images_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'keywords_tracked': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'requests_per_day': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'scim_connections': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'tokens_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'call_participants': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'credits_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'gmv_usd_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'payouts_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'searches_per_hour': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'cpu_ms_per_request': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'disputes_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'proxy_gb_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'requests_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'searches_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'concurrent_sessions': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'pageviews_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'responses_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'tokens_in_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'characters_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'tokens_out_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'vcpu_hours_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'video_minutes_stored': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'credits_usd_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'gpu_seconds_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'revenue_usd_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'job_executions_per_day': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'object_reads_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'stream_hours_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'transactions_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'audio_minutes_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'browser_hours_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'cached_tokens_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'object_writes_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'phone_minutes_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'sandbox_hours_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'verifications_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'cache_commands_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'inbound_emails_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'job_executions_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'vector_queries_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'payout_volume_usd_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'vector_read_units_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'vector_write_units_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'video_minutes_delivered_per_month': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}}, 'description': 'Their usage, checked against each plan\'s caps (priced with published overage and add-ons). Units: seats, members, mau, emails_per_month, emails_per_day, contacts, domains, events_per_month, pageviews_per_month, errors_per_month, requests_per_month, requests_per_day, searches_per_month, cpu_ms_per_request, db_gb, storage_gb, bandwidth_gb, projects, sites, videos, video_minutes, responses_per_month, tasks_per_month, keywords_tracked, credits_per_month, history_days, apps, files, event_types, monitors, tokens_per_month, images_per_month, audio_minutes_per_month, characters_per_month, transactions_per_month, sandbox_hours_per_month, concurrent_sessions, session_minutes, call_participants, meeting_minutes, records, inboxes, tokens_in_per_month, tokens_out_per_month, cached_tokens_per_month, video_minutes_stored, video_minutes_delivered_per_month, gmv_usd_per_month, payouts_per_month, active_accounts, verifications_per_month, browser_hours_per_month, proxy_gb_per_month, job_executions_per_month, sso_connections, sso_users, inbound_emails_per_month, stream_hours_per_month, vcpu_hours_per_month, credits_usd_per_month, disputes_per_month, payout_volume_usd_per_month, object_writes_per_month, object_reads_per_month, job_executions_per_day, scim_connections, searches_per_hour, sms_per_month, vectors_stored, vector_queries_per_month, cache_commands_per_month, mtu, gpu_seconds_per_month, revenue_usd_per_month, phone_minutes_per_month, vector_read_units_per_month, vector_write_units_per_month (MAU is accepted for mau). Example: {"emails_per_month": 40000, "domains": 4, "db_gb": 3}. get_usage_questions says which units matter for a vendor and where the user finds each number.', 'additionalProperties': False}, 'vendor': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': "Product name as on the invoice, e.g. 'Typeform', 'Slack Pro', 'HubSpot Sales Hub Starter'"}, 'billing': {'type': 'object', 'properties': {'scope': {'enum': ['dedicated', 'shared', 'unknown'], 'type': 'string', 'maxLength': 2000}, 'source': {'type': 'string', 'maxLength': 1000, 'minLength': 1}, 'account_id': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'allocated_monthly_usd': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'avoidable_monthly_usd': {'type': 'number', 'maximum': 1000000000000, 'minimum': 0}, 'avoidability_confirmed': {'type': 'boolean'}, 'commitment_months_remaining': {'type': 'number', 'maximum': 120, 'minimum': 0}}, 'description': 'Billing evidence: scope (dedicated, shared or unknown), account_id (a non-secret alias; the account key), allocated_monthly_usd (attribution only, never a saving), avoidable_monthly_usd with avoidability_confirmed (what leaving actually removes from the bill; 0 is valid), commitment_months_remaining (non-refundable months left; 0 only when cancellable now) and source (a reference, no private contents). With billing, a path is eligible only once the avoidable amount, scope, commitment and source are all given', 'additionalProperties': False}, 'evidence': {'type': 'array', 'items': {'type': 'string', 'maxLength': 500}, 'maxItems': 50, 'description': "Usage facts in words, read best effort: 'db 1.5 GB', '40,000 emails/mo', '37 domains', '3,000 MAU', 'shared by 40 projects'"}, 'confirmed': {'type': 'boolean', 'description': 'true when the user confirmed they pay for this (with plan: its list price counts as confirmed spend). Scanner-only lines are unconfirmed'}, 'last_active': {'type': 'string', 'maxLength': 100, 'description': "When this resource (project, app, account) was last used: an ISO date ('2026-03-10'), 'never', or '5 months ago'. 90+ days idle or never used gets a cleanup lever"}, 'shared_with': {'type': 'integer', 'maximum': 100000, 'minimum': 1, 'description': "How many products share this bill (one account, org or team), when only this product is audited: moving one product off it saves only what it adds to the bill, never the whole bill. monthly_spend_usd is then the whole account's bill"}, 'active_users': {'type': 'number', 'maximum': 1000000000, 'minimum': 0, 'description': 'People or accounts active in the last 30 days (0 = unused: cleanup levers and sanity checks)'}, 'features_used': {'type': 'array', 'items': {'type': 'string', 'maxLength': 200}, 'maxItems': 50, 'description': "Features they actually use; sizes and counts ('4,000 contacts', 'videos over 5 minutes') are read as usage"}, 'monthly_spend_usd': {'type': 'number', 'maximum': 1000000, 'minimum': 0, 'description': 'What they pay per month today, all seats (replaces the modeled baseline)'}, 'revenue_usd_per_month': {'type': 'number', 'maximum': 1000000000, 'minimum': 0, 'description': "The product's revenue per month (context for sanity checks: no revenue, cost per user, fees vs revenue; never a cap)"}, 'replacement_validation': {'type': 'object', 'required': ['path_id', 'capacity_and_price_confirmed', 'source'], 'properties': {'source': {'type': 'string', 'maxLength': 1000, 'minLength': 1, 'description': 'Where the check comes from (usage report, pricing page, quote); no private contents'}, 'path_id': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'The path id (from find_alternatives or audit_stack)'}, 'capacity_and_price_confirmed': {'type': 'boolean', 'description': 'true only after checking the price, capacity, burst limits and required add-ons'}}, 'description': "A replacement path the user checked themselves: its current price, capacity, burst limits and paid add-ons against their usage. It answers that path's capacity checks (never its must-haves) and ranks it first", 'additionalProperties': False}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', 'required': ['recipe_id'], 'properties': {'recipe_id': {'type': 'string', 'maxLength': 200, 'minLength': 1}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', 'required': [], 'properties': {'vendors': {'type': 'array', 'items': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'maxItems': 200, 'description': 'Only these vendors, by id or name (default: all)'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', 'required': ['service'], 'properties': {'service': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': "The subscription, e.g. 'YouTube TV', 'Adobe Creative Cloud', 'disneyplus.com'"}, 'billed_by': {'enum': ['direct_web', 'direct_app', 'apple_app_store', 'google_play', 'amazon', 'roku', 'paypal', 'carrier_or_isp', 'reseller_or_partner', 'sales_contract', 'unknown'], 'type': 'string', 'maxLength': 2000, 'description': "Who charges them (their card statement or receipt says): the company itself (direct_web), Apple, Google Play, Amazon, a phone/TV provider, a partner, or a business contract. Leave out or 'unknown' to get every route and the question to ask"}, 'renewal_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'maxLength': 2000, 'description': 'Next renewal date, YYYY-MM-DD: adds the last safe day to cancel from the documented notice period'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', 'required': ['code'], 'properties': {'code': {'type': 'string', 'maxLength': 200, 'description': 'The agent code from stackcut.io, e.g. sca_…'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': "Recipe id from search_recipes, e.g. 'crm-pipeline'"}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', 'required': ['vendors'], 'properties': {'context': {'type': 'string', 'maxLength': 2000, 'description': "Optional: what is already known, in words (e.g. 'about 40,000 emails/mo, 4 domains'); units it states are marked as given and not asked again"}, 'vendors': {'type': 'array', 'items': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'maxItems': 30, 'minItems': 1, 'description': "Vendors they pay for, by name or id, e.g. ['Resend', 'Supabase Pro']"}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': "Workflow id from search_workflow_recipes, e.g. 'portfolio-shared-billing'"}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', 'required': [], 'properties': {'limit': {'type': 'integer', 'default': 10, 'maximum': 50, 'minimum': 1}, 'metric': {'enum': ['savings', 'payback', 'popular'], 'type': 'string', 'default': 'savings', 'maxLength': 2000}, 'category': {'type': 'string', 'maxLength': 100, 'minLength': 1}, 'path_type': {'enum': ['switch', 'downgrade', 'open_source', 'per_use', 'agent_skill', 'build', 'bundled'], 'type': 'string', 'maxLength': 2000}, 'include_partial': {'type': 'boolean', 'default': False}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', 'required': [], 'properties': {}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', 'required': [], 'properties': {}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', 'required': ['spec'], 'properties': {'spec': {'type': 'string', 'maxLength': 20000, 'minLength': 1, 'description': 'The product brief (markdown or plain text, up to 20,000 characters): what it does, who uses it, how it makes money, any numbers you know (users, conversion, prices, volumes). Never paste secrets or personal data.'}, 'prefer': {'enum': ['cheapest', 'managed', 'open_source'], 'type': 'string', 'default': 'cheapest', 'maxLength': 2000}, 'scales': {'type': 'array', 'items': {'type': 'number', 'maximum': 1000000000, 'minimum': 1}, 'default': [1000, 20000, 200000], 'maxItems': 5, 'minItems': 1, 'description': 'MAU targets to price, default [1000, 20000, 200000]'}, 'add_jobs': {'type': 'array', 'items': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'maxItems': 12, 'description': "Jobs to add that the brief doesn't mention"}, 'overrides': {'type': 'array', 'items': {'type': 'object', 'required': ['job', 'unit', 'amount'], 'properties': {'job': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'unit': {'enum': ['seats', 'members', 'mau', 'emails_per_month', 'emails_per_day', 'contacts', 'domains', 'events_per_month', 'pageviews_per_month', 'errors_per_month', 'requests_per_month', 'requests_per_day', 'searches_per_month', 'cpu_ms_per_request', 'db_gb', 'storage_gb', 'bandwidth_gb', 'projects', 'sites', 'videos', 'video_minutes', 'responses_per_month', 'tasks_per_month', 'keywords_tracked', 'credits_per_month', 'history_days', 'apps', 'files', 'event_types', 'monitors', 'tokens_per_month', 'images_per_month', 'audio_minutes_per_month', 'characters_per_month', 'transactions_per_month', 'sandbox_hours_per_month', 'concurrent_sessions', 'session_minutes', 'call_participants', 'meeting_minutes', 'records', 'inboxes', 'tokens_in_per_month', 'tokens_out_per_month', 'cached_tokens_per_month', 'video_minutes_stored', 'video_minutes_delivered_per_month', 'gmv_usd_per_month', 'payouts_per_month', 'active_accounts', 'verifications_per_month', 'browser_hours_per_month', 'proxy_gb_per_month', 'job_executions_per_month', 'sso_connections', 'sso_users', 'inbound_emails_per_month', 'stream_hours_per_month', 'vcpu_hours_per_month', 'credits_usd_per_month', 'disputes_per_month', 'payout_volume_usd_per_month', 'object_writes_per_month', 'object_reads_per_month', 'job_executions_per_day', 'scim_connections', 'searches_per_hour', 'sms_per_month', 'vectors_stored', 'vector_queries_per_month', 'cache_commands_per_month', 'mtu', 'gpu_seconds_per_month', 'revenue_usd_per_month', 'phone_minutes_per_month', 'vector_read_units_per_month', 'vector_write_units_per_month', 'MAU', 'tokens', 'tokens_in', 'tokens_out', 'cached_tokens', 'images', 'video_minutes_delivered', 'gb_stored', 'gb_egress', 'transactions', 'gmv_usd', 'sandbox_seconds', 'sandbox_hours', 'vm_hours', 'vcpu_hours', 'browser_hours', 'proxy_gb', 'job_executions', 'verifications', 'inbound_emails', 'emails', 'events', 'errors', 'exceptions', 'requests', 'pageviews', 'searches', 'payouts', 'credits_usd', 'stream_hours', 'audio_minutes', 'characters', 'payout_volume_usd', 'disputes', 'object_writes', 'object_reads', 'sms', 'vectors', 'vector_queries', 'cache_commands', 'gpu_seconds', 'gpu_hours', 'revenue_usd', 'phone_minutes'], 'type': 'string', 'maxLength': 2000}, 'basis': {'enum': ['per_user', 'total'], 'type': 'string', 'default': 'per_user', 'maxLength': 2000}, 'amount': {'type': 'number', 'maximum': 1000000000000000, 'minimum': 0}}, 'additionalProperties': False}, 'maxItems': 40, 'description': 'Edit the derived assumptions: a volume per MAU per month (per_user) or a fixed monthly total for a job'}, 'exclude_jobs': {'type': 'array', 'items': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'maxItems': 20, 'description': 'Derived jobs to drop (job ids)'}, 'limit_per_job': {'type': 'integer', 'default': 3, 'maximum': 10, 'minimum': 1}, 'unit_economics': {'type': 'object', 'properties': {'billing': {'enum': ['monthly', 'one_time'], 'type': 'string', 'default': 'monthly', 'maxLength': 2000, 'description': 'one_time: price_usd per purchase, conversion_rate = purchases per MAU per month'}, 'price_usd': {'type': 'number', 'maximum': 1000000, 'minimum': 0, 'description': 'What a paying user pays'}, 'conversion_rate': {'type': 'number', 'maximum': 1, 'minimum': 0, 'description': 'Share of MAU who pay, e.g. 0.03'}, 'revenue_per_mau': {'type': 'number', 'maximum': 10000, 'minimum': 0, 'description': 'Average monthly revenue per MAU (instead of price_usd × conversion_rate)'}, 'variable_cost_alert_pct': {'type': 'number', 'default': 20, 'maximum': 100, 'minimum': 1, 'description': 'Flag jobs whose monthly cost is above this % of revenue'}}, 'description': 'Revenue model for gross margin per scale: price_usd with conversion_rate, or revenue_per_mau', 'additionalProperties': False}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', 'required': ['service', 'billed_by', 'outcome'], 'properties': {'step': {'type': 'integer', 'maximum': 50, 'minimum': 1, 'description': 'For blocked or steps_changed: the step number where it stopped matching'}, 'outcome': {'enum': ['cancelled', 'kept_for_less', 'blocked', 'steps_changed'], 'type': 'string', 'maxLength': 2000}, 'service': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'The service, as passed to get_exit_plan'}, 'billed_by': {'enum': ['direct_web', 'direct_app', 'apple_app_store', 'google_play', 'amazon', 'roku', 'paypal', 'carrier_or_isp', 'reseller_or_partner', 'sales_contract'], 'type': 'string', 'maxLength': 2000}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', 'required': ['recipe_id', 'path_id', 'outcome'], 'properties': {'outcome': {'enum': ['picked', 'switched', 'reverted'], 'type': 'string', 'maxLength': 2000}, 'path_id': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'recipe_id': {'type': 'string', 'maxLength': 200, 'minLength': 1}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', 'required': [], 'properties': {'limit': {'type': 'integer', 'default': 20, 'maximum': 100, 'minimum': 1}, 'query': {'type': 'string', 'maxLength': 200, 'description': "A name or domain, e.g. 'peacock', 'vpn'"}, 'category': {'enum': ['streaming_video', 'music_audio', 'news_magazines', 'dating', 'cloud_storage', 'productivity', 'ai_tools', 'design_creative', 'developer_tools', 'marketing_sales', 'communication', 'security_privacy', 'education_learning', 'health_fitness', 'gaming', 'shopping_memberships', 'finance_apps', 'other_digital'], 'type': 'string', 'maxLength': 2000}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', 'required': [], 'properties': {'sort': {'enum': ['savings', 'popular', 'relevance'], 'type': 'string', 'default': 'relevance', 'maxLength': 2000}, 'limit': {'type': 'integer', 'default': 10, 'maximum': 25, 'minimum': 1}, 'query': {'type': 'string', 'maxLength': 300, 'description': "Free text, e.g. 'client approval portal' or 'semrush backlinks'"}, 'vendor': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': "Product currently paid for, e.g. 'Airtable', 'Salesforce', 'Semrush Pro'"}, 'feature': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': "A feature they rely on, e.g. 'rank tracking', 'e-signatures'"}, 'category': {'type': 'string', 'maxLength': 100, 'minLength': 1, 'description': "Category name from list_categories, e.g. 'CRM', 'SEO data'"}, 'path_type': {'enum': ['switch', 'downgrade', 'open_source', 'per_use', 'agent_skill', 'build', 'bundled'], 'type': 'string', 'maxLength': 2000, 'description': 'Only recipes offering this kind of replacement'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', 'required': [], 'properties': {'limit': {'type': 'integer', 'default': 10, 'maximum': 25, 'minimum': 1}, 'query': {'type': 'string', 'maxLength': 500, 'description': "The job in words, e.g. 'shared billing across projects' or 'queue retries worker'"}, 'vendor': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': "Only runbooks tagged for this vendor id, e.g. 'stripe', 'supabase'"}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', 'required': [], 'properties': {'vendors': {'type': 'array', 'items': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'maxItems': 200, 'minItems': 1, 'description': "A first pass without a manifest: the tools the team pays for, e.g. ['Notion', 'Asana', 'Loom']."}, 'decision': {'enum': ['cut_spend', 'consolidate', 'replace_one', 'choose_stack', 'check_in'], 'type': 'string', 'maxLength': 2000, 'description': 'With vendors: what the audit is for (default cut_spend).'}, 'manifest': {'type': 'object', 'description': "A stack manifest (JSON Schema at https://stackcut.io/schemas/stack-manifest-1.json; manifest_version '1'): goal, org, builder, services (vendor, plan, monthly_spend_usd, seats, active_users, features_used, usage, renewal_date, …), workflows, unknowns."}, 'team_size': {'type': 'integer', 'maximum': 1000000, 'minimum': 1, 'description': 'With vendors: people on the team.'}, 'max_questions': {'type': 'integer', 'maximum': 20, 'minimum': 1, 'description': 'Most questions to return (default 8).'}}, 'additionalProperties': False}
最近のツール変更
類似のMCPサーバー
shiply
Publishes and manages web applications with SQL databases, serverless functions, domains, email tests, client intake, contracts, …
ALM X++ MCP Server
Supports D365 Finance and Operations development with X++ and AOT search, code analysis, Azure DevOps workflows, telemetry querie…
SubmitraX
Manages forms, submissions, webhooks, workspaces, templates, exports, and public form rendering for static sites.
Boat House
Deploys and operates small containerized web applications with releases, rollbacks, persistent data, access controls, secrets, bi…
N8n
Lists n8n workflows, retrieves workflow configuration, and reviews recent workflow execution history for a user-provided n8n inst…
ShipMyForm
Creates hosted or embeddable web form endpoints, manages submissions, exports data, and routes submissions to email, webhooks, an…
Power Automate MCP Server by Flow Studio
Builds, updates, runs, monitors, debugs, and governs Microsoft Power Automate flows, environments, connectors, and run histories.
furrow-forms
Provisions and manages form backends for websites, including form definitions, embed snippets, submissions, email notifications, …