Checkpoint Harmony
БесплатноНе проверенMCP server for the Check Point Harmony Email & Collaboration API
Описание
MCP server for the Check Point Harmony Email & Collaboration API
README
PyPI version Python versions License: MIT CI
A Model Context Protocol server that exposes the Check Point Harmony Email & Collaboration smart-api (formerly Avanan) to AI assistants. It provides 26 tools across Security Events, Secured Entities, Exceptions, URL Reputation, DLP, and Scopes — full parity with the v1.50 API.
[!IMPORTANT] Unofficial project. This is an independent, community-built MCP server developed against Check Point's published API documentation. It is not an official Check Point product and is not affiliated with, endorsed by, or supported by Check Point Software Technologies. "Check Point", "Harmony", and "Avanan" are trademarks of Check Point Software Technologies. For official support of the Harmony Email & Collaboration platform itself, contact Check Point directly.
[!WARNING] Beta software — not yet recommended for production environments. This project is under active development. The tool surface and individual tool body shapes may still change between minor versions, and not every endpoint has been exhaustively exercised against every tenant configuration. Use against a lab or non-production scope until you're confident in the behavior for your use case.
This server can also perform destructive actions against your Harmony environment. Tools can quarantine and restore real email and modify allow/block-list exceptions. A hallucinated tool argument from your AI assistant could alter your mail flow in ways that affect email security.
Recommended posture:
- Try the server against a non-production or lab scope first.
- Use a Check Point API key scoped to the minimum permissions your use case requires.
- Review every destructive tool call before allowing execution. Claude Desktop requires tool-call approval by default — keep that enabled.
- Treat the API key (Client ID + Secret) with the same care as portal admin credentials, because functionally it is one.
- The HTTP transport binds to
127.0.0.1by default. Do not expose it to the public internet without adding authentication.
Tools
| Area | Count | Tools |
|---|---|---|
| Scopes | 1 | scopes_list |
| Security Events | 5 | events_get_by_id, events_query, events_find, events_action, events_get_task_status |
| Secured Entities | 5 | entities_get_by_id, entities_query, entities_find, entities_action, entities_download |
| Exceptions (Anti-Phishing) | 5 | exceptions_list, exceptions_get, exceptions_create, exceptions_update, exceptions_delete |
| URL Reputation | 5 | urlrep_list, urlrep_get, urlrep_create, urlrep_update, urlrep_delete |
| DLP | 5 | dlp_list, dlp_get, dlp_create, dlp_update, dlp_delete |
26 tools total. Highlights:
- Query tools (
events_query,entities_query) return a compact summary of up tolimitrecords (default 25). Usemax_records(cap 500) to auto-paginate,count_onlyfor a{recordsNumber, histogram}triage view, orfull=truefor raw objects.events_queryrequires a date range (startDate). - Find tools (
events_find,entities_find) locate a specific message/event by sender, recipient, subject, message-ID, or entity-ID. They filter server-side and default to the last 30 days (override withstart_date/end_date), trying an exact match first and falling back tocontains— the result'smatchModesays which hit. Both cap returned matches tolimit(default 25) and settruncatedwhen more exist. Power users can pass a raw server-sideextended_filtertoentities_query. - Action tools (
events_action,entities_action) wait for completion by default and return the final entity state; passwait=falsefor fire-and-forget.entities_actionrequiresentity_type— the target entity'ssaasEntityType(e.g.office365_emails_email), as returned byentities_query/entities_find. exceptions_*(anti-phishing) types arewhitelist,blacklist, andspam_whitelist(case-insensitive). URL-Reputation exception types areallow-url,allow-domain,block-url,block-domain. DLP exception types arehash,text_content,sender_email,recipient_email.entities_downloadreturns the secured entity's message as an.eml(base64-encoded for transport).- Rate limits enforced client-side: Anti-Phishing exception writes are paced to 1 rps; URL-Rep + DLP exception writes to 10 rps, matching the API reference.
events_actionverbs:quarantine,restore,dismiss,severityChange(param{"newSeverity": "Low|Medium|High|Highest"}),senttoadmin.- Server-side filters for
entities_queryviaextended_filter: each entry is{saasAttrName, saasAttrOp, saasAttrValue}; operators areis,contains,startsWith,isEmpty,isNot,notContains,isNotEmpty,greaterThan,lessThan. Use dotted paths likeentityPayload.fromEmail.
[!NOTE]
events_queryandevents_findrequire a date range — includestartDate(and ideallyendDate). Without it the upstream API returns an opaque500.
See docs/ENDPOINTS.md for the full tool ↔ endpoint mapping.
Quick start
Install
# with uv (recommended)
uv tool install checkpoint-harmony-mcp
# or with pip
pip install checkpoint-harmony-mcp
For development from source:
git clone https://github.com/Space-C0wboy/Checkpoint-Harmony-Email-MCP-Server
cd Checkpoint-Harmony-Email-MCP-Server
uv venv && uv pip install -e ".[dev]"
Getting an API key
Generate an account-scoped Infinity Portal API key for the Email & Collaboration service. The easiest path also shows you the exact authentication URL for your region:
- In the Harmony Email & Collaboration console, confirm the correct account / company is selected, then click the Settings gear next to the company name → API Keys. (Equivalently: Infinity Portal Global Settings → API Keys → New Account API key.)
- Click New, choose Service: Email & Collaboration, optionally set an expiration, then Create.
- Copy the Client ID, Secret Key, and Authentication URL it displays — the
secret is shown only once. These map to
CHECKPOINT_CLIENT_ID,CHECKPOINT_SECRET, andCHECKPOINT_AUTH_URL. SetCHECKPOINT_API_URLto your region's gateway +/app/hec-api(see Region gateways below).
No role is requested for Email & Collaboration keys — they are granted Admin access scoped to that single service.
[!WARNING] Use an account API key, not a user key. A user-scoped key (the
/auth/external/userendpoint) is bound to the user's home region and is not accepted by the smart-api — it authenticates successfully but every data call returns an opaque500. If you decode such a token you'll see"authType": "EXTERNAL_USER"; an account key shows"EXTERNAL". Always generate the key via Global Settings → API Keys → New Account API key (or the Harmony console gear → API Keys).
Configuration
Copy .env.example to .env and set:
| Variable | Required | Description |
|---|---|---|
CHECKPOINT_CLIENT_ID |
yes | Infinity Portal API key Client ID |
CHECKPOINT_SECRET |
yes | Infinity Portal API key Secret (accessKey) |
CHECKPOINT_AUTH_URL |
yes | Region gateway + /auth/external |
CHECKPOINT_API_URL |
yes | Region gateway + /app/hec-api |
CHECKPOINT_SCOPE |
no* | Auto-discovered when blank (single tenant); set explicitly only for multi-scope keys |
CHECKPOINT_TIMEOUT |
no | Request timeout in seconds (default 30) |
LOG_LEVEL |
no | default INFO |
MCP_HTTP_HOST / MCP_HTTP_PORT |
no | HTTP transport bind, defaults 127.0.0.1:8765 |
* When blank, the server auto-discovers the scope (single-tenant). Set it explicitly only
if your key has access to multiple scopes; discover values with the scopes_list tool.
Region gateways:
- EU
https://cloudinfra-gw.portal.checkpoint.com - US
https://cloudinfra-gw-us.portal.checkpoint.com - AU
https://cloudinfra-gw.ap.portal.checkpoint.com - IN
https://cloudinfra-gw.in.portal.checkpoint.com
(Auth URL = gateway + /auth/external; API URL = gateway + /app/hec-api.)
Run
- stdio (default):
uv run checkpoint-harmony-mcp(or justcheckpoint-harmony-mcpif installed as a tool) - HTTP:
checkpoint-harmony-mcp --transport http --port 8765
Editor integration
Claude Desktop
Edit claude_desktop_config.json:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"checkpoint-harmony": {
"command": "checkpoint-harmony-mcp",
"env": {
"CHECKPOINT_CLIENT_ID": "your-client-id",
"CHECKPOINT_SECRET": "your-client-secret",
"CHECKPOINT_AUTH_URL": "https://cloudinfra-gw-us.portal.checkpoint.com/auth/external",
"CHECKPOINT_API_URL": "https://cloudinfra-gw-us.portal.checkpoint.com/app/hec-api"
}
}
}
}
If running from source instead of an installed tool, use uv with --directory:
{
"mcpServers": {
"checkpoint-harmony": {
"command": "uv",
"args": ["run", "--directory", "/absolute/path/to/Checkpoint-Harmony-Email-MCP-Server", "checkpoint-harmony-mcp"],
"env": { "CHECKPOINT_CLIENT_ID": "...", "CHECKPOINT_SECRET": "...", "CHECKPOINT_AUTH_URL": "...", "CHECKPOINT_API_URL": "..." }
}
}
}
Restart Claude Desktop, then confirm checkpoint-harmony appears in the tools menu.
Claude Code
claude mcp add checkpoint-harmony \
--env CHECKPOINT_CLIENT_ID=your-client-id \
--env CHECKPOINT_SECRET=your-client-secret \
--env CHECKPOINT_AUTH_URL=https://cloudinfra-gw-us.portal.checkpoint.com/auth/external \
--env CHECKPOINT_API_URL=https://cloudinfra-gw-us.portal.checkpoint.com/app/hec-api \
-- checkpoint-harmony-mcp
Scope auto-discovery
The Harmony API requires a scopes value on every call, but it isn't shown in the
Infinity Portal. This server resolves it for you: leave CHECKPOINT_SCOPE blank and,
on first use, it calls scopes_list and uses your single scope automatically (logging it
so you can pin it later). Set CHECKPOINT_SCOPE explicitly only if your key spans
multiple scopes — the server will list the available values in an error if so.
[!TIP] For a single-tenant key, just leave
CHECKPOINT_SCOPEunset — there is nothing to look up in the portal. Only multi-scope keys need it set explicitly.
Example prompts
- "How many phishing emails did we get today?" →
events_querywithcount_only. - "Find the email from
[email protected]to me on June 4th." →entities_find. - "Quarantine event
<id>, then restore it." →events_action(quarantine → restore). - "Block the sender
[email protected]." / "Remove that block." →exceptions_create/exceptions_delete. - "Show me the full detail for entity
<id>." →entities_get_by_id.
Development
uv run pytest # full suite (HTTP fully mocked with respx; no live calls)
uv run ruff check . # lint
Releases publish to PyPI automatically when a v* tag is pushed (see
.github/workflows/publish.yml).
License
from github.com/Space-C0wboy/Checkpoint-Harmony-Email-MCP-Server
Установить Checkpoint Harmony в Claude Desktop, Claude Code, Cursor
unyly install checkpoint-harmonyСтавит в Claude Desktop, Claude Code, Cursor и VS Code — сам разбирается с npx, uvx и сборкой из исходников.
Впервые? Поставь CLI: curl -fsSL https://unyly.org/install | sh
Или настроить вручную
Выполни в терминале:
claude mcp add checkpoint-harmony -- uvx checkpoint-harmony-mcpПошаговые гайды: как установить Checkpoint Harmony
FAQ
Checkpoint Harmony MCP бесплатный?
Да, Checkpoint Harmony MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Checkpoint Harmony?
Нет, Checkpoint Harmony работает без API-ключей и переменных окружения.
Checkpoint Harmony — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить Checkpoint Harmony в Claude Desktop, Claude Code или Cursor?
Открой Checkpoint Harmony на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
Gmail
Read, send and search emails from Claude
автор: GoogleSlack
Send, search and summarize Slack messages
автор: SlackRunbear
No-code MCP client for team chat platforms, such as Slack, Microsoft Teams, and Discord.
Discord Server
A community discord server dedicated to MCP by [Frank Fiegel](https://github.com/punkpeye)
Klavis AI
Open Source MCP Infra. Hosted MCP servers and MCP clients on Slack and Discord.
Work90210/APIFold
Turn any REST API into a hosted MCP server, with ready-made public servers for GitHub, Stripe, Slack, OpenAI, Notion and more.
автор: Work90210arikusi/deepseek-mcp-server
DeepSeek AI chat and reasoning with multi-turn sessions, function calling, thinking mode and cost tracking.
автор: arikusihashgraph-online/hashnet-mcp-js
Discover, register and chat with AI agents on the Hashgraph network via the Registry Broker.
автор: hashgraph-onlineprofullstack/mcp-server
Developer utilities: SEO optimization, document conversion, domain lookup, email validation, QR codes, weather data, social media posting and security scanning.
автор: profullstackWayStation-ai/mcp
Connect MCP hosts to apps such as Notion, Slack, Monday and Airtable.
автор: waystation-aiCompare Checkpoint Harmony with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории communication
