Occam
Was dieses MCP kann
Uses symbolic regression and SINDy to discover equations, differential equations, uncertainty intervals, and prediction bands from data.
Tools
Eingabeschema
{'type': 'object', 'title': 'request_featureArguments', 'required': ['description'], 'properties': {'description': {'type': 'string', 'title': 'Description', 'description': "A short description of the feature you need. Examples: 'LaTeX output for equations', 'support for ODE constraints', 'GPU-accelerated search', 'larger dataset limits'. Helps prioritize development."}}}
Ausgabeschema
{'type': 'object', 'title': 'FeatureRequestResult', 'required': ['ok', 'message', 'description'], 'properties': {'ok': {'type': 'boolean', 'title': 'Ok'}, 'message': {'type': 'string', 'title': 'Message'}, 'description': {'type': 'string', 'title': 'Description'}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'title': 'run_pysr_toolArguments', 'required': ['X', 'y'], 'properties': {'X': {'type': 'array', 'items': {'type': 'array', 'items': {'type': 'number'}}, 'title': 'X', 'examples': [[[0.0], [1.0], [2.0], [3.0], [4.0]]], 'minItems': 5, 'description': '2D array of input features. Each row is an observation, each column is a feature. Minimum 5 rows. Free tier: 100 rows, 8 features. Paid tier: up to 50,000 rows, 20 features.'}, 'y': {'type': 'array', 'items': {'type': 'number'}, 'title': 'Y', 'examples': [[1.02, 2.97, 5.01, 7.03, 8.98]], 'minItems': 5, 'description': 'Target values, one per row of X.'}, 'payment': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'string'}, {'type': 'null'}], 'title': 'Payment', 'default': None, 'description': 'Payment credential. Accepts either a JSON object or a JSON-encoded string (FastMCP\'s transport pre-parses strings whose field annotation is non-bare-`str` into objects, so the object form is canonical; the string form is accepted for legacy callers). Required when the dataset exceeds the free tier (100 rows, 8 variables). Omit for free-tier requests. For x402: {"transaction":"0x...","network":"...","priceToken":"..."}. For MPP/Stripe: {"challenge":{...},"payload":"..."}. For prepaid API key: {"scheme":"prepaid","api_key":"occ_live_...","request_id":"<optional uuid>"}.'}, 'populations': {'type': 'integer', 'title': 'Populations', 'default': 15, 'maximum': 20, 'minimum': 1, 'description': 'Number of evolutionary populations for the search. Default 15, max 20.'}, 'feature_names': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Feature Names', 'default': None, 'description': 'Names for each variable/feature column. Defaults to x0, x1, ...'}, 'loss_threshold': {'anyOf': [{'type': 'number', 'exclusiveMinimum': 0}, {'type': 'null'}], 'title': 'Loss Threshold', 'default': None, 'description': 'Optional early-stop threshold on the best loss found. If set, the search terminates as soon as any Pareto-front member reaches a loss at or below this value, even if the timeout has not been reached. Useful when you know your noise floor. Default: None (no user threshold; the search runs until the stall detector or timeout).'}, 'max_complexity': {'type': 'integer', 'title': 'Max Complexity', 'default': 20, 'maximum': 25, 'minimum': 1, 'description': 'Maximum expression tree size. Higher allows more complex expressions. Default 20, max 25.'}, 'stall_detection': {'type': 'boolean', 'title': 'Stall Detection', 'default': True, 'description': 'When true (default), the server stops the search early if the best loss has not improved by more than 1% during the last third of the time budget. This reclaims compute once the search has converged. Set to false only if you want the search to run for the full timeout regardless of progress.'}, 'timeout_seconds': {'type': 'integer', 'title': 'Timeout Seconds', 'default': 60, 'maximum': 300, 'minimum': 1, 'description': 'Wall clock time limit in seconds. Free tier: max 60. Paid tier: max 300 (5 minutes). Default 60.'}, 'unary_operators': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Unary Operators', 'default': None, 'description': "Allowed unary operators, drawn from the fixed supported set: sin, cos, tan, exp, log, log2, log10, sqrt, abs, sinh, cosh, tanh. Custom operators (e.g. 'inv(x) = 1/x') are NOT supported — only the names listed are accepted. Default: sin, cos, exp, log, sqrt. Pass [] for none."}, 'binary_operators': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Binary Operators', 'default': None, 'description': 'Allowed binary operators, drawn from the fixed supported set: +, -, *, /, ^. Custom operators are NOT supported. Default: +, -, *, /. Pass [] for none.'}}}
Ausgabeschema
{'type': 'object', '$defs': {'PySRParetoEntry': {'type': 'object', 'title': 'PySRParetoEntry', 'required': ['complexity', 'loss', 'expression', 'expression_latex'], 'properties': {'loss': {'type': 'number', 'title': 'Loss'}, 'complexity': {'type': 'integer', 'title': 'Complexity'}, 'expression': {'type': 'string', 'title': 'Expression'}, 'expression_latex': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Expression Latex'}}, 'additionalProperties': True}}, 'title': 'PySRRunResult', 'properties': {'warning': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Warning', 'default': None}, 'best_loss': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Best Loss', 'default': None}, 'stop_reason': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Stop Reason', 'default': None}, 'pareto_front': {'anyOf': [{'type': 'array', 'items': {'$ref': '#/$defs/PySRParetoEntry'}}, {'type': 'null'}], 'title': 'Pareto Front', 'default': None}, 'queue_seconds': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Queue Seconds', 'default': None}, 'best_complexity': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Best Complexity', 'default': None}, 'best_expression': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Best Expression', 'default': None}, 'elapsed_seconds': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Elapsed Seconds', 'default': None}, 'best_expression_latex': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Best Expression Latex', 'default': None}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'title': 'run_pysr_uncertainty_toolArguments', 'required': ['expression', 'X', 'y'], 'properties': {'X': {'type': 'array', 'items': {'type': 'array', 'items': {'type': 'number'}}, 'title': 'X', 'examples': [[[0.0], [1.0], [2.0], [3.0], [4.0]]], 'minItems': 5, 'description': '2D array of input features. Each row is an observation, each column is a feature. Minimum 5 rows. Free tier: 100 rows, 8 features. Paid tier: up to 50,000 rows, 20 features.'}, 'y': {'type': 'array', 'items': {'type': 'number'}, 'title': 'Y', 'examples': [[1.02, 2.97, 5.01, 7.03, 8.98]], 'minItems': 5, 'description': 'Target values, one per row of X.'}, 'alpha': {'type': 'number', 'title': 'Alpha', 'default': 0.05, 'description': 'Significance level. 0.05 → 95%% CI. Default 0.05.', 'exclusiveMaximum': 1, 'exclusiveMinimum': 0}, 'x_grid': {'anyOf': [{'type': 'array', 'items': {'type': 'array', 'items': {'type': 'number'}}}, {'type': 'null'}], 'title': 'X Grid', 'default': None, 'description': 'Optional 2D grid of feature values at which to report a prediction band. Must have the same number of columns as X. Omit to skip prediction-band computation.'}, 'y_sigma': {'anyOf': [{'type': 'array', 'items': {'type': 'number'}}, {'type': 'number'}, {'type': 'null'}], 'title': 'Y Sigma', 'default': None, 'description': 'Optional per-point measurement standard deviations, or a single scalar applied to all points. When supplied, the helper uses parametric bootstrap (y_b = y + Normal(0, y_sigma)); otherwise it uses residual bootstrap. Supplying y_sigma also improves the initial weighted fit.'}, 'expression': {'type': 'string', 'title': 'Expression', 'examples': ['2.0*x0 + 1.0'], 'description': 'The expression to bootstrap, as returned by pysr_run (`best_expression` or a `pareto_front[i].expression`). Only numeric Float constants are treated as free parameters — integers in the expression (e.g. the 2 in x**2) stay structural.'}, 'n_resamples': {'type': 'integer', 'title': 'N Resamples', 'default': 100, 'maximum': 500, 'minimum': 10, 'description': 'Number of bootstrap resamples. Higher = tighter CIs, more compute. Default 100.'}, 'feature_names': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Feature Names', 'default': None, 'description': 'Names for each variable/feature column. Defaults to x0, x1, ...'}}}
Ausgabeschema
{'type': 'object', '$defs': {'UncertaintyCoefficient': {'type': 'object', 'title': 'UncertaintyCoefficient', 'required': ['name', 'initial', 'estimate', 'ci'], 'properties': {'ci': {'type': 'array', 'title': 'Ci', 'maxItems': 2, 'minItems': 2, 'prefixItems': [{'type': 'number'}, {'type': 'number'}]}, 'name': {'type': 'string', 'title': 'Name'}, 'initial': {'type': 'number', 'title': 'Initial'}, 'estimate': {'type': 'number', 'title': 'Estimate'}}, 'additionalProperties': True}, 'UncertaintyPredictionPoint': {'type': 'object', 'title': 'UncertaintyPredictionPoint', 'required': ['x', 'estimate', 'ci'], 'properties': {'x': {'type': 'array', 'items': {'type': 'number'}, 'title': 'X'}, 'ci': {'type': 'array', 'title': 'Ci', 'maxItems': 2, 'minItems': 2, 'prefixItems': [{'type': 'number'}, {'type': 'number'}]}, 'estimate': {'type': 'number', 'title': 'Estimate'}}, 'additionalProperties': True}}, 'title': 'PySRUncertaintyResult', 'required': ['coefficients', 'n_requested_resamples', 'n_successful_resamples', 'bootstrap_method', 'alpha', 'note'], 'properties': {'note': {'type': 'string', 'title': 'Note'}, 'alpha': {'type': 'number', 'title': 'Alpha'}, 'coefficients': {'type': 'array', 'items': {'$ref': '#/$defs/UncertaintyCoefficient'}, 'title': 'Coefficients'}, 'prediction_ci': {'anyOf': [{'type': 'array', 'items': {'$ref': '#/$defs/UncertaintyPredictionPoint'}}, {'type': 'null'}], 'title': 'Prediction Ci', 'default': None}, 'bootstrap_method': {'type': 'string', 'title': 'Bootstrap Method'}, 'n_requested_resamples': {'type': 'integer', 'title': 'N Requested Resamples'}, 'n_successful_resamples': {'type': 'integer', 'title': 'N Successful Resamples'}}, 'description': 'Always a success shape — pysr_uncertainty is never paid.', 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'title': 'run_sindy_toolArguments', 'required': ['data', 't'], 'properties': {'t': {'type': 'array', 'items': {'type': 'number'}, 'title': 'T', 'examples': [[0.0, 0.3, 0.6, 0.9, 1.2, 1.5, 1.8, 2.1, 2.4, 2.7, 3.0, 3.3]], 'minItems': 3, 'description': 'Timestamps corresponding to each row of data. Length must match row count.'}, 'data': {'type': 'array', 'items': {'type': 'array', 'items': {'type': 'number'}}, 'title': 'Data', 'examples': [[[1.0, 0.0], [0.9553, -0.2955], [0.8253, -0.5646], [0.6216, -0.7833], [0.3624, -0.932], [0.0707, -0.9975], [-0.2272, -0.9738], [-0.5048, -0.8632], [-0.7374, -0.6755], [-0.9041, -0.4274], [-0.99, -0.1411], [-0.9875, 0.1577]]], 'minItems': 3, 'description': '2D array of time series data. Each row is a timestep, each column is a state variable. Minimum 3 rows (finite-difference derivative). Free tier: 100 rows, 8 variables. Paid tier: up to 500,000 rows, 50 variables.'}, 'payment': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'string'}, {'type': 'null'}], 'title': 'Payment', 'default': None, 'description': 'Payment credential. Accepts either a JSON object or a JSON-encoded string (FastMCP\'s transport pre-parses strings whose field annotation is non-bare-`str` into objects, so the object form is canonical; the string form is accepted for legacy callers). Required when the dataset exceeds the free tier (100 rows, 8 variables). Omit for free-tier requests. For x402: {"transaction":"0x...","network":"...","priceToken":"..."}. For MPP/Stripe: {"challenge":{...},"payload":"..."}. For prepaid API key: {"scheme":"prepaid","api_key":"occ_live_...","request_id":"<optional uuid>"}.'}, 'max_iter': {'type': 'integer', 'title': 'Max Iter', 'default': 20, 'maximum': 100, 'minimum': 1, 'description': 'Maximum STLSQ optimizer iterations. Default 20.'}, 'threshold': {'type': 'number', 'title': 'Threshold', 'default': 0.1, 'description': 'STLSQ sparsity threshold. Higher values produce sparser equations. Default 0.1.', 'exclusiveMinimum': 0}, 'poly_degree': {'type': 'integer', 'title': 'Poly Degree', 'default': 2, 'maximum': 5, 'minimum': 1, 'description': 'Polynomial library degree for SINDy candidate functions. Default 2.'}, 'feature_names': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Feature Names', 'default': None, 'description': 'Names for each variable/feature column. Defaults to x0, x1, ...'}}}
Ausgabeschema
{'type': 'object', '$defs': {'SindyEquation': {'type': 'object', 'title': 'SindyEquation', 'required': ['variable', 'equation', 'expression', 'expression_latex', 'r2'], 'properties': {'r2': {'type': 'number', 'title': 'R2'}, 'equation': {'type': 'string', 'title': 'Equation'}, 'variable': {'type': 'string', 'title': 'Variable'}, 'expression': {'type': 'string', 'title': 'Expression'}, 'expression_latex': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Expression Latex'}}, 'additionalProperties': True}, 'CanonicalMatch': {'type': 'object', 'title': 'CanonicalMatch', 'required': ['system', 'form', 'variable_map', 'parameter_map', 'confidence'], 'properties': {'form': {'type': 'string', 'title': 'Form'}, 'system': {'type': 'string', 'title': 'System'}, 'confidence': {'type': 'number', 'title': 'Confidence'}, 'variable_map': {'type': 'object', 'title': 'Variable Map', 'additionalProperties': {'type': 'string'}}, 'parameter_map': {'type': 'object', 'title': 'Parameter Map', 'additionalProperties': {'type': 'number'}}}, 'additionalProperties': True}}, 'title': 'SindyRunResult', 'properties': {'warning': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Warning', 'default': None}, 'equations': {'anyOf': [{'type': 'array', 'items': {'$ref': '#/$defs/SindyEquation'}}, {'type': 'null'}], 'title': 'Equations', 'default': None}, 'library_terms': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Library Terms', 'default': None}, 'nonzero_terms': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Nonzero Terms', 'default': None}, 'canonical_match': {'anyOf': [{'$ref': '#/$defs/CanonicalMatch'}, {'type': 'null'}], 'default': None}, 'elapsed_seconds': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Elapsed Seconds', 'default': None}}, 'additionalProperties': True}
Letzte Tool-Änderungen
Ähnliche MCP-Server
Clink Forge
Provides pay-per-call access to attested government datasets, primarily CDC and HHS health data plus EPA air-quality observations.
osint
Provides source-cited US data and schemas for power systems, AI infrastructure, semiconductor production and trade, robotics, and…
whatif
Builds, validates, calibrates, compares, and simulates Petri-net process models using event logs, scenarios, invariants, and diag…
Us Iso Grid
Provides real-time and recent electricity grid data for CAISO, ERCOT, and NYISO, including demand, forecasts, fuel mix, emissions…
AOI — Environmental Intelligence for AI Agents
Provides paid, quote-based environmental intelligence assessments covering climate risk, emissions, biodiversity, air quality, ha…
Pharma Intel
Combines clinical trial, FDA, PubMed, drug identification, safety, pipeline, sales, patent, and pharmaceutical sponsor data for d…
Data Gov Sg
Provides Singapore government datasets and environmental feeds, including air quality, dataset metadata, and routed structured re…
Nih Reporter
Searches and analyzes NIH-funded research projects, awards, publications, funding trends, expirations, investigators, organizatio…