Skip to main content
Glama
Cybing521

Vensim MCP

by Cybing521

Vensim MCP

把结构化的系统动力学规格生成成真正可打开的 Vensim .mdl,同时提供布局、SVG 预览、静态审计和本机 Vensim 交接。项目既能作为 MCP server 使用,也能直接从命令行运行。

Market adoption example

Vensim PLE 实机运行证据

以下图片不是 SVG 预览或设计稿,而是 2026-07-20 在本机 Vensim PLE 10.5.1 中打开本仓库生成的 examples/market_adoption.mdl 后直接截取的运行界面。

Generated model opened in Vensim PLE

原生检查均通过:

Model Check

Units Check

Vensim reports Model is OK

Vensim reports Units are OK

SyntheSim 能实际启动,常量被转换为滑杆,库存、流率和辅助变量显示仿真曲线:

SyntheSim running in Vensim PLE

完整验收步骤、环境和边界见 docs/native-validation.md

Related MCP server: Document Systems

为什么需要它

现有开源方案通常只覆盖其中一段:PySD 和 SDEverywhere 擅长跨平台仿真,VenPy/VST 面向 Windows DLL 或 DSS 命令文件,一些 .mdl 美化脚本只重排已有坐标。这个项目把 macOS 上实际可用的路径连起来:

  1. 用 JSON 明确库存、流率、变量、单位和因果连接;

  2. 生成包含正确库存、阀门、源汇云和信息箭头的 Vensim Sketch;

  3. 用确定性分层布局与碰撞评分选择弧线控制点;

  4. 从真实 Sketch 记录渲染 SVG,而不是画一张与模型无关的示意图;

  5. 静态审计后直接在本机 Vensim 中打开,完成权威的 Check ModelUnits Check

能力边界

能力

macOS Vensim PLE

Vensim DSS

无 Vensim

生成和审计 .mdl

支持

支持

支持

SVG 预览

支持

支持

支持

打开原生模型

支持

支持

不支持

.cmd 无头批处理

官方不支持

支持

不支持

Vensim DLL

macOS 不提供

Windows 可用

不支持

PLE 可以被可靠地调用来打开模型,但不能被包装成并不存在的 DSS 批处理能力。vensim-mcp doctor 会报告当前机器的真实版本和边界。

快速开始

需要 Python 3.10+;推荐使用 uv

git clone https://github.com/Cybing521/vensim-mcp.git
cd vensim-mcp
uv sync

uv run python -m vensim_mcp.cli doctor
uv run python -m vensim_mcp.cli generate examples/market_adoption.json \
  --output examples/market_adoption.mdl
uv run python -m vensim_mcp.cli validate examples/market_adoption.mdl
uv run python -m vensim_mcp.cli render examples/market_adoption.mdl \
  --output examples/market_adoption.svg
uv run python -m vensim_mcp.cli open examples/market_adoption.mdl

在 Vensim 中依次执行:

  • Model > Check Model

  • Model > Units Check

  • 运行一次仿真,确认库存曲线和边界行为符合预期

静态审计结果不会冒充这三项原生检查。

MCP 配置

安装后运行 stdio server:

uv run python -m vensim_mcp.server

Codex/兼容客户端可使用以下命令配置本地 server(把目录换成你的绝对路径):

{
  "mcpServers": {
    "vensim": {
      "command": "uv",
      "args": [
        "--directory",
        "/absolute/path/to/vensim-mcp",
        "run",
        "python",
        "-m",
        "vensim_mcp.server"
      ]
    }
  }
}

暴露的 MCP tools:

  • vensim_doctor

  • generate_vensim_model

  • inspect_vensim_model

  • validate_vensim_model

  • render_vensim_preview

  • open_vensim_model

  • create_vensim_dss_script

JSON 规格

最小规格由四部分组成:

