프로토타입 · 미리 보기: 공식 레지스트리의 모든 서버를 담고 있으며 30분마다 동기화해요. 리뷰와 계정 기능은 다음 단계에서 열려요.
PopNx MCPAI를 쓰는 사람을 위한 MCP 서버 · 쉬운 말로 설명해요

Simengine

제작자: cogswellspacely8-star버전 3.0.1i★ –i내 컴퓨터에서 실행
레지스트리 이름io.github.cogswellspacely8-star/simengine

설치

개요

제작자가 쓴 설명(영어 원문)

Monte Carlo decision-intelligence over MCP: simulate, optimize, and decide under uncertainty.

PopNx MCP의 세 기둥

이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.

할 수 있는 일

이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.

  • 연결 방식: 내 컴퓨터에서 실행
  • 전송 방식: stdio
  • 카테고리: 기타

설치

쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.

설치하기 전에

  • 기본 점검: 1개 중 1개 통과
  • 내 컴퓨터에서 내 사용자 계정의 권한(파일, 네트워크, 앱)으로 실행돼요.
  • 레지스트리에 입력해야 할 키가 나와 있지 않아요.

필요한 것

  • PyPIPython의 uv 설치(uvx 명령어용)

어떤 앱을 쓰세요?

위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.

Claude Desktop → Settings → Developer → Edit Config를 열고 claude_desktop_config.json에 이 내용을 붙여 넣으세요

{
  "mcpServers": {
    "simengine": {
      "command": "uvx",
      "args": [
        "simengine-mcp"
      ]
    }
  }
}

터미널에서 이 명령어를 실행하세요

claude mcp add simengine -- uvx simengine-mcp

Cursor에서 열기

또는 설정을 직접 복사하기

프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요

{
  "mcpServers": {
    "simengine": {
      "command": "uvx",
      "args": [
        "simengine-mcp"
      ]
    }
  }
}

브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.

VS Code에서 열기

또는 설정을 직접 복사하기

프로젝트의 .vscode/mcp.json에 붙여 넣으세요

{
  "servers": {
    "simengine": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "simengine-mcp"
      ]
    }
  }
}

브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.

이 서버는 내 컴퓨터에서 실행되는데, ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요. 다른 앱을 고르세요.

선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.

이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.

할 수 있는 일

내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.

기본 점검i

누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 7일 점검

  • ✓ 통과

    제작자와 저장소 일치

    레지스트리 이름이 GitHub 계정 cogswellspacely8-star 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요

  • … 아직 점검 안 함

    계속 관리되고 있음

    아직 GitHub에서 이 저장소를 읽어 오지 않았어요

  • … 아직 점검 안 함

    라이선스 있음

    아직 GitHub에서 이 저장소를 읽어 오지 않았어요

  • – 해당 없음

    엔드포인트 응답

    내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요

  • – 해당 없음

    OAuth로 로그인

    내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요

  • … 아직 점검 안 함

    도구 설명에 숨겨진 지시 없음

    내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요

기타 카테고리의 다른 서버와 비교i

  • 이 카테고리의 다른 서버 32602개 중 0%보다 스타가 많아요
  • 이 카테고리의 다른 서버 32602개 중 17%보다 최근에 레지스트리에 공개됐어요
  • 기본 점검 결과가 이 카테고리의 다른 서버 32602개 중 100%와 같거나 더 좋아요

레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.

자주 묻는 질문

Simengine, 안전한가요?

해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.

어떤 키나 코드가 필요한가요?

레지스트리에 필수 키가 나와 있지 않아요. 다만 처음 쓸 때 로그인을 요구하는 서버도 있어요.

내 컴퓨터에서 실행되나요, 클라우드에서 실행되나요?

내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).

아직 관리되고 있나요?

GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(3.0.1)은 4개월 전 레지스트리에 올라왔어요.

어떤 앱에서 쓸 수 있나요?

Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 Python (uv)도 있어야 해요.

대신 쓸 수 있는 건 뭐가 있나요?

같은 카테고리에는: Spec Driven Development, Remote Desktop Commander, Rystic

대안

같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.

카드 보는 법:★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i

Spec Driven Development

제작자: formulahendry

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

내 컴퓨터에서 실행★ 440MIT14개월 전 업데이트
설치

Remote Desktop Commander

제작자: desktop-commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

클라우드에서 실행★ 211그저께 업데이트
설치

Rystic

제작자: Rystic-Inc

Start, seed, clock, inspect and diff Rystic API simulators from your agent.

내 컴퓨터에서 실행오늘 업데이트
설치

제작자의 README

README 열기

제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.

SimEngine

A domain-agnostic Monte Carlo simulation and decision intelligence system.

Zero dependencies. Pure Python stdlib. Local web UI. Runs anywhere Python runs.

SimEngine turns uncertainty into numbers you can act on. Define your variables, your logic, and your risk tolerances in a JSON config. The engine runs thousands of simulated futures, scores them, and — if you ask — evolves toward the best strategy that still respects your safety constraints.

