---
name: deepmedchem
description: Search trillions of purchasable make-on-demand molecules (Enamine REAL, Freedom Space, Synple, ChemInfinita, VAST and others) for analogs of a SMILES by 2D fingerprint, 3D shape or electrostatic similarity, using DeepMedChem's hosted MCP server. No account or API key needed. Use when a user wants purchasable analogs, similar molecules, scaffold hops or "what can I buy that looks like this" for a structure.
license: MIT
metadata:
  author: Deep MedChem
  homepage: https://www.deepmedchem.com/llms
  source: https://github.com/Deep-MedChem/plugin
---

# DeepMedChem: chemical-space search for agents

DeepMedChem is making the whole purchasable chemical space searchable, on a platform built for
more than 100 trillion molecules. Today's searchable make-on-demand spaces hold about 18 trillion
molecules that vendors synthesize on request, typically in 2-8 weeks for a low per-compound price;
in-stock catalogues ship immediately. This skill tells you how to connect, search and get from a
hit list to an order.

## 1. Connect

Hosted MCP server, shared by every client:

| Setting        | Value                             |
| -------------- | --------------------------------- |
| URL            | `https://mcp.deepmedchem.com/mcp` |
| Transport      | Streamable HTTP                   |
| Authentication | None (guest access)               |

Pick the route that matches your host:

- **Claude Code** (plugin, includes this workflow):
  ```text
  /plugin marketplace add Deep-MedChem/plugin
  /plugin install deepmedchem@deepmedchem
  ```
- **Claude Code** (server only): `claude mcp add --transport http deepmedchem https://mcp.deepmedchem.com/mcp`
- **Codex CLI**: `codex mcp add deepmedchem --url https://mcp.deepmedchem.com/mcp`; to also install this skill:
  `mkdir -p ~/.codex/skills/deepmedchem && curl -fsSL https://www.deepmedchem.com/skill.md -o ~/.codex/skills/deepmedchem/SKILL.md`
- **Gemini CLI**: `gemini mcp add -t http deepmedchem https://mcp.deepmedchem.com/mcp`
- **Claude.ai / Claude Desktop**: Settings → Connectors → Add custom connector → the URL above, no sign in.
- **ChatGPT**: install https://chatgpt.com/plugins/plugin_asdk_app_6ace45caacf0819194fd9a0a63e74873
- **Any MCP client** (`mcp.json`, Cursor, Windsurf, OpenClaw and similar):
  ```json
  { "mcpServers": { "deepmedchem": { "url": "https://mcp.deepmedchem.com/mcp" } } }
  ```

### No MCP support? Use HTTP directly

The server answers stateless JSON-RPC over plain HTTPS POST, so a shell is enough:

```bash
curl -s https://mcp.deepmedchem.com/mcp \
  -H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"catalog","arguments":{}}}'

curl -s https://mcp.deepmedchem.com/mcp \
  -H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"similarity_search",
       "arguments":{"smiles":"CC(=O)Oc1ccccc1C(=O)O","database":"enamine-real-v5a","method":"morgan","limit":20}}}'
```

Use `"method":"tools/list"` to read the live tool schemas.

## 2. Tools

| Tool                | Arguments                                                       | Purpose                                                                 |
| ------------------- | --------------------------------------------------------------- | ----------------------------------------------------------------------- |
| `catalog`           | none                                                            | Current database IDs, sizes, pricing and guest limits. Call it first.   |
| `similarity_search` | `smiles`, `database`, `method` (`morgan`/`shape`/`esp`), `limit` (1–20) | Up to 20 similar purchasable molecules from one database.         |
| `render_results`    | `result_id`                                                     | Show an earlier result again without running a new search.              |

## 3. Workflow

1. Call `catalog` for current database IDs, pricing and guest limits. Do not hard-code IDs.
2. Use one verified SMILES per search. If only a name is supplied, resolve it using a reliable source available to you, or ask for SMILES. Never invent a structure.
3. Choose `morgan` for fingerprint/Tanimoto similarity, `shape` for 3D shape, or `esp` for electrostatic similarity. Search one database at a time, at most 20 hits.
4. Preserve product IDs, SMILES, scores, metric, database and release. Report missing prices as unavailable; do not invent currency, vendor contacts or availability.
5. In hosts that support MCP Apps, `similarity_search` renders its own interactive structure grid (scores, prices, CSV export, catalogue links). Do not redraw molecules or retype hits into a table when the grid is shown: markdown corrupts stereo SMILES such as `[C@@H]`. To show a result again, call `render_results` with its `result_id`.
6. Share the exact CHEESE link returned with the result (it contains `job=`); it opens the saved results without another search.
7. Explain that hits are a bounded shortlist, not every match, a global optimum or proof of biological activity.
8. Guest tools do not support SDF export, substructure constraints, property/price filters, name resolution or property calculations. Say so before searching; never substitute unconstrained similarity for a requested constraint.
9. Run searches one at a time, never in parallel: guest capacity is shared and parallel calls return a busy error. On a busy error, wait briefly and retry once. Do not repeat searches to get around guest limits.

## 4. From hits to an order

Each hit carries its vendor, catalogue ID and, where available, a list price. Lead times and reported
synthesis success per space (for example Synple eXplore 9.5T, 3-4 weeks, >85%; Enamine REAL, 3-4
weeks, >80%) are listed at
https://github.com/Deep-MedChem/deepmedchem-python#deepmedchem-all-chemical-spaces .
To request a quote or prepare an order, use the SDK (`dmc order hits.csv --get-quote`) or contact
the vendor shown in `catalog`. Never place an order or send a quote request without the user's
explicit confirmation of molecules, amounts and price.

## 5. Going further (account required)

For substructure and SMARTS search, property and price filters, in-stock catalogues, random
sampling, SDF export, larger result sets or optimizing your own score (docking, ML models) over a
chemical space, use the `deepmedchem` Python SDK and `dmc` CLI with a CHEESE API key:

```bash
pip install deepmedchem
dmc login
dmc search "CC(=O)Oc1ccccc1C(=O)O" -d enamine -n 100 -o aspirin.csv
```

Full SDK skill: https://github.com/Deep-MedChem/deepmedchem-python/tree/main/skills/deepmedchem
Never ask users to paste API keys into chat; use `dmc login` or the `DEEPMEDCHEM_API_KEY` environment variable.

## Links

- Install guide for humans: https://www.deepmedchem.com/llms
- Site index for LLMs: https://www.deepmedchem.com/llms.txt
- API documentation: https://docs.deepmedchem.com/ (index: https://docs.deepmedchem.com/llms.txt)
- Web app: https://cheese.deepmedchem.com
- Support: info@deepmedchem.com
