RASON
NPM · @FRONTLINESYSTEMS/RASON-MCP-SERVER · 2 COMPONENTS · SCANNED AUG 3
Build, solve, and analyze RASON optimization, simulation, data science, and decision models
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →
Supply Chain Security87
- No malware found by supply-chain analysis.Pass
- Only part of the dependency tree could be resolved (108 of 109), so this covers what we could see, not the whole tree.Partial
- No install/post-install scripts declared.Pass
- Only part of the dependency tree could be resolved (108 of 109), so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency6
- Repository check failed: no source repository is declared. See how to fix → View diagnostics → Fail
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- License check failed: the license (SEE LICENSE IN LICENSE) isn't a recognized OSI-approved license. See how to fix → Fail
- Actively maintained (last published 67 days ago).Pass
- Security-disclosure policy not yet verified: we couldn't inspect the source repository.Unverified
Schema Quality & AI Usability76
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 4659 tokens (~211/item across 22 items; 20 tools + 2 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
- Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
npm · @frontlinesystems/rason-mcp-server
claude mcp add frontlinesystems-rason-mcp-server -- npx -y @frontlinesystems/rason-mcp-server
codex mcp add frontlinesystems-rason-mcp-server -- npx -y @frontlinesystems/rason-mcp-server
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"frontlinesystems-rason-mcp-server": {
"type": "local",
"command": [
"npx",
"-y",
"@frontlinesystems/rason-mcp-server"
],
"enabled": true
}
}
} openclaw mcp add frontlinesystems-rason-mcp-server --command npx --arg -y --arg @frontlinesystems/rason-mcp-server
mcp_servers:
frontlinesystems-rason-mcp-server:
command: "npx"
args: ["-y", "@frontlinesystems/rason-mcp-server"] {
"mcpServers": {
"frontlinesystems-rason-mcp-server": {
"command": "npx",
"args": [
"-y",
"@frontlinesystems/rason-mcp-server"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 3 Aug 26 +4
- Stability: unverified → 0.27 ▲ functional
- 2 Aug 26 +24
- Provenance: unverified → fail ▼ security
- Known CVEs: unverified → partial ▲ security
- Install scripts: unverified → pass ▲ security
- Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window). security
- License: unverified → fail ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- Schema quality: 100 → unverified ▼ functional
- MCP protocol: unverified → pass ▲ functional
- Maintenance: unverified → pass ▲ functional
- Schema quality: unverified → excellent ▲ functional
- Dependency health: unverified → partial ▲ functional
- Licence: SEE LICENSE IN LICENSE functional
- 1 Aug 26 +15
- Malware scan: unverified → pass ▲ security
- 31 Jul 26 −25
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 30 Jul 26 +26
- Schema quality: unverified → 100 ▲ functional
- Tool coverage: unverified → 100 ▲ functional
- 28 Jul 26 −26
- Schema quality: 100 → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- 27 Jul 26 44
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 3 Aug 2026 · Analysed npm/@frontlinesystems/[email protected]
Provenance none
Ecosystem: npm · Outcome: none
Dependencies 108 packages
108 packages in the resolved dependency tree · 108 deprecated · 35 stale.
The dependency tree was only partially resolved, so these counts may be incomplete.
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
about_rason About RASON ~197
IMPORTANT: Use this tool to answer ANY questions about what RASON is, what it can do, who makes it (Frontline Systems), its capabilities, or where to find RASON / Frontline Systems websites and URLs. Also use this tool when the user asks for RASON or Solver website URLs. RASON (RESTful Analytic Solver Object Notation, https://rason.com) is a JSON-based modeling language by Frontline Systems (https://www.solver.com). RASON supports optimization (linear, nonlinear, mixed-integer, stochastic), Monte Carlo simulation, data science / machine learning, calculation (DMN decision tables, FEEL expressions, box functions), and multi-stage decision flows. Models use Excel-compatible formula syntax and are solved via REST API or locally through the RASON Desktop VS Code extension with first-class Power BI Desktop integration. Do NOT answer questions about RASON from memory — always call this tool first.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
delete_model DELETE /model/{name_or_id} ~378
Delete models from the user's RASON account. Supports flexible filtering: Behavior based on name_or_id: - Model name: Deletes all versions/instances/fitted models/attached files/results for that name - Model ID (userId+modelName+creationDate): Deletes that specific model and its attached files/results Optional filters: - kind: Delete only specific model kinds (fitted, excel, rason). Can specify multiple kinds. - type: Delete only specific model types (origin, version, instance). Can specify multiple types. - force: Set to true to delete models that are currently executing (default: false) Returns: - status: Descriptive status message - deletedModels: Array of successfully deleted model info objects - nonDeletedModels: Array of models not deleted because they are executing - invalidModels: Array of invalid resource identifiers
| Name | Type | Req | Description |
|---|---|---|---|
| force | boolean | — | Force deletion of models that are currently executing. Default: false (models in execution will not be deleted). |
| kind | array | — | Filter deletion by model kind. 'fitted' = fitted Data Mining model in PMML/JSON format, 'excel' = models defined in Excel language, 'rason' = models defined in RASON language. Can specify multiple ki… |
| name_or_id | string | yes | The model name or model ID. A model name affects all models with that name. A model ID (format: userId+modelName+creationDate) affects only that specific resource. |
| type | array | — | Filter deletion by model type. 'origin' = originally POSTed models, 'version' = created by PUTing models of the same name, 'instance' = created when a model is solved. Can specify multiple types to d… |
No output schema declared.
No examples provided.
describe_model Analyze RASON Model ~250
Analyze and classify a RASON model: reliably detect model type and subtype (optimization — LP, QP, MIP, stochastic, chance-constrained; simulation; datamining — classification, regression, clustering; calculation — decision tables, box functions; multi-stage flow), inventory and classify components (variable types, constraint types, distribution families, ML pipelines, inter-stage data flow), and identify issues (missing result requests, absent validation data, empty output sections). Provides deterministic RASON-specific analysis beyond what raw JSON inspection reveals. Call whenever the user asks about, discusses, or works with a RASON model — whether open in the editor, referenced as a file, provided inline, or stored on the RASON server.
| Name | Type | Req | Description |
|---|---|---|---|
| model | object | — | The RASON model as a JSON object. Mutually exclusive with rason_model_path and name_or_id. |
| name_or_id | string | — | Name or ID of an existing model on the RASON account. The model will be fetched and analyzed. Mutually exclusive with model and rason_model_path. |
| rason_model_path | string | — | Path to a file containing a RASON model. Mutually exclusive with model and name_or_id. |
No output schema declared.
No examples provided.
diagnose_model POST /diagnose ~299
Submit a model for synchronous (quick) diagnostics. Supports three input methods: 1. Inline RASON model: Provide the model as a JSON object 2. RASON model file: Provide rason_model_path pointing to a .json file 3. Excel model file: Provide excel_model_path pointing to a .xlsx file The server will analyze the model and return diagnostic information immediately in the response. Note: Synchronous diagnostics do not support RASON models with external data files. Diagnostics are most useful for optimization models (structural analysis) and multi-stage flow models (stage graph, pipelines, data sources). For simulation, data mining, and calculation models, results are limited.
| Name | Type | Req | Description |
|---|---|---|---|
| excel_model_path | string | — | Absolute path to an Excel model file (.xlsx). The file will be uploaded and diagnosed. Mutually exclusive with model and rason_model_path. |
| include_full_results | boolean | — | When true, returns the complete unsummarized diagnostic result. By default (false), large arrays and dataFrames are summarized to reduce token usage. Use this only when the user explicitly needs raw… |
| model | object | — | The RASON model object (inline JSON). Mutually exclusive with rason_model_path and excel_model_path. |
| rason_model_path | string | — | Absolute path to a RASON model file (.json). The file will be read and sent for diagnostics. Mutually exclusive with model and excel_model_path. |
No output schema declared.
No examples provided.
get_example Get Example Model ~89
Retrieve the full RASON JSON definition of a specific example model. Use this after search_examples to get the complete model source code as a reference for building new models. Do NOT solve, POST, or run the model unless the user explicitly asks to.
| Name | Type | Req | Description |
|---|---|---|---|
| file_path | string | yes | The file path of the example model (as returned by search_examples). Example: 'Optimization/Linear/ProductMix.json' |
No output schema declared.
No examples provided.
get_model GET /model/{name_or_id} ~176
Retrieve the actual model definition for a specific model. Returns RASON JSON definition for RASON models. Use this to inspect or modify a model's structure. To solve an existing model, submit_solve can work directly with the model name. Note: Excel models are returned as binary files which cannot be processed by LLMs. Use list_models to inspect metadata for Excel models instead. - If a model name is provided, returns the champion (most recent) model with that name - If a model ID is provided (format: userId+modelName+creationDate), returns that specific resource
| Name | Type | Req | Description |
|---|---|---|---|
| name_or_id | string | yes | The model name or model ID. A model name returns the champion (most recent) version. A model ID (format: userId+modelName+creationDate) returns that specific resource. |
No output schema declared.
No examples provided.
get_model_template Get RASON Model Template ~167
Get a RASON model template — a bare JSON scaffold for a specific model type. Use as a structural reference or starting point. Available templates: - blank: Minimal model with name and description - optimization: Variables, constraints, objective (linear, nonlinear, etc.) - simulation: Uncertain variables, output functions (Monte Carlo) - sim-optimization: Stochastic programming (optimization + uncertainty) - data-science: Datasources, datasets, estimator, actions - workflow: Multi-stage decision flow connecting models - decision-table: DMN 1.6 decision tables, box functions, Excel/FEEL formulas - power-bi: Model with Power BI Desktop datasource bindings (first-class integration)
| Name | Type | Req | Description |
|---|---|---|---|
| template_id | string | yes | The model type to get a template for. |
No output schema declared.
No examples provided.
get_solve_result GET /model/{name_or_id}/result ~184
Retrieve the solving result for a model. If the model solve is complete, returns the full result (same format as synchronous solve_model). If the model solve is still incomplete, returns the incomplete status instead. If a model name is provided, returns results for all instances under that name. If a model ID is provided, returns the result for that specific instance. Use get_solve_status first to confirm the solve is complete before retrieving results.
| Name | Type | Req | Description |
|---|---|---|---|
| include_full_results | boolean | — | When true, returns the complete unsummarized result. By default (false), large arrays and dataFrames are summarized to reduce token usage. Use this only when the user explicitly needs raw data values. |
| name_or_id | string | yes | The model name or model ID. A model name returns results for all instances with that name. A model ID returns the result for that specific instance. |
No output schema declared.
No examples provided.
get_solve_status GET /model/{name_or_id}/status ~135
Check the solving status of a model. Returns a response with: - status: "Complete", "Incomplete", or "Canceled" - progress (optional): solving progress details including elapsed time, iterations, objective value, etc. If a model name is provided, returns status for all instances under that name. If a model ID is provided, returns status for that specific instance. Use this after submit_solve to monitor when the solve finishes.
| Name | Type | Req | Description |
|---|---|---|---|
| name_or_id | string | yes | The model name or model ID. A model name returns status for all instances with that name. A model ID returns status for that specific instance. |
No output schema declared.
No examples provided.
list_models GET /model ~265
Retrieve metadata for models in the user's RASON account. Returns a JSON array of model objects, each containing: - ModelId: unique identifier (format: userId+modelName+creationDate) - ModelName: short name - ModelDescr: human-readable description of what the model does - ModelType, ModelKind, and other metadata fields Use this to discover available models. Optionally filter by model type and/or kind. Tip: Check here first when the user references a model by name to see if it already exists on the account.
| Name | Type | Req | Description |
|---|---|---|---|
| kind | string | — | Filter models by kind. 'fitted' = fitted Data Mining model in PMML/JSON format, 'rason' = models defined in RASON language, 'excel' = models defined in Excel language, 'lpmps' = models defined in LP/… |
| type | string | — | Filter models by type. 'origin' = originally POSTed models, 'version' = created by PUTing models of the same name (different versions), 'instance' = created when a model is solved, 'all' = return all… |
No output schema declared.
No examples provided.
post_model POST /model ~100
Create a new model by posting a RASON JSON definition. Use this for RASON models (optimization, simulation, data science, calculation (DMN decision tables, FEEL, box functions), or decision flow). The model is saved to the user's account and can later be retrieved, solved, or managed. For Excel models or RASON models with data files, use post_model_with_files instead.
| Name | Type | Req | Description |
|---|---|---|---|
| model | object | yes | The RASON model object |
No output schema declared.
No examples provided.
post_model_with_files POST /model (form-data) ~247
Upload a model with file attachments using multipart form-data. Supports two scenarios: 1. RASON model with data files: Provide rason_model (JSON string) or rason_model_path (file path) plus one or more file paths (e.g. CSV or Excel data sources referenced by the model) 2. Excel model: Provide a single Excel file path (.xlsx) without rason_model. The server will recognize it as an Excel model based on the file extension Returns the created model metadata on success.
| Name | Type | Req | Description |
|---|---|---|---|
| file_paths | array | yes | One or more absolute file paths to upload (e.g. 'C:/models/model.xlsx', '/home/user/data.csv') |
| rason_model | string | — | The RASON model definition as a JSON string. Required when uploading a RASON model with attached data files. Omit when uploading a standalone Excel model. Mutually exclusive with rason_model_path. |
| rason_model_path | string | — | Absolute path to a RASON model file (.json). The file will be read and sent as the model definition. Use this instead of rason_model to avoid passing large JSON strings. Mutually exclusive with rason… |
No output schema declared.
No examples provided.
put_model PUT /model/{name_or_id} ~130
Update an existing model or create a new version with the specified name. If a model with the given name exists, creates a new version (becomes the champion). If no model exists, creates a new model (acts like POST). For Excel models or RASON models with data files, use put_model_with_files instead.
| Name | Type | Req | Description |
|---|---|---|---|
| model | object | yes | The RASON model object |
| name_or_id | string | yes | The model name or model ID. A model name creates/updates the champion version. A model ID (format: userId+modelName+creationDate) updates that specific resource. |
No output schema declared.
No examples provided.
put_model_with_files PUT /model/{name_or_id} (form-data) ~333
Update an existing model or create a new version with file attachments using multipart form-data. If a model with the given name exists, creates a new version (becomes the champion). If no model exists, creates a new model (acts like POST). Supports two scenarios: 1. RASON model with data files: Provide rason_model (JSON string) or rason_model_path (file path) plus one or more file paths (e.g. CSV or Excel data sources referenced by the model) 2. Excel model: Provide a single Excel file path (.xlsx) without rason_model. The server will recognize it as an Excel model based on the file extension Returns the created/updated model metadata on success.
| Name | Type | Req | Description |
|---|---|---|---|
| file_paths | array | yes | One or more absolute file paths to upload (e.g. 'C:/models/model.xlsx', '/home/user/data.csv') |
| name_or_id | string | yes | The model name or model ID. A model name creates/updates the champion version. A model ID (format: userId+modelName+creationDate) updates that specific resource. |
| rason_model | string | — | The RASON model definition as a JSON string. Required when uploading a RASON model with attached data files. Omit when uploading a standalone Excel model. Mutually exclusive with rason_model_path. |
| rason_model_path | string | — | Absolute path to a RASON model file (.json). The file will be read and sent as the model definition. Use this instead of rason_model to avoid passing large JSON strings. Mutually exclusive with rason… |
No output schema declared.
No examples provided.
search_examples Search Example Models ~263
Search ~200 RASON example models by keyword or model type. Returns up to 8 best matches with descriptions and metadata. Model types: optimization, simulation, datamining (data science/ML), calculation (DMN decision tables, FEEL, box functions), flow (multi-stage decision pipelines) Problem domains covered: portfolio optimization, production planning, supply chain, vehicle routing, scheduling, workforce allocation, blending, cutting stock, Monte Carlo risk analysis, demand forecasting, customer churn prediction, classification, regression, clustering, time series forecasting, text mining, business rules, decision tables, decision automation, multi-stage decision flows. Focus on RASON's core strengths: optimization, simulation, and decision models. IMPORTANT: Do not pre-filter by model_type unless the user explicitly requests a specific type. Present results and let scoring surface the best matches.
| Name | Type | Req | Description |
|---|---|---|---|
| feature_demo | boolean | — | If true, only return feature demo examples. If false, exclude them. |
| model_type | string | — | Filter by RASON model type |
| query | string | — | Search query — keywords describing what you're looking for. Examples: 'portfolio optimization', 'decision tree classification', 'monte carlo simulation', 'scheduling constraints', 'neural network', '… |
No output schema declared.
No examples provided.
set_champion PATCH /model/{name_or_id} ~185
Set or unset the champion flag on a model version. The champion version is the one returned by default when a model is referenced by name. When setting a new champion, the previous champion for that model name is automatically unmarked. Only origin or version models can be marked as champion (not run instances). - If a model name is provided, targets the current champion (most recent) version - If a model ID is provided (format: userId+modelName+creationDate), targets that specific version
| Name | Type | Req | Description |
|---|---|---|---|
| champion | boolean | yes | Set to true to mark this model as the champion, or false to remove the champion designation. |
| name_or_id | string | yes | The model name or model ID. A model name targets the current champion (most recent) version. A model ID (format: userId+modelName+creationDate) targets that specific version. |
No output schema declared.
No examples provided.
solve_model POST /solve ~325
Submit a model for synchronous (quick) solving. Supports three input methods: 1. Inline RASON model: Provide the model as a JSON object 2. RASON model file: Provide rason_model_path pointing to a .json file 3. Excel model file: Provide excel_model_path pointing to a .xlsx file The server will solve the model (optimization, simulation, data science, calculation (DMN decision tables, FEEL, box functions), or decision flow) and return the results immediately in the response. Best suited for small to medium models that solve quickly. Typically used for one-off solving of new models or local model files. For models already on the account, submit_solve is usually preferred for async solving. Note: Synchronous solving does not support RASON models with external data files.
| Name | Type | Req | Description |
|---|---|---|---|
| excel_model_path | string | — | Absolute path to an Excel model file (.xlsx). The file will be uploaded and solved. Mutually exclusive with model and rason_model_path. |
| include_full_results | boolean | — | When true, returns the complete unsummarized result. By default (false), large arrays and dataFrames are summarized to reduce token usage. Use this only when the user explicitly needs raw data values. |
| model | object | — | The RASON model object (inline JSON). Mutually exclusive with rason_model_path and excel_model_path. |
| rason_model_path | string | — | Absolute path to a RASON model file (.json). The file will be read and sent for solving. Mutually exclusive with model and excel_model_path. |
No output schema declared.
No examples provided.
stop_solve POST /model/{name_or_id}/stop ~132
Request to stop a running model solve. After stopping, the model status becomes 'Canceled'. Depending on the model type, intermediate results may still be available (e.g. the best-so-far solution for an optimization problem). Use get_solve_result after stopping to check if partial results are available. If a model name is provided, stops all running instances under that name. If a model ID is provided, stops only that specific instance.
| Name | Type | Req | Description |
|---|---|---|---|
| name_or_id | string | yes | The model name or model ID. A model name stops all running instances with that name. A model ID stops only that specific instance. |
No output schema declared.
No examples provided.
submit_diagnose POST /model/{name_or_id}/diagnose ~175
Submit a previously uploaded model for asynchronous (long) diagnostics. The model must already exist in the user's account (uploaded via post_model or put_model). This places the model on the diagnostics queue and returns immediately with the created model instance metadata (without waiting for diagnostics to complete). After submitting, use get_solve_status to monitor progress, get_solve_result to retrieve diagnostic results when complete, and stop_solve to cancel if needed. Diagnostics are most useful for optimization models (structural analysis) and multi-stage flow models (stage graph, pipelines, data sources). For simulation, data mining, and calculation models, results are limited.
| Name | Type | Req | Description |
|---|---|---|---|
| name_or_id | string | yes | The model name or model ID of an existing Origin or Version model. If a model name is provided, diagnoses the champion (most recent) version. |
No output schema declared.
No examples provided.
submit_solve POST /model/{name_or_id}/solve ~177
Submit a previously uploaded model for asynchronous (long) solving. The model must already exist in the user's account (uploaded via post_model or put_model). This places the model on the solving queue and returns immediately with the created model instance metadata (without waiting for the solve to complete). After submitting, use get_solve_status to monitor progress, get_solve_result to retrieve results when complete, and stop_solve to cancel if needed. This is the typical path for solving models already on the account. Can be called with just the model name if it exists on the account. Best suited for large models or models that take a long time to solve.
| Name | Type | Req | Description |
|---|---|---|---|
| name_or_id | string | yes | The model name or model ID of an existing Origin or Version model. If a model name is provided, solves the champion (most recent) version. |
No output schema declared.
No examples provided.