Title: bug: `get_me` tool fails without parameters due to empty JSON object `{}` not being accepted as valid input · Issue #2587 · github/github-mcp-server · GitHub
Open Graph Title: bug: `get_me` tool fails without parameters due to empty JSON object `{}` not being accepted as valid input · Issue #2587 · github/github-mcp-server
X Title: bug: `get_me` tool fails without parameters due to empty JSON object `{}` not being accepted as valid input · Issue #2587 · github/github-mcp-server
Description: 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 inconsiste...
Open Graph Description: 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. {"_": ""}) ma...
X Description: 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. {"_"...
Opengraph URL: https://github.com/github/github-mcp-server/issues/2587
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"bug: `get_me` tool fails without parameters due to empty JSON object `{}` not being accepted as valid input","articleBody":"## Description\n\nThe `get_me` tool is documented as requiring **no parameters**, but when called\nwithout any arguments it returns an error in certain MCP clients. Passing a\ndummy parameter (e.g. `{\"_\": \"\"}`) makes the call succeed.\n\nThis is inconsistent with the tool's own schema declaration and creates friction\nfor any client that strictly follows the declared schema.\n\n## Steps to Reproduce\n\n1. Start the GitHub MCP Server (local or remote).\n2. Call `get_me` with an empty argument object (as the schema says no parameters\n are required):\n```json\n {\n \"jsonrpc\": \"2.0\",\n \"id\": 1,\n \"method\": \"tools/call\",\n \"params\": {\n \"name\": \"get_me\",\n \"arguments\": {}\n }\n }\n```\n3. Observe the error response.\n4. Retry with a dummy parameter:\n```json\n {\n \"jsonrpc\": \"2.0\",\n \"id\": 2,\n \"method\": \"tools/call\",\n \"params\": {\n \"name\": \"get_me\",\n \"arguments\": { \"_\": \"\" }\n }\n }\n```\n5. Observe that this call succeeds.\n\n## Expected Behavior\n\n`get_me` should succeed when called with an empty arguments object `{}`, since\nthe tool schema declares **no required arguments**.\n\n## Actual Behavior\n\n`get_me` returns an error when called with `{}`. The call only succeeds if a\ndummy/extra parameter is included.\n\n## Root Cause (Hypothesis)\n\nLooking at `pkg/github/context_tools.go`, `get_me` is registered with\n`mcp.NewTool` with no input schema properties. After the recent migration from\n`mark3labs/mcp-go` to the official `modelcontextprotocol/go-sdk`, the SDK may\nbe rejecting a `null` or missing `arguments` field differently than an explicit\n`{}`.\n\nTwo possible causes:\n\n1. **SDK-level validation**: The Go SDK may require `arguments` to be a\n non-null JSON object. If the client omits the field entirely (or sends\n `null`), it gets rejected before the handler is invoked.\n2. **Handler-level parsing**: The tool handler may attempt to parse\n `request.Params.Arguments` and fail on a nil/empty map before returning\n early for the no-param case.\n\n## Environment\n\n- GitHub MCP Server version: `main` (latest)\n- MCP SDK: `modelcontextprotocol/go-sdk` (post-migration)\n- Transport: stdio / streamable-http (reproduced on both)\n- Client: Claude Code with Local LLM\n\n## Suggested Fix\n\nEnsure the `get_me` handler (and any other zero-parameter tool) gracefully\nhandles both a missing `arguments` field and an explicit empty object `{}`.\nA guard like the following at the top of the handler should suffice:\n\n```go\n// No parameters expected; nothing to parse.\n// Handle both nil and empty arguments map to stay robust.\n```\n\nAlternatively, if this is an SDK-level issue, the tool registration could\nexplicitly set an empty-object schema (`\"properties\": {}, \"type\": \"object\"`)\nto signal that an empty object is valid input, which some validators require.\n\n## Additional Context\n\n- The README documents `get_me` as: _\"No parameters required\"_\n- Other zero-parameter tools (if any) may be affected by the same issue.\n- A workaround is to pass any dummy key, but this should not be necessary.","author":{"url":"https://github.com/doheonlee","@type":"Person","name":"doheonlee"},"datePublished":"2026-06-01T07:51:58.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":0},"url":"https://github.com/2587/github-mcp-server/issues/2587"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:e832557c-21cb-4304-1079-d03ae95868cd |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | D006:121CE8:14F185:1DA757:6A5F0DD8 |
| html-safe-nonce | ebb5d94e861b018dd8bdeb9d1ef307cadb7d78c586d5138b10d45ac75879267b |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJEMDA2OjEyMUNFODoxNEYxODU6MURBNzU3OjZBNUYwREQ4IiwidmlzaXRvcl9pZCI6IjUyODk0ODQ4NTk0MTcyMzQ5MDUiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ== |
| visitor-hmac | 3c352650589800facb7ab85c2b8718027105a14f66c1c1d5d9015e8d38f50170 |
| hovercard-subject-tag | issue:4561325127 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/github/github-mcp-server/2587/issue_layout |
| twitter:image | https://opengraph.githubassets.com/8e2fa07aed6bcb779e20ff45d0e1b9e1c26cbecb1c101398971d06a736aeec27/github/github-mcp-server/issues/2587 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/8e2fa07aed6bcb779e20ff45d0e1b9e1c26cbecb1c101398971d06a736aeec27/github/github-mcp-server/issues/2587 |
| og:image:alt | 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. {"_": ""}) ma... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | doheonlee |
| hostname | github.com |
| expected-hostname | github.com |
| None | bf8fa4b42b6d150def6175efb9b0f1ec8e9628d7229ee2bdf6e850e7bdad923e |
| turbo-cache-control | no-preview |
| go-import | github.com/github/github-mcp-server git https://github.com/github/github-mcp-server.git |
| octolytics-dimension-user_id | 9919 |
| octolytics-dimension-user_login | github |
| octolytics-dimension-repository_id | 942771284 |
| octolytics-dimension-repository_nwo | github/github-mcp-server |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 942771284 |
| octolytics-dimension-repository_network_root_nwo | github/github-mcp-server |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 7debc3c6cd5de09c6e22b47a1b9982acb2aabb7b |
| ui-target | canary-2 |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width