spring-projects / spring-projects/spring-ai

Only process annotated function parameters

Open
#4,482 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

status: waiting-for-triage
Dominant language
Java
Stars
9.5k
Forks
2.9k
Avg merge
1d 7h
Merged PRs (30d)
6

Description

Currently a mcp tool call will attempt to deserialize all function parameters, regardless of if they are annotated with @ToolParam or @McpToolParam. This makes it impossible to use other Spring annotations such as @AuthenticationPrincipal.

Just like @RestController and @GetMapping, etc. it should only process function parameters that are annotated appropriately.

Environment:
spring-ai-starter-mcp-server-webmvc:1.1.0-M2
running a stateless mcp server.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing parameter deserialization in the spring-ai-starter-mcp-server-webmvc 1.1.0-M2 MCP server path, focusing on parameters annotated with @ToolParam or @McpToolParam and the interaction with @AuthenticationPrincipal. Done means unannotated parameters are left for other Spring argument handling while appropriately annotated parameters are still deserialized.

Written by the indexing model from the issue text.

Assessment

Tech stack
java, spring
Domain
api, backend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.