get_campaign_by_name
根據名稱獲取行動資訊
Query an OpenCTI threat-intelligence platform in conversation — reports, malware, indicators, threat actors, attack patterns, campaigns and the platform's own users and connectors.
LABSCO SUMMARY
Alongside the expected malware and indicator searches, it exposes connectors, status templates, marking definitions and group membership — the parts that tell you whether the intelligence you are reading is current and who it may be shared with. That makes it as useful for auditing an OpenCTI deployment as for querying one. Everything here reads; nothing writes back to the platform.
An MCP server that fronts an OpenCTI instance, turning its GraphQL API into named tools an assistant can call. It covers the intelligence itself (reports, malware, indicators of compromise, threat actors, attack patterns, campaigns) as well as the housekeeping around it (users, groups, connectors, status templates, files, labels and marking definitions).
get_latest_reports, get_report_by_idsearch_malware, search_indicators, search_threat_actorslist_attack_patterns, get_campaign_by_namelist_users, get_user_by_id, list_groupslist_connectors, list_status_templateslist_files, get_file_by_id, list_labels, list_marking_definitionsAccess to an OpenCTI instance and an API token from it: OPENCTI_URL and OPENCTI_TOKEN. Node.js 16 or higher. The npm package name is opencti-server (0.1.0) and it is marked private, so install from a clone with npm install and npm run build. The token carries whatever that OpenCTI account can read, including its users and groups — issue a dedicated one rather than reusing an analyst's.
Build from source
USE CASES
Search indicators of compromise for the domain or hash, then pivot to the malware and threat actors associated with it before deciding how far to escalate.
Pull the latest reports and open the ones that matter in full by id, rather than paging through the OpenCTI interface.
List attack patterns to match the behaviour you observed, then look up the named campaign to see what else is attributed to it.
List the connectors and status templates to see which sources are wired in and which workflow states exist, before trusting an empty search result.
List users and groups with their members alongside the marking definitions in use, so sharing rules can be checked against the people they apply to.
Counted once with only startup setup. Other versions, modes or optional credentials may expose a different list.
get_campaign_by_name根據名稱獲取行動資訊
get_file_by_id根據ID獲取檔案資訊
get_latest_reports獲取最新的OpenCTI報告
get_report_by_id根據ID獲取OpenCTI報告
get_user_by_id根據ID獲取使用者資訊
list_attack_patterns列出所有攻擊模式
list_connectors列出所有連接器
list_files列出所有檔案
list_groups列出所有群組
list_labels列出所有標籤
list_marking_definitions列出所有標記定義
list_status_templates列出所有狀態模板
list_users列出所有使用者
search_indicators搜尋OpenCTI中的指標
search_malware搜尋OpenCTI中的惡意程式
search_threat_actors搜尋OpenCTI中的威脅行為者
BEFORE YOU INSTALL
16 tools when we connected. Read-only: nothing creates a report, tags an entity or starts a connector. Most tools return 10 results unless you pass a higher limit.
The documented client runs the server on your machine.
CONTEXT COST
Rated by the size of the 16 tool definitions that ride along on every turn, not by how many there are
INSTALLATION
You clone and build this one yourself.
git clone https://github.com/zxzinn/opencti-mcp
cd opencti-mcp
npm install
npm run build{
"mcpServers": {
"opencti": {
"command": "node",
"args": [
"<YOUR_PATH_TO_OPENCTI_MCP>/build/index.js"
],
"env": {
"OPENCTI_URL": "${OPENCTI_URL}",
"OPENCTI_TOKEN": "${OPENCTI_TOKEN}"
}
}
}
}Use the full path to build/index.js inside the opencti-mcp folder that the clone above creates. Values written as ${…} are filled in only by clients that expand variables; in other clients, put your actual OpenCTI URL and token there.