{
  "name": "simple_model",
  "title": "Simple Model",
  "levels": [
    {"name": "Population", "equation": "INTEG ( Births - Deaths, 1000 )", "unit": "Person"}
  ],
  "flows": [
    {"name": "Births", "equation": "Population * Birth Fraction", "unit": "Person/Month", "target": "Population"}
  ],
  "variables": [
    {"name": "Birth Fraction", "equation": "0.02", "unit": "1/Month", "kind": "constant"}
  ],
  "links": [
    {"source": "Population", "target": "Births", "polarity": "+"},
    {"source": "Birth Fraction", "target": "Births", "polarity": "+"}
  ]
}

完整例子见 examples/market_adoption.json。生成器不会猜测研究数据、方程或单位;这些必须由建模者明确提供。

布局原则

  • 库存和物理流率构成水平主骨架;

  • 常量均匀分布在上层,计算型辅助变量靠近其作用目标;

  • 无障碍的短连接优先保持直线,只有避让节点、物理管道或相邻路线时才使用单控制点弧线;

  • 对多个曲率和两个弯曲方向同时评分,节点碰撞的惩罚高于路线交叉,避免为了少一次交叉而穿过变量;

  • 变量名按实际字符宽度调整节点尺寸;

  • 物理管道与信息箭头使用不同样式;

  • 过长连接、重叠节点、路线穿节点、路线交叉和断裂对象引用都会进入审计报告。

当前主示例的静态审计为:节点重叠 0、路线穿节点 0;13 条信息连接中仍有 7 对相交,另有 4 个交点涉及库存—流率物理管道。密集反馈图不承诺数学意义上的零交叉,但路由器会在保持 Vensim 单控制点兼容性的前提下尽量减少交叉,并如实报告残留值。

测试

uv run python -m unittest discover -s tests -v

测试覆盖 JSON 校验、模型生成、Sketch 引用、物理管道、直线/曲线混合路由、节点与路径碰撞指标、SVG 预览、DSS 脚本边界,以及本机 Vensim PLE 检测。

研究依据

公开方案对比和官方能力边界见 docs/research.md。核心文件格式依据 Vensim 官方 File FormatsSketch Format

License

MIT。Vensim 是 Ventana Systems, Inc. 的产品;本项目不包含或重新分发 Vensim 软件、DLL 或专有二进制格式。

Available Tools

7 tools
create_vensim_dss_scriptC

Create a Vensim DSS .cmd batch script; PLE does not support this official path.

ParametersJSON Schema
NameRequiredDescriptionDefault
run_nameNocurrent
model_pathYes
output_pathYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the burden of behavioral disclosure. It states that the tool creates a script but does not mention side effects such as writing to output_path, whether existing files are overwritten, or whether Vensim DSS is invoked. The PLE compatibility note is helpful but does not reveal the actual behavior of the operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded with the main action and resource. The PLE caveat is a useful additional clause that does not feel wasted. It could be slightly more informative, but there is no unnecessary verbosity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, no output schema, and no parameter descriptions, this one-sentence definition is not complete for an agent that needs to invoke the tool correctly. It does not explain what the generated script contains, what the required paths represent, or what happens when the script is created. Some context is provided by the PLE note, but significant operational information is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, but it provides no parameter-specific explanations. The parameter names 'model_path', 'output_path', and 'run_name' are somewhat self-explanatory, and the description implies the script relates to a model, but it does not clarify how each parameter is used or what 'run_name' controls.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: 'Create a Vensim DSS .cmd batch script.' It clearly identifies the artifact type and distinguishes this tool from siblings that generate, inspect, or validate actual Vensim models. The PLE caveat adds useful context, though the description does not explicitly state what the batch script is intended to do beyond being a DSS script.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The PLE caveat implies this tool is intended for Vensim DSS workflows and should not be used in PLE environments. However, it does not explicitly state when to choose this tool over alternatives or name fallback tools. The usage context is implied rather than fully spelled out.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_vensim_modelB

Generate a styled, runnable .mdl file from a JSON model specification.

