This is an automated email from the ASF dual-hosted git repository. robertlazarski pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/axis-axis2-java-core.git
commit b03e96b13e2d3696e4dd7f3e94bdfec382eaf645 Author: Robert Lazarski <[email protected]> AuthorDate: Sat Apr 11 11:17:44 2026 -1000 Expand MCP explanation: what it is, why JSON-only, why not SOAP Rewrites the "What is MCP?" section with a 101-level explanation: - Core idea: AI assistants discover tools via JSON catalog, call them with JSON parameters, get JSON results. No XML anywhere. - Why JSON-only: MCP is JSON-RPC 2.0; AI training data, function calling APIs, and tool-use formats are all JSON-native. XML/SOAP was never considered. - What this means for SOAP: MCP can't call SOAP endpoints. Convert to JSON-RPC first (config change, not code change). Consolidates the earlier SOAP disclaimer into this section to avoid repetition. Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]> --- src/site/xdoc/docs/json-rpc-mcp-guide.xml | 41 ++++++++++++++++++++++--------- 1 file changed, 29 insertions(+), 12 deletions(-) diff --git a/src/site/xdoc/docs/json-rpc-mcp-guide.xml b/src/site/xdoc/docs/json-rpc-mcp-guide.xml index d2bd01529e..7a73c1bdc7 100644 --- a/src/site/xdoc/docs/json-rpc-mcp-guide.xml +++ b/src/site/xdoc/docs/json-rpc-mcp-guide.xml @@ -44,23 +44,40 @@ deployed services, accessible at <code>/openapi-mcp.json</code>, that tells MCP the exact JSON-RPC envelope format, auth requirements, and endpoint URL for every deployed operation — no out-of-band documentation required.</p> -<p><strong>Legacy SOAP services:</strong> MCP is a JSON-RPC 2.0 protocol — it does -not support SOAP. To expose a SOAP service to AI agents via MCP, first convert it -to JSON-RPC by switching message receivers in <code>services.xml</code> and setting -<code>axis2.mode=json</code> (see the -<a href="spring-boot-starter.html#soap_vs_json">Spring Boot Starter Guide</a>). -The service Java class does not change — only the wire format configuration.</p> - <!-- ============================================================ --> <h2>What is MCP?</h2> <p><strong>MCP (Model Context Protocol)</strong> is an open standard published at <code>modelcontextprotocol.io</code> that defines how AI assistants (Claude, ChatGPT, -Cursor, etc.) discover and call external tools. The protocol is JSON-RPC 2.0 over -stdio or HTTP/SSE. An MCP server advertises a catalog of tools — each with a name, -description, and JSON Schema for its parameters — and the AI assistant calls them -by name. MCP is to AI tool use what OpenAPI is to REST API discovery: a -machine-readable contract that eliminates guesswork.</p> +Cursor, etc.) discover and call external tools.</p> + +<p><strong>The core idea:</strong> An MCP server advertises a catalog of tools — each +with a name, a natural-language description, and a JSON Schema describing its +parameters. An AI assistant reads this catalog, decides which tool to call based on +the user's request, fills in the parameters as a JSON object, and sends a +<code>tools/call</code> request. The server executes the tool and returns the result +as JSON. The entire exchange is JSON — requests, responses, parameter schemas, +error messages. There is no XML anywhere in the protocol.</p> + +<p><strong>Why MCP is JSON-only:</strong> MCP is built on +<a href="https://www.jsonrpc.org/specification">JSON-RPC 2.0</a>, the same +lightweight RPC protocol used by language servers (LSP), cryptocurrency nodes +(Ethereum), and many other modern tools. AI assistants produce and consume JSON +natively — their training data is overwhelmingly JSON, their function-calling APIs +use JSON, and their tool-use formats are JSON Schema. XML/SOAP was never considered +for MCP because the entire AI tooling ecosystem is JSON-native.</p> + +<p><strong>What this means for SOAP services:</strong> MCP cannot call SOAP endpoints +directly. A SOAP service returns XML envelopes with namespaces, and MCP clients +cannot parse them. To expose a SOAP service to AI agents, convert it to JSON-RPC +first — this is a configuration change in <code>services.xml</code> (swap message +receivers), not a code change. The service Java class is unchanged. See the +<a href="spring-boot-starter.html#soap_vs_json">Spring Boot Starter Guide</a> +for the <code>axis2.mode=json</code> setting.</p> + +<p>MCP is to AI tool use what OpenAPI is to REST API discovery: a machine-readable +contract that eliminates guesswork. The protocol specification is at +<code>modelcontextprotocol.io</code>.</p> <h2>Axis2: Three Protocols from One Service</h2>
