## Description The `get_me` tool is documented as requiring **no parameters**, but when called without any arguments it returns an error in certain MCP clients. Passing a dummy parameter (e.g. `{"_": ""}`) makes the call succeed. This is inconsistent with the tool's own schema declaration and creates friction for any client that strictly follows the declared schema. ## Steps to Reproduce 1. Start the GitHub MCP Server (local or remote). 2. Call `get_me` with an empty argument object (as the schema says no parameters are required): ```json { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "get_me", "arguments": {} } } ``` 3. Observe the error response. 4. Retry with a dummy parameter: ```json { "jsonrpc": "2.0", "id": 2, "method": "tools/call", "params": { "name": "get_me", "arguments": { "_": "" } } } ``` 5. Observe that this call succeeds. ## Expected Behavior `get_me` should succeed when called with an empty arguments object `{}`, since the tool schema declares **no required arguments**. ## Actual Behavior `get_me` returns an error when called with `{}`. The call only succeeds if a dummy/extra parameter is included. ## Root Cause (Hypothesis) Looking at `pkg/github/context_tools.go`, `get_me` is registered with `mcp.NewTool` with no input schema properties. After the recent migration from `mark3labs/mcp-go` to the official `modelcontextprotocol/go-sdk`, the SDK may be rejecting a `null` or missing `arguments` field differently than an explicit `{}`. Two possible causes: 1. **SDK-level validation**: The Go SDK may require `arguments` to be a non-null JSON object. If the client omits the field entirely (or sends `null`), it gets rejected before the handler is invoked. 2. **Handler-level parsing**: The tool handler may attempt to parse `request.Params.Arguments` and fail on a nil/empty map before returning early for the no-param case. ## Environment - GitHub MCP Server version: `main` (latest) - MCP SDK: `modelcontextprotocol/go-sdk` (post-migration) - Transport: stdio / streamable-http (reproduced on both) - Client: Claude Code with Local LLM ## Suggested Fix Ensure the `get_me` handler (and any other zero-parameter tool) gracefully handles both a missing `arguments` field and an explicit empty object `{}`. A guard like the following at the top of the handler should suffice: ```go // No parameters expected; nothing to parse. // Handle both nil and empty arguments map to stay robust. ``` Alternatively, if this is an SDK-level issue, the tool registration could explicitly set an empty-object schema (`"properties": {}, "type": "object"`) to signal that an empty object is valid input, which some validators require. ## Additional Context - The README documents `get_me` as: _"No parameters required"_ - Other zero-parameter tools (if any) may be affected by the same issue. - A workaround is to pass any dummy key, but this should not be necessary.