quarkus-mcp-server-sse — правило для GitHub Copilot: настройка
Правило задаёт структуру и практики разработки MCP-серверов на Quarkus. Оно пригодится в Java-проекте, где подключено расширение MCP Server.
.github/instructions/quarkus-mcp-server-sse.instructions.mdЧто делает quarkus-mcp-server-sse
Правило применяется к Java-файлам и конфигурации Quarkus в application.properties, application.yml и application.yaml. Оно описывает разработку на Java 21 с Quarkus и рекомендует транспорт Streamable HTTP через mcp-server-http; HTTP/SSE поддерживается для существующих проектов. Для нового проекта правило рекомендует mcp-server-http, а не устаревший mcp-server-sse: последний не входит в актуальные Quarkus platform BOM.
Инструкции задают слои mcp, service и repository, внедрение зависимостей через конструктор, модели на Record и требования к методам @Tool в CDI-бинах. Методы должны проверять параметры и возвращать сообщения об ошибках вместо null; для ожидаемых бизнес-ошибок указано исключение ToolCallException. Бизнес-логику в инструменты MCP помещать не следует.
Правило рассчитано только на проекты с расширением Quarkus MCP Server. Если проект уже использует mcp-server-sse, переход на него в новом приложении может привести к откату Quarkus CLI на более старый platform stream.
Какие задачи решает
- разложить MCP-сервер Quarkus на слои инструментов, сервисов и репозиториев
- оформить методы MCP как CDI-инструменты с
@Tool - обрабатывать ошибки вызова инструмента без возврата
null - проверять параметры и предусмотреть граничные случаи
Примеры запросов агенту
- Создай MCP-сервер на Java 21 с Quarkus и транспортом Streamable HTTP, следуя правилу.
- Разнеси логику этого MCP-инструмента по слоям
mcp,serviceиrepository. - Проверь методы
@Tool: добавь валидацию параметров и обработку бизнес-ошибок черезToolCallException.
Как установить quarkus-mcp-server-sse
Вручную: положить файлы
.github/instructions/quarkus-mcp-server-sse.instructions.mdПоле applyTo задаёт, к каким файлам применять
Вручную: положить файлы
.claude/rules/quarkus-mcp-server-sse.mdПоле paths во frontmatter ограничивает файлы: applyTo из источника → paths
AGENTS.md
Codex читает AGENTS.md: вставьте текст правила туда
Вручную: положить файлы
.cursor/rules/quarkus-mcp-server-sse.mdcВо frontmatter: description, globs, alwaysApply. applyTo из источника → globs, иначе правило само не подключится
Вручную: положить файлы
.devin/rules/quarkus-mcp-server-sse.mdВручную: положить файлы
.clinerules/quarkus-mcp-server-sse.mdПо шагам, с командами для каждой платформы: AGENTS.md и CLAUDE.md: что это, кто читает и какой выбрать
Вопросы о quarkus-mcp-server-sse
Как установить quarkus-mcp-server-sse в GitHub Copilot?
Добавьте файл .github/instructions/quarkus-mcp-server-sse.instructions.md в репозиторий.
Что делает quarkus-mcp-server-sse?
Задаёт правила разработки MCP-сервера на Quarkus: структуру слоёв, требования к инструментам и обработку ошибок.
Какой транспорт выбрать для нового MCP-сервера Quarkus?
Правило рекомендует Streamable HTTP через mcp-server-http. HTTP/SSE оставлен для существующих проектов; mcp-server-sse не входит в актуальные Quarkus platform BOM.
Исходный текст
quarkus-mcp-server-sse.instructions.md · MIT
--- applyTo: '**/*.java, **/application*.properties, **/application*.yml, **/application*.yaml' description: 'Quarkus MCP Server development standards and instructions, with Streamable HTTP (preferred) and legacy HTTP SSE transports' --- # Quarkus MCP Server Apply these instructions only when the project uses a Quarkus MCP Server extension (`mcp-server-http`, or the legacy `mcp-server-sse`). Build MCP servers with Java 21, Quarkus, and Streamable HTTP transport (legacy HTTP SSE is also supported). ## Stack - Java 21 with Quarkus Framework - MCP Server Extension: `mcp-server-http` (`io.quarkiverse.mcp:quarkus-mcp-server-http`), which serves both transports: legacy HTTP/SSE at `http://localhost:8080/mcp/sse` and Streamable HTTP (preferred; SSE is deprecated in the MCP spec) at `http://localhost:8080/mcp` - `mcp-server-sse` is not managed by recent Quarkus platform BOMs (verified: absent from 3.40.1); the Quarkus CLI silently falls back to an older platform stream when asked for it. Use it only to keep an existing project that already depends on it. - CDI for dependency injection ## Quick Start ```bash quarkus create app --no-code -x rest-client-jackson,qute,mcp-server-http your-domain-mcp-server ``` ## Structure - Use standard Java naming conventions (PascalCase classes, camelCase methods) - Organize in packages: `model`, `repository`, `service`, `mcp` - Use Record types for immutable data models - State management for immutable data must be managed by repository layer - Add Javadoc for public methods ## MCP Tools - Must be public methods in `@ApplicationScoped` CDI beans - Use `@Tool(name="tool_name", description="clear description")` - Never return `null` - return error messages instead - Always validate parameters and handle errors gracefully ## Architecture - Separate concerns: MCP tools → Service layer → Repository - Use constructor injection (`@Inject` is optional on a single constructor) - Make data operations thread-safe - Use `Optional<T>` to avoid null pointer exceptions ## Common Issues - Don't put business logic in MCP tools (use service layer) - For expected business errors throw `io.quarkiverse.mcp.server.ToolCallException` (its message becomes a failed tool result); don't let other unhandled exceptions escape, as they are reported as generic internal errors - Don't forget to validate input parameters - Test with edge cases (null, empty inputs)
© github · MIT · github/awesome-copilot