Skip to content

feat!: Move MCP server features to default stability level #280

Closed
jmesnil wants to merge 2 commits into
wildfly-extras:mainfrom
jmesnil:mcp-default-stability
Closed

feat!: Move MCP server features to default stability level #280
jmesnil wants to merge 2 commits into
wildfly-extras:mainfrom
jmesnil:mcp-default-stability

Conversation

@jmesnil
Copy link
Copy Markdown
Member

@jmesnil jmesnil commented May 21, 2026

Promote the MCP subsystem, mcp-server layer, and required packages
from experimental to default stability level. The XML namespace
changes from urn:jboss:domain:mcp:experimental:1.0 to
urn:jboss:domain:mcp:1.0. The testsuite/mcp provisions and runs
WildFly at default stability.

Fixes #277

jmesnil and others added 2 commits May 21, 2026 13:12
Promote the MCP subsystem, mcp-server layer, and required packages
from experimental to default stability level. The XML namespace
changes from urn:jboss:domain:mcp:experimental:1.0 to
urn:jboss:domain:mcp:1.0. The testsuite/mcp provisions and runs
WildFly at default stability.

Fixes wildfly-extras#277

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…attributes

Make sse-path, messages-path, and streamable-path optional with default
values so they no longer need to be specified in the layer-spec.
Rename timeout attribute to idle-timeout for clarity.
Add validators and measurement unit.
Improve descriptions in XSD and properties.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@jmesnil
Copy link
Copy Markdown
Member Author

jmesnil commented May 21, 2026

@pferraro Could you please review (in particular the first commit)? That's the first time, I'm promoting stability levels so I'm not sure if there is anything that I could have forgotten to do. thanks!

@jmesnil jmesnil requested review from ehsavoie and pferraro May 21, 2026 11:22
<property name="startupTimeoutInSeconds">120</property>
<property name="allowConnectingToRunningServer">false</property>
<property name="jbossArguments">--stability=experimental</property>
<property name="jbossArguments">--stability=default</property>
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just drop this property. The testsuite should run via the default stability of the server (i.e. community).

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

mmh, but I want to ensure that the features work at the default stability level and not the default stability level (which is community for WildFly).

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The subsystem unit tests already validate the registration of the model when using default stability.
Integration tests for all features targeting Stability.DEFAULT are tested using the default stability for the WildFly server.
If they did not, the default behaviour for the majority of the server would be untested.
Why would this feature be any different?

Comment thread testsuite/mcp/pom.xml

MCPSubsystemSchema(int major, int minor) {
this.namespace = SubsystemSchema.createLegacySubsystemURN(MCPSubsystemRegistrar.NAME, Stability.EXPERIMENTAL, new IntVersion(major, minor));
this.namespace = SubsystemSchema.createLegacySubsystemURN(MCPSubsystemRegistrar.NAME, Stability.DEFAULT, new IntVersion(major, minor));
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This will break configurations migrated from previous versions.
To avoid that, we would normally keep the existing 1.0:experimental schema and add a new 1.0 schema.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

that's ok, we never published or released the 1.0:experimental schema (upcoming release will be the first with stability levels for the feature-pack's subsystems).

I keep that in mind for future releases though.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, ok. If 1.0:experimental was never released, then you can ignore most of the other comments.

Comment thread wildfly-mcp/subsystem/src/main/resources/schema/wildfly-mcp_1_0.xsd
Comment on lines 28 to 31
@Override
protected AdditionalInitialization createAdditionalInitialization() {
return AdditionalInitialization.withCapabilities(Stability.EXPERIMENTAL);
return AdditionalInitialization.withCapabilities(Stability.DEFAULT);
}
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Drop this method override. The default implementation uses the stability of the test schema.

Copy link
Copy Markdown

@pferraro pferraro left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Stability.EXPERIMENTAL -> Stability.DEFAULT changes look good.

@jmesnil
Copy link
Copy Markdown
Member Author

jmesnil commented Jun 1, 2026

I'm closing this PR for the time being. I don't think the code is in the right shape to reach the default stability level.
There is too much changes planned in mcp-java to provide a stable API for users.
Let's revisit this once the mcp-java lib reach a stable state

@jmesnil jmesnil closed this Jun 1, 2026
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.

Move the mcp-server layer and the mcp subsystem to the default stability level

3 participants