opencti-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| OPENCTI_URL | No | OpenCTI instance URL (use https:// for remote) | http://localhost:8080 |
| OPENCTI_TOKEN | Yes | API token (required) | |
| OPENCTI_TIMEOUT | No | Request timeout in seconds | 60 |
| OPENCTI_READ_ONLY | No | Disable write operations | true |
| OPENCTI_LOG_FORMAT | No | Log format: json or text | json |
| OPENCTI_SSL_VERIFY | No | Verify SSL certificates (set false for self-signed) | true |
| FF_NEGATIVE_CACHING | No | Cache not found results | true |
| FF_RESPONSE_CACHING | No | Cache search results (reduces API calls) | false |
| OPENCTI_MAX_RESULTS | No | Maximum results per query | 100 |
| OPENCTI_MAX_RETRIES | No | Retry attempts for failures | 3 |
| OPENCTI_RETRY_DELAY | No | Initial retry delay (seconds) | 1.0 |
| FF_STARTUP_VALIDATION | No | Test API connectivity on server start | true |
| FF_GRACEFUL_DEGRADATION | No | Return cached results when service unavailable | true |
| OPENCTI_CIRCUIT_TIMEOUT | No | Seconds before circuit recovery | 60 |
| OPENCTI_RETRY_MAX_DELAY | No | Maximum retry delay (seconds) | 30.0 |
| OPENCTI_CIRCUIT_THRESHOLD | No | Failures before circuit opens | 5 |
| OPENCTI_EXTRA_PATTERN_TYPES | No | Custom pattern types (comma-separated) | |
| OPENCTI_EXTRA_OBSERVABLE_TYPES | No | Custom observable types (comma-separated) |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_threat_intelA | Search OpenCTI for threat intelligence across all entity types (indicators, threat actors, malware, techniques, CVEs, reports). |
| lookup_iocB | Get full context for a specific IOC (IP, hash, domain, URL) including related threat actors, malware, and MITRE techniques. |
| search_threat_actorC | Search for threat actors and APT groups by name or alias. |
| search_malwareB | Search for malware families by name or alias. |
| search_attack_patternA | Search for MITRE ATT&CK techniques by ID or name. |
| search_vulnerabilityC | Search for vulnerabilities (CVEs) by ID or keyword. |
| get_recent_indicatorsB | Get recently added indicators (IOCs) from the last N days. |
| search_reportsC | Search for threat intelligence reports. |
| get_healthA | Check OpenCTI server health and connectivity. |
| list_connectorsA | List available enrichment connectors (VirusTotal, Shodan, etc.). |
| get_network_statusA | Get network health metrics and adaptive configuration recommendations. Shows latency statistics (P50/P95/P99), success rates, circuit breaker state, and recommended timeout/retry settings based on observed network conditions. |
| force_reconnectA | Force reconnection to OpenCTI server. Clears health cache, resets circuit breaker, and attempts fresh connection. Use after configuration changes or to recover from persistent errors. |
| get_cache_statsA | Get cache statistics including hit rates, sizes, and evictions. Useful for debugging and performance tuning. |
| search_campaignA | Search for threat campaigns by name or keyword. |
| search_toolB | Search for tools (legitimate software used maliciously, e.g., PsExec, Mimikatz as a tool). |
| search_infrastructureB | Search for infrastructure (C2 servers, hosting, botnets, etc.). |
| search_incidentC | Search for security incidents. |
| search_observableB | Search for observables (raw technical artifacts: IPs, domains, hashes, emails, etc.). |
| search_sightingA | Search for sightings (detection events where indicators were observed). |
| search_organizationB | Search for organizations (companies, government bodies, etc.). |
| search_sectorA | Search for sectors/industries (e.g., 'Energy', 'Healthcare', 'Finance'). |
| search_locationC | Search for locations (countries, regions, cities). |
| search_course_of_actionA | Search for courses of action (mitigations for attack techniques). |
| search_groupingB | Search for groupings (analysis containers that group related entities). |
| search_noteC | Search for analyst notes. |
| lookup_hashC | Look up a file hash (MD5, SHA1, SHA256) in OpenCTI. |
| get_entityA | Get full details of any entity by its OpenCTI ID. |
| get_relationshipsA | Get relationships for an entity (who uses what, what indicates what, etc.). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 28 tools
Most tools are neatly separated by STIX entity type via the search_<entity> family, so an agent can usually pick the right one. However, search_threat_intel broadly overlaps with every specific search, and lookup_ioc vs. lookup_hash creates ambiguity for hash lookups.
Tool names consistently follow a lowercase snake_case verb_noun structure, with search_<entity> dominating the set. The mix of search, lookup, get, list, and force verbs is mostly predictable, though force_reconnect and the generic search_threat_intel are minor deviations from the clearer noun patterns.
At 28 tools this is on the heavy side, but the count is largely driven by comprehensive coverage of OpenCTI's many STIX entity types. Several operational tools like get_cache_stats and get_network_status add bulk and could be trimmed, yet each search tool has a distinct target.
For a read-only threat intelligence investigation server, the surface is quite complete: it covers major STIX entities, IOC lookup, generic entity details, relationships, recent indicators, and health/connector status. It lacks create/update/delete operations, but the tool names suggest the server is intentionally query-focused, so this is a minor gap rather than a critical one.