Skip to content

Commit 6f9d8d2

Browse files
authored
Add support for protocol version 2025 06 18 (#54)
* Add basic support for 2025-06-18 header * Remove json-rpc batch support * Extend _meta and ajson slash in key support * Add title to more entries * Annotations, meta, output schema, structured outpu * Update documentation for 2025-06-18 * Update demos * Update changelog
1 parent 5ef134c commit 6f9d8d2

File tree

54 files changed

+7491
-4811
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

54 files changed

+7491
-4811
lines changed

README.md

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,13 @@
44

55
## Overview
66

7-
ABAP implementation of the [Model Context Protocol](https://modelcontextprotocol.io/introduction) based on version [2025-03-26](https://modelcontextprotocol.io/specification/2025-03-26). \
7+
ABAP implementation of the [Model Context Protocol](https://modelcontextprotocol.io/introduction) based on version [2025-06-18](https://modelcontextprotocol.io/specification/2025-06-18). \
88
**Note** that this is only a server implementation as I currently see no realistic way to support SSE streaming which is mandatory for the client.
99

10+
Supported protocol versions: 2025-03-28, 2025-06-18
11+
12+
Note that old protocol versions might be dropped after a while especially if they increaase maintenance effort.
13+
1014
## Documentation
1115

1216
See [Overview](docs/Overview.md) in docs folder.
@@ -35,12 +39,13 @@ Not implemented:
3539

3640
- Sampling - considered for the future, open an issue if you have a use case that would benefit from it
3741
- Completions - questionable from a performance point of view with ABAP
42+
- Elicitation - without SSE I see no proper way to implement this
3843
- Roots - likely irrelevant for ABAP
3944
- Further notifications not relevant without SSE: Cancellation, Ping, Progress, Logging
4045

4146
## Authorization
4247

43-
Implement the standard [Authorization](https://modelcontextprotocol.io/specification/2025-03-26/basic/authorization) in ABAP via custom code is not feasible, we have to rely on ABAP features. \
48+
Implement the standard [Authorization](https://modelcontextprotocol.io/specification/2025-06-18/basic/authorization) in ABAP via custom code is not feasible, we have to rely on ABAP features. \
4449
An overview of likely options is outlined in [Authentication Documentation](./docs/Authentication.md).
4550

4651
## Autentication
@@ -66,4 +71,4 @@ Feel free to:
6671

6772
## GenAI Notice
6873

69-
Part of the coding was generated using AI, mostly with Sonnet 3.7 and GitHub Copilot. Detailed documentation is largely AI generated - only high-level reviewed.
74+
Part of the coding was generated using AI, mostly with Sonnet 3.7/4 and GitHub Copilot. Detailed documentation is largely AI generated - only high-level reviewed.

changelog.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
2025-06-22 v0.2
2+
-----------------
3+
4+
+ Support for 2025-06-18 protocol version
5+
16
2025-05-26 v0.1
27
-----------------
38

docs/FAQ.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,7 @@ This class is not fully downwards compatible, exclude the sub-package OAuth or d
1313
## Syntax error after pull from branch 702
1414

1515
Somehow abapgit sometimes does not recognize changes, probably due to the unusual coding structure after downport. Make sure to update all code and not just changed if this issue happens. If this does not solve it and you confirmed there is a real error in the code by checking GitHub sources (if possible) feel free to open an issue with details. Due to me not having a system < 7.50 it might be challenging to fix but I will have a look and do my best.
16+
17+
## Accessing _meta data
18+
19+
As per the specification there will be prefixes and therefore slashed in the keys of _meta data. You can use JSON Pointer notation to access those, e.g. "prefix/keyname" would be "prefix~1keyname", basicall replacing slash with ~1. This works for retrieving and setting those values.

docs/Overview.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,7 @@ Interface defining all required MCP server methods. The main methods include:
250250

251251
### Schema Builder
252252

253-
`ZCL_MCP_SCHEMA_BUILDER` creates JSON Schema definitions for tool input validation with a fluent, chainable API:
253+
`ZCL_MCP_SCHEMA_BUILDER` creates JSON Schema definitions for tool input validation and output schemas with a fluent, chainable API:
254254

255255
```abap
256256
DATA(schema) = NEW zcl_mcp_schema_builder( ).

0 commit comments

Comments
 (0)