Commit Graph

35 Commits

Author SHA1 Message Date
Gianluca Brigandi
5f452bac9d feat: Refactor tools and upgrade wazuh-client
This commit introduces a major refactoring of the tool implementation by splitting the tools into separate modules based on their domain (agents, alerts, rules, stats, vulnerabilities). This improves modularity and
maintainability.

Key changes:
- Upgraded wazuh-client to version 0.1.7 to leverage the new builder pattern for client instantiation.
- Refactored the main WazuhToolsServer to delegate tool calls to the new domain-specific tool modules.
- Created a tools module with submodules for each domain, each containing the relevant tool implementations and parameter structs.
- Updated the default limit for most tools from 100 to 300, while the vulnerability summary limit is set to 10,000 to ensure comprehensive scans.
- Removed a problematic manual test from the test script that was causing it to hang.
2025-07-10 14:56:37 -07:00
Gianluca Brigandi
4e39ca6bba Improved design by factoring out tool-speciic logic into their own
module leaving the main MCP server entrypoint as just a dispatcher of
the former.
2025-06-27 09:32:31 -07:00
Gianluca Brigandi
6e7463382e Fixed get_wazuh_log_collector_stats mcp tool 2025-06-25 17:04:55 -07:00
Gianluca Brigandi
e160888906 several fixes and improvements around playing nice with MCP tool selection and parametrization. 2025-06-25 15:52:07 -07:00
Gianluca Brigandi
b9327e0c87 Added glama.json file 2025-06-24 14:11:28 -07:00
Gianluca Brigandi
2df4408f1a version bump to 0.2.3 2025-06-24 12:18:35 -07:00
Gianluca Brigandi
77914b5097 Upgraded to latest wazuh client that fixes fetching critical vulnerabilities 2025-06-24 12:03:58 -07:00
Gianluca Brigandi
943fabddd3 release bump 2025-06-23 14:33:40 -07:00
Gianluca Brigandi
5254df7aa1 Bumped Wazuh API version which fixes vulnerability fetching 2025-06-23 12:37:33 -07:00
Gianluca Brigandi
cc6f0871ca fix 2025-06-18 18:22:09 -07:00
Gianluca Brigandi
e95b3fb199 addressing opessl issue 2025-06-18 17:49:13 -07:00
Gianluca Brigandi
168bb7b8f7 Using used wazuh-client-rs with rusttls support 2025-06-18 17:34:46 -07:00
Gianluca Brigandi
d23eef6269 Bumped to new 0.2.0 version 2025-06-18 17:02:05 -07:00
Gianluca Brigandi
47b33414cb feat: comprehensive Wazuh integration with Docker CI/CD and expanded security operations
Major enhancements:
- Added Docker image building and publishing to GitHub Container Registry with multi-platform support (linux/amd64, linux/arm64)
- Expanded from basic alert retrieval to comprehensive security operations with 14 MCP tools covering:
  * Vulnerability management (agent vulnerability summaries, critical vulnerabilities)
  * Agent monitoring (running agents, processes, network ports)
  * System statistics (weekly stats, remoted stats, log collector stats)
  * Log analysis (manager logs, error logs with search capabilities)
  * Cluster management (health checks, node listing)
- Updated environment configuration to support both Wazuh Manager API and Wazuh Indexer with proper SSL handling
- Enhanced documentation with detailed use cases, Docker deployment options, and comprehensive tool descriptions
- Upgraded wazuh-client dependency to v0.1.1 for expanded API capabilities
- Added agent ID formatting and validation for consistent three-digit zero-padded identifiers

