---
title: "MCP tool server (JSON-RPC 2.0)"
method: POST
path: "/mcp"
tags: ["mcp"]
---

# MCP tool server (JSON-RPC 2.0)

`POST /mcp`

## Request

- Base URL: `https://api.whoisgeni.us` (the document declares no server; this is the origin it was published from)
- URL: `https://api.whoisgeni.us/mcp`
- Auth: none declared

Streamable-HTTP MCP endpoint implementing JSON-RPC 2.0.

Supports three MCP methods:

* ``initialize`` — capability handshake (stateless; ignores clientInfo)
* ``tools/list`` — enumerate available tools
* ``tools/call`` — invoke ``analyze_domain`` or ``correlate_domains``

Authentication is required for ``tools/call`` (valid ``X-API-Key``);
``initialize`` and ``tools/list`` are unauthenticated.  Errors are
returned as JSON-RPC error objects (HTTP 200) rather than raising
HTTPException, so the envelope middleware never wraps them.

To use with Claude::

    claude mcp add --transport http whoisgenius http://localhost:8000/mcp

Or for the hosted API::

    claude mcp add --transport http whoisgenius https://api.whoisgeni.us/mcp

## Headers

- `X-API-Key` string, nullable

## Response `200`

JSON-RPC response

- unknown

## Other responses

- `401`: Unauthorized — missing or invalid API key/JWT.
- `422`: Validation Error

---

[API](https://skmtc.dev/whoisgeni/apis/whoisgenius.md) · [All operations](https://skmtc.dev/whoisgeni/apis/whoisgenius/llms.txt) · [OpenAPI document](https://skmtc.dev/whoisgeni/apis/whoisgenius/revisions/707f1c34f6b3?raw)
