c3e657e2a1d643cdd42cd6e12928ebf57ea299a2
Modern MCP clients (Claude Code, etc.) probe for Streamable HTTP transport by
POSTing an InitializeRequest to the server URL first. Per MCP spec 2025-11-25,
they fall back to legacy HTTP+SSE only on 400/404/405.
Previously, POST /sse fell through the SPA resource resolver (which had 'sse'
missing from EXCLUDED_PREFIXES) and returned 500, causing clients to abort
instead of retrying with the GET-based SSE handshake.
Fix:
- Add 'sse' to EXCLUDED_PREFIXES so the SPA resolver ignores that path
- Add explicit @PostMapping("/sse") returning 405 Method Not Allowed with
Allow: GET header — the correct signal for Streamable HTTP probe fallback
trueref
Self-hosted Context7 clone in Java 21 + Spring Boot 3.5: indexes git repositories per tag, exposes a Streamable-HTTP MCP server, REST + Swagger, and a SvelteKit dashboard for ingestion observability and querying.
See:
- ARCHITECTURE.md — design, hexagonal layout, pipelines, MCP/REST surfaces.
- CODE_STYLE.md — conventions.
- FINDINGS.md — research notes backing every choice.
Quickstart
./mvnw -DskipTests package
java -jar trueref-bootstrap/target/trueref.jar
Browse:
- UI: http://localhost:8080/
- Swagger: http://localhost:8080/swagger-ui.html
- MCP endpoint: http://localhost:8080/mcp
- Actuator: http://localhost:8080/actuator
Description
Languages
Java
76.3%
Svelte
11.4%
Python
5.9%
TypeScript
3.4%
Shell
1.6%
Other
1.2%