ParametersJSON Schema
NameRequiredDescriptionDefault
spec_jsonYes
output_pathYes

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral disclosure burden. It reveals that a file is generated, but does not disclose whether an existing output_path is overwritten, what happens on invalid input, what side effects occur, or what the tool returns. These are meaningful gaps for a file-creating operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no filler. Every word contributes meaning, including the useful qualifiers 'styled' and 'runnable' that set output expectations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no output schema and no annotations, the description is too thin to be complete. It does not explain the return value, the output_path semantics, overwrite behavior, or how this tool fits into the workflow with the sibling validation and inspection tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It gives some meaning to spec_json by calling it a 'JSON model specification', but it says nothing about output_path or the expected structure of the JSON. The parameter names are self-explanatory to a degree, but the description does not provide the needed detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific action ('Generate'), a concrete resource ('.mdl file'), and the input source ('JSON model specification'). This distinguishes it from sibling tools that validate, inspect, render, or open Vensim models, and from create_vensim_dss_script which produces a different artifact.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The usage context is implied: use this tool when you have a JSON model specification and need a runnable .mdl file. However, it does not explicitly mention when not to use it or reference any sibling alternatives, leaving routing mostly to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

inspect_vensim_modelA

Read equations, sketch objects, arrows, and views from a text .mdl model.

ParametersJSON Schema
NameRequiredDescriptionDefault
model_pathYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the transparency burden. It clearly signals a read-only inspection operation and clarifies that the input is a text .mdl model. It does not detail error behavior or output format, but the non-mutating nature is effectively conveyed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no filler. The key action is front-loaded and every clause adds meaningful detail about what the tool reads and from where.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with one required parameter and no output schema, the description gives enough to select and invoke it correctly: it identifies the input type and the scope of content returned. It doesn't describe return structure or failure modes, which prevents a perfect score.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema gives no property descriptions, but the tool description compensates by indicating that the model_path parameter refers to a text .mdl model. It does not discuss path format or required file existence, but for a single simple string parameter this is adequate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Read') and names the resource type ('text .mdl model') along with the exact contents it retrieves: equations, sketch objects, arrows, and views. This makes it easy to distinguish from sibling tools like render_vensim_preview or validate_vensim_model, which imply different operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes the use case clear: call this when you need to read model structure or content from a text .mdl file. It does not explicitly compare against sibling tools or state when not to use it, so it falls short of full alternative guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

open_vensim_modelB

Open a .mdl in the locally installed Vensim application.

ParametersJSON Schema
NameRequiredDescriptionDefault
model_pathYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It does state that the action opens a model in the local Vensim application, but it does not mention side effects, whether the call returns before or after the app opens, error behavior when Vensim is missing, or whether any model data is returned.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one efficient sentence with no filler. It front-loads the action and resource, then places the environment detail at the end. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Even though this is a simple one-parameter tool, there are no annotations and no output schema, so the description must be richer by itself. It omits what the agent should expect after invocation, such as whether the function returns immediately after launching Vensim, and it does not help disambiguate from sibling model tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must add meaning to model_path. It implies the path points to a .mdl file, but it does not clarify absolute vs relative paths, extension handling, or invalid-path behavior. The description adds only a little beyond the schema's 'Model Path' title.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('Open'), a target resource ('.mdl' model files), and a concrete environment (locally installed Vensim application). This clearly distinguishes it from siblings like generate_vensim_model, inspect_vensim_model, and validate_vensim_model, which do different operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance about when to choose this tool over siblings, nor any stated exclusions or conditions. An agent is left to infer that opening is appropriate when an interactive Vensim session is desired, but no alternatives or explicit usage context are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

render_vensim_previewB

Render an SVG preview from the model's actual Vensim sketch records.

