Skip to main content
Glama
OpenCTI MCP Server

OpenCTI MCP Server

by zxzinn

OpenCTI MCP Server

Traditional Chinese (繁體中文)

Overview

OpenCTI MCP Server is a Model Context Protocol (MCP) server that provides seamless integration with OpenCTI (Open Cyber Threat Intelligence) platform. It enables querying and retrieving threat intelligence data through a standardized interface.

Related MCP server: MCP Boilerplate

Features

  • Fetch and search threat intelligence data

    • Get latest reports and search by ID

    • Search for malware information

    • Query indicators of compromise

    • Search for threat actors

  • User and group management

    • List all users and groups

    • Get user details by ID

  • STIX object operations

    • List attack patterns

    • Get campaign information by name

  • System management

    • List connectors

    • View status templates

  • File operations

    • List all files

    • Get file details by ID

  • Reference data access

    • List marking definitions

    • View available labels

  • Customizable query limits

  • Full GraphQL query support

Prerequisites

  • Node.js 16 or higher

  • Access to an OpenCTI instance

  • OpenCTI API token

Installation

Installing via Smithery

To install OpenCTI Server for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install opencti-server --client claude

Manual Installation

# Clone the repository
git clone https://github.com/yourusername/opencti-mcp-server.git

# Install dependencies
cd opencti-mcp-server
npm install

# Build the project
npm run build

Configuration

Environment Variables

Copy .env.example to .env and update with your OpenCTI credentials:

cp .env.example .env

Required environment variables:

  • OPENCTI_URL: Your OpenCTI instance URL

  • OPENCTI_TOKEN: Your OpenCTI API token

MCP Settings

Create a configuration file in your MCP settings location:

{
  "mcpServers": {
    "opencti": {
      "command": "node",
      "args": ["path/to/opencti-server/build/index.js"],
      "env": {
        "OPENCTI_URL": "${OPENCTI_URL}",  // Will be loaded from .env
        "OPENCTI_TOKEN": "${OPENCTI_TOKEN}"  // Will be loaded from .env
      }
    }
  }
}

Security Notes

  • Never commit .env file or API tokens to version control

  • Keep your OpenCTI credentials secure

  • The .gitignore file is configured to exclude sensitive files

Available Tools

Available Tools

Reports

get_latest_reports

Retrieves the most recent threat intelligence reports.

{
  "name": "get_latest_reports",
  "arguments": {
    "first": 10  // Optional, defaults to 10
  }
}

get_report_by_id

Retrieves a specific report by its ID.

{
  "name": "get_report_by_id",
  "arguments": {
    "id": "report-uuid"  // Required
  }
}

Search Operations

search_malware

Searches for malware information in the OpenCTI database.

{
  "name": "search_malware",
  "arguments": {
    "query": "ransomware",
    "first": 10  // Optional, defaults to 10
  }
}

search_indicators

Searches for indicators of compromise.

{
  "name": "search_indicators",
  "arguments": {
    "query": "domain",
    "first": 10  // Optional, defaults to 10
  }
}

search_threat_actors

Searches for threat actor information.

{
  "name": "search_threat_actors",
  "arguments": {
    "query": "APT",
    "first": 10  // Optional, defaults to 10
  }
}

User Management

get_user_by_id

Retrieves user information by ID.

{
  "name": "get_user_by_id",
  "arguments": {
    "id": "user-uuid"  // Required
  }
}

list_users

Lists all users in the system.

{
  "name": "list_users",
  "arguments": {}
}

list_groups

Lists all groups with their members.

{
  "name": "list_groups",
  "arguments": {
    "first": 10  // Optional, defaults to 10
  }
}

STIX Objects

list_attack_patterns

Lists all attack patterns in the system.

{
  "name": "list_attack_patterns",
  "arguments": {
    "first": 10  // Optional, defaults to 10
  }
}

get_campaign_by_name

Retrieves campaign information by name.

{
  "name": "get_campaign_by_name",
  "arguments": {
    "name": "campaign-name"  // Required
  }
}

System Management

list_connectors

Lists all system connectors.

{
  "name": "list_connectors",
  "arguments": {}
}

list_status_templates

Lists all status templates.

{
  "name": "list_status_templates",
  "arguments": {}
}

File Operations

get_file_by_id

Retrieves file information by ID.

{
  "name": "get_file_by_id",
  "arguments": {
    "id": "file-uuid"  // Required
  }
}

list_files

Lists all files in the system.

{
  "name": "list_files",
  "arguments": {}
}

Reference Data

list_marking_definitions

Lists all marking definitions.

{
  "name": "list_marking_definitions",
  "arguments": {}
}

list_labels

Lists all available labels.

{
  "name": "list_labels",
  "arguments": {}
}

Contributing

Contributions are welcome! Please feel free to submit pull requests.

License

MIT License

Available Tools

13 tools
get_campaign_by_nameB

根據名稱獲取行動資訊

Inputs: name (required).

get_file_by_idA

根據ID獲取檔案資訊

Inputs: id (required).

get_user_by_idB

根據ID獲取使用者資訊

Inputs: id (required).

list_attack_patternsC

列出所有攻擊模式

Inputs: first.

list_connectorsA

列出所有連接器

Inputs: no named parameters.

list_filesC

列出所有檔案

Inputs: no named parameters.

list_groupsB

列出所有群組

Inputs: first.

list_labelsB

列出所有標籤

Inputs: no named parameters.

list_marking_definitionsB

列出所有標記定義

Inputs: no named parameters.

list_status_templatesB

列出所有狀態模板

Inputs: no named parameters.

list_usersA

列出所有使用者

Inputs: no named parameters.

search_malwareC

搜尋OpenCTI中的惡意程式

Inputs: query (required), first.

search_threat_actorsB

搜尋OpenCTI中的威脅行為者

Inputs: query (required), first.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.5/5.0

    Scored across 13 tools

    Disambiguation5/5

    每個工具都有明確的目標實體和操作(獲取、列出、搜尋),沒有重疊的職責。例如,get_campaign_by_name 與 search_threat_actors 針對不同實體,list_files 與 get_file_by_id 分別是列表和單一獲取,區分明確。

    Naming Consistency5/5

    工具名稱遵循一致的 verb_noun 模式:get_entity_by_field、list_entity、search_entity。例如 get_campaign_by_name、list_users、search_malware,風格統一且可預測。

    Tool Count5/5

    13 個工具涵蓋了 OpenCTI 平台的主要實體(如行動、檔案、使用者、攻擊模式等),數量合理且範圍適中,沒有過多或過少的問題。

    Completeness3/5

    工具集僅提供讀取和搜尋操作(get、list、search),缺乏建立、更新、刪除等寫入功能。雖然可能設計為唯讀介面,但對於完整的威脅情報生命週期來說有明顯缺口。

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      Not graded
      quality
      D
      maintenance
      A Model Context Protocol (MCP) server that integrates with the MISP (Malware Information Sharing Platform) to provide threat intelligence capabilities to Large Language Models.
      13
      -
    • F
      license
      Not graded
      quality
      D
      maintenance
      A Model Context Protocol server that connects AI assistants to MISP threat intelligence platforms. It enables threat intelligence search, IOC lookup, and event analysis through natural conversation.
      -