Think of it as a calculator for uncertainty.


Quick Start

# 1. Clone the repository

git clone ~/projects/simengine cd ~/projects/simengine

2. Start the web UI

cd v3 && python3 server.py

3. Open your browser

http://localhost:8420

That is it. No pip install, no Docker, no Node, no build step. Python 3.8+ is the only requirement.

Install as an MCP server

uvx simengine-mcp

Listed on the official MCP registry. Hosted, no-install endpoint: join the waitlist.

Optional Native Acceleration

The default engine remains pure Python. A Rust workspace now lives at the repo root for optional acceleration of metric reducers, trajectory bands, risk evaluation, histograms, and native pre-sampling of simple numeric variable distributions.

This is opt-in and does not change the baseline workflow above.

Workspace layout
Cargo.toml

crates/ ├── simengine-core/ # pure Rust numeric kernels └── simengine-py/ # PyO3 extension module: simengine_native v3/native.py # optional loader + Python fallback glue

Build the native extension
cd crates/simengine-py

python3 -m venv ../../.venv source ../../.venv/bin/activate pip install maturin maturin develop --release

After that, the existing Python engine will automatically use the native reducers and the native batch sampler when simengine_native is importable. If the module is missing or fails, SimEngine falls back to the existing Python implementation.

The batch sampler is conservative:

  • it only activates for plain numeric variable params
  • it stays off for correlated configs
  • it can be disabled explicitly with SIMENGINE_DISABLE_NATIVE_SAMPLING=1

This keeps the expression engine, accumulators, and metrics in Python while moving a larger chunk of the Monte Carlo loop into Rust.

There is also a narrower native fast path for stochastic expressions:

  • binomial(n, p) can be delegated to Rust when the extension is installed
  • it can be disabled explicitly with SIMENGINE_DISABLE_NATIVE_EXPR_SAMPLING=1

This helps domains whose step_logic relies heavily on binomial(...) while still leaving general expression evaluation in Python.

On the Python side, repeated expressions are now compiled once and reused across Monte Carlo runs. That cache can be disabled explicitly with SIMENGINE_DISABLE_EXPR_CACHE=1 for benchmarking or troubleshooting.

The diagnostics module applies the same idea to its AST-only safe evaluator: parsed trees are reused across calls, and that cache can be disabled with SIMENGINE_DISABLE_SAFE_EXPR_CACHE=1.


What It Does

  • Monte Carlo simulation -- Run 5,000+ parallel futures for any domain you can describe in JSON.
  • Safety constraints -- Chance constraints ("at most 15% probability of going broke") and CVaR constraints ("the average worst-case loss must not exceed $X").
  • Genetic optimizer -- Evolve control parameters toward the best outcome while respecting safety bounds. Crossover, mutation, elitism, tournament selection.
  • Bayesian updating -- Feed observed data back into your model. Conjugate priors (Beta-Binomial, Gamma-Poisson, Normal-Normal) tighten distributions as evidence arrives.
  • Diagnostics -- Convergence analysis (proves your sample size is sufficient), sensitivity analysis (ranks which inputs drive the output), deterministic baseline comparison (quantifies the value of simulation over spreadsheet math).
  • Web UI -- Histograms, trajectory fans, risk gauges, scenario comparison with control sweeps and input diffs, domain wizard, Bayesian update modal, export to standalone HTML report.
  • AI agent integration -- POST a config inline to /api/simulate and get structured results back. No files needed. LLMs can use SimEngine as a tool (llms.txt at the repo root and GET /llms.txt orient them).
  • Validated calibration -- A sqlite forecast ledger scores predictions with proper scoring rules (Brier / log-loss / CRPS), and the pipeline is backtested on ~2,800 walk-forward monthly forecasts over decades of public FRED data. Run it yourself: cd v3 && python3 backtest.py (offline, from committed snapshots). Results: docs/backtests/.

Architecture

All production code lives in v3/.

v3/

