- 22 Jan 2026
- 3 Minutes to read
- Print
- DarkLight
MCP Server
- Updated on 22 Jan 2026
- 3 Minutes to read
- Print
- DarkLight
Overview
The Model Context Protocol (MCP) is a standardized protocol used by AI Agents to access and leverage external tools and resources.
Note:
If you’re setting up Claude Code to work with LimaCharlie, refer to the following instructions for the best experience: https://github.com/refractionPOINT/lc-ai
LimaCharlie offers an MCP server at https://mcp.limacharlie.io which enables AI agents to:
Query and analyze historical telemetry from any sensor
Actively investigate endpoints using the LimaCharlie Agent (EDR) in real-time
Take remediation actions like isolating endpoints, killing processes, and managing tags
Generate content using AI-powered tools for LCQL queries, D&R rules, playbooks, and detection summaries
Manage platform configuration including rules, outputs, adapters, secrets, and more
Access threat intelligence through IOC searches and MITRE ATT&CK mappings
This opens up the entire LimaCharlie platform to AI agents, regardless of their implementation or location.
Transport Modes
The server supports two transport modes based on the PUBLIC_MODE environment variable:
STDIO Mode (PUBLIC_MODE=false, default)
Used for local MCP clients like Claude Desktop or Claude Code:
Communication through stdin/stdout using JSON-RPC
Uses LimaCharlie SDK's default authentication
Reads credentials from environment variables or config files
HTTP Mode (PUBLIC_MODE=true)
Used when deploying as a public service:
Server runs as a stateless HTTP API with JSON responses
Authentication via HTTP headers
Supports multiple organizations concurrently
Run with:
uvicorn server:app
Requirements & Authentication
For HTTP Mode
The server requires authentication headers:
1. Authorization header in one of these formats:
Authorization: Bearer <jwt>(OID must be in x-lc-oid header)Authorization: Bearer <jwt>:<oid>(combined format)Authorization: Bearer <api_key>:<oid>(API key with OID)
2. x-lc-oid header (if not included in Authorization):
x-lc-oid: <organization_id>
For STDIO Mode
Set environment variables:
LC_OID: Your LimaCharlie Organization IDLC_API_KEY: Your LimaCharlie API keyGOOGLE_API_KEY: For AI-powered generation features (optional)
Capabilities
The LimaCharlie MCP server exposes over 100 tools organized by category:
Investigation & Telemetry
Process inspection:
get_processes,get_process_modules,get_process_strings,yara_scan_processSystem information:
get_os_version,get_users,get_services,get_drivers,get_autoruns, get_packagesNetwork analysis:
get_network_connections,is_online,get_online_sensorsFile operations:
find_strings,yara_scan_file,yara_scan_directory,yara_scan_memoryRegistry access:
get_registry_keysHistorical data:
get_historic_events,get_historic_detections,get_time_when_sensor_has_data
Threat Response & Remediation
Network isolation:
isolate_network,rejoin_network,is_isolatedSensor management:
add_tag,remove_tag,delete_sensorReliable tasking:
reliable_tasking,list_reliable_tasks
AI-Powered Generation (requires GOOGLE_API_KEY)
Query generation:
generate_lcql_query- Create LCQL queries from natural languageRule creation:
generate_dr_rule_detection,generate_dr_rule_respond- Generate D&R rulesAutomation:
generate_python_playbook- Create Python playbooksAnalysis:
generate_detection_summary- Summarize detection dataSensor selection:
generate_sensor_selector- Generate sensor selectors
Platform Configuration
Detection & Response:
get_detection_rules,set_dr_general_rule,set_dr_managed_rule,delete_dr_general_ruleFalse Positive Management:
get_fp_rules,set_fp_rule,delete_fp_ruleYARA Rules:
list_yara_rules,set_yara_rule,validate_yara_rule,delete_yara_ruleOutputs & Adapters:
list_outputs,add_output,delete_output,list_external_adapters,set_external_adapterExtensions:
list_extension_configs,set_extension_config,delete_extension_configPlaybooks:
list_playbooks,set_playbook,delete_playbookSecrets Management:
list_secrets,set_secret,delete_secretSaved Queries:
list_saved_queries,set_saved_query,run_saved_queryLookups:
list_lookups,set_lookup,query_lookup,delete_lookup
Threat Intelligence
IOC Search:
search_iocs,batch_search_iocsHost Search:
search_hostsMITRE ATT&CK:
get_mitre_report
Administrative
API Keys:
list_api_keys,create_api_key,delete_api_keyInstallation Keys:
list_installation_keys,create_installation_key,delete_installation_keyCloud Sensors:
list_cloud_sensors,set_cloud_sensor,delete_cloud_sensorOrganization Info:
get_org_info,get_usage_statsArtifacts:
list_artifacts,get_artifact
Schema & Documentation
Event Schemas:
get_event_schema,get_event_schemas_batch,get_event_types_with_schemasPlatform Support:
get_platform_names,list_with_platform,get_event_types_with_schemas_for_platform
Advanced Features
Large Result Handling
The server automatically handles large responses by uploading them to Google Cloud Storage (if configured):
Set
GCS_BUCKET_NAMEfor the storage bucketConfigure
GCS_TOKEN_THRESHOLD(default: 1000 tokens)Results are returned as signed URLs valid for 24 hours
LCQL Query Execution
The run_lcql_query tool supports:
Streaming results for real-time monitoring
Flexible time windows and limits
Output formatting options
Examples
Claude Desktop/Code Configuration (STDIO)
{
"mcpServers": {
"limacharlie": {
"command": "python3",
"args": ["/path/to/server.py"],
"env": {
"LC_OID": "your-org-id",
"LC_API_KEY": "your-api-key",
"GOOGLE_API_KEY": "your-google-api-key"
}
}
}
}HTTP Service Usage
claude mcp add --transport http limacharlie https://mcp.limacharlie.io/mcp \
--header "Authorization: Bearer API_KEY:OID" \
--header "x-lc-oid: OID"Environment Variables
PUBLIC_MODE: Set to true for HTTP mode, false for STDIO (default: false)GOOGLE_API_KEY: API key for AI-powered featuresGCS_BUCKET_NAME: Google Cloud Storage bucket for large resultsGCS_SIGNER_SERVICE_ACCOUNT: Service account for GCS URL signingGCS_TOKEN_THRESHOLD: Token count threshold for GCS upload (default: 1000)GCS_URL_EXPIRY_HOURS: Hours until GCS URLs expire (default: 24)LC_OID: Organization ID (STDIO mode only)LC_API_KEY: API key (STDIO mode only)
Notes
The server is stateless when running in HTTP mode
HTTP mode uses JSON responses (not Server-Sent Events)
No OAuth flow is used - authentication is via bearer tokens only
If you encounter missing capabilities, contact https://community.limacharlie.com for quick additions