From 23350e240a0b8f6d7cc60a21704cb299083238e9 Mon Sep 17 00:00:00 2001 From: Yuki Minamiya Date: Wed, 24 Jun 2026 00:19:52 +0900 Subject: [PATCH] [Doc] Use registered callable names in examples/README.md `examples/README.md` referred to three example components by their Ruby class names, while the server examples register them via class registration without an explicit `tool_name` / `prompt_name`. Their callable names exposed over JSON-RPC are therefore derived to the snake_case form via `StringUtils.handle_from_class_name` (used by both `MCP::Tool#name_value` and `MCP::Prompt#name_value`). - The `tools/call` cURL example for the HTTP server used `"name": "ExampleTool"`, but the registered tool is `example_tool`, so it would fail with `Tool not found: ExampleTool` (-32602 Invalid params). - The HTTP Server "Tools" list and "Prompts" list referred to `ExampleTool` and `ExamplePrompt`. The sibling `echo` tool is already listed by its callable name. - The Streamable HTTP Server "Available Tools" list referred to `NotificationTool`, while the same section's cURL example already uses `notification_tool`. The list and cURL entries now consistently use the callable names (`example_tool`, `example_prompt`, `notification_tool`). How Tested: Ran `ruby examples/http_server.rb` and exercised the cURL flow. `tools/list` returned `example_tool` and `echo`; `tools/call` with `"name": "ExampleTool"` returned `Tool not found: ExampleTool`; with `"name": "example_tool"` returned `The sum of 5 and 3 is 8`. `prompts/list` returned `example_prompt`. Breaking Changes: None (documentation only). --- examples/README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/examples/README.md b/examples/README.md index c0fcb334..6328c4e5 100644 --- a/examples/README.md +++ b/examples/README.md @@ -55,9 +55,9 @@ $ ruby examples/http_server.rb The server will start on `http://localhost:9292` and provide: - **Tools**: - - `ExampleTool` - adds two numbers + - `example_tool` - adds two numbers - `echo` - echoes back messages -- **Prompts**: `ExamplePrompt` - echoes back arguments as a prompt +- **Prompts**: `example_prompt` - echoes back arguments as a prompt - **Resources**: `test_resource` - returns example content ### 4. HTTP Client Example (`http_client.rb`) @@ -98,7 +98,7 @@ A specialized HTTP server designed to test and demonstrate Server-Sent Events (S **Available Tools:** -- `NotificationTool` - Send custom SSE notifications with optional delays +- `notification_tool` - Send custom SSE notifications with optional delays - `echo` - Simple echo tool for basic testing **Usage:** @@ -237,5 +237,5 @@ Call a tool: ```console curl -i http://localhost:9292 \ -H "Mcp-Session-Id: YOUR_SESSION_ID" \ - --json '{"jsonrpc":"2.0","method":"tools/call","id":3,"params":{"name":"ExampleTool","arguments":{"a":5,"b":3}}}' + --json '{"jsonrpc":"2.0","method":"tools/call","id":3,"params":{"name":"example_tool","arguments":{"a":5,"b":3}}}' ```