# MCP Unrecognized field \\"tools\\

**URL:** <https://forum.cursor.com/t/mcp-unrecognized-field-tools/65513>\
**Category:** Bug Reports\
**Created:** [March 17, 2025, 2:18pm UTC](https://forum.cursor.com/t/mcp-unrecognized-field-tools/65513 "2025-03-17T14:18:08Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![andersonvieira](https://avatars.discourse-cdn.com/v4/letter/a/d9b06d/32.png) [@andersonvieira](https://forum.cursor.com/u/andersonvieira)\
**Post date:** [March 17, 2025, 2:18pm UTC](https://forum.cursor.com/t/mcp-unrecognized-field-tools/65513/1 "2025-03-17T14:18:09Z")

</div>

used cursor add mcp，

There is indeed a ‘tools’ field under ‘capabilities’.  
However, according to the MCP specification on Capabilities negociation , the client should not have a ‘tools’ field as ‘capabilities’, since it is up to the server to set them.

Steps to Reproduce  
bom version:1.0.0-M6

Run the example Spring AI MCP WebFlux server here: [spring-ai-examples/model-context-protocol/weather/starter-webflux-server at main · spring-projects/spring-ai-examples · GitHub](https://github.com/spring-projects/spring-ai-examples/tree/main/model-context-protocol/weather/starter-webflux-server)  
Launch it  
Add the server url under mcpServers (type: sse)  
Launch the Cursor MCP Server  
Log :  
event:endpoint  
data:/mcp/message

event:message  
data:{“jsonrpc”:“2.0”,“id”:0,“error”:{“code”:-32603,“message”:“Unrecognized field “tools” (class io.modelcontextprotocol.spec.McpSchema$ClientCapabilities), not marked as ignorable (3 known properties: “experimental”, “roots”, “sampling”])\n at [Source: UNKNOWN; byte offset: #UNKNOWN] (through reference chain: io.modelcontextprotocol.spec.McpSchema$InitializeRequest[“capabilities”]-\>io.modelcontextprotocol.spec.McpSchema$ClientCapabilities[“tools”])”}}

 ![image](https://us1.discourse-cdn.com/cursor1/original/3X/f/c/fcda901d0c7ece4ef6d166d5a5a285e4aed5ec88.png)  
 ![image](https://us1.discourse-cdn.com/cursor1/original/3X/7/1/7172089c744e74ba7bb329e6a4567965a7f90daa.png)

---

<div class="post-metadata">

**Author:** ![condor](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/condor/32/73148_2.png) [@condor](https://forum.cursor.com/u/condor)\
**Post date:** [March 17, 2025, 2:20pm UTC](https://forum.cursor.com/t/mcp-unrecognized-field-tools/65513/2 "2025-03-17T14:20:37Z")

</div>

You can compare it with something as simple as `npx -y @modelcontextprotocol/server-memory` which works

---

<div class="post-metadata">

**Author:** ![andersonvieira](https://avatars.discourse-cdn.com/v4/letter/a/d9b06d/32.png) [@andersonvieira](https://forum.cursor.com/u/andersonvieira)\
**Post date:** [March 17, 2025, 2:27pm UTC](https://forum.cursor.com/t/mcp-unrecognized-field-tools/65513/3 "2025-03-17T14:27:48Z")

</div>

Thanks for bringing this up

However the [McpSchema.ClientCapabilities](https://github.com/modelcontextprotocol/java-sdk/blame/1bee8d47442db483f1664689860a8d6161be803e/mcp/src/main/java/io/modelcontextprotocol/spec/McpSchema.java#L242-L245) class is compliant with the MCP spec and doesn’t include a “tools” field. The issue appears to be that Cursor is sending non-compliant JSON with extra fields not in the specification.

The error:

```auto
data:{"jsonrpc":"2.0","id":0,"error":{"code":-32603,"message":"Unrecognized field "tools" (class io.modelcontextprotocol.spec.McpSchema$ClientCapabilities), not marked as ignorable (3 known properties: "experimental", "roots", "sampling"])\n at [Source: UNKNOWN; byte offset: #UNKNOWN] (through reference chain: io.modelcontextprotocol.spec.McpSchema$InitializeRequest["capabilities"]->io.modelcontextprotocol.spec.McpSchema$ClientCapabilities["tools"])"}}

```

occurs because Cursor is sending a `tools` field in the capabilities object that is not compliant with the spec and the receiving system doesn’t recognize.

The core issue is with Cursor’s client implementation, not our client-side code.

---

<div class="post-metadata">

**Author:** ![condor](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/condor/32/73148_2.png) [@condor](https://forum.cursor.com/u/condor)\
**Post date:** [March 17, 2025, 2:29pm UTC](https://forum.cursor.com/t/mcp-unrecognized-field-tools/65513/4 "2025-03-17T14:29:30Z")

</div>

Is that error from your server or from Cursors client?

I would strongly guess that tools are the most supported capabilities, not much else for now. I read that Cursor is working on resources and perhaps more.

---

<div class="post-metadata">

**Author:** ![Ethan](https://avatars.discourse-cdn.com/v4/letter/e/8dc957/32.png) [@Ethan](https://forum.cursor.com/u/Ethan)\
**Post date:** [April 8, 2025, 1:41pm UTC](https://forum.cursor.com/t/mcp-unrecognized-field-tools/65513/5 "2025-04-08T13:41:27Z")

</div>

hello，Have you solved this problem? I have the same issue using spring to build the mcp service.However, I can call it normally on MCP Inspector.

---

<div class="post-metadata">

**Author:** ![system](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/system/32/99069_2.png) [@system](https://forum.cursor.com/u/system)\
**Post date:** [May 8, 2025, 1:41pm UTC](https://forum.cursor.com/t/mcp-unrecognized-field-tools/65513/6 "2025-05-08T13:41:53Z")

</div>

Closed on May 8, 2025, 1:41pm UTC

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
