Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者による説明(英語の原文)
Build, simulate and calibrate JAX block-diagram models of hybrid dynamical systems.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"jaxonomy": {
"command": "uvx",
"args": [
"jaxonomy"
]
}
}
}ターミナルでこれを実行します
claude mcp add jaxonomy -- uvx jaxonomyプロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"jaxonomy": {
"command": "uvx",
"args": [
"jaxonomy"
]
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"jaxonomy": {
"type": "stdio",
"command": "uvx",
"args": [
"jaxonomy"
]
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月7日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント machinavitalis で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(3.4.1)がレジストリに届いたのは3 か月前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにPython (uv)も必要です。
同じカテゴリには:Spec Driven Development, Remote Desktop Commander, Draugr
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Security scanning for AI agents: SAST, SCA, secrets, IaC, DAST, ranked by real risk.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
Differentiable simulation of hybrid dynamical systems — powered by JAX.
*Block diagrams meet automatic differentiation. Model physical systems, close the loop with LQR/MPC/Kalman, and differentiate through everything.*
[Why JAX?](#-why-jax) · [Install](#-installation) · [Quick Start](#-quick-start) · [Gallery](#-gallery) · [Examples](#-examples) · [Docs](https://py.jaxonomy.com)
Every panel above is produced by jaxonomy.simulate on a model built from the library.
Jaxonomy is a Python framework for modeling, simulating, and optimizing hybrid dynamical systems — systems that combine continuous physics, discrete control laws, and event-driven logic in a single model. Every simulation runs on JAX, so it is JIT-compilable, batchable with vmap, and fully differentiable from end to end.
import jax.numpy as jnp
import jaxonomy as jx
A, B = jnp.array([[0., 1.], [0., 0.]]), jnp.array([[0.], [1.]]) C, D = jnp.eye(2), jnp.zeros((2, 1)) Q, R = jnp.eye(2), jnp.array([[1.]])
builder = jx.DiagramBuilder()
plant = builder.add(jx.library.LTISystem(A, B, C, D, initialize_states=jnp.array([1.0, 0.0]))) controller = builder.add(jx.library.LinearQuadraticRegulator(A, B, Q, R)) builder.connect(plant.output_ports[0], controller.input_ports[0]) builder.connect(controller.output_ports[0], plant.input_ports[0])
diagram = builder.build() results = jx.simulate( diagram, diagram.create_context(), (0.0, 10.0),
recorded_signals={"x": plant.output_ports[0], "u": controller.output_ports[0]}, )
results.outputs["x"] # (T, 2) — position and velocity, driven back to zero
Choosing JAX as the compute backbone unlocks capabilities that are impractical with NumPy-based simulators:
Traditional simulator Jaxonomy / JAX
────────────────────── ───────────────────────────────────────── simulate(params) → jit(simulate)(params) 10–100× faster for p in param_grid: … → vmap(simulate)(param_grid) embarrassingly parallel finite_diff_gradient(…) → grad(simulate)(params) exact gradients, free
| Feature | SciPy / NumPy | Julia / DiffEq | Modelica | MathWorks¹ | Jaxonomy |
|---|---|---|---|---|---|
| Python-native | ✓ | ✗ | ✗ | ✗ | ✓ |
| JIT / code generation | ✗ | ✓ | ✓ (C++) | ✓ (C/C++) | ✓ |
| Full autodiff through ODE | ✗ | Partial | ✗ | Partial² | ✓ |
| Hybrid events & zero-crossing | Partial | ✓ | ✓ | ✓ | ✓ |
| Acausal / equation-based | ✗ | ✗ | ✓ | ✓ (Simscape) | ✓ |
| Block-diagram composition | ✗ | Partial | Partial | ✓ (Simulink) | ✓ |
| State-machine modeling | ✗ | ✗ | ✗ | ✓ (Stateflow) | ✓ |
| LQR / MPC / Kalman built-in | ✗ | Partial | Via libs | ✓ (Toolboxes) | ✓ |
| Neural ODE / SINDy | ✗ | ✓ | ✗ | ✗ | ✓ |
| Reduced-order modeling (balred / POD-DEIM / DMD / Koopman) | ✗ | Partial | ✗ | ✓ (Toolboxes) | ✓ |
| Batch / ensemble (vmap) | ✗ | ✗ | ✗ | ✗ | ✓ |
| Open-source (MIT) | ✓ | ✓ | Partial | ✗ | ✓ |
¹ Simulink + Simscape + Stateflow + Control System Toolbox · ² Via Simulink Design Optimization, no end-to-end AD
| Capability | What it enables |
|---|---|
| ⚡ JAX-native engine | JIT-compile simulations, run ensembles with vmap, differentiate through ODE solvers including event handling |
| 🔀 Hybrid dynamics + state machines | Continuous ODEs, periodic discrete updates, zero-crossing events, and StateMachineBuilder-authored finite state machines composed in one model. jax.grad flows through event times for hybrid trajectory optimisation. |
| 🔌 Acausal modeling | Modelica-inspired multi-domain components (electrical, mechanical, thermal, fluid, battery) with Pantelides index reduction and a BDF mass-matrix DAE solver |
| 🎯 Control & estimation | LQR (continuous, discrete, finite-horizon, LQG), linear MPC (native + OSQP), nonlinear MPC (shooting / transcription / Hermite-Simpson), Kalman / EKF / UKF / RLS / Luenberger, 2-DOF PID with classical tuning helpers |
| 🧮 Unit-aware wiring | Optional BusUnit annotations on ports and signals; the diagram compiler catches dimensional mismatches at build time instead of as silent runtime bugs |
| 🧠 Data-driven modeling | Neural ODEs, Universal Differential Equations, SINDy symbolic regression, neural-network blocks (MLP / PyTorch / TensorFlow / ONNX), differentiable lookup-table fitting, and statistical surrogates (Gaussian process, polynomial chaos, RBF) |
| 📉 Reduced-order modeling | jaxonomy.library.rom: linear MOR (balanced truncation, minreal, modal / residualization), POD–Galerkin with DEIM hyper-reduction, and data-driven operator ROM (DMD / DMDc / ERA, Koopman / eDMD lifted-linear predictors). One reduce(...) front door; every reduced model is a differentiable, simulatable block |
| 🎲 Uncertainty & sensitivity | First-class jaxonomy.uq workflow: Monte Carlo with parameter distributions, Latin Hypercube + quasi-Monte Carlo sampling, Sobol sensitivity decomposition, Morris screening |
| 🤝 FMI 2.0 / 3.0 interop | Import FMI co-simulation FMUs (ModelicaFMU, mixed-type and array I/O) or model-exchange FMUs (ModelicaFMUME, integrated by Jaxonomy's own solver with FMI event indicators as zero-crossings); export a diagram as a binary .fmu via build_fmu. Verified against the Reference FMUs, OpenModelica, and the fmusim reference simulator in CI |
| 🧩 150+ library blocks | Integrators, filters, state machines, look-up tables, coordinate transforms, container blocks, bus / mux family, stochastic sources, and more |
Requires Python 3.10+.
# Create and activate a virtual environment (recommended)
python -m venv .venv source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install jaxonomy # core pip install jaxonomy[safe] # + SciPy, Matplotlib, control, jaxopt pip install jaxonomy[nmpc] # + nonlinear MPC (requires IPOPT on PATH) pip install jaxonomy[all] # + everything
From source:
git clone https://github.com/machinavitalis/jaxonomy
cd jaxonomy pip install -e .
CLI runner:
jaxonomy_cli run --model path/to/model.json
A first simulation in a few lines — a custom block, built into a diagram, integrated through its ODE:
import jaxonomy as jx
import jax.numpy as jnp
class VanDerPol(jx.LeafSystem): def init(self, mu=1.0, kwargs): super().__init__(kwargs) self.declare_dynamic_parameter("mu", mu) self.declare_continuous_state( default_value=jnp.array([0.0, 2.0]), ode=self._ode ) self.declare_continuous_state_output(name="x")
def _ode(self, time, state, *inputs, **params): x, mu = state.continuous_state, params["mu"] return jnp.array([x[1], mu * (1 - x[0]**2) * x[1] - x[0]])
builder = jx.DiagramBuilder() vdp = builder.add(VanDerPol(mu=2.0, name="vdp")) diagram = builder.build()
results = jx.simulate( diagram, diagram.create_context(), (0.0, 20.0), options=jx.SimulatorOptions(buffer_length=4000), # room for adaptive steps recorded_signals={"x": vdp.output_ports[0]}, )
pip install -r requirements.docs.txt
mkdocs serve # → http://127.0.0.1:8000
- **Example notebooks:** [`docs/examples/`](https://github.com/machinavitalis/jaxonomy/tree/main/docs/examples)
Jaxonomy ships an MCP server that exposes the engine as tools an AI agent can call directly — it can enumerate library blocks, build and validate a model, run a simulation, fit parameters to data, and linearize a system, then reason over the actual results. This is worth wiring up if you drive Jaxonomy from an agent (Claude Desktop/Code, Cursor, …); if you're writing Python by hand, the pip install above is all you need and you can skip this.
pip install jaxonomy[mcp]
Then register the server with your agent client. For Claude Desktop, add to claude_desktop_config.json:
{
"mcpServers": { "jaxonomy": { "command": "python", "args": ["-m", "jaxonomy.mcp.server"] } } }
Use the interpreter where jaxonomy[mcp] is installed (or the jaxonomy-mcp entry point). The server is listed in the MCP Registry as io.github.machinavitalis/jaxonomy; full tool reference, client configuration and limitations are at py.jaxonomy.com/mcp.
If you'd rather just point an agent at the documentation, start it on SKILL.md — when to use Jaxonomy, when to reach for something else, the core API, and the pitfalls that most often break a first script. The docs site also publishes llms.txt views: py.jaxonomy.com/llms.txt for an index of every page, and py.jaxonomy.com/llms-full.txt for the whole documentation set as one Markdown file.
Jaxonomy is designed for hybrid systems — models where continuous physics interacts with instantaneous discrete resets. The bouncing ball is the canonical example: free-fall ODE interrupted by a collision event that reverses velocity.
The dynamics between bounces follow:
$$ \dot{x} = v, \qquad \dot{v} = -g $$
When the ball hits the ground ($x = 0$, $v < 0$) a zero-crossing event fires and the state resets:
$$ x^+ = 0, \qquad v^+ = -e \cdot v \quad (e \in [0, 1] \text{ — coefficient of restitution}) $$
import jaxonomy as jx
import jax.numpy as jnp
class BouncingBall(jx.LeafSystem): def init(self, g=9.81, e=0.8, *
冒頭だけを表示しています。続きはリポジトリで読めます