ParametersJSON Schema
NameRequiredDescriptionDefault
model_pathYes
output_pathYes

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It does not state whether rendering writes to output_path, whether existing files are overwritten, whether the operation is read-only, or whether external tools like Vensim are required. Only the primary render action is mentioned.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with the main verb front-loaded and zero filler. Every word contributes semantic value, making it efficient for an agent to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter tool with no annotations and no output schema, the description is too sparse. The agent cannot determine valid file types for either parameter or fully anticipate the tool's side effects, so calling it correctly would depend on uninformed assumptions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage, and the description does not compensate. model_path and output_path are self-explanatory by name, but accepted file formats, expected extensions, and directory constraints are not disclosed anywhere, leaving the agent to guess.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Render') and resource ('SVG preview'), and specifies the source ('the model's actual Vensim sketch records'). This clearly differentiates it from sibling tools like generate_vensim_model or inspect_vensim_model, which concern creation and inspection rather than visual rendering.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies a use case: produce a visual preview from the real model sketch. However, it provides no explicit guidance on when to prefer this over inspect_vensim_model or open_vensim_model, nor does it mention any exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_vensim_modelB

Run a conservative static audit before opening the model in Vensim.

ParametersJSON Schema
NameRequiredDescriptionDefault
model_pathYes

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral transparency burden. 'Static audit' and 'conservative' imply a non-mutating, cautious check, which is useful. However, it does not say what is checked, how failures are reported, or whether there are any side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no wasted words. It conveys the action and timing efficiently, though 'conservative' adds slight ambiguity and could be clarified.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter tool, the invocation requirements are minimal, and the 'before opening' guidance provides useful context. However, with no output schema and no mention of what the audit returns or does on failure, the description leaves the agent guessing about the tool's result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description never mentions model_path or its expected format. The parameter name is fairly self-explanatory, but the description adds no constraints about accepted file extensions, absolute vs. relative paths, or required model formats.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('run') and a clear resource ('static audit' of the model) and adds timing that helps distinguish it from opening or inspecting the model. It does not explicitly contrast with vensim_doctor, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'before opening the model in Vensim' provides a concrete trigger for when to use this tool, which is clear usage guidance. It does not mention exclusions or alternative sibling tools, but the timing context is sufficient for basic tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vensim_doctorA

Detect local Vensim and report the exact native automation boundary.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description conveys a read-only diagnostic behavior ('Detect' and 'report') without any annotation support, which is useful. However, it does not explain what 'native automation boundary' means, what the returned report contains, or whether the tool may initiate any side effects, so behavioral disclosure is only partial.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single compact sentence with no filler, and the primary action ('Detect local Vensim') is front-loaded. Every word contributes to the purpose, making it appropriately sized for a zero-parameter tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no annotations, the description is the sole source of behavioral context, but it leaves the key concept of the 'native automation boundary' unexplained and does not describe what the agent should expect as output. It is sufficient for basic recognition but not fully complete for correct invocation and interpretation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and the schema is effectively complete for an empty input object, so the description has no parameter burden to carry. A baseline of 4 is appropriate because there is nothing missing semantically.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('Detect') and a concrete resource ('local Vensim'), and clearly distinguishes itself from siblings like generate_vensim_model or validate_vensim_model by framing itself as a diagnostic/reporting tool. However, the phrase 'exact native automation boundary' is jargon-heavy and not fully self-explanatory.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool — when you need to detect a local Vensim installation or learn about its automation capabilities — but offers no explicit guidelines, exclusions, or mention of alternative sibling tools. Context is inferable but not stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 7 tool updatesv0.1.0
    • First observedcreate_vensim_dss_script
    • First observedgenerate_vensim_model
    • First observedinspect_vensim_model
    • First observedopen_vensim_model
    • First observedrender_vensim_preview
    • First observedvalidate_vensim_model
    • First observedvensim_doctor

TDQS

A3.6/5.0
Disambiguation5/5

Each tool targets a distinct action: environment detection, model generation, inspection, validation, rendering, opening, and script creation. There is no overlap in purpose or output, making tool selection unambiguous.

Naming Consistency4/5

Most tools follow the `verb_vensim_noun` pattern (generate_vensim_model, inspect_vensim_model, etc.), but `vensim_doctor` deviates by being a noun-first name without a clear verb. This is a minor inconsistency, not a chaotic mix.

Tool Count5/5

Seven tools is a well-scoped size for a domain-specific integration. Each tool covers a necessary workflow step without redundancy, fitting comfortably within the ideal range.

Completeness4/5

The surface covers the primary lifecycle: create (generate), read (inspect), validate, preview (render), and open. Missing update/delete operations are acceptable since models are generated from JSON specs, and there is no simulation tool, but the core use cases are well addressed.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Cybing521/vensim-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server