Skip to content

CAMEL-24507: camel-mcp-server-starter - correct the authentication claim in the docs - #1914

Merged
Croway merged 1 commit into
apache:mainfrom
oscerd:fix/CAMEL-24507
Aug 28, 2026
Merged

CAMEL-24507: camel-mcp-server-starter - correct the authentication claim in the docs#1914
Croway merged 1 commit into
apache:mainfrom
oscerd:fix/CAMEL-24507

Conversation

@oscerd

@oscerd oscerd commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

McpServerConfigurationProperties, SpringAiMcpServerEngine and intro.adoc all said the same thing:

Serving concerns (endpoint path, protocol, server identity, authentication) are owned by the Spring AI
MCP server and configured via spring.ai.mcp.server.*.

spring.ai.mcp.server.* configures endpoint path, protocol and server identity, but it has no authentication
property
. A reader following that sentence looks for a knob in that namespace, does not find one, and may
conclude the endpoint is covered when it is not.

Change

Authentication is dropped from the list in all three places, and intro.adoc gains a Securing the MCP
endpoint
section: an explicit statement that spring.ai.mcp.server.* provides no authentication, a Spring
Security SecurityFilterChain example matching the endpoint path, and a pointer to the network-policy
alternative. It also references the trust boundary documented for the component under CAMEL-24314 — external
MCP clients are untrusted senders.

The default posture is fine, and unchanged

Worth stating plainly, because the finding this came from could be read as "the tool surface is exposed out of
the box": it is not. tags defaults to null and, as the property javadoc says, the untagged default pool is
never exposed — so no tool is served until an operator explicitly sets camel.mcp-server.tags. This PR
changes no defaults; the problem was the documentation pointing at the wrong place for the hardening step.

One log line

When tags is actually set — i.e. when tools really are exposed — startup now logs one INFO line naming the
tags and noting the endpoint is not authenticated by the Spring AI server.

Deliberately INFO, not WARN: exposing tools is the whole point of configuring tags, so a warning would fire
on every legitimate deployment and quickly be tuned out. The issue floated failing or warning when no
SecurityFilterChain covers the endpoint; I did not do that, because reliably detecting which chains match the
MCP path is fragile and would produce false alarms.

Scope

Docs and one log line. No behaviour change, no defaults touched. The regenerated
docs/spring-boot/.../starters/mcp-server.adoc carries the new section. Root reactor build green.

…aim in the docs

The starter's javadoc and intro documentation listed authentication among the
serving concerns owned by the Spring AI MCP server and configured via
spring.ai.mcp.server.*. That namespace has no authentication property, so a
reader following the sentence would look for a knob that does not exist and may
conclude the endpoint is covered when it is not.

The claim is removed from McpServerConfigurationProperties, SpringAiMcpServerEngine
and intro.adoc, and intro.adoc gains a "Securing the MCP endpoint" section with a
Spring Security filter chain example.

The default posture is unchanged and remains sound: tags default to null and the
untagged pool is never served, so nothing is exposed until an operator opts in.
When they do, one INFO line at startup now says so and points at securing the
endpoint - not WARN, which would fire on every legitimate deployment.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Andrea Cosentino <ancosen@gmail.com>
@oscerd
oscerd requested review from Croway and davsclaus August 28, 2026 07:58
@Croway
Croway merged commit 7610a71 into apache:main Aug 28, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants