Changelog

← Changelog

Ashterix

docs: rewrite JsonRpcBundle docs, add SDK docs, move them under docs/api

en/docs/api/mcp-bundle/change_log/README.md new file +4 −0

1 + # Changelog
2 + <include>(latest.md)
3 +
4 + A full description of every release with examples is in the [releases](https://github.com/UFO-Tech/mcp-bundle/tree/main/releases) folder of the bundle repository.

en/docs/api/mcp-bundle/change_log/latest.md new file +1 −0

1 + <include>(1.0.0.md)

en/docs/api/mcp-bundle/change_log/1.0.0.md new file +25 −0

1 + ## Version 1.0 (2026-10-19)
2 +
3 + First release: the RPC methods of an API group as MCP tools over Streamable HTTP.
4 +
5 + ### Key changes
6 +
7 + * [An endpoint per route import](/docs/api/mcp-bundle/config): `api_group` is the core API group, `/mcp/v2` is API version 2; route names contain the group (`mcp_ufo_mcp_endpoint`, …).
8 + * [Tools](/docs/api/mcp-bundle/tools): every method of the group; titles and descriptions from the core translations (including `translations/rpc/<group>.<locale>.yaml`) by `Accept-Language`; self-contained `inputSchema` / `outputSchema`; `#[McpTool]` hints.
9 + * `tools/call` through the core `RpcExecutor`: `structuredContent: {"result": …}` plus the same JSON as text; errors are the core RPC error with `isError: true`; `rpc.post_response` after the response is sent, once per call (also in a batch).
10 + * [HTTP and security](/docs/api/mcp-bundle/http_security): the session-based protocol (sessions in the core cache pool) and stateless 2026-07-28 on one URL; core tokens (401/403); 404 for a disabled group or a missing version; CORS, DNS rebinding protection, `max_body_bytes`.
11 + * [Discovery](/docs/api/mcp-bundle/discovery): `server.json` for the MCP Registry, manifests for Claude Code, Cursor, Gemini CLI, OpenAI.
12 +
13 + ### What to keep in mind
14 +
15 + Only applies to applications that used the bundle from `dev-main` before 1.0.0:
16 +
17 + * The `session_directory` option (bundle-wide and per group) was removed, sessions live in the core cache pool; remove the key, otherwise "Unrecognized option". `groups` may now be empty.
18 + * Route names contain the group (`<group>_ufo_mcp_endpoint`); a manual `name_prefix` in YAML imports is no longer needed.
19 + * Titles and descriptions come only from the core translations: `ToolTextResolverInterface` and `Ufo\McpBundle\I18n\*` were removed.
20 + * Classes moved from `Ufo\McpBundle\Services\*` to `Server\*`, `Server\Transport\*`, `Tool\*`; the group, availability and token checks moved from `McpController` to `EventListener\McpRequestListener`.
21 +
22 + ### Environment changes
23 +
24 + * PHP >= 8.4, Symfony ^7.2 | ^8.0 (through JsonRpcBundle).
25 + * `ufo-tech/json-rpc-bundle` ^10.4.3, `mcp/sdk` ^0.8.1, `symfony/psr-http-message-bridge` ^7.2 | ^8.0, `symfony/yaml` ^7.2 | ^8.0, `nyholm/psr7` ^1.8.