The CogniChem MCP server gives AI clients that speak the Model Context Protocol the same tools you use: find tools and workflows, estimate, submit and follow jobs and runs, read results, and look up compounds and targets. It runs at:
https://mcp.cognichem.com/mcpThere is nothing to install. Your client sends your API key with each request; you pay your own model costs, and CogniChem bills only the compute you start.
Create a key for it
Create a dedicated API key for each client:
- the
readscope, pluswriteonly if the client should start work; - an expiry date;
- a spend ceiling, so a runaway session can't spend more than you intend.
Connect
Claude Code:
claude mcp add --transport http cognichem https://mcp.cognichem.com/mcp \
--header "X-Api-Key: $COGNICHEM_API_KEY"Cursor (~/.cursor/mcp.json, or .cursor/mcp.json in a project):
{
"mcpServers": {
"cognichem": {
"url": "https://mcp.cognichem.com/mcp",
"headers": { "X-Api-Key": "your-api-key" }
}
}
}Other clients that support remote (Streamable HTTP) servers with custom headers work the same way. Clients that only connect to remote servers through OAuth aren't supported yet.
What the client can do
| Family | Tools | Scope |
|---|---|---|
| Catalog | list_job_types, get_job_schema, list_utility_types, get_utility_schema, get_inference_schema | none |
| Product graph | kg_product_search, kg_product_get, kg_product_neighborhood, kg_product_how_to_run | none |
| Jobs | estimate_job, list_jobs, get_job_status, wait_for_job, inspect_job_artifact, download_job_record | read |
submit_<job_type> (one per job type), cancel_job | write | |
| Workflows | validate_workflow, estimate_workflow, list_workflow_templates, get_workflow_node_ports, list_workflow_runs, get_workflow_run, wait_for_workflow_run | read |
create_workflow_run, cancel_workflow_run, resume_workflow_run | write | |
| Artifacts | list_artifacts, get_artifact_record | read |
| Lookups | resolve_compounds, lookup_chembl, lookup_targets, lookup_uniprot, lookup_pdb, lookup_properties | read |
| Reference papers | kg_reference_search, kg_reference_get, kg_reference_neighborhood | read |
| Wallet | get_wallet_balance | read |
| Utilities | list_utility_calls, get_utility_status, get_utility_result | read |
util_<utility_type>, cancel_utility_call, delete_utility_call | write | |
| Inference | list_inference_models, list_inference_calls, get_inference_status, get_inference_result | read |
infer_<model_type>, cancel_inference_call, delete_inference_call | write |
Each tool calls the REST API with your key, so the key's scopes, expiry, and spend ceiling apply as they do in your own code. A read key calling a write tool gets the 403 back as a tool error.
Good to know
- Write tools take an
idempotency_key(a UUID). A well-behaved client keeps the same key when it retries a submit. create_workflow_runtells the model to validate and estimate first and show you the estimate; the server prices the run again when it starts and holds that amount.- Waiting tools (
wait_for_job,wait_for_workflow_run, andget_utility_result/get_inference_resultwithmax_wait_sec) return after at most 25 seconds while the work is still running, with atimeouterror the client answers by calling again. - Files: upload them in the app or with Upload a CogniChem-compatible library artifact, then let the client refer to them by artifact id.
- Lookups send only names and IDs to outside databases. ChEMBL similarity and substructure search send SMILES only for a key with structure search turned on.
- Utilities and inference aren't wallet-charged, so a key's spend ceiling doesn't limit them; they count toward your monthly allowances.
The in-app Assistant is separate: it uses a read-and-propose subset of these tools, and you approve every run.