PortfolioFit
Was dieses MCP kann
Calculates portfolio constraints and evaluates normalized holdings against investment mandates.
Tools
Eingabeschema
{'type': 'object', '$defs': {'ExposureFilter': {'type': 'object', 'title': 'ExposureFilter', 'required': ['dimension', 'match', 'values'], 'properties': {'match': {'enum': ['equals', 'not_equals', 'in', 'not_in'], 'type': 'string', 'title': 'Match'}, 'values': {'type': 'array', 'items': {'type': 'string', 'maxLength': 120, 'minLength': 1}, 'title': 'Values', 'maxItems': 100, 'minItems': 1}, 'dimension': {'enum': ['denomination_currency', 'country', 'domicile', 'issuer_country', 'listing_country', 'asset_class', 'rating', 'sector'], 'type': 'string', 'title': 'Dimension'}}, 'additionalProperties': False}, 'AlignmentHolding': {'type': 'object', 'title': 'AlignmentHolding', 'required': ['id', 'name'], 'properties': {'id': {'type': 'string', 'title': 'Id', 'maxLength': 120, 'minLength': 1}, 'name': {'type': 'string', 'title': 'Name', 'maxLength': 500, 'minLength': 1}, 'value': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Value', 'default': None}, 'weight': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Weight', 'default': None, 'description': 'Portfolio weight. Prefer a decimal share such as 0.24 for 24%. Percentage-point inputs such as 24 are also accepted and normalized when the supplied holdings use that convention.'}, 'currency': {'type': 'string', 'title': 'Currency', 'default': '', 'maxLength': 16}, 'attributes': {'type': 'object', 'title': 'Attributes', 'maxProperties': 100, 'additionalProperties': {'anyOf': [{'type': 'string'}, {'type': 'integer'}, {'type': 'number'}, {'type': 'boolean'}, {'type': 'null'}]}}, 'source_reference': {'type': 'string', 'title': 'Source Reference', 'default': '', 'maxLength': 500}}, 'additionalProperties': False}, 'DeterministicConstraint': {'type': 'object', 'title': 'DeterministicConstraint', 'required': ['id', 'metric', 'operator'], 'properties': {'id': {'type': 'string', 'title': 'Id', 'maxLength': 120, 'minLength': 1}, 'top_n': {'anyOf': [{'type': 'integer', 'maximum': 1000, 'minimum': 1}, {'type': 'null'}], 'title': 'Top N', 'default': None}, 'metric': {'enum': ['single_holding_weight', 'selected_holdings_weight', 'filtered_holdings_weight', 'top_n_holdings_weight', 'holding_count', 'total_weight'], 'type': 'string', 'title': 'Metric'}, 'operator': {'enum': ['<', '<=', '=', '!=', '>=', '>', 'range'], 'type': 'string', 'title': 'Operator'}, 'max_value': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Max Value', 'default': None}, 'min_value': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Min Value', 'default': None}, 'threshold': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Threshold', 'default': None}, 'holding_ids': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Holding Ids', 'maxItems': 1000}, 'exposure_filter': {'anyOf': [{'$ref': '#/$defs/ExposureFilter'}, {'type': 'null'}], 'default': None}}, 'additionalProperties': False}}, 'title': 'calculate_portfolio_constraintsArguments', 'required': ['holdings', 'constraints', 'idempotency_key'], 'properties': {'holdings': {'type': 'array', 'items': {'$ref': '#/$defs/AlignmentHolding'}, 'title': 'Holdings', 'maxItems': 1000, 'minItems': 1}, 'constraints': {'type': 'array', 'items': {'$ref': '#/$defs/DeterministicConstraint'}, 'title': 'Constraints', 'maxItems': 250, 'minItems': 1}, 'base_currency': {'type': 'string', 'title': 'Base Currency', 'default': 'USD', 'maxLength': 16, 'minLength': 1}, 'idempotency_key': {'type': 'string', 'title': 'Idempotency Key', 'maxLength': 255, 'minLength': 1}, 'source_warnings': {'anyOf': [{'type': 'array', 'items': {'type': 'string', 'maxLength': 2000, 'minLength': 1}, 'maxItems': 100}, {'type': 'null'}], 'title': 'Source Warnings', 'default': None}, 'composition_scope': {'enum': ['complete', 'partial', 'unknown'], 'type': 'string', 'title': 'Composition Scope', 'default': 'unknown'}}}
Ausgabeschema
{'type': 'object', '$defs': {'InvocationMeta': {'type': 'object', 'title': 'InvocationMeta', 'required': ['idempotent_replay', 'plan', 'monthly_invocations', 'monthly_invocation_limit', 'monthly_tokens'], 'properties': {'plan': {'type': 'string', 'title': 'Plan'}, 'monthly_tokens': {'$ref': '#/$defs/MonthlyTokenUsage'}, 'idempotent_replay': {'type': 'boolean', 'title': 'Idempotent Replay'}, 'monthly_invocations': {'type': 'integer', 'title': 'Monthly Invocations'}, 'monthly_invocation_limit': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Monthly Invocation Limit'}}, 'additionalProperties': False}, 'ConstraintResult': {'type': 'object', 'title': 'ConstraintResult', 'required': ['id', 'metric', 'status', 'message'], 'properties': {'id': {'type': 'string', 'title': 'Id'}, 'actual': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Actual', 'default': None}, 'metric': {'enum': ['single_holding_weight', 'selected_holdings_weight', 'filtered_holdings_weight', 'top_n_holdings_weight', 'holding_count', 'total_weight'], 'type': 'string', 'title': 'Metric'}, 'status': {'enum': ['pass', 'fail', 'insufficient_evidence'], 'type': 'string', 'title': 'Status'}, 'message': {'type': 'string', 'title': 'Message'}, 'holding_ids': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Holding Ids'}}, 'additionalProperties': False}, 'MonthlyTokenUsage': {'type': 'object', 'title': 'MonthlyTokenUsage', 'properties': {'input_tokens': {'type': 'integer', 'title': 'Input Tokens', 'default': 0}, 'total_tokens': {'type': 'integer', 'title': 'Total Tokens', 'default': 0}, 'output_tokens': {'type': 'integer', 'title': 'Output Tokens', 'default': 0}}, 'additionalProperties': False}, 'CapabilityLimitUsage': {'type': 'object', 'title': 'CapabilityLimitUsage', 'required': ['used', 'limit', 'started_at', 'resets_at'], 'properties': {'used': {'type': 'integer', 'title': 'Used', 'minimum': 0}, 'limit': {'type': 'integer', 'title': 'Limit', 'minimum': 0}, 'period': {'type': 'string', 'const': 'calendar_month', 'title': 'Period', 'default': 'calendar_month'}, 'resets_at': {'type': 'string', 'title': 'Resets At', 'format': 'date-time'}, 'started_at': {'type': 'string', 'title': 'Started At', 'format': 'date-time'}}, 'additionalProperties': False}, 'PortfolioConstraintsOutput': {'type': 'object', 'title': 'PortfolioConstraintsOutput', 'required': ['capability', 'status', 'meta'], 'properties': {'meta': {'$ref': '#/$defs/InvocationMeta'}, 'status': {'enum': ['compliant', 'non_compliant', 'insufficient_evidence'], 'type': 'string', 'title': 'Status'}, 'results': {'type': 'array', 'items': {'$ref': '#/$defs/ConstraintResult'}, 'title': 'Results'}, 'warnings': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Warnings'}, 'capability': {'type': 'string', 'const': 'portfolio_constraints.v1', 'title': 'Capability'}}, 'additionalProperties': False}, 'CapabilityLimitExceededOutput': {'type': 'object', 'title': 'CapabilityLimitExceededOutput', 'required': ['code', 'status', 'message', 'capability', 'plan', 'usage', 'resolution_paths'], 'properties': {'code': {'type': 'string', 'const': 'capability_limit_exceeded', 'title': 'Code'}, 'plan': {'type': 'string', 'title': 'Plan'}, 'usage': {'$ref': '#/$defs/CapabilityLimitUsage'}, 'status': {'type': 'string', 'const': 'quota_exceeded', 'title': 'Status'}, 'message': {'type': 'string', 'title': 'Message'}, 'capability': {'type': 'string', 'title': 'Capability'}, 'retryable_now': {'type': 'boolean', 'const': False, 'title': 'Retryable Now', 'default': False}, 'resolution_paths': {'type': 'array', 'items': {'$ref': '#/$defs/CapabilityLimitResolutionPath'}, 'title': 'Resolution Paths', 'minItems': 1}, 'same_idempotency_key_reusable': {'type': 'boolean', 'const': True, 'title': 'Same Idempotency Key Reusable', 'default': True}}, 'additionalProperties': False}, 'CapabilityLimitResolutionPath': {'type': 'object', 'title': 'CapabilityLimitResolutionPath', 'required': ['id', 'label', 'description'], 'properties': {'id': {'type': 'string', 'title': 'Id', 'maxLength': 64, 'minLength': 1}, 'url': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Url', 'default': None}, 'label': {'type': 'string', 'title': 'Label', 'maxLength': 120, 'minLength': 1}, 'description': {'type': 'string', 'title': 'Description', 'maxLength': 500, 'minLength': 1}, 'available_at': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Available At', 'default': None}}, 'additionalProperties': False}}, 'anyOf': [{'$ref': '#/$defs/PortfolioConstraintsOutput'}, {'$ref': '#/$defs/CapabilityLimitExceededOutput'}], 'title': 'PortfolioConstraintsToolOutput'}
Eingabeschema
{'type': 'object', '$defs': {'AlignmentRule': {'type': 'object', 'title': 'AlignmentRule', 'required': ['target', 'operator'], 'properties': {'id': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Id', 'default': None}, 'unit': {'type': 'string', 'title': 'Unit', 'default': 'percent', 'maxLength': 64}, 'title': {'type': 'string', 'title': 'Title', 'default': '', 'maxLength': 200}, 'target': {'type': 'string', 'title': 'Target', 'maxLength': 500, 'minLength': 1}, 'enabled': {'type': 'boolean', 'title': 'Enabled', 'default': True}, 'operator': {'enum': ['<', '<=', '=', '!=', '>=', '>', 'range'], 'type': 'string', 'title': 'Operator'}, 'max_value': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Max Value', 'default': None}, 'min_value': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Min Value', 'default': None}, 'threshold': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Threshold', 'default': None}, 'explanation': {'type': 'string', 'title': 'Explanation', 'default': '', 'maxLength': 2000}, 'exposure_filter': {'anyOf': [{'$ref': '#/$defs/ExposureFilter'}, {'type': 'null'}], 'default': None}}, 'additionalProperties': False}, 'ExposureFilter': {'type': 'object', 'title': 'ExposureFilter', 'required': ['dimension', 'match', 'values'], 'properties': {'match': {'enum': ['equals', 'not_equals', 'in', 'not_in'], 'type': 'string', 'title': 'Match'}, 'values': {'type': 'array', 'items': {'type': 'string', 'maxLength': 120, 'minLength': 1}, 'title': 'Values', 'maxItems': 100, 'minItems': 1}, 'dimension': {'enum': ['denomination_currency', 'country', 'domicile', 'issuer_country', 'listing_country', 'asset_class', 'rating', 'sector'], 'type': 'string', 'title': 'Dimension'}}, 'additionalProperties': False}, 'AlignmentHolding': {'type': 'object', 'title': 'AlignmentHolding', 'required': ['id', 'name'], 'properties': {'id': {'type': 'string', 'title': 'Id', 'maxLength': 120, 'minLength': 1}, 'name': {'type': 'string', 'title': 'Name', 'maxLength': 500, 'minLength': 1}, 'value': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Value', 'default': None}, 'weight': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Weight', 'default': None, 'description': 'Portfolio weight. Prefer a decimal share such as 0.24 for 24%. Percentage-point inputs such as 24 are also accepted and normalized when the supplied holdings use that convention.'}, 'currency': {'type': 'string', 'title': 'Currency', 'default': '', 'maxLength': 16}, 'attributes': {'type': 'object', 'title': 'Attributes', 'maxProperties': 100, 'additionalProperties': {'anyOf': [{'type': 'string'}, {'type': 'integer'}, {'type': 'number'}, {'type': 'boolean'}, {'type': 'null'}]}}, 'source_reference': {'type': 'string', 'title': 'Source Reference', 'default': '', 'maxLength': 500}}, 'additionalProperties': False}}, 'title': 'evaluate_portfolio_alignmentArguments', 'required': ['holdings', 'idempotency_key'], 'properties': {'rules': {'anyOf': [{'type': 'array', 'items': {'$ref': '#/$defs/AlignmentRule'}, 'maxItems': 250}, {'type': 'null'}], 'title': 'Rules', 'default': None}, 'mandate': {'type': 'string', 'title': 'Mandate', 'default': '', 'maxLength': 50000}, 'holdings': {'type': 'array', 'items': {'$ref': '#/$defs/AlignmentHolding'}, 'title': 'Holdings', 'maxItems': 1000, 'minItems': 1}, 'base_currency': {'type': 'string', 'title': 'Base Currency', 'default': 'USD', 'maxLength': 16, 'minLength': 1}, 'portfolio_name': {'type': 'string', 'title': 'Portfolio Name', 'default': 'Portfolio', 'maxLength': 255}, 'idempotency_key': {'type': 'string', 'title': 'Idempotency Key', 'maxLength': 255, 'minLength': 1}, 'source_warnings': {'anyOf': [{'type': 'array', 'items': {'type': 'string', 'maxLength': 2000, 'minLength': 1}, 'maxItems': 100}, {'type': 'null'}], 'title': 'Source Warnings', 'default': None}, 'composition_scope': {'enum': ['complete', 'partial', 'unknown'], 'type': 'string', 'title': 'Composition Scope', 'default': 'unknown'}}}
Ausgabeschema
{'type': 'object', '$defs': {'InvocationMeta': {'type': 'object', 'title': 'InvocationMeta', 'required': ['idempotent_replay', 'plan', 'monthly_invocations', 'monthly_invocation_limit', 'monthly_tokens'], 'properties': {'plan': {'type': 'string', 'title': 'Plan'}, 'monthly_tokens': {'$ref': '#/$defs/MonthlyTokenUsage'}, 'idempotent_replay': {'type': 'boolean', 'title': 'Idempotent Replay'}, 'monthly_invocations': {'type': 'integer', 'title': 'Monthly Invocations'}, 'monthly_invocation_limit': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Monthly Invocation Limit'}}, 'additionalProperties': False}, 'MonthlyTokenUsage': {'type': 'object', 'title': 'MonthlyTokenUsage', 'properties': {'input_tokens': {'type': 'integer', 'title': 'Input Tokens', 'default': 0}, 'total_tokens': {'type': 'integer', 'title': 'Total Tokens', 'default': 0}, 'output_tokens': {'type': 'integer', 'title': 'Output Tokens', 'default': 0}}, 'additionalProperties': False}, 'CapabilityLimitUsage': {'type': 'object', 'title': 'CapabilityLimitUsage', 'required': ['used', 'limit', 'started_at', 'resets_at'], 'properties': {'used': {'type': 'integer', 'title': 'Used', 'minimum': 0}, 'limit': {'type': 'integer', 'title': 'Limit', 'minimum': 0}, 'period': {'type': 'string', 'const': 'calendar_month', 'title': 'Period', 'default': 'calendar_month'}, 'resets_at': {'type': 'string', 'title': 'Resets At', 'format': 'date-time'}, 'started_at': {'type': 'string', 'title': 'Started At', 'format': 'date-time'}}, 'additionalProperties': False}, 'PortfolioAlignmentOutput': {'type': 'object', 'title': 'PortfolioAlignmentOutput', 'required': ['capability', 'status', 'summary', 'meta'], 'properties': {'meta': {'$ref': '#/$defs/InvocationMeta'}, 'status': {'enum': ['compliant', 'non_compliant', 'insufficient_evidence'], 'type': 'string', 'title': 'Status'}, 'summary': {'type': 'string', 'title': 'Summary'}, 'findings': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}, 'title': 'Findings'}, 'warnings': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Warnings'}, 'capability': {'type': 'string', 'const': 'portfolio_alignment.v1', 'title': 'Capability'}, 'rule_results': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}, 'title': 'Rule Results'}}, 'additionalProperties': False}, 'CapabilityLimitExceededOutput': {'type': 'object', 'title': 'CapabilityLimitExceededOutput', 'required': ['code', 'status', 'message', 'capability', 'plan', 'usage', 'resolution_paths'], 'properties': {'code': {'type': 'string', 'const': 'capability_limit_exceeded', 'title': 'Code'}, 'plan': {'type': 'string', 'title': 'Plan'}, 'usage': {'$ref': '#/$defs/CapabilityLimitUsage'}, 'status': {'type': 'string', 'const': 'quota_exceeded', 'title': 'Status'}, 'message': {'type': 'string', 'title': 'Message'}, 'capability': {'type': 'string', 'title': 'Capability'}, 'retryable_now': {'type': 'boolean', 'const': False, 'title': 'Retryable Now', 'default': False}, 'resolution_paths': {'type': 'array', 'items': {'$ref': '#/$defs/CapabilityLimitResolutionPath'}, 'title': 'Resolution Paths', 'minItems': 1}, 'same_idempotency_key_reusable': {'type': 'boolean', 'const': True, 'title': 'Same Idempotency Key Reusable', 'default': True}}, 'additionalProperties': False}, 'CapabilityLimitResolutionPath': {'type': 'object', 'title': 'CapabilityLimitResolutionPath', 'required': ['id', 'label', 'description'], 'properties': {'id': {'type': 'string', 'title': 'Id', 'maxLength': 64, 'minLength': 1}, 'url': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Url', 'default': None}, 'label': {'type': 'string', 'title': 'Label', 'maxLength': 120, 'minLength': 1}, 'description': {'type': 'string', 'title': 'Description', 'maxLength': 500, 'minLength': 1}, 'available_at': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Available At', 'default': None}}, 'additionalProperties': False}}, 'anyOf': [{'$ref': '#/$defs/PortfolioAlignmentOutput'}, {'$ref': '#/$defs/CapabilityLimitExceededOutput'}], 'title': 'PortfolioAlignmentToolOutput'}
Letzte Tool-Änderungen
Ähnliche MCP-Server
AlpineDataWorks Intelligence Server
Provides economic, market, supply-chain, real-estate, energy, consumer, labor, and other scored intelligence indices with histori…
Stratalize Finance
Provides financial, macroeconomic, banking, credit, commodities, M&A, ESG, labor, and regulatory benchmarks for analysis and plan…
Valuein — SEC EDGAR Fundamentals & Smart-Money Data
Provides point-in-time SEC EDGAR fundamentals, filings, ownership signals, financial analysis, valuation models, research reports…
equibles
Provides equity and market research tools covering SEC filings, company financials, portfolios, prices, options, macroeconomic da…
DFX Real Estate Intelligence
Provides US commercial real estate, parcel, debt maturity, bank CRE exposure, private capital, investor, ownership, occupancy, an…
simplefunctions
Provides prediction-market data, thesis analysis, market signals, portfolio tracking, and automated intent-based trading workflow…
EventTrader MCP
Provides prediction-market research and trading capabilities, including real-time event-market data, CLOB execution paths, fund i…
Signal8
Provides SEC filings, dilution data, insider and institutional ownership, and political-trade data.