Systems MCP
The Systems MCP server enables interaction with the lethain:systems library for systems modeling, providing two main capabilities:
Run Systems Models: Execute systems model specifications using the
run_systems_modelfunction, optionally specifying the number of rounds, and receive the output as JSON.Load Documentation: Load systems documentation, examples, and specification details into the context window to enhance the model's ability to generate accurate systems specifications.
Provides tools for interacting with the lethain:systems library for systems modeling, allowing users to run and visualize systems models directly through the interface.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Systems MCPrun a simple supply chain model with 50 rounds"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
systems-mcp
systems-mcp is an MCP server for interacting with
the lethain:systems library for systems modeling.
It provides two tools:
run_systems_modelruns thesystemsspecification of a systems model. Takes two parameters, the specification and, optionally, the number of rounds to run the model (defaulting to 100).load_systems_documentationloads documentation and examples into the context window. This is useful for priming models to be more helpful at writing systems models.
It is intended for running locally in conjunction with Claude Desktop or a similar tool.
Usage
Here's an example of using systems-mcp to run and render a model.

Here is the artifact generated from that prompt, including the output from running the systems model.

Finally, here is an example of using the load_systems_documentation tool to prime
the context window and using it to help generate a systems specification.
This is loosely equivalent to including lethain:systems/README.md in the context window,
but also includes a handful of additional examples
(see the included files in ./docs/.

Then you can render the model as before.

The most interesting piece here is that I've never personally used systems to model a social network,
but the LLM was able to do a remarkably decent job at generating a specification despite that.
Related MCP server: MCP Server Demo
Installation
These instructions describe installation for Claude Desktop on OS X. It should work similarly on other platforms.
Install Claude Desktop.
Clone systems-mcp into a convenient location, I'm assuming
/Users/will/systems-mcpMake sure you have
uvinstalled, you can follow these instructionsGo to Cladue Desktop, Setting, Developer, and have it create your MCP config file. Then you want to update your
claude_desktop_config.json. (Note that you should replacewillwith your user, e.g. the output ofwhoami.cd ~/Library/Application\ Support/Claude/ vi claude_desktop_config.jsonThen add this section:
{ "mcpServers": { "systems": { "command": "uv", "args": [ "--directory", "/Users/will/systems-mcp", "run", "main.py" ] } } }Close Claude and reopen it.
It should work...
Available Tools
2 toolsload_systems_documentationB
Load systems documentation, examples, and specification details to improve the models ability to generate specifications.
Returns: Documentation and several examples of systems models
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses that the tool returns 'documentation and several examples of systems models' which describes output behavior. However, it doesn't mention important behavioral traits like whether this is a read-only operation, if it requires authentication, rate limits, or what happens if documentation isn't available. The description adds some behavioral context but leaves significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately concise with two sentences that each serve a purpose: the first states what the tool does and its purpose, the second describes the return value. It's front-loaded with the main action. There's minimal waste, though the second sentence could be integrated more smoothly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 0 parameters, 100% schema coverage, and an output schema exists, the description is reasonably complete. It explains what the tool does and what it returns. The existence of an output schema means the description doesn't need to detail return values extensively. For a simple parameterless documentation loading tool, this provides adequate context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema description coverage, so the baseline is 4. The description appropriately doesn't waste space discussing non-existent parameters. No additional parameter information is needed or provided, which is correct for a parameterless tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool 'loads systems documentation, examples, and specification details' which is a clear purpose, but it's somewhat vague about what exactly is being loaded. It distinguishes from the sibling tool 'run_systems_model' by focusing on loading documentation rather than executing models, but the distinction could be more explicit. The description doesn't specify verb+resource with precision.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions the tool helps 'improve the models ability to generate specifications' which implies usage context, but provides no explicit guidance on when to use this tool versus alternatives. There's no mention of prerequisites, timing, or comparison with the sibling tool 'run_systems_model'. The usage context is implied rather than clearly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_systems_modelC
Run a systems model and return output of list of dictionaries in JSON.
Args: spec: The systems model specification rounds: Number of rounds to run (default: 100)
| Name | Required | Description | Default |
|---|---|---|---|
| spec | Yes | ||
| rounds | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool runs a model and returns JSON output, but doesn't describe what 'running a systems model' entails (e.g., computational requirements, execution time, side effects, error conditions, or authentication needs). For a tool that presumably performs computation, this is a significant gap in behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately concise with two sentences that directly address purpose and parameters. The structure is front-loaded with the core functionality first, followed by parameter details. No wasted words, though it could be slightly more polished in formatting.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that there's an output schema (which handles return value documentation) but no annotations and incomplete parameter semantics, the description is minimally adequate. It covers the basic purpose and parameters but lacks important behavioral context for a computational tool. The presence of an output schema reduces the need to describe return values, but other gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds some semantic context beyond the schema: it explains that 'spec' is 'The systems model specification' and 'rounds' is 'Number of rounds to run (default: 100)'. However, with 0% schema description coverage, the description doesn't fully compensate - it doesn't explain what format the 'spec' should be in (e.g., JSON, YAML, specific syntax) or what 'rounds' means in the context of systems modeling.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Run a systems model and return output of list of dictionaries in JSON.' This specifies the verb ('Run'), resource ('a systems model'), and output format. However, it doesn't explicitly differentiate from the sibling tool 'load_systems_documentation', which appears to be a documentation loading function rather than a model execution tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention the sibling tool 'load_systems_documentation' or any other context for selection. The only usage hint is the default value for 'rounds', but this doesn't help with tool selection decisions.
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.
2 tool updates
v1.0.0- Changed
load_systems_documentation1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "result": { + "title": "Result", + "type": "string" + } + }, + "required": [ + "result" + ], + "title": "load_systems_documentationOutput", + "type": "object" +}
- Changed
run_systems_model1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "result": { + "title": "Result", + "type": "string" + } + }, + "required": [ + "result" + ], + "title": "run_systems_modelOutput", + "type": "object" +}
2 tool updates
- First observed
load_systems_documentation - First observed
run_systems_model
TDQS
The two tools have completely distinct purposes: one loads documentation/examples for reference, while the other executes a model with given specifications. There is no overlap in functionality, and an agent would easily differentiate between them based on their clear descriptions.
Both tools follow a consistent verb_noun pattern with snake_case naming: load_systems_documentation and run_systems_model. The naming is predictable and readable, with no deviations in style or convention across the set.
With only 2 tools, the server feels thin for the domain of 'systems modeling,' which typically involves more operations like creating, updating, or analyzing models. This limited set may hinder agents from performing comprehensive tasks, as it lacks tools for specification generation, validation, or result analysis beyond basic execution.
The tool set is severely incomplete for systems modeling. It provides documentation loading and model execution but misses essential operations such as creating or editing specifications, validating models, analyzing outputs in-depth, or managing model versions. This creates significant gaps that will likely cause agent failures in real-world scenarios.
Maintenance
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
MCP server for building and testing AI agents with multi-model experimentation and insights.
MCP server for generating rough-draft project plans from natural-language prompts.
MCP Server for Slima - AI Writing IDE for Novel Authors with AI Beta Reader.
MCP server for innovationlab documentation, generated by doc2mcp.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn MCP server that provides tools to load and fetch documentation from any llms.txt source, giving users full control over context retrieval for LLMs in IDE agents and applications.1,032MIT
- FlicenseBqualityDmaintenanceA Model Context Protocol server implementation that can be run directly or through Docker, enabling AI assistants to interact with external systems through the MCP standard.2-
- AlicenseNot gradedqualityDmaintenanceA toy MCP server for exploring Model Context Protocol capabilities, including resources, tools, and prompts.Apache 2.0
- FlicenseAqualityCmaintenanceAn MCP server providing tools for web research, code review, and concept explanation, callable by any MCP-compatible client.3-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/lethain/systems-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server