Anywhere MCP Server
A Model Context Protocol server that integrates with AT&T Cybersecurity's USM Anywhere platform, providing secure access to security monitoring data including alarms, events, and threat intelligence.
README Documentation
LevelBlue USM Anywhere MCP Server
โ ๏ธ DISCLAIMER: This is NOT an official LevelBlue or AlienVault product. See DISCLAIMER.md for full terms.
A production-ready Model Context Protocol (MCP) server that connects AI assistants to LevelBlue's USM Anywhere security platform. Execute advanced security queries, manage investigations, and analyze threats through natural language.
Version: 3.0.0 Author: Javier Ballesteros (javier.ballesteros@gmail.com) License: GNU GPL v3.0 Repository: https://github.com/javierb507/anywhere-mcp-server
๐ Quick Start (3 Minutes)
# 1. Clone and install
git clone https://github.com/javierb507/anywhere-mcp-server.git
cd anywhere-mcp-server
npm install && npm run build
# 2. Configure credentials
cp env.example .env
# Edit .env with your USM Anywhere credentials
# 3. Test connection
node test-connection.js
โ Ready to integrate with your AI assistant! See integration examples below.
What is MCP?
Model Context Protocol (MCP) is an open protocol that allows AI assistants to securely connect to external data sources and tools. This server implements MCP to bridge AI assistants with LevelBlue USM Anywhere, enabling:
- ๐ค Natural language queries โ Advanced SQL/PPL security analysis
- ๐ Automated threat hunting โ AI-powered detection and investigation
- ๐ Investigation management โ Create, update, and track security incidents
- ๐ Threat intelligence โ AlienVault OTX integration
Supported AI Platforms: Claude Desktop, Claude Code, Cline (VS Code), Cursor IDE, Zed Editor, and any MCP-compatible client.
Features
Core Capabilities
- โ OAuth 2.0 Authentication - Secure client credentials flow
- โ 16 MCP Tools - Complete USM Anywhere API coverage
- โ Advanced Query Engine - Execute SQL and PPL queries
- โ Investigation Management - SANS-aligned incident response workflows
- โ Threat Intelligence - AlienVault OTX API integration
- โ Type-Safe - Built with TypeScript and Zod validation
- โ Production Ready - Comprehensive error handling and rate limiting
Pre-Built Security Queries
- ๐ 15+ SQL Queries - Threat hunting, compliance, anomaly detection
- ๐ 12+ PPL Pipelines - Behavioral analytics and log correlation
- ๐ Complete Documentation - Query guides in
QueryLanguage/directory
Available MCP Tools
| Tool | Description |
|---|---|
get_alarms | Retrieve security alarms with filtering |
get_events | Retrieve security events |
get_alarm_details | Get detailed alarm information |
get_event_details | Get detailed event information |
get_investigations | List investigations with advanced filters |
get_investigation_details | Get full investigation details |
create_investigation | Create new security investigation |
update_investigation | Update investigation status/priority |
add_investigation_note | Add notes to investigation |
delete_investigation | Delete investigation |
execute_advanced_query | Execute SQL/PPL queries |
validate_query_syntax | Validate query before execution |
get_query_examples | Get pre-built query examples |
search_pulses | Search OTX threat intelligence |
get_indicator | Get threat indicator info (IP/domain/hash) |
get_pulse | Get detailed pulse information |
Integration Examples
Claude Desktop (macOS/Windows)
Configuration File Locations:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"usm-anywhere": {
"command": "node",
"args": ["C:\\path\\to\\anywhere-mcp-server\\dist\\index.js"],
"env": {
"ALIENVAULT_CLIENT_ID": "your_client_id",
"ALIENVAULT_CLIENT_SECRET": "your_client_secret",
"ALIENVAULT_SUBDOMAIN": "your_subdomain",
"ALIENVAULT_ACCOUNT_NAME": "Default"
}
}
}
}
Restart Claude Desktop โ Look for ๐ icon to confirm MCP server is connected.
Claude Code (CLI)
Add to ~/.config/claude-code/config.json:
{
"mcpServers": {
"usm-anywhere": {
"command": "node",
"args": ["/path/to/anywhere-mcp-server/dist/index.js"],
"env": {
"ALIENVAULT_CLIENT_ID": "your_client_id",
"ALIENVAULT_CLIENT_SECRET": "your_client_secret",
"ALIENVAULT_SUBDOMAIN": "your_subdomain",
"ALIENVAULT_ACCOUNT_NAME": "Default"
}
}
}
}
Cline (VS Code Extension)
Add to VS Code Settings (JSON):
{
"cline.mcpServers": {
"usm-anywhere": {
"command": "node",
"args": ["/path/to/anywhere-mcp-server/dist/index.js"],
"env": {
"ALIENVAULT_CLIENT_ID": "your_client_id",
"ALIENVAULT_CLIENT_SECRET": "your_client_secret",
"ALIENVAULT_SUBDOMAIN": "your_subdomain",
"ALIENVAULT_ACCOUNT_NAME": "Default"
}
}
}
}
Cursor IDE
Create .cursor/mcp.json in your project:
{
"mcpServers": {
"usm-anywhere": {
"command": "node",
"args": ["/path/to/anywhere-mcp-server/dist/index.js"],
"cwd": "/path/to/anywhere-mcp-server",
"env": {
"ALIENVAULT_CLIENT_ID": "your_client_id",
"ALIENVAULT_CLIENT_SECRET": "your_client_secret",
"ALIENVAULT_SUBDOMAIN": "your_subdomain",
"ALIENVAULT_ACCOUNT_NAME": "Default"
}
}
}
}
๐ For more integrations (Zed Editor, ChatGPT, Generic MCP), see INTEGRATION_GUIDE.md
Usage Examples
Once integrated, query your AI assistant using natural language:
Security Analysis
"Show me all critical alarms from the last 24 hours"
"Find failed login attempts from non-US countries"
"Detect potential brute force attacks in the last hour"
"Look for DNS queries longer than 40 characters (tunneling detection)"
Investigation Management
"Create a critical investigation for the SQL injection attempts in alarm abc-123"
"Show me all open investigations assigned to the security team"
"Add a note to investigation xyz-789 about remediation steps taken"
"Update investigation xyz-789 to resolved status"
Advanced Queries
"Execute SQL query to find lateral movement in network traffic"
"Create PPL pipeline to analyze user behavior anomalies"
"Run the port scanning detection query from the security guide"
"Show me off-hours data transfers larger than 10MB"
Threat Intelligence
"Search OTX for threat intelligence about domain malicious.com"
"Get indicator information for IP address 1.2.3.4"
"Show me recent pulses about ransomware"
Configuration
Required Environment Variables
# USM Anywhere API v2.0 (Required)
ALIENVAULT_CLIENT_ID=your_client_id
ALIENVAULT_CLIENT_SECRET=your_client_secret
ALIENVAULT_SUBDOMAIN=your_subdomain
# Account Name (Required for queries)
ALIENVAULT_ACCOUNT_NAME=Default
# Legacy OTX API (Optional)
ALIENVAULT_OTX_API_KEY=your_otx_key
Getting Your Credentials:
- USM Anywhere: Log in โ Admin โ Settings โ API Credentials
- OTX API Key: Visit https://otx.alienvault.com/api
Important Notes:
ALIENVAULT_SUBDOMAIN: Just the subdomain (e.g.,yourorg, notyourorg.alienvault.cloud)ALIENVAULT_ACCOUNT_NAME: Ask your USM administrator for the correct account name- Never commit
.envfile to version control (already in.gitignore)
Documentation
Essential Docs
- QUICK_START.md - 5-minute setup guide
- INTEGRATION_GUIDE.md - Complete integration guide for all platforms
- DISCLAIMER.md - โ ๏ธ Legal terms and liability (READ BEFORE USING)
- CLAUDE.md - Instructions for AI assistants and developers
Query Documentation
- QueryLanguage/advanced-sql-security-guide.md - 15+ SQL security queries
- QueryLanguage/ppl-security-workflows.md - 12+ PPL pipeline examples
- QueryLanguage/basicsql.md - SQL basics and field reference
- QueryLanguage/pplbasic.md - PPL basics and commands
Additional Resources
- TO_FUTURE_DEVELOPERS.md - Philosophy and message across time ๐
- RELEASE_NOTES.md - Version 3.0.0 changelog
- LICENSE - GNU GPL v3.0 full text
Troubleshooting
Connection Issues
Error: Authentication Failed
# Verify credentials
node test-connection.js
# Check .env file format
cat .env | grep ALIENVAULT
Error: No Data Returned
- Verify
ALIENVAULT_ACCOUNT_NAMEis correct - Check user permissions in USM Anywhere
- Ensure account has access to data
MCP Server Issues
Error: spawn EACCES (Permission denied)
# Make server executable
chmod +x dist/index.js
# Verify permissions
ls -la dist/index.js
# Should show: -rwxr-xr-x
MCP Server Not Detected
- Use absolute paths in MCP configuration
- Rebuild project:
npm run build - Check MCP client logs for errors
Query Issues
500 Internal Server Error
- Ensure account name is correct
- Provide time ranges in queries (defaults to 24h)
- Validate field names match your data schema
PPL Query Failures
- Known issue: PPL has JSON encoding problems
- Recommendation: Use SQL queries for production
- PPL syntax validation works, but execution may fail
Development
Commands
# Build project
npm run build
# Development mode
npm run dev
# Run tests
npm test
# Clean build files
npm run clean
# Lint/typecheck
npm run lint
Project Structure
anywhere-mcp-server/
โโโ src/
โ โโโ index.ts # Main MCP server
โ โโโ services/
โ โ โโโ alienvault.ts # API service layer
โ โโโ handlers/
โ โ โโโ tools.ts # MCP tool handlers
โ โโโ types/
โ โโโ index.ts # TypeScript types & Zod schemas
โโโ QueryLanguage/ # Query documentation
โโโ examples/ # Configuration examples
โโโ dist/ # Compiled output
โโโ test-connection.js # Connection test script
Support & Contributing
Get Help
- GitHub Issues: https://github.com/javierb507/anywhere-mcp-server/issues
- Email: javier.ballesteros@gmail.com
- Documentation: See
/QueryLanguageand/examplesdirectories
Contributing
Contributions are welcome! Please:
- Fork the repository
- Create feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Add tests if applicable
- Commit (
git commit -m 'Add amazing feature') - Push (
git push origin feature/amazing-feature) - Open Pull Request
Note: By contributing, you agree to license your contributions under GNU GPL v3.0.
License & Credits
License
This project is licensed under GNU General Public License v3.0 - see LICENSE file.
Key Points:
- โ Free to use, modify, and distribute
- โ Source code must remain open
- โ Changes must be documented
- โ Derivatives must use same license
- โ No warranty provided
- โ Authors not liable for damages
Author
Javier Ballesteros
- ๐ง Email: javier.ballesteros@gmail.com
- ๐ป GitHub: @javierb507
- ๐ LinkedIn: Javier Ballesteros
Acknowledgments
- LevelBlue - For providing USM Anywhere API (docs.levelblue.com)
- AlienVault - For providing OTX API (otx.alienvault.com)
- Anthropic - For Model Context Protocol specification
- Open Source Community - For contributions and feedback
Trademarks
LevelBlueยฎ, USM Anywhereยฎ, AlienVaultยฎ, and OTXยฎ are registered trademarks of their respective owners. This project is not affiliated with or endorsed by these companies.
Official Documentation Links
- LevelBlue USM Anywhere: https://docs.levelblue.com/documentation/usm-anywhere
- USM Anywhere API Reference: https://cybersecurity.att.com/documentation/api/usm-anywhere-apis.htm
- AlienVault OTX Portal: https://otx.alienvault.com/
- Model Context Protocol: https://modelcontextprotocol.io
โ ๏ธ Important Reminder: This is NOT an official LevelBlue product. Read DISCLAIMER.md before using. Always test in non-production environments first.