The MCP server speaks the same project → file → job → output loop as the
app. It is authenticated. Unauthenticated calls get 401 and a
WWW-Authenticate: Bearer header.
1. Create a token
- Open Account in the app.
- Under API tokens, name it (Hermes, Claude, laptop) and click Create token.
- Copy the
qmd_…secret. It is shown once. Revoke it any time from the same page.
Email must be verified before jobs will run — same gate as the browser. Credits are the same pool.
2. Point the client at the server
Endpoint: https://quickmdsim-api.compoundhq.workers.dev/mcp
Header: Authorization: Bearer qmd_…
The app host also proxies the same handler at https://app.quickmdsim.com/api/mcp if a
client prefers a first-party hostname.
Hermes
hermes mcp add quickmdsim --url https://quickmdsim-api.compoundhq.workers.dev/mcp Then put the token in ~/.hermes/config.yaml:
mcp_servers:
quickmdsim:
url: https://quickmdsim-api.compoundhq.workers.dev/mcp
headers:
Authorization: "Bearer qmd_YOUR_TOKEN"
timeout: 180
Restart Hermes (or /reload-mcp). Tools show up as
mcp_quickmdsim_*. Smoke test: hermes mcp test quickmdsim.
Claude Desktop / Claude Code
In Claude Desktop settings → MCP, or in claude_desktop_config.json:
{
"mcpServers": {
"quickmdsim": {
"url": "https://quickmdsim-api.compoundhq.workers.dev/mcp",
"headers": {
"Authorization": "Bearer qmd_YOUR_TOKEN"
}
}
}
}
Claude Code: claude mcp add --transport http quickmdsim https://quickmdsim-api.compoundhq.workers.dev/mcp
and add the same Authorization header in the generated config.
Cursor
In .cursor/mcp.json or Cursor Settings → MCP:
{
"mcpServers": {
"quickmdsim": {
"url": "https://quickmdsim-api.compoundhq.workers.dev/mcp",
"headers": {
"Authorization": "Bearer qmd_YOUR_TOKEN"
}
}
}
} 3. Usage loop
Ask the agent to do the work. A typical first job:
whoami— confirm the account, credits, and that jobs can runcreate_project— name itwrite_file— put a realinput.lammps(overwrite the stub). Add potential files the same waysubmit_job— optionalvcpusof 1, 2, or 4 (Free is 1 only)get_job— poll untilstatus_labelisdoneorfailedlist_outputsthenread_outputforstdout.txt/ the log
Binary outputs (movies, snapshots) stay in the app — MCP returns text logs and dump excerpts, not mp4/png bytes.
Tools
whoami— account, plan, credits, allowed coreslist_projects/create_project/get_projectlist_files/read_file/write_filelist_jobs/submit_job/get_joblist_outputs/read_output
A token sees only that account. Revoking it takes effect on the next call.
Treat qmd_… like a password — do not commit it.
If something fails
- 401 — missing/revoked token, or the
Bearerheader did not arrive - Verify your email — same as the app; jobs stay blocked until the link is clicked
- Insufficient credits — check
whoami, then Account → Subscriptions - No LAMMPS input script —
data.lammpsis a topology file; writeinput.lammpsthat callsread_data - Upgrade to run on 2 or 4 cores — Free is 1 vCPU