arx-mcp-server
MCP server that integrates with ARXsec.io API to execute security scans, compliance checks, secrets management, and remediation actions with policy enforcement, audit logging, and human approval workflows.
README
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
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.