MCP 서버

MDEngine

com.forcefieldsilicon/mdengine
클라우드 및 인프라 과학 및 엔지니어링 공개 · 연결 가능 MCP 2026-07-28

이 MCP로 할 수 있는 일

Runs hosted GPU molecular-dynamics workloads using LAMMPS or OpenMM, with deck validation, job management, logs, billing, and downloadable results.

account
Account balance and pricing
Balance in USD, how jobs are priced (`pricing.mode` job = the deck's own work in atom-steps at per-class prices, capped at wall_limit_s x rate; metered = per second of pod time), the rate table, and the key id of the API key in use.
읽기 전용 외부 접근 가능 멱등성
입력 스키마
{'type': 'object', 'properties': {}}
cancel_job
Cancel job
Cancel a job that is not finished. A running job is billed up to the cancel time; its pod is terminated.
파괴적 작업 외부 접근 가능 멱등성
입력 스키마
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Job id, e.g. MDJOB-20260907-3F200C'}}}
capabilities
What the runner can do
Capability 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 whole style table. Use preflight_deck to check a specific deck.
읽기 전용 외부 접근 가능 멱등성
입력 스키마
{'type': 'object', 'properties': {'full': {'type': 'boolean', 'description': 'Include the full style table (large)'}, 'runner': {'type': 'string', 'description': 'lammps | openmm; omit for all'}}}
create_job
Create a job (returns upload URL)
Step 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.
외부 접근 가능
입력 스키마
{'type': 'object', 'required': ['input'], 'properties': {'gpu': {'type': 'string', 'description': 'GPU class; call account for the offered classes and how jobs are priced. Default any = cheapest available'}, 'input': {'type': 'string', 'description': 'Relative path of the LAMMPS (or runner) input script inside the deck, e.g. in.lmp'}, 'label': {'type': 'string', 'description': 'Free text <= 120 chars shown in job lists'}, 'launch': {'type': 'string', 'description': 'Launch template; omit for the default KOKKOS/CUDA LAMMPS command line'}, 'runner': {'type': 'string', 'description': 'Runner flavour: lammps (default) or openmm (beta)'}, 'estimate_s': {'type': 'integer', 'description': 'Your runtime guess in seconds; only used for the balance pre-check (min 900 s at the rate)'}, 'wall_limit_s': {'type': 'integer', 'description': 'Hard cap in seconds (default 14400, max 86400); the job fails at the cap and is billed to it'}}}
delete_results
Delete a job's files now
For 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.
파괴적 작업 외부 접근 가능 멱등성
입력 스키마
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Job id, e.g. MDJOB-20260907-3F200C'}}}
job_log
Job log tail
The last <= 20 thermo/log lines the running pod reported (30 s heartbeat). Full log.lammps is in the results tarball.
읽기 전용 외부 접근 가능 멱등성
입력 스키마
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Job id, e.g. MDJOB-20260907-3F200C'}}}
job_results
Results download URL
For 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.
읽기 전용 외부 접근 가능 멱등성
입력 스키마
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Job id, e.g. MDJOB-20260907-3F200C'}}}
job_status
Job status
State (created|uploaded|queued|launching|running|uploading|done|failed|cancelled), GPU, rate, billed seconds, cost so far, exit code, error, last thermo lines.
읽기 전용 외부 접근 가능 멱등성
입력 스키마
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Job id, e.g. MDJOB-20260907-3F200C'}}}
list_jobs
List jobs
Jobs of this API key, newest first. Compact rows (id, state, label, created, finished, gpu, cost_usd, error) unless full=true.
읽기 전용 외부 접근 가능 멱등성
입력 스키마
{'type': 'object', 'properties': {'full': {'type': 'boolean', 'description': 'Return the complete status object per job (default false)'}, 'limit': {'type': 'integer', 'description': '1..200, default 20'}}}
preflight_deck
Check a deck before spending
Dry 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 needing packages beyond the fast default image run on lammps-full automatically. Nothing is created or billed.
읽기 전용 외부 접근 가능 멱등성
입력 스키마
{'type': 'object', 'required': ['input', 'files'], 'properties': {'files': {'type': 'object', 'description': 'Deck contents {path: text}, must include `input`', 'additionalProperties': {'type': 'string'}}, 'input': {'type': 'string', 'description': 'Relative path of the LAMMPS (or runner) input script inside the deck, e.g. in.lmp'}}}
start_job
Start an uploaded job
Step 2: queue a job whose deck tarball has been uploaded. A GPU pod is launched; billing starts when it reports running.
외부 접근 가능
입력 스키마
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Job id, e.g. MDJOB-20260907-3F200C'}}}
submit_job
Submit a deck (inline files) and start it
One 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 done/failed/cancelled. The deck is executed as a program on an isolated GPU pod.
외부 접근 가능
입력 스키마
{'type': 'object', 'required': ['input', 'files'], 'properties': {'gpu': {'type': 'string', 'description': 'GPU class; call account for the offered classes and how jobs are priced. Default any = cheapest available'}, 'files': {'type': 'object', 'description': 'Deck contents: {"in.lmp": "...", "data.al": "..."}; paths relative, no \'..\'; must include `input`', 'additionalProperties': {'type': 'string'}}, 'input': {'type': 'string', 'description': 'Relative path of the LAMMPS (or runner) input script inside the deck, e.g. in.lmp'}, 'label': {'type': 'string', 'description': 'Free text <= 120 chars shown in job lists'}, 'launch': {'type': 'string', 'description': 'Launch template; omit for the default KOKKOS/CUDA LAMMPS command line'}, 'runner': {'type': 'string', 'description': 'Runner flavour: lammps (default) or openmm (beta)'}, 'estimate_s': {'type': 'integer', 'description': 'Your runtime guess in seconds; only used for the balance pre-check (min 900 s at the rate)'}, 'wall_limit_s': {'type': 'integer', 'description': 'Hard cap in seconds (default 14400, max 86400); the job fails at the cap and is billed to it'}}}
추가됨
cancel_job
2026년 9월 17일 12:34 PM
추가됨
preflight_deck
2026년 9월 17일 12:34 PM
추가됨
capabilities
2026년 9월 17일 12:34 PM
추가됨
delete_results
2026년 9월 17일 12:34 PM
추가됨
list_jobs
2026년 9월 17일 12:34 PM
추가됨
job_results
2026년 9월 17일 12:34 PM
추가됨
job_log
2026년 9월 17일 12:34 PM
추가됨
job_status
2026년 9월 17일 12:34 PM
추가됨
start_job
2026년 9월 17일 12:34 PM
추가됨
create_job
2026년 9월 17일 12:34 PM
추가됨
submit_job
2026년 9월 17일 12:34 PM
추가됨
account
2026년 9월 17일 12:34 PM