What happened?
I'm reporting a reproducible bug in the Claude mobile app where MCP tool calls are never invoked. The client successfully completes the handshake but then restarts the session instead of calling tools.
Environment
- Client: Claude mobile app (iOS/Android)
- Transport: Streamable HTTP (MCP spec 2025-11-25)
- Server: Spring AI 2.0.0-RC2, Java, deployed at https://demo.nearsight.ai/mcp
- Auth: OAuth 2.1 (Bearer token)
- Claude web (desktop): works correctly — tools are invoked successfully
Behavior Observed
The mobile client repeatedly completes the MCP discovery handshake but never proceeds to tool invocation. Instead it restarts the session every ~25 seconds:
- POST /mcp (session=null) → initialize → 200, new session assigned
- POST /mcp → notifications/initialized → 202
- POST /mcp → resources/list → 200
- POST /mcp → tools/list → 200
- POST /mcp → prompts/list → 200
- ← no tool call ever arrives →
- POST /mcp (session=null) → initialize → 200, NEW session (loop repeats)
This loop was observed repeating at least 3 times within a 2-minute window. The user sees "cannot reach server" in the mobile UI.
Additional anomaly: resources/list is sent twice within the same session with the same request id:1, suggesting a client-side retry/state issue during discovery.
What the server logs confirm
- Auth token is present (
Authorization: Bearer) on every single request — this is not an auth issue
- All server responses are 200/202 — the server is handling everything correctly
- No tool call (
tools/call) POST ever arrives at the server
- The same behavior reproduces across multiple fresh sessions
Expected Behavior
After completing discovery (tools/list, resources/list, prompts/list), the mobile client should send a tools/call POST when the user invokes a tool, consistent with how the desktop web client behaves.
Impact
MCP tool calls are completely non-functional on Claude mobile for Streamable HTTP connectors. The desktop web client works correctly against the identical server, confirming this is a mobile client regression.
here's the full configuration detail. Please note again that our MCP Server works successfully in Claude UI (Desktop), the ChatGPT UI (Desktop), and the ChatGPT mobile app. the issue is only in Claude Mobile.
Server stack
Spring AI 2.0.0-RC2 (Java), WebMvcStreamableServerTransportProvider
Transport: Streamable HTTP at https://demo.nearsight.ai/mcp
Protocol version negotiated: 2025-11-25
Auth: OAuth 2.1 / Clerk, Bearer JWT (at+jwt), validated via Spring Security resource server
Fronted by Cloudflare → nginx ingress → Spring Boot on LKE
Capabilities advertised: tools, resources, prompts
Mobile client identifies as: Anthropic/ClaudeAI version 1.0.0
What the server observes (every mobile session, reproducible):
initialize (session=null) → 200, new session assigned
notifications/initialized → 202
resources/list → 200
tools/list → 200 (correct tool count parsed; UI shows it)
prompts/list → 200
No tools/call ever arrives
Session restarts ~25–80s later, loop repeats
Auth header is present on every request — not an auth failure. All responses 200/202.
Notable client-side anomaly: tools/list and resources/list are each sent twice within the same session using the same JSON-RPC id (id:1). This duplicate-ID retry appears in every captured mobile session and never on web desktop.
Exact mobile model response to a tool-invocable query ("what are my asset types"):
"I can't pull this from your live NearSight server in this chat — I don't have the MCP tools callable here (they're only available when building an artifact against demo.nearsight.ai/mcp, not in the regular chat tool surface)."
The model then fabricated an asset-type answer from conversation context rather than calling the tool. The same query on web desktop invokes the tool and returns the correct result.
Environment: Native Claude mobile app (not browser). Identical connector, identical server, identical account — only the surface differs.
Please let me know if you need the full server debug logs — I have timestamped traces covering multiple session restart cycles.
What did you expect to happen?
Expected Behavior
After completing discovery (tools/list, resources/list, prompts/list), the mobile client should send a tools/call POST when the user invokes a tool, consistent with how the desktop web client behaves.
Steps to reproduce
nearsight-mobile-mcp-logs.txt
Area
MCP Connector (adding/managing servers)
MCP Server (if applicable)
https://demo.nearsight.ai/mcp
Error messages or logs
Exact mobile model response to a tool-invocable query ("what are my asset types"):
"I can't pull this from your live NearSight server in this chat — I don't have the MCP tools callable here (they're only available when building an artifact against demo.nearsight.ai/mcp, not in the regular chat tool surface)."
Additional context
No response
What happened?
I'm reporting a reproducible bug in the Claude mobile app where MCP tool calls are never invoked. The client successfully completes the handshake but then restarts the session instead of calling tools.
Environment
Behavior Observed
The mobile client repeatedly completes the MCP discovery handshake but never proceeds to tool invocation. Instead it restarts the session every ~25 seconds:
This loop was observed repeating at least 3 times within a 2-minute window. The user sees "cannot reach server" in the mobile UI.
Additional anomaly:
resources/listis sent twice within the same session with the same requestid:1, suggesting a client-side retry/state issue during discovery.What the server logs confirm
Authorization: Bearer) on every single request — this is not an auth issuetools/call) POST ever arrives at the serverExpected Behavior
After completing discovery (tools/list, resources/list, prompts/list), the mobile client should send a
tools/callPOST when the user invokes a tool, consistent with how the desktop web client behaves.Impact
MCP tool calls are completely non-functional on Claude mobile for Streamable HTTP connectors. The desktop web client works correctly against the identical server, confirming this is a mobile client regression.
here's the full configuration detail. Please note again that our MCP Server works successfully in Claude UI (Desktop), the ChatGPT UI (Desktop), and the ChatGPT mobile app. the issue is only in Claude Mobile.
Server stack
Spring AI 2.0.0-RC2 (Java), WebMvcStreamableServerTransportProvider
Transport: Streamable HTTP at https://demo.nearsight.ai/mcp
Protocol version negotiated: 2025-11-25
Auth: OAuth 2.1 / Clerk, Bearer JWT (at+jwt), validated via Spring Security resource server
Fronted by Cloudflare → nginx ingress → Spring Boot on LKE
Capabilities advertised: tools, resources, prompts
Mobile client identifies as: Anthropic/ClaudeAI version 1.0.0
What the server observes (every mobile session, reproducible):
initialize (session=null) → 200, new session assigned
notifications/initialized → 202
resources/list → 200
tools/list → 200 (correct tool count parsed; UI shows it)
prompts/list → 200
No tools/call ever arrives
Session restarts ~25–80s later, loop repeats
Auth header is present on every request — not an auth failure. All responses 200/202.
Notable client-side anomaly: tools/list and resources/list are each sent twice within the same session using the same JSON-RPC id (id:1). This duplicate-ID retry appears in every captured mobile session and never on web desktop.
Exact mobile model response to a tool-invocable query ("what are my asset types"):
"I can't pull this from your live NearSight server in this chat — I don't have the MCP tools callable here (they're only available when building an artifact against demo.nearsight.ai/mcp, not in the regular chat tool surface)."
The model then fabricated an asset-type answer from conversation context rather than calling the tool. The same query on web desktop invokes the tool and returns the correct result.
Environment: Native Claude mobile app (not browser). Identical connector, identical server, identical account — only the surface differs.
Please let me know if you need the full server debug logs — I have timestamped traces covering multiple session restart cycles.
What did you expect to happen?
Expected Behavior
After completing discovery (tools/list, resources/list, prompts/list), the mobile client should send a
tools/callPOST when the user invokes a tool, consistent with how the desktop web client behaves.Steps to reproduce
nearsight-mobile-mcp-logs.txt
Area
MCP Connector (adding/managing servers)
MCP Server (if applicable)
https://demo.nearsight.ai/mcp
Error messages or logs
Additional context
No response