├── kernel.py Monte Carlo engine, distributions, safety evaluation, │ fitness scoring, genetic optimizer, experiment manifests ├── server.py HTTP server (port 8420), all API endpoints, report generation ├── bayesian.py Conjugate prior updates for calibrating parameters from data ├── diagnostics.py Convergence, sensitivity (OAT), baseline comparison, AST evaluator ├── static/ │ └── index.html Single-page web UI (vanilla HTML/JS/CSS, no framework) └── domains/ ├── _template.json Annotated starter config ├── business_pipeline_v3.json B2B sales pipeline ├── investment_portfolio.json Portfolio allocation ├── investment_portfolio_v2.json Fat-tailed returns (Student's t) ├── job_search.json Job search decision model ├── project_timeline.json Software project estimation ├── real_estate_rental.json Rental property analysis └── saas_startup.json SaaS MRR growth and runway


Domain Config Schema

A domain config is a single JSON file that fully describes the simulation. The v3 schema separates variables into three semantic categories, which matters for Bayesian updating and optimization.

Published contract: the machine-readable JSON Schema (Draft 2020-12) is served live at GET /api/schema — hand it to any AI to author a valid config in one shot. A plain-language field reference is in docs/schema-reference.md. The schema is verified against every shipped domain in the test suite.

Top-Level Fields
FieldTypeDescription
namestringHuman-readable domain name
descriptionstringWhat this simulation models
n_simulationsintNumber of Monte Carlo runs (default: 5000)
n_stepsintTime steps per simulation (e.g., 12 months)
step_labelstringLabel for time axis: "month", "week", "sprint"
seedint or nullRandom seed for reproducibility
parametersobjectUncertain variables, updatable with evidence
controlsobjectOperator decisions (pricing, budget, effort)
exogenousobjectExternal factors outside your control
initial_stateobjectStarting values for accumulators
step_logicarrayComputations executed each time step
accumulatorsobjectRunning totals updated each step
metricsobjectFinal output measurements
safetyobjectChance constraints and CVaR constraints
fitnessobjectWeighted scoring components for the optimizer
tunablearrayParameters the optimizer is allowed to adjust
contextobjectOptional metadata: decision question, key levers
calibrationobjectPer-variable data source and update method
Variable Definition

All three variable categories (parameters, controls, exogenous) share the same structure:

{

"monthly_churn_rate": { "distribution": "triangular", "params": {"low": 0.02, "mode": 0.05, "high": 0.12}, "calibration": { "source": "Baremetrics Open Benchmarks: median monthly churn 5-8%", "updatable": true, "update_method": "Beta-Binomial conjugate from observed monthly cancellations" } } }

Available Distributions
DistributionParamsUse Case
fixedvalueKnown constants
uniformlow, highEqual probability across a range
triangularlow, mode, highExpert estimates (pessimistic / likely / optimistic)
normalmean, std, min?, max?Bell curve, optionally clamped
lognormalmedian, spread, min?, max?Always positive, right-skewed (prices, durations)
bernoullipBinary yes/no events
poissonlambdaCounts of rare events
student_tmean, scale, df, min?, max?Fat-tailed returns (use df=5 for equities)
correlated_normalmean, stdNormal with correlation support (via step_logic)
Step Logic

An ordered list of computations executed each time step. Each entry has a target name and either an expr (expression string) or a sample (inline distribution):

"step_logic": [

{"target": "new_leads", "expr": "binomial(round(demand), conversion_rate)"}, {"target": "revenue", "expr": "new_leads * price_per_unit"}, {"target": "costs", "expr": "fixed_cost + variable_cost * new_leads"}, {"target": "net_income", "expr": "revenue - costs"}, {"target": "shock_event", "sample": {"distribution": "bernoulli", "params": {"p": 0.02}}} ]

Available expression functions: min, max, abs, round, sum, len, int, float, sqrt, log, exp, ceil, floor, pow, random(), gauss(mu, sigma), binomial(n, p), clamp(val, lo, hi), range(). Ternary expressions work: 100 if x > 0 else 0.

Accumulators

Running state that persists across time steps:

"accumulators": {

"cumulative_revenue": "cumulative_revenue + revenue", "cash": "cash + net_income", "peak_subscribers": "max(peak_subscribers, subscribers)" }

Metrics

Final measurements computed after all steps complete:

"metrics": {

"total_revenue": {"expr": "cumulative_revenue", "format": "dollar"}, "roi": {"expr": "cumulative_revenue / cumulative_costs", "format": "percent"}, "final_subs": {"expr": "subscribers", "format": "number"} }

Safety Constraints
"safety": {

"chance_constraints": [ { "metric": "ending_cash", "condition": "below", "threshold": 0, "max_prob": 0.15, "rationale": "No more than 15% chance of running out of cash" } ], "cvar_constraints": [ { "metric": "ending_cash", "alpha": 0.10, "min_cvar": -15000, "rationale": "Average of the worst 10% of outcomes must not exceed $15k loss" } ] }

Fitness and Tunable

The optimizer maximizes a weighted sum of fitness components while respecting safety constraints. Each component is an expression evaluated against the metric statistics (e.g., total_revenue_median, ending_cash_p10):

"fitness": {

"components": [ {"expr": "min(100, final_mrr_median / 100)", "weight": 0.30, "name": "mrr_growth"}, {"expr": "max(0, 100 - months_negative_median * 5)", "weight": 0.25, "name": "time_to_profit"} ] }, "tunable": [ {"path": "controls.price_per_seat.params.value", "range": [9, 99]}, {"path": "parameters.monthly_churn_rate.params.mode", "range": [0.01, 0.10]} ]

Fitness expressions can reference any metric stat in the form {metric_name}_{stat} where stat is one of: mean, median, std, p10, p25, p75, p90.

Safety violations apply a 30% penalty per violated constraint. The optimizer learns to avoid them.


API Reference

The server runs at http://localhost:8420. All POST endpoints accept and r

앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요

PopNx에게 묻기