---
title: "Invoke an MCP tool"
method: POST
path: "/mcp"
---

# Invoke an MCP tool

`POST /mcp`

## Request

- Base URL: `https://mcp.rrmacademy.org`
- URL: `https://mcp.rrmacademy.org/mcp`
- Auth: HTTP bearer

Model Context Protocol JSON-RPC 2.0 entry point. Dispatches to one of five tools: search, check_guardrails, check_facts, get_article, find_related. Use the MCP client libraries (@modelcontextprotocol/sdk) for idiomatic access rather than raw HTTP.

## Headers

- `Idempotency-Key` string

## Request body

- JsonRpcRequest
  - `jsonrpc` '2.0', required
  - `method` 'tools/list' | 'tools/call' | 'initialize', required
  - `params` object: For tools/call: { name: string, arguments: object }. Tool names: search, check_guardrails, check_facts, get_article, find_related.
  - `id` union, required
    - string
    - number

## Response `200`

JSON-RPC response envelope

- JsonRpcResponse
  - `jsonrpc` '2.0', required
  - `id` union, required
    - string
    - number
  - `result` object
  - `error` object
    - `code` integer
    - `message` string
    - `data` unknown

## Other responses

- `400`: Idempotency-Key header is malformed. Must be 16-128 printable ASCII characters.
- `401`: Missing or invalid bearer token
- `422`: The Idempotency-Key was previously used with a different request body. Use a new key for a new request.
- `429`: Rate limited
- `503`: Upstream unavailable

---

[API](https://skmtc.dev/rrmacademy/apis/rrm-academy-agent-api.md) · [All operations](https://skmtc.dev/rrmacademy/apis/rrm-academy-agent-api/llms.txt) · [OpenAPI document](https://skmtc.dev/rrmacademy/apis/rrm-academy-agent-api/revisions/0e3589a38b0c?raw)
