{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_hpy8uyt7pdbe","handle":"mdengine","url":"https://wellknown.network/agents/mdengine","links":{"self":"https://wellknown.network/agents/mdengine/record.json","html":"https://wellknown.network/agents/mdengine","markdown":"https://wellknown.network/agents/mdengine/record.md","api":"https://wellknown.network/api/v1/agents/mdengine","status":"https://wellknown.network/api/v1/agents/mdengine/status","claim":"https://wellknown.network/agents/mdengine/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/mdengine/claim.json","badge":"https://wellknown.network/agents/mdengine/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/mdengine/history","tools":"https://wellknown.network/api/v1/agents/mdengine/tools"},"ard":{"identifier":"urn:air:api.forcefieldsilicon.com:server:mdengine","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"MDEngine","summary":"MD workbench for agents: 13 analysis tools, renders, hosted GPU runs; LAMMPS + OpenMM.","description":"MD workbench for agents: 13 analysis tools, renders, hosted GPU runs; LAMMPS + OpenMM.","publisher":{"name":"com.forcefieldsilicon","url":null},"homepage":"https://forcefieldsilicon.com/mdengine","repository":"https://github.com/forcefieldsilicon/mdengine","version":"0.7.1","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://api.forcefieldsilicon.com/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-09-11T17:48:43.840612Z","publishedAt":"2026-09-11T17:48:43.840612Z","registryName":"com.forcefieldsilicon/mdengine"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","repoUrl":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"finance.banking","name":"Banking","confidence":0.583,"provenance":"derived"},{"slug":"content.marketing","name":"Marketing","confidence":0.525,"provenance":"derived"},{"slug":"dev.package-management","name":"Packages & Dependencies","confidence":0.51,"provenance":"derived"}],"categories":["content","dev","finance"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 1h ago.","lastOkAt":"2026-10-10T18:26:12.023Z","lastProbedAt":"2026-10-10T18:26:12.023Z","statusComputedAt":"2026-10-10T18:28:52.245Z","reliability30d":{"probes":112,"successRate":1,"p50Ms":42,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":109,"ok":109,"authBoundaryOk":0,"serviceOk":109,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-10T18:26:12.023Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":40,"error":null,"detail":{"tools":[{"name":"guide","description":"No 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-pro"},{"name":"campaign_request","description":"No 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 th"},{"name":"account","description":"Balance 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` = balan"},{"name":"submit_job","description":"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_j"},{"name":"create_job","description":"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 p"},{"name":"start_job","description":"Step 2: queue a job whose deck tarball has been uploaded. A GPU pod is launched; billing starts when it reports running."},{"name":"job_status","description":"State (created|uploaded|queued|launching|running|uploading|done|failed|cancelled), GPU, rate, billed seconds, cost so far, exit code, error, last thermo lines, "},{"name":"job_log","description":"The last <= 20 thermo/log lines the running pod reported (30 s heartbeat). Full log.lammps is in the results tarball."},{"name":"job_results","description":"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"},{"name":"list_jobs","description":"Jobs of this API key, newest first. Compact rows (id, state, label, created, finished, gpu, cost_usd, error) unless full=true."},{"name":"delete_results","description":"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 ca"},{"name":"capabilities","description":"Capability manifest of the hosted runners: LAMMPS version, installed packages, and every style by category with gpu=true (KOKKOS-accelerated) or gpu=false (exis"},{"name":"preflight_deck","description":"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"},{"name":"cancel_job","description":"Cancel a job that is not finished. A running job is billed up to the cancel time; its pod is terminated."}],"toolCount":14,"toolsHash":"b756bf870ed51691c74526834ebcabeed7fb390b1be7b12392cbfc854a059a9e","serverName":"com.forcefieldsilicon/mdengine","capabilities":["tools"],"serverVersion":"0.10.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T11:25:43.691Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":64,"error":null,"detail":{"tools":[{"name":"guide","description":"No 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-pro"},{"name":"campaign_request","description":"No 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 th"},{"name":"account","description":"Balance 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` = balan"},{"name":"submit_job","description":"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_j"},{"name":"create_job","description":"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 p"},{"name":"start_job","description":"Step 2: queue a job whose deck tarball has been uploaded. A GPU pod is launched; billing starts when it reports running."},{"name":"job_status","description":"State (created|uploaded|queued|launching|running|uploading|done|failed|cancelled), GPU, rate, billed seconds, cost so far, exit code, error, last thermo lines, "},{"name":"job_log","description":"The last <= 20 thermo/log lines the running pod reported (30 s heartbeat). Full log.lammps is in the results tarball."},{"name":"job_results","description":"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"},{"name":"list_jobs","description":"Jobs of this API key, newest first. Compact rows (id, state, label, created, finished, gpu, cost_usd, error) unless full=true."},{"name":"delete_results","description":"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 ca"},{"name":"capabilities","description":"Capability manifest of the hosted runners: LAMMPS version, installed packages, and every style by category with gpu=true (KOKKOS-accelerated) or gpu=false (exis"},{"name":"preflight_deck","description":"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"},{"name":"cancel_job","description":"Cancel a job that is not finished. A running job is billed up to the cancel time; its pod is terminated."}],"toolCount":14,"toolsHash":"b756bf870ed51691c74526834ebcabeed7fb390b1be7b12392cbfc854a059a9e","serverName":"com.forcefieldsilicon/mdengine","capabilities":["tools"],"serverVersion":"0.10.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T04:31:00.444Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":39,"error":null,"detail":{"tools":[{"name":"guide","description":"No 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-pro"},{"name":"campaign_request","description":"No 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 th"},{"name":"account","description":"Balance 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` = balan"},{"name":"submit_job","description":"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_j"},{"name":"create_job","description":"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 p"},{"name":"start_job","description":"Step 2: queue a job whose deck tarball has been uploaded. A GPU pod is launched; billing starts when it reports running."},{"name":"job_status","description":"State (created|uploaded|queued|launching|running|uploading|done|failed|cancelled), GPU, rate, billed seconds, cost so far, exit code, error, last thermo lines, "},{"name":"job_log","description":"The last <= 20 thermo/log lines the running pod reported (30 s heartbeat). Full log.lammps is in the results tarball."},{"name":"job_results","description":"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"},{"name":"list_jobs","description":"Jobs of this API key, newest first. Compact rows (id, state, label, created, finished, gpu, cost_usd, error) unless full=true."},{"name":"delete_results","description":"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 ca"},{"name":"capabilities","description":"Capability manifest of the hosted runners: LAMMPS version, installed packages, and every style by category with gpu=true (KOKKOS-accelerated) or gpu=false (exis"},{"name":"preflight_deck","description":"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"},{"name":"cancel_job","description":"Cancel a job that is not finished. A running job is billed up to the cancel time; its pod is terminated."}],"toolCount":14,"toolsHash":"b756bf870ed51691c74526834ebcabeed7fb390b1be7b12392cbfc854a059a9e","serverName":"com.forcefieldsilicon/mdengine","capabilities":["tools"],"serverVersion":"0.10.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T21:27:28.615Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":44,"error":null,"detail":{"tools":[{"name":"guide","description":"No 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-pro"},{"name":"campaign_request","description":"No 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 th"},{"name":"account","description":"Balance 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` = balan"},{"name":"submit_job","description":"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_j"},{"name":"create_job","description":"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 p"},{"name":"start_job","description":"Step 2: queue a job whose deck tarball has been uploaded. A GPU pod is launched; billing starts when it reports running."},{"name":"job_status","description":"State (created|uploaded|queued|launching|running|uploading|done|failed|cancelled), GPU, rate, billed seconds, cost so far, exit code, error, last thermo lines, "},{"name":"job_log","description":"The last <= 20 thermo/log lines the running pod reported (30 s heartbeat). Full log.lammps is in the results tarball."},{"name":"job_results","description":"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"},{"name":"list_jobs","description":"Jobs of this API key, newest first. Compact rows (id, state, label, created, finished, gpu, cost_usd, error) unless full=true."},{"name":"delete_results","description":"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 ca"},{"name":"capabilities","description":"Capability manifest of the hosted runners: LAMMPS version, installed packages, and every style by category with gpu=true (KOKKOS-accelerated) or gpu=false (exis"},{"name":"preflight_deck","description":"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"},{"name":"cancel_job","description":"Cancel a job that is not finished. A running job is billed up to the cancel time; its pod is terminated."}],"toolCount":14,"toolsHash":"b756bf870ed51691c74526834ebcabeed7fb390b1be7b12392cbfc854a059a9e","serverName":"com.forcefieldsilicon/mdengine","capabilities":["tools"],"serverVersion":"0.10.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T15:32:01.050Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":32,"error":null,"detail":{"tools":[{"name":"guide","description":"No 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-pro"},{"name":"campaign_request","description":"No 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 th"},{"name":"account","description":"Balance 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` = balan"},{"name":"submit_job","description":"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_j"},{"name":"create_job","description":"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 p"},{"name":"start_job","description":"Step 2: queue a job whose deck tarball has been uploaded. A GPU pod is launched; billing starts when it reports running."},{"name":"job_status","description":"State (created|uploaded|queued|launching|running|uploading|done|failed|cancelled), GPU, rate, billed seconds, cost so far, exit code, error, last thermo lines, "},{"name":"job_log","description":"The last <= 20 thermo/log lines the running pod reported (30 s heartbeat). Full log.lammps is in the results tarball."},{"name":"job_results","description":"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"},{"name":"list_jobs","description":"Jobs of this API key, newest first. Compact rows (id, state, label, created, finished, gpu, cost_usd, error) unless full=true."},{"name":"delete_results","description":"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 ca"},{"name":"capabilities","description":"Capability manifest of the hosted runners: LAMMPS version, installed packages, and every style by category with gpu=true (KOKKOS-accelerated) or gpu=false (exis"},{"name":"preflight_deck","description":"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"},{"name":"cancel_job","description":"Cancel a job that is not finished. A running job is billed up to the cancel time; its pod is terminated."}],"toolCount":14,"toolsHash":"b756bf870ed51691c74526834ebcabeed7fb390b1be7b12392cbfc854a059a9e","serverName":"com.forcefieldsilicon/mdengine","capabilities":["tools"],"serverVersion":"0.10.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T08:27:29.598Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":32,"error":null,"detail":{"tools":[{"name":"guide","description":"No 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-pro"},{"name":"campaign_request","description":"No 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 th"},{"name":"account","description":"Balance 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` = balan"},{"name":"submit_job","description":"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_j"},{"name":"create_job","description":"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 p"},{"name":"start_job","description":"Step 2: queue a job whose deck tarball has been uploaded. A GPU pod is launched; billing starts when it reports running."},{"name":"job_status","description":"State (created|uploaded|queued|launching|running|uploading|done|failed|cancelled), GPU, rate, billed seconds, cost so far, exit code, error, last thermo lines, "},{"name":"job_log","description":"The last <= 20 thermo/log lines the running pod reported (30 s heartbeat). Full log.lammps is in the results tarball."},{"name":"job_results","description":"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"},{"name":"list_jobs","description":"Jobs of this API key, newest first. Compact rows (id, state, label, created, finished, gpu, cost_usd, error) unless full=true."},{"name":"delete_results","description":"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 ca"},{"name":"capabilities","description":"Capability manifest of the hosted runners: LAMMPS version, installed packages, and every style by category with gpu=true (KOKKOS-accelerated) or gpu=false (exis"},{"name":"preflight_deck","description":"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"},{"name":"cancel_job","description":"Cancel a job that is not finished. A running job is billed up to the cancel time; its pod is terminated."}],"toolCount":14,"toolsHash":"b756bf870ed51691c74526834ebcabeed7fb390b1be7b12392cbfc854a059a9e","serverName":"com.forcefieldsilicon/mdengine","capabilities":["tools"],"serverVersion":"0.10.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T01:26:30.173Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":31,"error":null,"detail":{"tools":[{"name":"guide","description":"No 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-pro"},{"name":"campaign_request","description":"No 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 th"},{"name":"account","description":"Balance 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` = balan"},{"name":"submit_job","description":"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_j"},{"name":"create_job","description":"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 p"},{"name":"start_job","description":"Step 2: queue a job whose deck tarball has been uploaded. A GPU pod is launched; billing starts when it reports running."},{"name":"job_status","description":"State (created|uploaded|queued|launching|running|uploading|done|failed|cancelled), GPU, rate, billed seconds, cost so far, exit code, error, last thermo lines, "},{"name":"job_log","description":"The last <= 20 thermo/log lines the running pod reported (30 s heartbeat). Full log.lammps is in the results tarball."},{"name":"job_results","description":"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"},{"name":"list_jobs","description":"Jobs of this API key, newest first. Compact rows (id, state, label, created, finished, gpu, cost_usd, error) unless full=true."},{"name":"delete_results","description":"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 ca"},{"name":"capabilities","description":"Capability manifest of the hosted runners: LAMMPS version, installed packages, and every style by category with gpu=true (KOKKOS-accelerated) or gpu=false (exis"},{"name":"preflight_deck","description":"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"},{"name":"cancel_job","description":"Cancel a job that is not finished. A running job is billed up to the cancel time; its pod is terminated."}],"toolCount":14,"toolsHash":"b756bf870ed51691c74526834ebcabeed7fb390b1be7b12392cbfc854a059a9e","serverName":"com.forcefieldsilicon/mdengine","capabilities":["tools"],"serverVersion":"0.10.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T19:23:31.017Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":34,"error":null,"detail":{"tools":[{"name":"guide","description":"No 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-pro"},{"name":"campaign_request","description":"No 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 th"},{"name":"account","description":"Balance 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` = balan"},{"name":"submit_job","description":"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_j"},{"name":"create_job","description":"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 p"},{"name":"start_job","description":"Step 2: queue a job whose deck tarball has been uploaded. A GPU pod is launched; billing starts when it reports running."},{"name":"job_status","description":"State (created|uploaded|queued|launching|running|uploading|done|failed|cancelled), GPU, rate, billed seconds, cost so far, exit code, error, last thermo lines, "},{"name":"job_log","description":"The last <= 20 thermo/log lines the running pod reported (30 s heartbeat). Full log.lammps is in the results tarball."},{"name":"job_results","description":"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"},{"name":"list_jobs","description":"Jobs of this API key, newest first. Compact rows (id, state, label, created, finished, gpu, cost_usd, error) unless full=true."},{"name":"delete_results","description":"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 ca"},{"name":"capabilities","description":"Capability manifest of the hosted runners: LAMMPS version, installed packages, and every style by category with gpu=true (KOKKOS-accelerated) or gpu=false (exis"},{"name":"preflight_deck","description":"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"},{"name":"cancel_job","description":"Cancel a job that is not finished. A running job is billed up to the cancel time; its pod is terminated."}],"toolCount":14,"toolsHash":"b756bf870ed51691c74526834ebcabeed7fb390b1be7b12392cbfc854a059a9e","serverName":"com.forcefieldsilicon/mdengine","capabilities":["tools"],"serverVersion":"0.10.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T12:26:13.183Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":35,"error":null,"detail":{"tools":[{"name":"guide","description":"No 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-pro"},{"name":"campaign_request","description":"No 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 th"},{"name":"account","description":"Balance 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` = balan"},{"name":"submit_job","description":"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_j"},{"name":"create_job","description":"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 p"},{"name":"start_job","description":"Step 2: queue a job whose deck tarball has been uploaded. A GPU pod is launched; billing starts when it reports running."},{"name":"job_status","description":"State (created|uploaded|queued|launching|running|uploading|done|failed|cancelled), GPU, rate, billed seconds, cost so far, exit code, error, last thermo lines, "},{"name":"job_log","description":"The last <= 20 thermo/log lines the running pod reported (30 s heartbeat). Full log.lammps is in the results tarball."},{"name":"job_results","description":"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"},{"name":"list_jobs","description":"Jobs of this API key, newest first. Compact rows (id, state, label, created, finished, gpu, cost_usd, error) unless full=true."},{"name":"delete_results","description":"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 ca"},{"name":"capabilities","description":"Capability manifest of the hosted runners: LAMMPS version, installed packages, and every style by category with gpu=true (KOKKOS-accelerated) or gpu=false (exis"},{"name":"preflight_deck","description":"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"},{"name":"cancel_job","description":"Cancel a job that is not finished. A running job is billed up to the cancel time; its pod is terminated."}],"toolCount":14,"toolsHash":"b756bf870ed51691c74526834ebcabeed7fb390b1be7b12392cbfc854a059a9e","serverName":"com.forcefieldsilicon/mdengine","capabilities":["tools"],"serverVersion":"0.10.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T05:21:12.598Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":38,"error":null,"detail":{"tools":[{"name":"guide","description":"No 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-pro"},{"name":"campaign_request","description":"No 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 th"},{"name":"account","description":"Balance 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` = balan"},{"name":"submit_job","description":"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_j"},{"name":"create_job","description":"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 p"},{"name":"start_job","description":"Step 2: queue a job whose deck tarball has been uploaded. A GPU pod is launched; billing starts when it reports running."},{"name":"job_status","description":"State (created|uploaded|queued|launching|running|uploading|done|failed|cancelled), GPU, rate, billed seconds, cost so far, exit code, error, last thermo lines, "},{"name":"job_log","description":"The last <= 20 thermo/log lines the running pod reported (30 s heartbeat). Full log.lammps is in the results tarball."},{"name":"job_results","description":"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"},{"name":"list_jobs","description":"Jobs of this API key, newest first. Compact rows (id, state, label, created, finished, gpu, cost_usd, error) unless full=true."},{"name":"delete_results","description":"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 ca"},{"name":"capabilities","description":"Capability manifest of the hosted runners: LAMMPS version, installed packages, and every style by category with gpu=true (KOKKOS-accelerated) or gpu=false (exis"},{"name":"preflight_deck","description":"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"},{"name":"cancel_job","description":"Cancel a job that is not finished. A running job is billed up to the cancel time; its pod is terminated."}],"toolCount":14,"toolsHash":"b756bf870ed51691c74526834ebcabeed7fb390b1be7b12392cbfc854a059a9e","serverName":"com.forcefieldsilicon/mdengine","capabilities":["tools"],"serverVersion":"0.8.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"guide","description":"No 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-pro"},{"name":"campaign_request","description":"No 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 th"},{"name":"account","description":"Balance 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` = balan"},{"name":"submit_job","description":"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_j"},{"name":"create_job","description":"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 p"},{"name":"start_job","description":"Step 2: queue a job whose deck tarball has been uploaded. A GPU pod is launched; billing starts when it reports running."},{"name":"job_status","description":"State (created|uploaded|queued|launching|running|uploading|done|failed|cancelled), GPU, rate, billed seconds, cost so far, exit code, error, last thermo lines, "},{"name":"job_log","description":"The last <= 20 thermo/log lines the running pod reported (30 s heartbeat). Full log.lammps is in the results tarball."},{"name":"job_results","description":"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"},{"name":"list_jobs","description":"Jobs of this API key, newest first. Compact rows (id, state, label, created, finished, gpu, cost_usd, error) unless full=true."},{"name":"delete_results","description":"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 ca"},{"name":"capabilities","description":"Capability manifest of the hosted runners: LAMMPS version, installed packages, and every style by category with gpu=true (KOKKOS-accelerated) or gpu=false (exis"},{"name":"preflight_deck","description":"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"},{"name":"cancel_job","description":"Cancel a job that is not finished. A running job is billed up to the cancel time; its pod is terminated."}],"package":null,"toolSurface":{"id":"ts_twhshyggzmp5","endpointId":"ep_8uxm7ps35mfh","hash":"b756bf870ed51691c74526834ebcabeed7fb390b1be7b12392cbfc854a059a9e","toolCount":14,"serverName":"com.forcefieldsilicon/mdengine","serverVersion":"0.8.0","protocolVersion":"2025-06-18","firstSeenAt":"2026-10-08T05:21:12.613Z","lastSeenAt":"2026-10-10T18:26:12.017Z","observations":10,"toolNames":["guide","campaign_request","account","submit_job","create_job","start_job","job_status","job_log","job_results","list_jobs","delete_results","capabilities","preflight_deck","cancel_job"],"distinctSurfaces":3},"endpointFacts":[{"id":"ep_8uxm7ps35mfh","url":"https://api.forcefieldsilicon.com/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-10T04:31:00.466Z","auth":{"observedAt":"2026-10-10T04:31:00.544Z","authRequired":false,"scheme":null,"resourceMetadata":{"url":"https://api.forcefieldsilicon.com/.well-known/oauth-protected-resource/mcp","resource":"https://api.forcefieldsilicon.com/mcp","authorizationServers":["https://api.forcefieldsilicon.com"],"scopesSupported":["jobs"]},"authorizationServer":{"url":"https://api.forcefieldsilicon.com/.well-known/oauth-authorization-server","issuer":"https://api.forcefieldsilicon.com","grantTypesSupported":["authorization_code","refresh_token"],"codeChallengeMethodsSupported":["S256"],"tokenEndpointAuthMethodsSupported":["none"],"dynamicClientRegistration":true,"dpopSigningAlgValuesSupported":[],"clientIdMetadataDocumentSupported":true},"conformance":{"dpop":false,"rfc8414":true,"rfc9728":true,"pkceS256":true,"clientIdMetadataDocument":true,"dynamicClientRegistration":true}},"tls":{"observedAt":"2026-10-10T04:31:00.614Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"api.forcefieldsilicon.com","issuer":{"commonName":"YE2","organization":"Let's Encrypt"},"validFrom":"2026-09-06T17:38:41.000Z","validTo":"2026-12-05T17:38:40.000Z","daysToExpiry":55,"sanCount":1,"fingerprint256":"91:A3:9B:4A:36:D6:2A:A2:11:48:E0:9A:C3:79:24:D0:2E:13:F7:BC:FB:AA:7C:6A:CF:EA:10:66:3A:5D:AB:05"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"com.forcefieldsilicon/mdengine","url":"https://registry.modelcontextprotocol.io/v0/servers/com.forcefieldsilicon%2Fmdengine","firstSeenAt":"2026-09-07T15:18:46.522Z","fetchedAt":"2026-10-09T06:18:01.510Z","normalizedAt":"2026-10-09T06:18:01.510Z"}]},"firstSeenAt":"2026-09-07T15:18:46.522Z","updatedAt":"2026-10-10T18:29:27.861Z"}