Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
MD workbench for agents: 13 analysis tools, renders, hosted GPU runs; LAMMPS + OpenMM.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
Authorizationค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
ที่อยู่นี้ต้องใส่ key ใน header ของคำขอ ซึ่งเมนูเพิ่ม connector ใส่ให้ไม่ได้ ใช้ Claude Code, Cursor หรือ VS Code แทน
ลิงก์ไปที่ไฟล์ของผู้ทำเอง เราไม่ได้เก็บหรือแพ็กใหม่ เปิดไฟล์แล้ว Claude Desktop จะติดตั้งให้
พิมพ์คำสั่งนี้ใน Terminal
claude mcp add --transport http mdengine https://api.forcefieldsilicon.com/mcp --header 'Authorization: ใส่ค่าของคุณ'เติมค่าที่เว้นว่างไว้ก่อนรัน
วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"mdengine": {
"url": "https://api.forcefieldsilicon.com/mcp",
"headers": {
"Authorization": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"mdengine": {
"type": "http",
"url": "https://api.forcefieldsilicon.com/mcp",
"headers": {
"Authorization": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ที่อยู่นี้ต้องใส่ key ใน header ของคำขอ ซึ่งเมนูเพิ่ม connector ใส่ให้ไม่ได้ ใช้ Claude Code, Cursor หรือ VS Code แทน
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
Authorization ความลับ จำเป็น HTTP headerค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
ชื่อและคำอธิบายเครื่องมือตามที่ server ตอบมาเมื่อ 9 พ.ย. 2569 ผู้ทำเป็นคนเขียน ไม่ใช่เรา แสดงเป็นข้อความล้วน
guideNo key needed. Without customer_type: the list of guides (one line each), the start page and how to get a key. With customer_type (mineral-processing | dark-proteins | alloys): the full guide, which says what to supply, what runs, what comes back and what it costs. With template
campaign_requestNo key needed. Sends a study request to a person and returns a request_id, the tier that fits, the price band, what we still need from you, the next step and the claim scope. Nothing is run or charged. Call it after reading a guide.
accountBalance in USD (`balance_usd`), the part of it held by your unfinished jobs (`reserved_usd`, `held_jobs`) and what a new submit can use (`available_usd` = balance - reserved; a submit needs wall_limit_s x rate of it), how jobs are priced (`pricing.mode` job = the deck's own work
submit_jobOne call: create a hosted GPU job, upload the deck given INLINE as {relative_path: text}, and queue it. Total inline size <= 8 MB; for larger decks use create_job, PUT the tarball to upload_url, then start_job. Billing starts at the first heartbeat (state running) and stops at do
create_jobStep 1 of the two-step path for big decks: validates the spec, reserves a job id, returns a presigned upload_url. PUT the deck as a .tar.gz (<= 2 GB, relative paths, input at `input`) to upload_url, then call start_job.
start_jobStep 2: queue a job whose deck tarball has been uploaded. A GPU pod is launched; billing starts when it reports running.
job_statusState (created|uploaded|queued|launching|running|uploading|done|failed|cancelled), GPU, rate, billed seconds, cost so far, exit code, error, last thermo lines, and the post-run verdict: clean | warnings (a done run whose log shows QEq CG failures, lost atoms, a fix halt, or no en
job_logThe last <= 20 thermo/log lines the running pod reported (30 s heartbeat). Full log.lammps is in the results tarball.
job_resultsFor a done/failed job: a presigned download_url (valid ~7 days) for the results tarball (work/, log.lammps, exitcode). Results are deleted 30 days after the run.
list_jobsJobs of this API key, newest first. Compact rows (id, state, label, created, finished, gpu, cost_usd, error) unless full=true.
delete_resultsFor a finished job: delete its deck and results tarballs immediately instead of at the automatic 30-day purge. Metadata and billing records are kept; results can no longer be downloaded.
capabilitiesCapability manifest of the hosted runners: LAMMPS version, installed packages, and every style by category with gpu=true (KOKKOS-accelerated) or gpu=false (exists, but runs on the pod's CPU cores at the GPU rate). Default = compact summary; runner=lammps&full=true returns the who
preflight_deckDry run of the check submit_job performs: which styles the deck asks for are MISSING on every hosted LAMMPS image (the run would exit at startup), which are CPU-only, whether its pair style will use the GPU at all, and which image (`runner`) the job will be routed to — decks need
cancel_jobCancel a job that is not finished. A running job is billed up to the cancel time; its pod is terminated.
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 9 พ.ย. 2569
ชื่อใน registry ยืนยันโดเมน forcefieldsilicon.com แล้ว (registry ตรวจความเป็นเจ้าของโดเมน)
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตอบกลับใน 541 ms (HTTP 200)
ไม่ต้องล็อกอิน
อ่านคำอธิบายเครื่องมือ 14 ตัวแล้ว ไม่พบคำสั่งแอบแฝงถึง AI
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 3 จาก 3 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
ต้องใส่ค่าเหล่านี้: Authorization
ได้ทั้งสองแบบ จะลงในเครื่องหรือต่อผ่านคลาวด์ก็ได้
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.7.1) เข้า registry 2 เดือนที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต่อผ่าน URL จึงใช้กับโปรแกรมที่รับ remote MCP ได้ เช่น ChatGPT ที่เปิดโหมดนักพัฒนา
ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, Tethered Trust
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:↓ ดาวน์โหลดต่อสัปดาห์i★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
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.
Fit, compatibility and recall checks for AI agents before they buy: verdicts, evidence, receipts.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
*by ForceField Silicon*
A molecular-dynamics workbench with a LAMMPS MCP server for Claude and other agents: a native macOS Metal trajectory viewer, a command-line tool, and an MCP server that inspects trajectories and runs LAMMPS simulations as detached background jobs. The hosted tier runs the same jobs on a GPU: Claude sends a deck to the molecular dynamics MCP server at api.forcefieldsilicon.com and gets the results back, with nothing to install.
Start here
claude mcp add --transport http mdengine-cloud https://api.forcefieldsilicon.com/mcphttps://api.forcefieldsilicon.com/mcp.mcpb bundle from the GitHub releaseStatus: 0.7.1 released. Signed and notarized macOS app, command-line tool, Claude Desktop
bundle, and the hosted GPU tier. Release notes: https://github.com/forcefieldsilicon/mdengine/releases
| Product | What it is |
|---|---|
| MDEngine.app | Metal viewer — orbit / pan / zoom camera, trajectory timeline with 20%/5% tick marks, CPK element colours, XYZ / extended-XYZ, live settings |
| mdengine-cli | info / export / decimate / run on trajectories and decks |
| mdengine-mcp | MCP stdio server — trajectory tools plus a detached LAMMPS job runner (submit_lammps / job_status / job_log / list_jobs / cancel_job) |
Requires macOS 14+ and Xcode command-line tools. LAMMPS (brew install lammps) is needed only for run / submit_lammps.
swift build -c release # all three products
./scripts/make_app.sh # assemble + install /Applications/MDEngine.app
| Example | What it shows |
|---|---|
lj_melt.xyz / lj_melt.in | Lennard-Jones argon melt — the minimal smoke test |
fe_oxidation.xyz / fe_oxidation.in | ReaxFF iron oxidation: a bcc Fe slab meeting O₂ gas, using ffield.reax.Fe_O_C_H from the LAMMPS distribution |
Trajectory readers are safe on in-flight dumps — a file a running simulation is still writing parses to its complete frames, so you can inspect a run mid-flight. Rows with non-finite (NaN/inf) coordinates are dropped.
Both decks are ready inputs for mdengine run and submit_lammps. Bare force-field names resolve automatically: if $LAMMPS_POTENTIALS is unset, MDEngine derives it from the LAMMPS install.
mdengine-mcp is a dependency-free MCP stdio server, listed in the MCP Registry as com.forcefieldsilicon/mdengine (server.json in this repo). Each release ships a signed macOS MCP Bundle (mdengine-mcp- -macos-arm64.mcpb): double-click it to install in Claude Desktop, or unpack it (mcpb unpack) for any other client. Built from source, register with Claude Code:
claude mcp add mdengine /path/to/.build/release/mdengine-mcp
or in Claude Desktop's claude_desktop_config.json:
{ "mcpServers": { "mdengine": { "command": "/path/to/.build/release/mdengine-mcp" } } }
| Tool | Does |
|---|---|
trajectory_info | Frames, atom counts, per-atom fields, elements, bbox, charge range |
z_profile | Deposition/oxidation depth analysis: substrate surface plane, probe penetration depths (min/mean/max), at-surface & in-flight counts, bound-probe charge, z histogram |
render_video | Trajectory → MP4 (H.264) or animated GIF via the Metal renderer: camera angles, stride, cinematic orbit, baked scale-bar/frame annotations, per-element colors/sizes, style: "contrast" auto-visibility |
render_image | One frame → PNG with the same camera/style options — lets an agent *see* a simulation state |
export_frame | One frame → XYZ; charges: true → extended-XYZ with the q column |
decimate | Keep every Nth frame (final frame always kept) |
submit_lammps | Detached LAMMPS job: survives the server exiting and machine display-sleep (caffeinate), exit code recorded unattended |
job_status / job_log | State + live thermo tail / raw log tail |
job_files | Locate a finished job's outputs (run dir + bookkeeping dir) |
list_jobs / cancel_job | Registry under ~/.mdengine/jobs/ / SIGTERM a run (state becomes cancelled) |
list_hosts | Execution hosts from ~/.mdengine/hosts.json and which is the default |
fetch_job | Pull a remote job's run directory (dumps, data) + logs into the local job dir under results/ |
run_lammps | Synchronous run for short tests only |
buy_credits | Opens the credit page to top up the hosted GPU key |
The same jobs are reachable from any MCP client that speaks HTTP — Claude Code, Claude.ai custom connectors, Cursor, Goose — via the hosted endpoint's Streamable HTTP server:
claude mcp add --transport http mdengine-cloud https://api.forcefieldsilicon.com/mcp
Sign in when the client asks (OAuth 2.1: a consent page where you paste your API key once; the client keeps a token, the key stays with you). Scripted clients may instead send the key directly as --header "Authorization: Bearer mde_YOUR_KEY". The key comes with a prepaid credit pack (forcefieldsilicon.com/mdengine). initialize and tools/list work without signing in; tool calls without a credential return 401 with the OAuth Windows and Linux. The hosted tier is the supported path on both, and it is the full paid product: every tool below works from Claude Code on Windows exactly as on a Mac. In PowerShell, register at user scope so the server follows you into every folder, then sign in once:
claude mcp add --scope user --transport http mdengine-cloud https://api.forcefieldsilicon.com/mcp
Start claude, type /mcp, pick mdengine-cloud, choose Authenticate, and paste the key on the browser consent page (never into the chat). Decks written on Windows (CRLF line endings) are accepted as-is. The local viewer, renderer and CPU job runner are macOS-only today; a Windows/Linux local build is planned and demand decides its order, so say so if you need it.
discovery pointer, which is what makes clients offer the sign-in. Tools: account, capabilities, preflight_deck, submit_job (deck inline, ≤ 8 MB), create_job + start_job (big decks via presigned PUT), job_status, job_log, job_results, list_jobs, delete_results, cancel_job (12 tools). Discovery card: https://api.forcefieldsilicon.com/.well-known/mcp/server-card.json. The hosted service (endpoint, billing, GPU launcher) is operated by ForceField Silicon and its source is not part of this repository; the client side of it (HostedClient, CLI run --gpu, MCP host=cloud) is here under the same license as everything else.
Preflight before spend (GJOB-118). GET /v1/capabilities publishes the hosted image's LAMMPS version, packages and every style with a gpu flag: true = KOKKOS-accelerated, false = the style exists but runs on the pod's CPU cores at the GPU rate. Every client checks a deck against it first — mdengine capabilities deck.in, the app's Run Accelerated, submit_lammps host=cloud, the hosted submit_job — refusing a deck whose styles the image lacks (LAMMPS would exit at startup) and warning when the pair style has no /kk variant (the run would not use the GPU). --force / force=true overrides; the server only advises (preflight in the start response), it never blocks.
Troubleshooting the hosted connector:
| Symptom | Cause / fix |
|---|---|
| Client says authentication required / 401 | Use the client's sign-in (OAuth) and paste your mde_… key on the consent page, or add the header Authorization: Bearer mde_…. Keys are issued at purchase and shown once. |
| Consent page says the key was not recognised | Keys are mde_ + 32 hex characters; a revoked key no longer works. mdengine account prints the balance for a saved key. |
| "insufficient balance" | Top up at forcefieldsilicon.com/mdengine; submissions need credit for at least 15 min at the GPU rate. |
| "gpu_runners_open_soon" (503) | Runners are temporarily closed; credits are safe. |
| HTTP 429 | Too many keyless requests from one IP; add the key or slow down. |
job_results says results unavailable | Files were deleted by delete_results, the run produced none, or the 30-day purge ran. |
Job failed with runner_error / lammps_error | The deck itself failed; job_results (if present) or job_log holds the LAMMPS error text. |
Job failed with pod_lost / no_capacity / launch_timeout / gpu_unavailable | Infrastructure (pod died, no GPU stock, a pod that never came up, or the host handed the pod no CUDA device); never billed, relaunched once automatically. Resubmit if it still fails. |
Jobs run in the deck's own directory (relative read_data paths work) and launch with -sf omp -pk omp N so the OPENMP package is actually engaged; $LAMMPS_POTENTIALS is derived from the LAMMPS install when unset.
The job runner can execute on another machine with the same tool contract: declare hosts in ~/.mdengine/hosts.json and pass host to submit_lammps (or set a default). The deck's directory is rsynced up (trajectories, checkpoints and logs excluded), LAMMPS starts under nohup with its exit code recorded remotely, and job_status / job_log / job_files / cancel_job work unchanged; fetch_job brings results back for trajectory_info, z_profile and the renderers.
{
"default": "gpu1", "hosts": { "gpu1": { "ssh": "me@gpu1.example.net", "workdir": "~/mdengine-jobs", "lmp": "/usr/local/bin/lmp", "threads": 8, "launch": "{lmp} -in {input} -k on g 1 -sf kk -pk kokkos newton on neigh half -log {log}" } } }
ssh is anything ssh accepts (key-based, non-interactive); lmp must be an absolute path (login PATH is not available over ssh); launch is optional — the default is the OpenMP form, and a GPU host is simply one whose template carries the KOKKOS flags. A remote deck must be self-contained within its own directory. The same trust model as local runs applies, on the remote machine.
macOS 14+ (Apple Silicon or Intel). Trajectories are loaded whole into memory — files over 2 GB are refused with guidance to decimate or split first.
Running a LAMMPS input executes whatever the deck says. LAMMPS decks are programs, not data — they can invoke arbitrary shell commands (LAMMPS has a literal shell command). Treat a deck from someone else exactly like a shell script: read it before running it.
This applies doubly to the MCP server: an AI agent connected to `mdengine-mcp` can submit decks, and a submitted deck runs with your user's full privileges on this machine. That is the same trust model as any local dev tool (an agent that can run make can run anything), but be deliberate about which decks — and which agents — you hand to the job runner. Sandboxed execution (containers, no network, resource caps) is how a future hosted tier makes running untrusted decks safe; the local server does not sandbox.
The local tools collect nothing; see PRIVACY.md, which also covers the hosted GPU tier.
Business Source License 1.1 (BUSL-1.1), © 2026 Gitinama Inc. (ForceField Silicon). See LICENSE.
In short: you may read, copy, modify and redistribute MDEngine, and you may use it in production for your own research, engineering or commercial work, on your own machines or on machines you rent. The one thing the li
ตัดมาแค่ช่วงต้น อ่านต่อใน repo