This transforms the server from a simple alert fetcher into a full-featured security operations platform for AI-assisted Wazuh management.
2025-06-18 16:50:26 -07:00
Gianluca Brigandi
2fd14a0063 fixed minor issues with passing configuration as environment variables. 2025-06-18 08:16:23 -07:00
Gianluca Brigandi
d86a4e1136 feat: migrate to wazuh-client crate and add rules tool
- Replace custom WazuhIndexerClient with wazuh-client crate
- Remove ~150 lines of duplicate code from src/wazuh/ directory
- Add get_wazuh_rules_summary tool with filtering by level/group/filename
- Implement factory pattern for consistent client creation
- Add support for separate WAZUH_API_PORT and WAZUH_INDEXER_PORT
- Maintain backward compatibility with existing environment variables
- Enable access to comprehensive Wazuh API clients (agents, rules, config, etc.)
- Add compliance framework mappings (GDPR, HIPAA, PCI DSS, NIST 800-53)
- All tests passing (19/19) with clean compilation
2025-06-17 23:01:30 -07:00
Gianluca Brigandi
bfffdbfb52 Replaced bespoke indexer client with full fledges indexer and manager API crate. 2025-06-17 22:46:55 -07:00
Gianluca Brigandi
f9efb70f19 * Ported code to RMCP
* Implemented unit and e2e testing
* Other fixes and enhancements
2025-05-22 20:02:41 -07:00
Gianluca Brigandi
13f93cc844 Update README with correct MCP flow for rmcp implementation
- Aligned initialize response with actual rmcp server output
- Updated tools/list response to match real JSON schema format
- Corrected tool name from 'wazuhAlerts' to 'get_wazuh_alert_summary'
- Added proper MCP content format with text type responses
- Included error response examples for connection failures
- Updated tool call examples with correct parameter structure
- Removed outdated outputSchema references (not used in rmcp)
- Added proper JSON schema format with draft-07 specification
2025-05-22 16:39:13 -07:00
Gianluca Brigandi
87ac8a6695 Port mcp-server-wazuh to rmcp framework
- Replaced custom MCP implementation with rmcp framework
- Simplified architecture to use stdio transport only
- Implemented WazuhToolsServer with #[tool(tool_box)] attribute
- Added get_wazuh_alert_summary tool with proper parameter schema
- Removed HTTP transport and axum dependencies
- Updated README with new installation and usage instructions
- Maintained compatibility with existing Wazuh Indexer client
- Simplified error handling by removing axum-specific code
2025-05-22 16:24:11 -07:00
Gianluca Brigandi
5574dcc43a remove redundant Claude configuration 2025-05-15 18:57:48 -07:00
Gianluca Brigandi
8b491fe84a removed somehow redundant features section 2025-05-15 18:56:08 -07:00
Gianluca Brigandi
53c5f7417e minor README.md changes 2025-05-15 18:54:51 -07:00
Gianluca Brigandi
ccb3fce350 Enhanced documentation and pointing to releases page for installation 2025-05-15 18:52:36 -07:00
Gianluca Brigandi
2e401259ec added permission 2025-05-15 18:36:31 -07:00
Gianluca Brigandi
66410e8dde automated builds 2025-05-15 18:29:10 -07:00
Gianluca Brigandi
6f65c7e2fe added screenshot 2025-05-15 16:45:52 -07:00
Gianluca Brigandi
d18c0881fe Improved documentation 2025-05-15 16:21:46 -07:00
Gianluca Brigandi
cd8e1e1c00 Added support for handling initialized and exit notifications 2025-05-12 20:31:34 -07:00
Gianluca Brigandi
13494cf101 Wazuh MCP server successfully tested with Claude 2025-05-12 19:29:09 -07:00
gbrigandi
65e2c55ccb
Update README.md 2025-05-07 11:30:10 -07:00
Gianluca Brigandi
f596d4aa79 fixed additional formatting issues with README.md 2025-05-07 11:27:41 -07:00
Gianluca Brigandi
3a34db3c41 minor fixes to the README 2025-05-07 11:23:39 -07:00
Gianluca Brigandi
a6a29aba3f fixed formatting issue 2025-05-07 11:21:44 -07:00
Gianluca Brigandi
ce2460928a first commit 2025-05-07 11:16:24 -07:00