arx-mcp-server
ARX MCP Server - Execute 100+ security operations with policy enforcement, audit logging, and human approvals
Ask AI about arx-mcp-server
Powered by Claude Β· Grounded in docs
I know everything about arx-mcp-server. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
arx-mcp-server
ARX MCP Server - Execute 100+ security operations with policy enforcement, audit logging, and human approvals
Overview
The Arx MCP Server is a Model Context Protocol (MCP) implementation that provides comprehensive security operations management. It integrates with the ARXsec.io API to execute security scans, manage compliance, handle secrets, and moreβall with built-in policy enforcement, detailed audit logging, and human approval workflows.
Features
- Security Scanning: SAST, DAST, SCA, Container, IaC, SBOM, and AppSec scanning
- Compliance Management: Support for SOC2, ISO27001, HIPAA, PCI-DSS, and GDPR frameworks
- Secrets Management: Encrypted secret storage with rotation and revocation
- Policy Enforcement: Define and enforce security policies across operations
- Audit Logging: Comprehensive audit trails for compliance and investigation
- Human Approvals: Approval workflows for sensitive operations
- Connector Management: Integration with 20+ security tools and platforms
- Remediation: Execute automated remediation actions for security findings
Tools Provided
1. run_security_scan
Execute security scans with policy enforcement
Parameters:
scan_type(enum): sast, dast, sca, container, iac, sbom, appsectarget(string): Target to scan (repository, URL, image, etc.)policy_id(string, optional): Policy ID to enforcerequire_approval(boolean, default: false): Require human approval
2. execute_remediation
Execute remediation actions for security findings
Parameters:
finding_id(string): ID of the security findingaction(string): Remediation action to executerequire_approval(boolean, default: true): Require human approval
3. check_compliance
Check compliance status against regulations
Parameters:
framework(enum): SOC2, ISO27001, HIPAA, PCI-DSS, GDPRscope(string, optional): Scope of compliance check
4. manage_secrets
Manage secrets with encryption, rotation, and audit
Parameters:
operation(enum): create, retrieve, rotate, revokesecret_name(string): Name of the secretsecret_value(string, optional): Secret value (for create operation)
5. request_approval
Request human approval for operations
Parameters:
operation(string): Operation requiring approvalreason(string, optional): Reason for the operationpriority(enum): low, medium, high, critical
6. get_audit_log
Retrieve audit logs for compliance and investigation
Parameters:
filters(object, optional): Filters for audit loglimit(integer, default: 100): Maximum records to return
7. list_connectors
List available security connectors and integrations
Parameters:
connector_type(string, optional): Filter by connector type
8. manage_policies
Create, update, or retrieve security policies
Parameters:
operation(enum): create, retrieve, update, delete, listpolicy_id(string, optional): Policy IDpolicy_definition(object, optional): Policy rules and configuration
Installation
Prerequisites
- Python 3.9+
- ARXsec.io API (running or accessible)
From PyPI (Recommended)
pip install arx-mcp-server
From Source
- Clone the repository:
git clone https://github.com/GetHammerpath/arx-mcp-server.git
cd arx-mcp-server
- Create virtual environment:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
- Install in development mode:
pip install -e .
- (Optional) Install development dependencies:
pip install -e ".[dev]"
Configuration
Create .env file with your settings:
cp .env.example .env
# Edit .env with your settings
Example .env:
ARXSEC_API_URL=https://api.arxsec.io
ARXSEC_API_KEY=your-api-key-here
LOG_LEVEL=INFO
Usage
Standalone Mode
python main.py
Docker
docker build -t arx-mcp-server .
docker run -e ARXSEC_API_URL=http://arxsec-api:8000 arx-mcp-server
Docker Compose
docker-compose up
Configuration
Environment Variables
ARXSEC_API_URL: Base URL for ARXsec.io API (default: http://localhost:8000)ARXSEC_API_KEY: API key for authentication (optional)LOG_LEVEL: Logging level (default: INFO)
Testing
Run tests with pytest:
pip install pytest pytest-asyncio
pytest
With coverage:
pip install pytest-cov
pytest --cov=. tests/
Architecture
The server consists of:
- ArxMCPServer: Main server class implementing MCP protocol
- Tool Registry: Tool definitions and handlers
- Audit Logger: Tracks all operations for compliance
- Approval Manager: Manages human approval workflows
- API Client: Communicates with ARXsec.io API
Data Flow
Claude/Client
β
MCP Server
ββ Tool List
ββ Tool Execution
ββ Error Handling
β
Policy Enforcement & Approval Logic
β
ARXsec.io API
ββ Security Operations
ββ Compliance Management
ββ Secrets Management
ββ Audit Logging
β
Database & Backend Services
API Integration
The server communicates with the ARXsec.io API at /v1/* endpoints:
POST /v1/compliance/scan- Execute security scanPOST /v1/audit/remediate- Execute remediationGET /v1/compliance/status- Check compliancePOST/GET/DELETE /v1/secrets/*- Manage secretsGET /v1/audit/logs- Retrieve audit logsGET /v1/connectors- List connectorsGET/POST/PUT/DELETE /v1/policies/*- Manage policies
Security Considerations
- API Key: Store API keys securely in environment variables
- HTTPS: Always use HTTPS in production
- Approval Workflows: Enable approval for sensitive operations
- Audit Logging: All operations are logged for compliance
- Policy Enforcement: Define strict policies for security operations
- Secret Rotation: Rotate secrets regularly
Development
Code Structure
arx-mcp-server/
βββ main.py # Main server implementation
βββ requirements.txt # Python dependencies
βββ setup.py # Package configuration
βββ Dockerfile # Container configuration
βββ docker-compose.yml # Multi-container setup
βββ pytest.ini # Test configuration
βββ tests/ # Test suite
β βββ test_server.py
βββ README.md
Adding New Tools
To add a new tool:
- Add tool definition to
_setup_tools()inArxMCPServer - Implement handler method (e.g.,
async def _new_tool(self, arguments)) - Register handler in
call_tool()function - Add tests in
tests/test_server.py
Logging
The server uses structured logging with structlog:
log.info("event_name", key="value")
Logs include:
- Timestamp (ISO 8601)
- Event type
- Request/Response details
- Error information
- Audit trail
Error Handling
All tool execution errors are caught and returned as ToolResult with isError=True. Detailed error messages are logged for debugging.
Approval Workflow
Sensitive operations can require human approval:
- Operation is initiated with
require_approval=True - Approval request is created with unique ID
- Operation is queued pending approval
- Human reviews and approves/rejects
- Operation executes (if approved) or fails
Support
For issues or questions:
- GitHub Issues: https://github.com/GetHammerpath/arx-mcp-server/issues
- Documentation: https://docs.arxsec.io
- Email: support@hammerpath.io
License
MIT License - See LICENSE file for details
Contributing
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests
- Submit a pull request
Acknowledgments
- Built with Model Context Protocol
- Integrates with ARXsec.io
- Security best practices from OWASP and NIST
