---
title: "Read an MCP resource"
method: POST
path: "/v1/mcp/resources/read"
tags: ["MCP"]
---

# Read an MCP resource

`POST /v1/mcp/resources/read`

## Request

- Base URL: `https://statusstack.com/api`
- URL: `https://statusstack.com/api/v1/mcp/resources/read`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-API-Key`

REST convenience for the JSON-RPC `resources/read` method.

## Request body

- object
  - `uri` string, required: Resource URI, as returned by `GET /v1/mcp/resources`.

## Response `200`

The `resources/read` result

- McpData
  - `data` object, required: The `result` of the equivalent JSON-RPC call.

## Other responses

- `400`: `uri` is missing
- `401`: Missing or invalid MCP credentials.
- `403`: The connection's organization has no paid plan with API access. JSON-RPC error code `-32002`, with `data.reason` = `subscription_required` and `data.upgrade_url`.
- `422`: The read was refused or failed (unknown URI scheme, no access, or an internal error); `error` carries the reason
- `429`: Rate limit exceeded. Each MCP connection may make `ai.mcp.rate_limit_per_minute` requests per minute (60 by default) across all authenticated MCP endpoints combined, answered with JSON-RPC error `-32000`. The route additionally caps each caller at 120 requests per minute, answered with a plain `{message}` body.

---

[API](https://skmtc.dev/statusstack/apis/statusstack-api.md) - [All operations](https://skmtc.dev/statusstack/apis/statusstack-api/llms.txt) - [OpenAPI document](https://skmtc.dev/statusstack/apis/statusstack-api/revisions/a5fabf6ac5e4?raw)
