h3-mcp logoh3-mcp

JSON-RPC Methods

What the handler answers, and on which era.

Every method below is implemented for you. You never register a method — you declare tools, resources, and prompts, and the methods that expose them exist.

#Shared

MethodAnswers with
tools/listDeclared tools, paginated, schemas resolved
tools/callTool result, after validating arguments
resources/listDeclared resources, paginated
resources/readResource contents; falls back to URI templates
resources/templates/listDeclared resource templates, paginated
prompts/listDeclared prompts, paginated
prompts/getPrompt messages, after checking required args
completion/completeValues from a complete callback

#Modern Only

MethodAnswers with
server/discoverVersions, capabilities, instructions, identity (cacheable)
subscriptions/listenA long-lived SSE stream of opted-in notifications

#Legacy Only

MethodAnswers with
initializeNegotiated version, capabilities, serverInfo
notifications/initializedAccepted, no-op
pingEmpty result
notifications/cancelledAborts the named in-flight request (alias: notifications/canceled)
notifications/progressInvokes onProgress
resources/subscribeInvokes onSubscribe
resources/unsubscribeInvokes onUnsubscribe
logging/setLevelInvokes onLogLevelSet

An unknown method is -32601, with HTTP 404 on the modern era.

#Pagination

tools/list, resources/list, resources/templates/list, and prompts/list are cursor-paginated. Clients pass the nextCursor from the previous page; the cursor is opaque and validated, so a malformed one is -32602 rather than an unbounded read.

curl -X POST http://localhost:3000/mcp \
  -H 'content-type: application/json' \
  -d '{ "jsonrpc": "2.0", "id": 1, "method": "tools/list",
        "params": { "cursor": "eyJvZmZzZXQiOjEwfQ==" } }'

#Capabilities

Capabilities are derived, never declared by hand:

CapabilityAdvertised when
toolsat least one tool
resourcesat least one resource or resource template
promptsat least one prompt
completionsany prompt argument or template has a complete callback
loggingonLogLevelSet (legacy) or logging: true (modern)
resources.subscribeonSubscribe (legacy) or onListen (modern)
*.listChangedalways (legacy) · onListen (modern)
extensionsextensions is set (modern)
Read more in Protocol eras.
h3-mcp logo

h3-mcp  MCP servers, built on H3.