---
title: "Model Context Protocol (MCP) server — Streamable HTTP transport (JSON-RPC 2.0)."
method: POST
path: "/mcp"
---

# Model Context Protocol (MCP) server — Streamable HTTP transport (JSON-RPC 2.0).

`POST /mcp`

## Request

- Base URL: `https://fetchgate.dev`
- URL: `https://fetchgate.dev/mcp`
- Auth: none required

A single JSON-RPC 2.0 endpoint implementing MCP's Streamable HTTP transport: `initialize`, `tools/list`, and `tools/call`. Exposes ten tools — `read_url` and `get_metadata` (wrapping /v1/read and /v1/meta, same free-tier limit and x402 pricing), `scan_for_prompt_injection`, `search_x402_services` and `check_x402_endpoint` (wrapping /v1/scan and /v1/x402/*), `list_products` (wrapping /v1/products), and `get_purchase_info` (explains the /v1/buy/:id x402 purchase flow for a product). Send `MCP-Protocol-Version: 2025-06-18` on requests after `initialize`. Responses are always a single `application/json` object (no SSE stream). See /llms.txt for a plain-language summary.

## Request body

- object
  - `jsonrpc` '2.0', required
  - `id` union
    - string
    - number
  - `method` 'initialize' | 'ping' | 'tools/list' | 'tools/call', required
  - `params` object

## Response `200`

JSON-RPC success or error result for a request carrying an `id`.

- object

## Other responses

- `202`: Accepted — the body was a JSON-RPC notification or response (no `id`), so there is no reply.
- `400`: Malformed JSON, a non-JSON-RPC body, or an unsupported MCP-Protocol-Version.

---

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