You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
dbeaver/pro#11120 Add shared MCP function service API - #17
DDMcpFunctionService provides synchronous getFunctions() and callFunction(call) methods with typed descriptors, calls and JSON results. Its shared RPC topic is dbeaver.mcp.functions. The module, packages and classes use MCP naming. Both peers must update together because RPC operation IDs include Java argument type names.
Desktop implementations register the service on their existing Remote DAM RPC endpoint. The contract documents JSON null/number preservation, desktop authorization responsibilities and error/cancellation semantics without adding a separate transport.
Validation: three contract serialization tests pass, plus the consuming MCP reactor and HTTP/WebSocket integration test. Checkstyle with nullability validation passes and IntelliJ workspace was regenerated.
The same API commit is published on dbeaver/pro#11120-mcp-service for the server CI's sibling dependency selection.
labanovichttps
changed the title
dbeaver/pro#11120 Add shared AI function service API
dbeaver/pro#11120 Add shared MCP function service API
Oct 27, 2026
Adds a shared OSGi/Maven API for discovering and invoking desktop MCP functions over the existing Remote DAM RPC transport.
Changes:
Adds the com.dbeaver.datadam.mcp.api module and exports its service, model, and exception packages.
Defines MCP function descriptors, parameters, calls, results, error codes, and service operations.
Adds serialization contract tests and documents RPC registration, authorization, error handling, and JSON behavior.
Open review items include aligning README examples with the exported DTO and numeric handling, and reconciling the checked exception contract with Remote DAM RPC exception behavior.
File
Summary
README.md
Documents the MCP function API and Remote DAM registration guidance.
apis/pom.xml
Registers the new MCP API module in the Maven reactor.
The README contract says results must use JsonNull.INSTANCE and never a Java null, but this record accepts null directly and Gson can also produce a null value when the value member is missing. That invalid result then passes the RPC return-type check and can reach the MCP server as a Java null. Reject null in a compact constructor so malformed peers fail during decoding instead of violating the service contract.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds
com.dbeaver.datadam.mcp.api, a shared OSGi/Maven contract for desktop MCP functions, consumed by https://github.com/dbeaver/datadam/pull/156.DDMcpFunctionServiceprovides synchronousgetFunctions()andcallFunction(call)methods with typed descriptors, calls and JSON results. Its shared RPC topic isdbeaver.mcp.functions. The module, packages and classes use MCP naming. Both peers must update together because RPC operation IDs include Java argument type names.Desktop implementations register the service on their existing Remote DAM RPC endpoint. The contract documents JSON null/number preservation, desktop authorization responsibilities and error/cancellation semantics without adding a separate transport.
Validation: three contract serialization tests pass, plus the consuming MCP reactor and HTTP/WebSocket integration test. Checkstyle with nullability validation passes and IntelliJ workspace was regenerated.
The same API commit is published on
dbeaver/pro#11120-mcp-servicefor the server CI's sibling dependency selection.Related to https://github.com/dbeaver/pro/issues/11120.