このMCPでできること
Provides deterministic preflight and optimization services for SQL changes, package installation, payments, invoices, OpenAPI integrations, and resource allocation.
ツール
入力スキーマ
{'type': 'object', 'anyOf': [{'type': 'object', 'required': ['problem_type', 'objective', 'sources', 'demands', 'lanes'], 'properties': {'lanes': {'type': 'array', 'items': {'type': 'object', 'required': ['source_id', 'demand_id', 'unit_cost'], 'properties': {'demand_id': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 128, 'minLength': 1}, 'source_id': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 128, 'minLength': 1}, 'unit_cost': {'type': 'string', 'pattern': '^(0|[1-9][0-9]{0,14})(\\.[0-9]{1,6})?$', 'description': 'Nonnegative decimal string, up to 15 integer digits and 6 fractional digits.'}, 'max_quantity': {'type': 'string', 'pattern': '^(?!0+(?:\\.0+)?$)(0|[1-9][0-9]{0,14})(\\.[0-9]{1,6})?$', 'description': 'Positive decimal string, up to 15 integer digits and 6 fractional digits.'}, 'min_quantity': {'type': 'string', 'pattern': '^(?!0+(?:\\.0+)?$)(0|[1-9][0-9]{0,14})(\\.[0-9]{1,6})?$', 'description': 'Positive decimal string, up to 15 integer digits and 6 fractional digits.'}}, 'additionalProperties': False}, 'maxItems': 4000, 'minItems': 1}, 'demands': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'requirement', 'satisfaction'], 'properties': {'id': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 128, 'minLength': 1}, 'requirement': {'type': 'string', 'pattern': '^(0|[1-9][0-9]{0,14})(\\.[0-9]{1,6})?$', 'description': 'Nonnegative decimal string, up to 15 integer digits and 6 fractional digits.'}, 'max_quantity': {'type': 'string', 'pattern': '^(0|[1-9][0-9]{0,14})(\\.[0-9]{1,6})?$', 'description': 'Nonnegative decimal string, up to 15 integer digits and 6 fractional digits.'}, 'satisfaction': {'anyOf': [{'type': 'string', 'const': 'exact'}, {'type': 'string', 'const': 'at_least'}]}}, 'additionalProperties': False}, 'maxItems': 500, 'minItems': 1}, 'sources': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'capacity'], 'properties': {'id': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 128, 'minLength': 1}, 'capacity': {'type': 'string', 'pattern': '^(0|[1-9][0-9]{0,14})(\\.[0-9]{1,6})?$', 'description': 'Nonnegative decimal string, up to 15 integer digits and 6 fractional digits.'}, 'fixed_cost': {'type': 'string', 'pattern': '^(0|[1-9][0-9]{0,14})(\\.[0-9]{1,6})?$', 'description': 'Nonnegative decimal string, up to 15 integer digits and 6 fractional digits.'}, 'min_active_quantity': {'type': 'string', 'pattern': '^(?!0+(?:\\.0+)?$)(0|[1-9][0-9]{0,14})(\\.[0-9]{1,6})?$', 'description': 'Positive decimal string, up to 15 integer digits and 6 fractional digits.'}}, 'additionalProperties': False}, 'maxItems': 500, 'minItems': 1}, 'objective': {'type': 'string', 'const': 'minimize_total_cost'}, 'problem_type': {'type': 'string', 'const': 'allocation'}, 'concentration': {'type': 'object', 'required': ['basis', 'max_share_bps'], 'properties': {'basis': {'anyOf': [{'type': 'string', 'const': 'quantity'}, {'type': 'string', 'const': 'spend'}]}, 'max_share_bps': {'type': 'integer', 'maximum': 10000, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}, {'type': 'object', 'required': ['problem_type', 'objective', 'tasks', 'resources', 'pairs'], 'properties': {'pairs': {'type': 'array', 'items': {'type': 'object', 'required': ['task_id', 'resource_id', 'cost_or_value'], 'properties': {'task_id': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 128, 'minLength': 1}, 'consumption': {'type': 'string', 'pattern': '^(?!0+(?:\\.0+)?$)(0|[1-9][0-9]{0,14})(\\.[0-9]{1,6})?$', 'description': 'Positive decimal string, up to 15 integer digits and 6 fractional digits.'}, 'resource_id': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 128, 'minLength': 1}, 'cost_or_value': {'type': 'string', 'pattern': '^(0|[1-9][0-9]{0,14})(\\.[0-9]{1,6})?$', 'description': 'Nonnegative decimal string, up to 15 integer digits and 6 fractional digits.'}}, 'additionalProperties': False}, 'maxItems': 4000, 'minItems': 1}, 'tasks': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'required'], 'properties': {'id': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 128, 'minLength': 1}, 'required': {'type': 'boolean'}, 'max_assignments': {'type': 'integer', 'maximum': 500, 'minimum': 1}}, 'additionalProperties': False}, 'maxItems': 500, 'minItems': 1}, 'objective': {'anyOf': [{'type': 'string', 'const': 'minimize_total_cost'}, {'type': 'string', 'const': 'maximize_total_value'}]}, 'resources': {'type': 'array', 'items': {'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 128, 'minLength': 1}, 'capacity': {'type': 'string', 'pattern': '^(?!0+(?:\\.0+)?$)(0|[1-9][0-9]{0,14})(\\.[0-9]{1,6})?$', 'description': 'Positive decimal string, up to 15 integer digits and 6 fractional digits.'}}, 'additionalProperties': False}, 'maxItems': 500, 'minItems': 1}, 'problem_type': {'type': 'string', 'const': 'assignment'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['problem_type', 'objective', 'options', 'budgets'], 'properties': {'budgets': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'capacity'], 'properties': {'id': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 128, 'minLength': 1}, 'capacity': {'type': 'string', 'pattern': '^(0|[1-9][0-9]{0,14})(\\.[0-9]{1,6})?$', 'description': 'Nonnegative decimal string, up to 15 integer digits and 6 fractional digits.'}}, 'additionalProperties': False}, 'maxItems': 500, 'minItems': 1}, 'options': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'value'], 'properties': {'id': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 128, 'minLength': 1}, 'value': {'type': 'string', 'pattern': '^(0|[1-9][0-9]{0,14})(\\.[0-9]{1,6})?$', 'description': 'Nonnegative decimal string, up to 15 integer digits and 6 fractional digits.'}, 'forbidden': {'type': 'boolean'}, 'mandatory': {'type': 'boolean'}, 'resource_consumption': {'type': 'array', 'items': {'type': 'object', 'required': ['budget_id', 'amount'], 'properties': {'amount': {'type': 'string', 'pattern': '^(0|[1-9][0-9]{0,14})(\\.[0-9]{1,6})?$', 'description': 'Nonnegative decimal string, up to 15 integer digits and 6 fractional digits.'}, 'budget_id': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 128, 'minLength': 1}}, 'additionalProperties': False}, 'maxItems': 500}}, 'additionalProperties': False}, 'maxItems': 500, 'minItems': 1}, 'objective': {'anyOf': [{'type': 'string', 'const': 'maximize_total_value'}, {'type': 'string', 'const': 'minimize_total_cost'}]}, 'cardinality': {'type': 'object', 'properties': {'max_selected': {'type': 'integer', 'maximum': 500, 'minimum': 0}, 'min_selected': {'type': 'integer', 'maximum': 500, 'minimum': 0}}, 'additionalProperties': False}, 'dependencies': {'type': 'array', 'items': {'type': 'object', 'required': ['option_id', 'relation', 'related_option_id'], 'properties': {'relation': {'anyOf': [{'type': 'string', 'const': 'requires'}, {'type': 'string', 'const': 'excludes'}]}, 'option_id': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 128, 'minLength': 1}, 'related_option_id': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 128, 'minLength': 1}}, 'additionalProperties': False}, 'maxItems': 2000}, 'problem_type': {'type': 'string', 'const': 'selection'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['problem_type', 'objective', 'activities', 'resources'], 'properties': {'objective': {'anyOf': [{'type': 'string', 'const': 'maximize_total_value'}, {'type': 'string', 'const': 'minimize_total_cost'}]}, 'resources': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'capacity'], 'properties': {'id': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 128, 'minLength': 1}, 'capacity': {'type': 'string', 'pattern': '^(0|[1-9][0-9]{0,14})(\\.[0-9]{1,6})?$', 'description': 'Nonnegative decimal string, up to 15 integer digits and 6 fractional digits.'}}, 'additionalProperties': False}, 'maxItems': 500, 'minItems': 1}, 'activities': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'domain', 'unit_value'], 'properties': {'id': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 128, 'minLength': 1}, 'domain': {'anyOf': [{'type': 'string', 'const': 'continuous'}, {'type': 'string', 'const': 'integer'}]}, 'fixed_cost': {'type': 'string', 'pattern': '^(0|[1-9][0-9]{0,14})(\\.[0-9]{1,6})?$', 'description': 'Nonnegative decimal string, up to 15 integer digits and 6 fractional digits.'}, 'unit_value': {'type': 'string', 'pattern': '^(0|[1-9][0-9]{0,14})(\\.[0-9]{1,6})?$', 'description': 'Nonnegative decimal string, up to 15 integer digits and 6 fractional digits.'}, 'max_quantity': {'type': 'string', 'pattern': '^(0|[1-9][0-9]{0,14})(\\.[0-9]{1,6})?$', 'description': 'Nonnegative decimal string, up to 15 integer digits and 6 fractional digits.'}, 'min_quantity': {'type': 'string', 'pattern': '^(0|[1-9][0-9]{0,14})(\\.[0-9]{1,6})?$', 'description': 'Nonnegative decimal string, up to 15 integer digits and 6 fractional digits.'}, 'resource_consumption': {'type': 'array', 'items': {'type': 'object', 'required': ['resource_id', 'amount'], 'properties': {'amount': {'type': 'string', 'pattern': '^(?!0+(?:\\.0+)?$)(0|[1-9][0-9]{0,14})(\\.[0-9]{1,6})?$', 'description': 'Positive decimal string, up to 15 integer digits and 6 fractional digits.'}, 'resource_id': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 128, 'minLength': 1}}, 'additionalProperties': False}, 'maxItems': 200}}, 'additionalProperties': False}, 'maxItems': 500, 'minItems': 1}, 'problem_type': {'type': 'string', 'const': 'mix'}}, 'additionalProperties': False}]}
出力スキーマ
{'type': 'object', 'required': ['status', 'machine_action', 'problem_type', 'economics', 'quality', 'evidence', 'diagnostics'], 'properties': {'status': {'anyOf': [{'type': 'string', 'const': 'OPTIMAL'}, {'type': 'string', 'const': 'FEASIBLE'}, {'type': 'string', 'const': 'INFEASIBLE'}, {'type': 'string', 'const': 'UNBOUNDED'}, {'type': 'string', 'const': 'NO_SOLUTION'}]}, 'quality': {'type': 'object', 'required': ['semantic_feasibility_verified', 'solver_optimality', 'solution_uniqueness'], 'properties': {'best_bound': {'type': 'string'}, 'absolute_gap': {'type': 'string'}, 'relative_gap': {'type': 'string'}, 'solver_optimality': {'anyOf': [{'type': 'string', 'const': 'optimal_within_profile_tolerance'}, {'type': 'string', 'const': 'time_limit_with_incumbent'}, {'type': 'string', 'const': 'not_applicable'}]}, 'solution_uniqueness': {'type': 'string', 'const': 'unknown'}, 'semantic_feasibility_verified': {'type': 'boolean'}}, 'additionalProperties': False}, 'decision': {'anyOf': [{'type': 'object', 'required': ['problem_type', 'lanes', 'source_activations'], 'properties': {'lanes': {'type': 'array', 'items': {'type': 'object', 'required': ['source_id', 'demand_id', 'quantity'], 'properties': {'quantity': {'type': 'string'}, 'demand_id': {'type': 'string'}, 'source_id': {'type': 'string'}}, 'additionalProperties': False}}, 'problem_type': {'type': 'string', 'const': 'allocation'}, 'source_activations': {'type': 'array', 'items': {'type': 'object', 'required': ['source_id', 'active'], 'properties': {'active': {'type': 'boolean'}, 'source_id': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': False}, {'type': 'object', 'required': ['problem_type', 'assignments', 'unassigned_tasks'], 'properties': {'assignments': {'type': 'array', 'items': {'type': 'object', 'required': ['task_id', 'resource_id'], 'properties': {'task_id': {'type': 'string'}, 'resource_id': {'type': 'string'}}, 'additionalProperties': False}}, 'problem_type': {'type': 'string', 'const': 'assignment'}, 'unassigned_tasks': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}, {'type': 'object', 'required': ['problem_type', 'selected_option_ids'], 'properties': {'problem_type': {'type': 'string', 'const': 'selection'}, 'selected_option_ids': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}, {'type': 'object', 'required': ['problem_type', 'activities'], 'properties': {'activities': {'type': 'array', 'items': {'type': 'object', 'required': ['activity_id', 'quantity', 'active'], 'properties': {'active': {'type': 'boolean'}, 'quantity': {'type': 'string'}, 'activity_id': {'type': 'string'}}, 'additionalProperties': False}}, 'problem_type': {'type': 'string', 'const': 'mix'}}, 'additionalProperties': False}]}, 'evidence': {'type': 'object', 'required': ['constraints_checked', 'constraints_violated', 'input_fingerprint', 'model_fingerprint', 'ruleset_version', 'solver', 'solver_version'], 'properties': {'solver': {'type': 'string', 'const': 'highs'}, 'solver_version': {'type': 'string'}, 'ruleset_version': {'type': 'string'}, 'input_fingerprint': {'type': 'string', 'pattern': '^v1:[0-9a-f]{64}$'}, 'model_fingerprint': {'type': 'string', 'pattern': '^v1:[0-9a-f]{64}$'}, 'constraints_checked': {'type': 'integer', 'minimum': 0}, 'constraints_violated': {'type': 'integer', 'minimum': 0}, 'decision_fingerprint': {'type': 'string', 'pattern': '^v1:[0-9a-f]{64}$'}}, 'additionalProperties': False}, 'economics': {'type': 'object', 'required': ['objective', 'sense'], 'properties': {'sense': {'anyOf': [{'type': 'string', 'const': 'minimize'}, {'type': 'string', 'const': 'maximize'}]}, 'objective': {'type': 'string'}, 'objective_value': {'type': 'string'}}, 'additionalProperties': False}, 'diagnostics': {'type': 'object', 'required': ['binding_constraints'], 'properties': {'binding_constraints': {'type': 'array', 'items': {'type': 'object', 'required': ['semantic_id', 'kind'], 'properties': {'kind': {'type': 'string'}, 'semantic_id': {'type': 'string'}}, 'additionalProperties': False}}, 'infeasibility_reason': {'type': 'string'}, 'infeasibility_shortfall': {'type': 'string'}}, 'additionalProperties': False}, 'problem_type': {'anyOf': [{'type': 'string', 'const': 'allocation'}, {'type': 'string', 'const': 'assignment'}, {'type': 'string', 'const': 'selection'}, {'type': 'string', 'const': 'mix'}]}, 'machine_action': {'anyOf': [{'type': 'string', 'const': 'CONSUME_OPTIMAL_DECISION'}, {'type': 'string', 'const': 'REVIEW_FEASIBLE_DECISION'}, {'type': 'string', 'const': 'REVISE_PROBLEM'}, {'type': 'string', 'const': 'DO_NOT_USE_DECISION'}]}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', 'required': ['match_mode', 'invoice', 'purchase_orders', 'receipts', 'evidence'], 'properties': {'policy': {'type': 'object', 'properties': {'quantity_match_mode': {'anyOf': [{'type': 'string', 'const': 'not_exceed_received'}, {'type': 'string', 'const': 'exact_received'}]}, 'block_currency_mismatch': {'type': 'boolean'}, 'block_supplier_mismatch': {'type': 'boolean'}, 'duplicate_invoice_action': {'anyOf': [{'type': 'string', 'const': 'ignore'}, {'type': 'string', 'const': 'review'}, {'type': 'string', 'const': 'block'}]}, 'require_receipt_evidence': {'type': 'boolean'}, 'unit_price_tolerance_bps': {'type': 'integer', 'maximum': 10000, 'minimum': 0}, 'line_total_tolerance_minor': {'type': 'string', 'pattern': '^(0|[1-9][0-9]{0,31})$', 'description': 'Nonnegative minor-unit integer amount as a decimal digit string, parsed exactly via BigInt.'}, 'block_quantity_over_ordered': {'type': 'boolean'}, 'block_quantity_over_received': {'type': 'boolean'}, 'invoice_total_tolerance_minor': {'type': 'string', 'pattern': '^(0|[1-9][0-9]{0,31})$', 'description': 'Nonnegative minor-unit integer amount as a decimal digit string, parsed exactly via BigInt.'}, 'require_complete_prior_invoicing': {'type': 'boolean'}, 'require_complete_receipt_snapshot': {'type': 'boolean'}}, 'additionalProperties': False}, 'invoice': {'type': 'object', 'required': ['id', 'invoice_number', 'currency', 'lines', 'subtotal_minor', 'total_minor'], 'properties': {'id': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 256, 'minLength': 1}, 'lines': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'purchase_order_id', 'po_line_id', 'quantity', 'unit_price_minor', 'line_net_minor'], 'properties': {'id': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 256, 'minLength': 1}, 'quantity': {'type': 'string', 'pattern': '^(?!0+(?:\\.0+)?$)(0|[1-9][0-9]{0,23})(\\.[0-9]{1,6})?$', 'description': 'Positive decimal quantity, up to 6 fractional digits.'}, 'po_line_id': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 256, 'minLength': 1}, 'line_net_minor': {'type': 'string', 'pattern': '^(0|[1-9][0-9]{0,31})$', 'description': 'Nonnegative minor-unit integer amount as a decimal digit string, parsed exactly via BigInt.'}, 'unit_of_measure': {'type': 'string', 'maxLength': 64, 'minLength': 1}, 'unit_price_minor': {'type': 'string', 'pattern': '^(0|[1-9][0-9]{0,31})$', 'description': 'Nonnegative minor-unit integer amount as a decimal digit string, parsed exactly via BigInt.'}, 'purchase_order_id': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 256, 'minLength': 1}, 'price_basis_quantity': {'type': 'string', 'pattern': '^(?!0+(?:\\.0+)?$)(0|[1-9][0-9]{0,23})(\\.[0-9]{1,6})?$', 'description': 'Positive decimal quantity, up to 6 fractional digits.'}}, 'additionalProperties': False}, 'maxItems': 250, 'minItems': 1}, 'currency': {'type': 'string', 'pattern': '^[A-Z]{3}$', 'description': 'ISO 4217-shaped currency code, uppercase ASCII letters only. Not validated against a live registry.'}, 'tax_minor': {'type': 'string', 'pattern': '^(0|[1-9][0-9]{0,31})$', 'description': 'Nonnegative minor-unit integer amount as a decimal digit string, parsed exactly via BigInt.'}, 'supplier_id': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 256, 'minLength': 1}, 'total_minor': {'type': 'string', 'pattern': '^(0|[1-9][0-9]{0,31})$', 'description': 'Nonnegative minor-unit integer amount as a decimal digit string, parsed exactly via BigInt.'}, 'charges_minor': {'type': 'string', 'pattern': '^(0|[1-9][0-9]{0,31})$', 'description': 'Nonnegative minor-unit integer amount as a decimal digit string, parsed exactly via BigInt.'}, 'discount_minor': {'type': 'string', 'pattern': '^(0|[1-9][0-9]{0,31})$', 'description': 'Nonnegative minor-unit integer amount as a decimal digit string, parsed exactly via BigInt.'}, 'invoice_number': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 256, 'minLength': 1}, 'shipping_minor': {'type': 'string', 'pattern': '^(0|[1-9][0-9]{0,31})$', 'description': 'Nonnegative minor-unit integer amount as a decimal digit string, parsed exactly via BigInt.'}, 'subtotal_minor': {'type': 'string', 'pattern': '^(0|[1-9][0-9]{0,31})$', 'description': 'Nonnegative minor-unit integer amount as a decimal digit string, parsed exactly via BigInt.'}}, 'additionalProperties': False}, 'evidence': {'type': 'object', 'required': ['receipts_complete', 'prior_invoicing_complete'], 'properties': {'receipts_as_of': {'type': 'string', 'maxLength': 64, 'description': 'RFC3339 timestamp. Evidence metadata only â\x80\x94 never independently verified for freshness (§6.6).'}, 'receipts_complete': {'type': 'boolean'}, 'prior_invoicing_as_of': {'type': 'string', 'maxLength': 64, 'description': 'RFC3339 timestamp. Evidence metadata only â\x80\x94 never independently verified for freshness (§6.6).'}, 'prior_invoicing_complete': {'type': 'boolean'}}, 'additionalProperties': False}, 'receipts': {'type': 'array', 'items': {'type': 'object', 'required': ['purchase_order_id', 'po_line_id', 'received_quantity'], 'properties': {'id': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 256, 'minLength': 1}, 'po_line_id': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 256, 'minLength': 1}, 'received_at': {'type': 'string', 'maxLength': 64, 'description': 'RFC3339 timestamp. Evidence metadata only â\x80\x94 never independently verified for freshness (§6.6).'}, 'purchase_order_id': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 256, 'minLength': 1}, 'received_quantity': {'type': 'string', 'pattern': '^(?!0+(?:\\.0+)?$)(0|[1-9][0-9]{0,23})(\\.[0-9]{1,6})?$', 'description': 'Positive decimal quantity, up to 6 fractional digits.'}}, 'additionalProperties': False}, 'maxItems': 2000}, 'match_mode': {'type': 'string', 'const': 'three_way'}, 'purchase_orders': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'currency', 'lines'], 'properties': {'id': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 256, 'minLength': 1}, 'lines': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'ordered_quantity', 'previously_invoiced_quantity', 'unit_price_minor'], 'properties': {'id': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 256, 'minLength': 1}, 'unit_of_measure': {'type': 'string', 'maxLength': 64, 'minLength': 1}, 'ordered_quantity': {'type': 'string', 'pattern': '^(?!0+(?:\\.0+)?$)(0|[1-9][0-9]{0,23})(\\.[0-9]{1,6})?$', 'description': 'Positive decimal quantity, up to 6 fractional digits.'}, 'unit_price_minor': {'type': 'string', 'pattern': '^(0|[1-9][0-9]{0,31})$', 'description': 'Nonnegative minor-unit integer amount as a decimal digit string, parsed exactly via BigInt.'}, 'price_basis_quantity': {'type': 'string', 'pattern': '^(?!0+(?:\\.0+)?$)(0|[1-9][0-9]{0,23})(\\.[0-9]{1,6})?$', 'description': 'Positive decimal quantity, up to 6 fractional digits.'}, 'previously_invoiced_quantity': {'type': 'string', 'pattern': '^(0|[1-9][0-9]{0,23})(\\.[0-9]{1,6})?$', 'description': 'Nonnegative decimal quantity, up to 6 fractional digits. "0" is required (not omission) for a line with no prior invoicing.'}}, 'additionalProperties': False}, 'maxItems': 1000, 'minItems': 1}, 'currency': {'type': 'string', 'pattern': '^[A-Z]{3}$', 'description': 'ISO 4217-shaped currency code, uppercase ASCII letters only. Not validated against a live registry.'}, 'supplier_id': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 256, 'minLength': 1}}, 'additionalProperties': False}, 'maxItems': 50, 'minItems': 1}, 'recent_invoices': {'type': 'array', 'items': {'type': 'object', 'required': ['invoice_number'], 'properties': {'currency': {'type': 'string', 'pattern': '^[A-Z]{3}$', 'description': 'ISO 4217-shaped currency code, uppercase ASCII letters only. Not validated against a live registry.'}, 'occurred_at': {'type': 'string', 'maxLength': 64, 'description': 'RFC3339 timestamp. Evidence metadata only â\x80\x94 never independently verified for freshness (§6.6).'}, 'supplier_id': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 256, 'minLength': 1}, 'total_minor': {'type': 'string', 'pattern': '^(0|[1-9][0-9]{0,31})$', 'description': 'Nonnegative minor-unit integer amount as a decimal digit string, parsed exactly via BigInt.'}, 'invoice_number': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 256, 'minLength': 1}}, 'additionalProperties': False}, 'maxItems': 500}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'required': ['decision', 'machine_action', 'reason_codes', 'ruleset_version', 'coverage', 'invoice', 'totals', 'line_results', 'checks', 'input_fingerprint'], 'properties': {'checks': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'status'], 'properties': {'id': {'type': 'string'}, 'status': {'anyOf': [{'type': 'string', 'const': 'PASS'}, {'type': 'string', 'const': 'REVIEW'}, {'type': 'string', 'const': 'BLOCK'}]}, 'evidence': {'type': 'object', 'patternProperties': {'^.*$': {}}}, 'po_line_id': {'type': 'string'}, 'reason_code': {'type': 'string'}, 'invoice_line_id': {'type': 'string'}, 'purchase_order_id': {'type': 'string'}}, 'additionalProperties': False}}, 'totals': {'type': 'object', 'required': ['declared_subtotal_minor', 'computed_subtotal_minor', 'declared_total_minor', 'computed_total_minor'], 'properties': {'computed_total_minor': {'type': 'string'}, 'declared_total_minor': {'type': 'string'}, 'computed_subtotal_minor': {'type': 'string'}, 'declared_subtotal_minor': {'type': 'string'}}, 'additionalProperties': False}, 'invoice': {'type': 'object', 'required': ['id', 'invoice_number', 'currency', 'lines_evaluated', 'purchase_orders_referenced'], 'properties': {'id': {'type': 'string'}, 'currency': {'type': 'string'}, 'supplier_id': {'type': 'string'}, 'invoice_number': {'type': 'string'}, 'lines_evaluated': {'type': 'integer', 'minimum': 0}, 'purchase_orders_referenced': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}, 'coverage': {'type': 'object', 'required': ['match_mode', 'complete_for_declared_scope', 'checks_performed', 'checks_not_performed', 'evidence'], 'properties': {'evidence': {'type': 'object', 'required': ['receipts_complete', 'prior_invoicing_complete', 'duplicate_history_supplied'], 'properties': {'receipts_complete': {'type': 'boolean'}, 'prior_invoicing_complete': {'type': 'boolean'}, 'duplicate_history_supplied': {'type': 'boolean'}}, 'additionalProperties': False}, 'match_mode': {'type': 'string', 'const': 'three_way'}, 'checks_performed': {'type': 'array', 'items': {'type': 'string'}}, 'checks_not_performed': {'type': 'array', 'items': {'type': 'string'}}, 'complete_for_declared_scope': {'type': 'boolean'}}, 'additionalProperties': False}, 'decision': {'anyOf': [{'type': 'string', 'const': 'PROCEED'}, {'type': 'string', 'const': 'REVIEW'}, {'type': 'string', 'const': 'BLOCK'}]}, 'line_results': {'type': 'array', 'items': {'type': 'object', 'required': ['invoice_line_id', 'purchase_order_id', 'po_line_id', 'decision', 'reason_codes'], 'properties': {'units': {'type': 'object', 'required': ['invoice_price_basis_quantity', 'po_price_basis_quantity'], 'properties': {'po_unit_of_measure': {'type': 'string'}, 'invoice_unit_of_measure': {'type': 'string'}, 'po_price_basis_quantity': {'type': 'string'}, 'invoice_price_basis_quantity': {'type': 'string'}}, 'additionalProperties': False}, 'pricing': {'type': 'object', 'required': ['po_unit_price_minor', 'invoice_unit_price_minor', 'absolute_delta_minor', 'tolerance_bps'], 'properties': {'tolerance_bps': {'type': 'integer', 'minimum': 0}, 'po_unit_price_minor': {'type': 'string'}, 'absolute_delta_minor': {'type': 'string'}, 'invoice_unit_price_minor': {'type': 'string'}}, 'additionalProperties': False}, 'decision': {'anyOf': [{'type': 'string', 'const': 'PROCEED'}, {'type': 'string', 'const': 'REVIEW'}, {'type': 'string', 'const': 'BLOCK'}]}, 'quantity': {'type': 'object', 'required': ['ordered', 'previously_invoiced', 'current_invoiced', 'cumulative_invoiced', 'cumulative_received', 'remaining_order_after_current', 'remaining_received_after_current'], 'properties': {'ordered': {'type': 'string'}, 'current_invoiced': {'type': 'string'}, 'cumulative_invoiced': {'type': 'string'}, 'cumulative_received': {'type': 'string'}, 'previously_invoiced': {'type': 'string'}, 'remaining_order_after_current': {'type': 'string', 'description': 'ordered - cumulative_invoiced, at the PO-line-group level. May be negative (see README).'}, 'remaining_received_after_current': {'type': 'string', 'description': 'cumulative_received - cumulative_invoiced, at the PO-line-group level. May be negative.'}}, 'additionalProperties': False}, 'po_line_id': {'type': 'string'}, 'reason_codes': {'type': 'array', 'items': {'type': 'string'}}, 'invoice_line_id': {'type': 'string'}, 'purchase_order_id': {'type': 'string'}}, 'additionalProperties': False}}, 'reason_codes': {'type': 'array', 'items': {'type': 'string'}}, 'machine_action': {'anyOf': [{'type': 'string', 'const': 'APPROVAL_NOT_BLOCKED_BY_MATCH'}, {'type': 'string', 'const': 'REQUIRE_REVIEW_BEFORE_APPROVAL'}, {'type': 'string', 'const': 'DO_NOT_APPROVE'}]}, 'ruleset_version': {'type': 'string', 'description': "Version of the reason-code catalog and policy defaults that produced this result, independent of the capability's own contract version. See RULESET_VERSION in rules.ts."}, 'input_fingerprint': {'type': 'string', 'description': 'SHA-256 fingerprint ("v1:<hex>") of the exact submitted evaluation input tuple. Identical input and policy always produce the identical fingerprint. See fingerprint.ts.'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', 'required': ['document'], 'properties': {'document': {'type': 'object', 'description': "The OpenAPI description as a parsed JSON object (not a YAML/JSON string). Must include a top-level 'openapi' version field of family 3.0, 3.1, or 3.2. Only inline schemas and local references ('#/...') are analyzed; external or multi-document references are detected and reported, never fetched.", 'patternProperties': {'^.*$': {}}}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'required': ['score', 'verdict', 'openapi_version', 'ruleset_version', 'summary', 'dimensions', 'findings'], 'properties': {'score': {'type': 'integer', 'maximum': 100, 'minimum': 0}, 'summary': {'type': 'object', 'required': ['paths', 'operations', 'schemas', 'findings', 'findings_truncated'], 'properties': {'paths': {'type': 'integer', 'minimum': 0}, 'schemas': {'type': 'integer', 'minimum': 0}, 'findings': {'type': 'integer', 'minimum': 0, 'description': 'Total findings produced, pre-truncation.'}, 'operations': {'type': 'integer', 'minimum': 0}, 'findings_truncated': {'type': 'boolean', 'description': 'True if the findings array below was capped below the total findings count.'}}, 'additionalProperties': False}, 'verdict': {'anyOf': [{'type': 'string', 'const': 'ready'}, {'type': 'string', 'const': 'needs_changes'}, {'type': 'string', 'const': 'not_ready'}], 'description': 'ready: score >= 85 and no blocking finding. needs_changes: score >= 60 and no blocking finding. not_ready: score < 60, or at least one blocking finding regardless of score.'}, 'findings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'severity', 'json_pointer', 'message', 'impact', 'remediation'], 'properties': {'code': {'type': 'string', 'description': 'Stable, machine-meaningful finding identifier.'}, 'impact': {'type': 'string', 'description': 'Concrete effect on autonomous consumption.'}, 'message': {'type': 'string'}, 'severity': {'anyOf': [{'type': 'string', 'const': 'blocker'}, {'type': 'string', 'const': 'warning'}, {'type': 'string', 'const': 'recommendation'}], 'description': 'blocker: materially prevents reliable autonomous consumption. warning: usable, but meaningfully reduces machine reliability or selection quality. recommendation: a useful improvement that does not prevent consumption.'}, 'remediation': {'type': 'string', 'description': 'Concrete action to resolve the finding.'}, 'json_pointer': {'type': 'string', 'description': 'RFC 6901 JSON Pointer into the submitted document, e.g. /paths/~1users/get.'}}, 'additionalProperties': False}}, 'dimensions': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'score', 'max_score'], 'properties': {'id': {'anyOf': [{'type': 'string', 'const': 'structure_and_version'}, {'type': 'string', 'const': 'operation_semantics'}, {'type': 'string', 'const': 'request_contracts'}, {'type': 'string', 'const': 'response_contracts'}, {'type': 'string', 'const': 'authentication_and_access'}, {'type': 'string', 'const': 'machine_operability'}]}, 'score': {'type': 'integer', 'minimum': 0}, 'max_score': {'type': 'integer', 'minimum': 0}}, 'additionalProperties': False}}, 'openapi_version': {'type': 'string', 'description': "The detected 'openapi' version string, or 'unknown' if it could not be determined."}, 'ruleset_version': {'type': 'string', 'description': "Version of the finding codes, dimension weights, and scoring thresholds that produced this result â\x80\x94 independent of the capability's own contract version. See RULESET_VERSION in rules.ts."}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', 'required': ['purl'], 'properties': {'purl': {'type': 'string', 'pattern': '^pkg:(?:npm|pypi)/', 'maxLength': 512, 'minLength': 1, 'description': 'ECMA-427 Package URL for one exact published npm or PyPI version. Ranges, dist-tags, qualifiers, and subpaths are not supported.'}, 'expected_source_repository': {'type': 'string', 'pattern': '^https://', 'maxLength': 2048, 'minLength': 1, 'description': 'Optional HTTPS source repository identity to compare only with cryptographically verified deps.dev provenance. This URL is never fetched.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'required': ['decision', 'reason_codes', 'policy_version', 'observed_at', 'input_fingerprint', 'package', 'observations', 'evidence', 'unknowns'], 'properties': {'package': {'type': 'object', 'required': ['purl', 'ecosystem', 'name', 'version'], 'properties': {'name': {'type': 'string', 'maxLength': 256, 'minLength': 1}, 'purl': {'type': 'string', 'maxLength': 512}, 'version': {'type': 'string', 'maxLength': 256, 'minLength': 1}, 'ecosystem': {'anyOf': [{'type': 'string', 'const': 'npm'}, {'type': 'string', 'const': 'pypi'}]}}, 'additionalProperties': False}, 'decision': {'anyOf': [{'type': 'string', 'const': 'ALLOW'}, {'type': 'string', 'const': 'REVIEW'}, {'type': 'string', 'const': 'BLOCK'}, {'type': 'string', 'const': 'UNKNOWN'}]}, 'evidence': {'type': 'array', 'items': {'type': 'object', 'required': ['source', 'status', 'observed_at', 'latency_ms', 'attempts'], 'properties': {'source': {'anyOf': [{'type': 'string', 'const': 'npm_registry'}, {'type': 'string', 'const': 'pypi'}, {'type': 'string', 'const': 'osv'}, {'type': 'string', 'const': 'deps_dev'}]}, 'status': {'anyOf': [{'type': 'string', 'const': 'OK'}, {'type': 'string', 'const': 'NOT_FOUND'}, {'type': 'string', 'const': 'UNAVAILABLE'}, {'type': 'string', 'const': 'UNSUPPORTED'}]}, 'attempts': {'type': 'integer', 'maximum': 4, 'minimum': 0}, 'latency_ms': {'type': 'number', 'minimum': 0}, 'observed_at': {'type': 'string', 'maxLength': 40}}, 'additionalProperties': False}, 'maxItems': 3, 'minItems': 3}, 'unknowns': {'type': 'array', 'items': {'anyOf': [{'type': 'string', 'const': 'REGISTRY_EVIDENCE_UNAVAILABLE'}, {'type': 'string', 'const': 'OSV_EVIDENCE_UNAVAILABLE'}, {'type': 'string', 'const': 'VERIFIED_SOURCE_REPOSITORY_UNAVAILABLE'}, {'type': 'string', 'const': 'SOURCE_IDENTITY_DISAGREEMENT'}]}, 'maxItems': 4}, 'observed_at': {'type': 'string', 'maxLength': 40}, 'observations': {'type': 'object', 'required': ['registry', 'vulnerabilities', 'deps_dev', 'provenance', 'evidence_complete'], 'properties': {'deps_dev': {'type': 'object', 'required': ['advisory_ids', 'licenses'], 'properties': {'licenses': {'anyOf': [{'type': 'array', 'items': {'type': 'string', 'maxLength': 256}, 'maxItems': 64}, {'type': 'null'}]}, 'advisory_ids': {'anyOf': [{'type': 'array', 'items': {'type': 'string', 'maxLength': 128}, 'maxItems': 256}, {'type': 'null'}]}, 'canonical_name': {'type': 'string', 'maxLength': 256}, 'canonical_version': {'type': 'string', 'maxLength': 256}}, 'additionalProperties': False}, 'registry': {'type': 'object', 'required': ['exists', 'deprecated', 'yanked', 'yanked_reasons', 'install_scripts', 'distribution_hashes'], 'properties': {'exists': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}, 'yanked': {'anyOf': [{'type': 'string', 'const': 'NONE'}, {'type': 'string', 'const': 'PARTIAL'}, {'type': 'string', 'const': 'ALL'}, {'type': 'string', 'const': 'UNKNOWN'}]}, 'integrity': {'type': 'string', 'maxLength': 512}, 'deprecated': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}, 'yanked_reasons': {'type': 'array', 'items': {'type': 'string', 'maxLength': 512}, 'maxItems': 16}, 'install_scripts': {'anyOf': [{'type': 'array', 'items': {'anyOf': [{'type': 'string', 'const': 'preinstall'}, {'type': 'string', 'const': 'install'}, {'type': 'string', 'const': 'postinstall'}]}, 'maxItems': 3}, {'type': 'null'}]}, 'requires_python': {'type': 'string', 'maxLength': 512}, 'deprecated_message': {'type': 'string', 'maxLength': 512}, 'distribution_hashes': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'required': ['filename', 'sha256'], 'properties': {'sha256': {'type': 'string', 'maxLength': 128}, 'filename': {'type': 'string', 'maxLength': 512}}, 'additionalProperties': False}, 'maxItems': 128}, {'type': 'null'}]}, 'repository_metadata': {'type': 'object', 'required': ['url', 'verified'], 'properties': {'url': {'type': 'string', 'maxLength': 2048}, 'verified': {'type': 'boolean', 'const': False}}, 'additionalProperties': False}}, 'additionalProperties': False}, 'provenance': {'type': 'object', 'required': ['verified', 'attestation_types', 'source_repositories', 'expected_repository_match'], 'properties': {'verified': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}, 'attestation_types': {'anyOf': [{'type': 'array', 'items': {'type': 'string', 'maxLength': 256}, 'maxItems': 16}, {'type': 'null'}]}, 'source_repositories': {'anyOf': [{'type': 'array', 'items': {'type': 'string', 'maxLength': 2048}, 'maxItems': 16}, {'type': 'null'}]}, 'expected_repository_match': {'anyOf': [{'type': 'string', 'const': 'NOT_REQUESTED'}, {'type': 'string', 'const': 'MATCH'}, {'type': 'string', 'const': 'MISMATCH'}, {'type': 'string', 'const': 'UNAVAILABLE'}]}}, 'additionalProperties': False}, 'vulnerabilities': {'type': 'object', 'required': ['raw_record_count', 'family_count', 'max_severity', 'malicious_package_signal', 'families'], 'properties': {'families': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'aliases', 'malicious', 'severity', 'cvss_vectors', 'remediation_boundaries'], 'properties': {'id': {'type': 'string', 'maxLength': 128, 'minLength': 1}, 'aliases': {'type': 'array', 'items': {'type': 'string', 'maxLength': 128, 'minLength': 1}, 'maxItems': 64}, 'severity': {'anyOf': [{'type': 'string', 'const': 'NONE'}, {'type': 'string', 'const': 'LOW'}, {'type': 'string', 'const': 'MEDIUM'}, {'type': 'string', 'const': 'HIGH'}, {'type': 'string', 'const': 'CRITICAL'}, {'type': 'string', 'const': 'UNKNOWN'}]}, 'malicious': {'type': 'boolean'}, 'cvss_vectors': {'type': 'array', 'items': {'type': 'string', 'maxLength': 512, 'minLength': 1}, 'maxItems': 16}, 'remediation_boundaries': {'type': 'array', 'items': {'type': 'string', 'maxLength': 256, 'minLength': 1}, 'maxItems': 64}}, 'additionalProperties': False}, 'maxItems': 128}, 'family_count': {'anyOf': [{'type': 'integer', 'maximum': 256, 'minimum': 0}, {'type': 'null'}]}, 'max_severity': {'anyOf': [{'type': 'string', 'const': 'NONE'}, {'type': 'string', 'const': 'LOW'}, {'type': 'string', 'const': 'MEDIUM'}, {'type': 'string', 'const': 'HIGH'}, {'type': 'string', 'const': 'CRITICAL'}, {'type': 'string', 'const': 'UNKNOWN'}]}, 'raw_record_count': {'anyOf': [{'type': 'integer', 'maximum': 256, 'minimum': 0}, {'type': 'null'}]}, 'malicious_package_signal': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'evidence_complete': {'type': 'boolean'}}, 'additionalProperties': False}, 'reason_codes': {'type': 'array', 'items': {'anyOf': [{'type': 'string', 'const': 'PACKAGE_VERSION_NOT_FOUND'}, {'type': 'string', 'const': 'KNOWN_MALICIOUS_PACKAGE'}, {'type': 'string', 'const': 'KNOWN_VULNERABILITY'}, {'type': 'string', 'const': 'HIGH_OR_CRITICAL_VULNERABILITY'}, {'type': 'string', 'const': 'REMEDIATION_BOUNDARY_OBSERVED'}, {'type': 'string', 'const': 'VERSION_DEPRECATED'}, {'type': 'string', 'const': 'VERSION_YANKED'}, {'type': 'string', 'const': 'VERSION_PARTIALLY_YANKED'}, {'type': 'string', 'const': 'INSTALL_SCRIPT_PRESENT'}, {'type': 'string', 'const': 'SOURCE_REPOSITORY_MISMATCH'}, {'type': 'string', 'const': 'VERIFIED_PROVENANCE'}, {'type': 'string', 'const': 'VERIFIED_SOURCE_REPOSITORY_UNAVAILABLE'}, {'type': 'string', 'const': 'SOURCE_DISAGREEMENT'}, {'type': 'string', 'const': 'EVIDENCE_INCOMPLETE'}, {'type': 'string', 'const': 'NO_BLOCKING_SIGNAL_OBSERVED'}]}, 'maxItems': 16}, 'policy_version': {'type': 'string', 'maxLength': 64, 'minLength': 1}, 'input_fingerprint': {'type': 'string', 'pattern': '^sha256:[0-9a-f]{64}$'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', 'required': ['payout'], 'properties': {'payout': {'type': 'object', 'required': ['destination', 'amount_minor', 'currency'], 'properties': {'rail': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 64, 'minLength': 1}, 'currency': {'type': 'string', 'pattern': '^[A-Z]{3}$', 'description': 'ISO 4217-shaped currency code, uppercase ASCII letters only. Not validated against a live registry.'}, 'payout_id': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 256, 'minLength': 1}, 'reference': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 256, 'minLength': 1}, 'destination': {'anyOf': [{'type': 'object', 'required': ['scheme', 'iban'], 'properties': {'bic': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 20, 'minLength': 1}, 'iban': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 64, 'minLength': 1}, 'scheme': {'type': 'string', 'const': 'iban'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['scheme', 'routing_number', 'account_number'], 'properties': {'scheme': {'type': 'string', 'const': 'us_bank'}, 'account_number': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 64, 'minLength': 1}, 'routing_number': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 20, 'minLength': 1}}, 'additionalProperties': False}, {'type': 'object', 'required': ['scheme', 'network', 'address'], 'properties': {'scheme': {'type': 'string', 'const': 'evm'}, 'address': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 64, 'minLength': 1}, 'network': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 40, 'minLength': 1}}, 'additionalProperties': False}, {'type': 'object', 'required': ['scheme', 'namespace', 'value'], 'properties': {'value': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 600, 'minLength': 1}, 'scheme': {'type': 'string', 'const': 'opaque'}, 'namespace': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 80, 'minLength': 1}}, 'additionalProperties': False}]}, 'amount_minor': {'type': 'string', 'pattern': '^[1-9][0-9]{0,29}$', 'description': 'Positive minor-unit integer amount as a decimal digit string, parsed via BigInt.'}, 'purpose_code': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 64, 'minLength': 1}, 'beneficiary_id': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 256, 'minLength': 1}}, 'additionalProperties': False}, 'policy': {'type': 'object', 'properties': {'max_amount_minor': {'type': 'string', 'pattern': '^(0|[1-9][0-9]{0,29})$', 'description': 'Nonnegative minor-unit integer amount as a decimal digit string, parsed via BigInt.'}, 'bic_change_action': {'anyOf': [{'type': 'string', 'const': 'ignore'}, {'type': 'string', 'const': 'review'}, {'type': 'string', 'const': 'block'}]}, 'allowed_currencies': {'type': 'array', 'items': {'type': 'string', 'pattern': '^[A-Z]{3}$', 'description': 'ISO 4217-shaped currency code, uppercase ASCII letters only. Not validated against a live registry.'}, 'maxItems': 100}, 'rail_change_action': {'anyOf': [{'type': 'string', 'const': 'ignore'}, {'type': 'string', 'const': 'review'}, {'type': 'string', 'const': 'block'}]}, 'require_evm_checksum': {'type': 'boolean'}, 'currency_change_action': {'anyOf': [{'type': 'string', 'const': 'ignore'}, {'type': 'string', 'const': 'review'}, {'type': 'string', 'const': 'block'}]}, 'exact_duplicate_action': {'anyOf': [{'type': 'string', 'const': 'ignore'}, {'type': 'string', 'const': 'review'}, {'type': 'string', 'const': 'block'}]}, 'reference_change_action': {'anyOf': [{'type': 'string', 'const': 'ignore'}, {'type': 'string', 'const': 'review'}, {'type': 'string', 'const': 'block'}]}, 'beneficiary_change_action': {'anyOf': [{'type': 'string', 'const': 'ignore'}, {'type': 'string', 'const': 'review'}, {'type': 'string', 'const': 'block'}]}, 'destination_change_action': {'anyOf': [{'type': 'string', 'const': 'review'}, {'type': 'string', 'const': 'block'}]}, 'duplicate_reference_action': {'anyOf': [{'type': 'string', 'const': 'ignore'}, {'type': 'string', 'const': 'review'}, {'type': 'string', 'const': 'block'}]}, 'purpose_code_change_action': {'anyOf': [{'type': 'string', 'const': 'ignore'}, {'type': 'string', 'const': 'review'}, {'type': 'string', 'const': 'block'}]}, 'allowed_destination_schemes': {'type': 'array', 'items': {'anyOf': [{'type': 'string', 'const': 'iban'}, {'type': 'string', 'const': 'us_bank'}, {'type': 'string', 'const': 'evm'}, {'type': 'string', 'const': 'opaque'}]}, 'maxItems': 4}, 'require_trusted_destination': {'type': 'boolean'}, 'expected_amount_tolerance_bps': {'type': 'integer', 'maximum': 10000, 'minimum': 0}, 'first_seen_destination_action': {'anyOf': [{'type': 'string', 'const': 'ignore'}, {'type': 'string', 'const': 'review'}, {'type': 'string', 'const': 'block'}]}, 'expected_amount_tolerance_minor': {'type': 'string', 'pattern': '^(0|[1-9][0-9]{0,29})$', 'description': 'Nonnegative minor-unit integer amount as a decimal digit string, parsed via BigInt.'}}, 'additionalProperties': False}, 'history': {'type': 'object', 'required': ['entries', 'completeness'], 'properties': {'entries': {'type': 'array', 'items': {'anyOf': [{'type': 'object', 'required': ['payout_fingerprint'], 'properties': {'reference': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 256, 'minLength': 1}, 'occurred_at': {'type': 'string', 'maxLength': 64, 'description': 'RFC3339 timestamp. Evidence metadata only â\x80\x94 never independently verified for freshness.'}, 'beneficiary_id': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 256, 'minLength': 1}, 'payout_fingerprint': {'type': 'string', 'pattern': '^sha256:[0-9a-f]{64}$', 'description': 'SHA-256 fingerprint, exactly "sha256:" followed by 64 lowercase hex characters.'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['destination', 'amount_minor', 'currency'], 'properties': {'currency': {'type': 'string', 'pattern': '^[A-Z]{3}$', 'description': 'ISO 4217-shaped currency code, uppercase ASCII letters only. Not validated against a live registry.'}, 'reference': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 256, 'minLength': 1}, 'destination': {'anyOf': [{'type': 'object', 'required': ['scheme', 'iban'], 'properties': {'bic': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 20, 'minLength': 1}, 'iban': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 64, 'minLength': 1}, 'scheme': {'type': 'string', 'const': 'iban'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['scheme', 'routing_number', 'account_number'], 'properties': {'scheme': {'type': 'string', 'const': 'us_bank'}, 'account_number': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 64, 'minLength': 1}, 'routing_number': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 20, 'minLength': 1}}, 'additionalProperties': False}, {'type': 'object', 'required': ['scheme', 'network', 'address'], 'properties': {'scheme': {'type': 'string', 'const': 'evm'}, 'address': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 64, 'minLength': 1}, 'network': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 40, 'minLength': 1}}, 'additionalProperties': False}, {'type': 'object', 'required': ['scheme', 'namespace', 'value'], 'properties': {'value': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 600, 'minLength': 1}, 'scheme': {'type': 'string', 'const': 'opaque'}, 'namespace': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 80, 'minLength': 1}}, 'additionalProperties': False}]}, 'occurred_at': {'type': 'string', 'maxLength': 64, 'description': 'RFC3339 timestamp. Evidence metadata only â\x80\x94 never independently verified for freshness.'}, 'amount_minor': {'type': 'string', 'pattern': '^[1-9][0-9]{0,29}$', 'description': 'Positive minor-unit integer amount as a decimal digit string, parsed via BigInt.'}, 'beneficiary_id': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 256, 'minLength': 1}}, 'additionalProperties': False}]}, 'maxItems': 500}, 'window_end': {'type': 'string', 'maxLength': 64, 'description': 'RFC3339 timestamp. Evidence metadata only â\x80\x94 never independently verified for freshness.'}, 'completeness': {'anyOf': [{'type': 'string', 'const': 'complete'}, {'type': 'string', 'const': 'partial'}]}, 'window_start': {'type': 'string', 'maxLength': 64, 'description': 'RFC3339 timestamp. Evidence metadata only â\x80\x94 never independently verified for freshness.'}}, 'additionalProperties': False}, 'trusted_baseline': {'anyOf': [{'type': 'object', 'required': ['destination'], 'properties': {'rail': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 64, 'minLength': 1}, 'currency': {'type': 'string', 'pattern': '^[A-Z]{3}$', 'description': 'ISO 4217-shaped currency code, uppercase ASCII letters only. Not validated against a live registry.'}, 'reference': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 256, 'minLength': 1}, 'destination': {'anyOf': [{'type': 'object', 'required': ['scheme', 'iban'], 'properties': {'bic': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 20, 'minLength': 1}, 'iban': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 64, 'minLength': 1}, 'scheme': {'type': 'string', 'const': 'iban'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['scheme', 'routing_number', 'account_number'], 'properties': {'scheme': {'type': 'string', 'const': 'us_bank'}, 'account_number': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 64, 'minLength': 1}, 'routing_number': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 20, 'minLength': 1}}, 'additionalProperties': False}, {'type': 'object', 'required': ['scheme', 'network', 'address'], 'properties': {'scheme': {'type': 'string', 'const': 'evm'}, 'address': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 64, 'minLength': 1}, 'network': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 40, 'minLength': 1}}, 'additionalProperties': False}, {'type': 'object', 'required': ['scheme', 'namespace', 'value'], 'properties': {'value': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 600, 'minLength': 1}, 'scheme': {'type': 'string', 'const': 'opaque'}, 'namespace': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 80, 'minLength': 1}}, 'additionalProperties': False}]}, 'purpose_code': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 64, 'minLength': 1}, 'beneficiary_id': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 256, 'minLength': 1}, 'expected_amount_minor': {'type': 'string', 'pattern': '^[1-9][0-9]{0,29}$', 'description': 'Positive minor-unit integer amount as a decimal digit string, parsed via BigInt.'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['destination_fingerprint', 'fingerprint_scheme'], 'properties': {'rail': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 64, 'minLength': 1}, 'currency': {'type': 'string', 'pattern': '^[A-Z]{3}$', 'description': 'ISO 4217-shaped currency code, uppercase ASCII letters only. Not validated against a live registry.'}, 'reference': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 256, 'minLength': 1}, 'purpose_code': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 64, 'minLength': 1}, 'beneficiary_id': {'type': 'string', 'pattern': '^[^\\x00-\\x1f\\x7f]+$', 'maxLength': 256, 'minLength': 1}, 'fingerprint_scheme': {'type': 'string', 'const': 'payout_destination_v1'}, 'expected_amount_minor': {'type': 'string', 'pattern': '^[1-9][0-9]{0,29}$', 'description': 'Positive minor-unit integer amount as a decimal digit string, parsed via BigInt.'}, 'destination_fingerprint': {'type': 'string', 'pattern': '^sha256:[0-9a-f]{64}$', 'description': 'SHA-256 fingerprint, exactly "sha256:" followed by 64 lowercase hex characters.'}}, 'additionalProperties': False}]}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'required': ['decision', 'machine_action', 'reason_codes', 'ruleset_version', 'coverage', 'candidate', 'checks'], 'properties': {'checks': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'status'], 'properties': {'id': {'type': 'string'}, 'status': {'anyOf': [{'type': 'string', 'const': 'PASS'}, {'type': 'string', 'const': 'REVIEW'}, {'type': 'string', 'const': 'BLOCK'}]}, 'evidence': {'type': 'object', 'patternProperties': {'^.*$': {}}}, 'reason_code': {'type': 'string'}}, 'additionalProperties': False}}, 'coverage': {'type': 'object', 'required': ['complete_for_declared_scope', 'checks_performed', 'checks_not_performed', 'trusted_baseline', 'history'], 'properties': {'history': {'anyOf': [{'type': 'string', 'const': 'complete'}, {'type': 'string', 'const': 'partial'}, {'type': 'string', 'const': 'absent'}]}, 'checks_performed': {'type': 'array', 'items': {'type': 'string'}}, 'trusted_baseline': {'anyOf': [{'type': 'string', 'const': 'raw'}, {'type': 'string', 'const': 'fingerprint'}, {'type': 'string', 'const': 'absent'}]}, 'checks_not_performed': {'type': 'array', 'items': {'type': 'string'}}, 'complete_for_declared_scope': {'type': 'boolean'}}, 'additionalProperties': False}, 'decision': {'anyOf': [{'type': 'string', 'const': 'PROCEED'}, {'type': 'string', 'const': 'REVIEW'}, {'type': 'string', 'const': 'BLOCK'}]}, 'candidate': {'type': 'object', 'required': ['currency', 'amount_minor', 'destination_scheme', 'destination_fingerprint', 'payout_fingerprint'], 'properties': {'currency': {'type': 'string'}, 'payout_id': {'type': 'string'}, 'amount_minor': {'type': 'string'}, 'beneficiary_id': {'type': 'string'}, 'destination_scheme': {'anyOf': [{'type': 'string', 'const': 'iban'}, {'type': 'string', 'const': 'us_bank'}, {'type': 'string', 'const': 'evm'}, {'type': 'string', 'const': 'opaque'}]}, 'payout_fingerprint': {'type': 'string', 'pattern': '^sha256:[0-9a-f]{64}$', 'description': 'SHA-256 fingerprint, exactly "sha256:" followed by 64 lowercase hex characters.'}, 'destination_fingerprint': {'type': 'string', 'pattern': '^sha256:[0-9a-f]{64}$', 'description': 'SHA-256 fingerprint, exactly "sha256:" followed by 64 lowercase hex characters.'}}, 'additionalProperties': False}, 'reason_codes': {'type': 'array', 'items': {'type': 'string'}}, 'machine_action': {'anyOf': [{'type': 'string', 'const': 'AUTHORIZATION_NOT_BLOCKED_BY_PREFLIGHT'}, {'type': 'string', 'const': 'REQUIRE_REVIEW_BEFORE_AUTHORIZATION'}, {'type': 'string', 'const': 'DO_NOT_AUTHORIZE'}]}, 'ruleset_version': {'type': 'string'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', 'required': ['sql'], 'properties': {'sql': {'type': 'string', 'maxLength': 65536, 'minLength': 1, 'description': 'A complete PostgreSQL statement or semicolon-separated statement list.'}, 'policy': {'type': 'object', 'properties': {'block_cascade': {'type': 'boolean'}, 'block_truncate': {'type': 'boolean'}, 'max_statements': {'type': 'integer', 'maximum': 20, 'minimum': 1}, 'block_drop_table': {'type': 'boolean'}, 'alter_table_action': {'anyOf': [{'type': 'string', 'const': 'proceed'}, {'type': 'string', 'const': 'review'}, {'type': 'string', 'const': 'block'}]}, 'block_unbounded_delete': {'type': 'boolean'}, 'block_unbounded_update': {'type': 'boolean'}, 'nonconcurrent_index_action': {'anyOf': [{'type': 'string', 'const': 'proceed'}, {'type': 'string', 'const': 'review'}, {'type': 'string', 'const': 'block'}]}, 'unsupported_statement_action': {'anyOf': [{'type': 'string', 'const': 'review'}, {'type': 'string', 'const': 'block'}]}, 'procedural_or_dynamic_sql_action': {'anyOf': [{'type': 'string', 'const': 'review'}, {'type': 'string', 'const': 'block'}]}, 'block_protected_relation_mutation': {'type': 'boolean'}}, 'additionalProperties': False}, 'context': {'type': 'object', 'properties': {'environment': {'anyOf': [{'type': 'string', 'const': 'production'}, {'type': 'string', 'const': 'staging'}, {'type': 'string', 'const': 'development'}, {'type': 'string', 'const': 'unknown'}]}, 'protected_schemas': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 200}, 'protected_relations': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 200}, 'expected_statement_kinds': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 50}}, 'additionalProperties': False}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'required': ['decision', 'machine_action', 'reason_codes', 'ruleset_version', 'coverage', 'statement_count', 'statements', 'checks', 'input_fingerprint'], 'properties': {'checks': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'status'], 'properties': {'id': {'type': 'string'}, 'status': {'anyOf': [{'type': 'string', 'const': 'PASS'}, {'type': 'string', 'const': 'REVIEW'}, {'type': 'string', 'const': 'BLOCK'}]}, 'evidence': {'type': 'object', 'patternProperties': {'^.*$': {}}}, 'reason_code': {'type': 'string'}, 'statement_index': {'type': 'integer', 'minimum': 0}}, 'additionalProperties': False}}, 'coverage': {'type': 'object', 'required': ['dialect', 'assessment_scope', 'complete_for_declared_scope', 'checks_performed', 'checks_not_performed'], 'properties': {'dialect': {'type': 'string', 'const': 'postgresql'}, 'assessment_scope': {'type': 'array', 'items': {'type': 'string'}}, 'checks_performed': {'type': 'array', 'items': {'type': 'string'}}, 'checks_not_performed': {'type': 'array', 'items': {'type': 'string'}}, 'complete_for_declared_scope': {'type': 'boolean'}}, 'additionalProperties': False}, 'decision': {'anyOf': [{'type': 'string', 'const': 'PROCEED'}, {'type': 'string', 'const': 'REVIEW'}, {'type': 'string', 'const': 'BLOCK'}]}, 'statements': {'type': 'array', 'items': {'type': 'object', 'required': ['index', 'kind', 'mutates_data', 'changes_schema', 'changes_privileges', 'administrative', 'relations', 'decision', 'reason_codes'], 'properties': {'kind': {'type': 'string', 'description': 'Normalized statement kind, e.g. DELETE, ALTER_TABLE.'}, 'index': {'type': 'integer', 'minimum': 0}, 'decision': {'anyOf': [{'type': 'string', 'const': 'PROCEED'}, {'type': 'string', 'const': 'REVIEW'}, {'type': 'string', 'const': 'BLOCK'}]}, 'relations': {'type': 'array', 'items': {'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string'}, 'schema': {'type': 'string'}}, 'additionalProperties': False}}, 'mutates_data': {'type': 'boolean'}, 'reason_codes': {'type': 'array', 'items': {'type': 'string'}}, 'administrative': {'type': 'boolean'}, 'changes_schema': {'type': 'boolean'}, 'changes_privileges': {'type': 'boolean'}}, 'additionalProperties': False}}, 'reason_codes': {'type': 'array', 'items': {'type': 'string'}}, 'machine_action': {'anyOf': [{'type': 'string', 'const': 'EXECUTE'}, {'type': 'string', 'const': 'REQUIRE_REVIEW'}, {'type': 'string', 'const': 'DO_NOT_EXECUTE'}]}, 'ruleset_version': {'type': 'string', 'description': "Version of the reason-code catalog and policy defaults that produced this result, independent of the capability's own contract version. See RULESET_VERSION in rules.ts."}, 'statement_count': {'type': 'integer', 'minimum': 0}, 'input_fingerprint': {'type': 'string', 'description': 'SHA-256 fingerprint ("v1:<hex>") of the exact submitted {sql, context, policy} tuple. Identical input and policy always produce the identical fingerprint, independent of commercial/payment mode. See fingerprint.ts.'}}, 'additionalProperties': False}
最近のツール変更
類似のMCPサーバー
swiss-army
Provides utility transformations and validation for data, documents, images, time zones, currencies, identifiers, web policies, a…
hyperion
Acts as a paid MCP tool marketplace and utility gateway with server discovery, HTTP and JavaScript tools, research, data conversi…
Vee3
Manages Clerk authentication infrastructure, including users, organizations, domains, sessions, tokens, OAuth, SSO, machines, per…
Proof Holdings
Provides domain verification, identity and delegation proofs, human approval workflows, trusted-contact challenges, and controlle…
GoCreative Agent API
Offers pay-per-call LLM completions and data services for company intelligence, KYB, sanctions screening, threat intelligence, co…
IA-QA — 130+ QA & Dev Tools for AI Agents
Provides deterministic QA, evaluation, testing, code analysis, prompt and RAG checks, model comparison, and web security diagnost…
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…