# MCP tools and actions

Discover the live action catalog, call supported tools and verify what actually ran.

Canonical: https://docs.cyberrxn.com/en/docs/ai/tools

CyberRXN exposes chemistry operations through remote MCP. A host may expose named tools directly or retain approved stable entry points. Use the current guide to discover supported actions instead of maintaining a hard-coded capability list.

## Discover capabilities first

Call `get_reaction_skill` with an empty input object after connecting. Inspect the returned `action_catalog`, its input schemas and any `catalog_error`. Retain the version and digest for freshness. The guide describes capabilities; it cannot grant tools or workspace permissions that the current connection lacks.

| Entry point | Purpose |
| --- | --- |
| An exposed named tool | Call that operation directly with its current schema |
| `run_chemistry_action` | Dispatch a supported read action using `action` and `arguments` |
| `submit_corpus_action` | Dispatch a supported report or contribution using the same envelope |

The write dispatcher supports `report_observation_issue` and `submit_reaction_contribution`. It does not bypass source requirements, review or authorization. See [contributions and corrections](/en/docs/contributions) before implementing submissions.

## Run a read action

This MCP tool-call envelope validates a supplied equation:

```json
{
  "name": "run_chemistry_action",
  "arguments": {
    "action": "validate_reaction",
    "arguments": {
      "reaction_smiles": "CCO>>CC=O",
      "mode": "strict"
    }
  }
}
```

Read the returned atom, hydrogen and charge diagnostics. Ethanol and acetaldehyde alone do not conserve hydrogen. A completed check can return a negative result; that differs from a failed tool request.

For recorded preparations of one molecule, dispatch `molecule_reactions`:

```json
{
  "name": "run_chemistry_action",
  "arguments": {
    "action": "molecule_reactions",
    "arguments": {
      "smiles": "CCO",
      "role": "product",
      "limit": 3
    }
  }
}
```

Use a returned opaque `observation_id` to request `get_observation`. Do not substitute a patent number or invent an ID. A single-molecule search includes records with coproducts; `search_reactions.products` matches the complete dot-separated product side. See [search and evidence](/en/docs/chemistry/search).

## Keep execution bounded

Start with 3–5 results and fetch only relevant full observations. Use supported pagination only when more records are needed. Retry a transient failure at most once, honoring its delay. Unknown actions, extra arguments and recursive dispatch are rejected.

Dispatching changes how an operation is called, not its billing or scientific meaning. Guide reads are free; successful chemistry actions retain normal metering under the actual operation name. Check [usage](/en/docs/api/usage) and [rate limits](/en/docs/api/rate-limits).

## Verify and refresh

Inspect the provider's tool activity for the exact action and input. A prose claim that an assistant “used CyberRXN” does not prove execution. For a precedent, expect retrieval of the full observation before source-specific conclusions.

If an action is missing, reread the live guide. Named tool changes may also require a provider-side metadata refresh and a new conversation; follow [MCP setup](/en/docs/mcp). If neither a named tool nor a supported dispatcher action is available, report that limit rather than claiming a call ran.

The [API reference](/en/docs/api/reference) provides REST request and response details. The live MCP catalog remains the source for the schemas exposed to the connected assistant.
