Release v0.1.2
This release (version 0.1.2) marks a significant refactor of the mcp-server-wazuh application, migrating to the rmcp framework for handling Model Context Protocol (MCP) communication. This change simplifies the server's architecture, focusing on stdio transport and providing a more robust and standardized way of defining and exposing tools.
Here's a summary of the key changes:
Highlights / Major Changes:
- Migration to
rmcpFramework: The server now leverages thermcpcrate for all MCP server logic, including transport (stdio), tool definition, and request handling. This replaces the previous custom HTTP and stdio service implementations. - Stdio Focus: The primary mode of operation is now JSON-RPC 2.0 over stdio, aligning with common MCP client patterns. The previous HTTP service has been removed.
- Revamped Testing Suite: The testing strategy has been completely overhauled to work with the
rmcpframework. New integration tests (rmcp_integration_test.rs), stdio protocol tests (mcp_stdio_test.rs), and a mock Wazuh server (mock_wazuh_server.rs) have been introduced. - Simplified Tooling: The server now exposes a primary tool
get_wazuh_alert_summaryfor fetching Wazuh alerts, with clear input schema defined usingschemars.
New Features & Enhancements:
- Standardized MCP Implementation: Adherence to MCP standards is now managed by the
rmcplibrary. - Clear Tool Definition: Tools are defined using
rmcp's#[tool]macros, providing automatic schema generation for client discovery. - Improved Testability: The new testing structure allows for more focused and reliable tests of the MCP protocol and integration with a mock Wazuh API.
- Wazuh Client Flexibility: The internal Wazuh client can now be configured to use HTTP or HTTPS, facilitating testing against mock servers.
Fixes:
- Docker GLIBC Compatibility: The Dockerfile's final stage base image has been updated from
debian:bullseye-slimtodebian:bookworm-slimto resolve GLIBC version incompatibilities when running the compiled binary.
Breaking Changes:
- HTTP Service Removal: The previous HTTP-based MCP service and
/healthendpoint have been removed. The server now operates exclusively over stdio. - Configuration Changes: While core Wazuh connection variables remain,
MCP_SERVER_PORTis no longer applicable. - Tooling Changes: The way tools are defined and called has changed due to the
rmcpintegration. The primary tool is nowget_wazuh_alert_summary. The previousprovideContextand other custom methods are superseded byrmcp'stools/listandtools/callmechanisms. - CLI Client Removed: The
mcp_client_clibinary, previously part of the dev-dependencies and build, has been removed. Interaction for testing is now primarily through direct stdio or programmatic clients.
Dependency Updates:
- Added:
rmcp(core framework)schemars(for JSON schema generation for tools)tokio-test,tempfile(for dev dependencies)
- Removed:
axum(HTTP framework)jsonwebtokentower-http
- Updated:
tokioto v1.xtracing-subscriberfeatures updated.chronoupdated to0.4.41.
- Project metadata in
Cargo.tomlupdated withlicense,repository, andreadmefields.
Internal Changes / Refactoring:
- The entire
src/main.rshas been rewritten to implementrmcp::ServerHandlerandrmcp::ServiceExt. - Removed internal modules related to the old HTTP service, stdio handling, and MCP protocol implementation (
http_service.rs,stdio_service.rs,mcp/*). - Logging utilities (
logging_utils.rs) have been removed; standardtracingis used. src/lib.rssimplified to re-export necessary items from thewazuhmodule.src/wazuh/error.rsno longer includes Axum-specific error handling.- Docker compose files (
docker-compose-*.yml) have been moved into adocker/subdirectory. - The
run.shscript for local execution has been removed.
Documentation:
- README.md: Significantly updated to reflect the new
rmcp-based architecture, stdio-only operation, installation instructions (including pre-built binaries and build from source), and revised examples for client configuration (e.g., Claude Desktop) and stdio interaction. - tests/README.md: Rewritten to describe the new testing strategy, test files, and environment setup.
This release focuses on creating a more maintainable and standardized MCP server by adopting the rmcp framework, at the cost of removing the previous HTTP interface.