GitHub
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
作者による説明(英語の原文)
MCP server for Bitdefender GravityZone's JSON-RPC API.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
BITDEFENDER_API_KEY, BITDEFENDER_ACCESS_URL, MCP_TRANSPORT, AUTH_MODE, LOG_LEVEL「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"bitdefender": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"BITDEFENDER_API_KEY",
"-e",
"BITDEFENDER_ACCESS_URL",
"-e",
"MCP_TRANSPORT",
"-e",
"AUTH_MODE",
"-e",
"LOG_LEVEL",
"ghcr.io/wyre-ai/bitdefender-mcp:v1.0.1"
],
"env": {
"BITDEFENDER_API_KEY": "your-value",
"BITDEFENDER_ACCESS_URL": "your-value",
"MCP_TRANSPORT": "your-value",
"AUTH_MODE": "your-value",
"LOG_LEVEL": "your-value"
}
}
}
}ターミナルでこれを実行します
claude mcp add bitdefender --env BITDEFENDER_API_KEY=your-value --env BITDEFENDER_ACCESS_URL=your-value --env MCP_TRANSPORT=your-value --env AUTH_MODE=your-value --env LOG_LEVEL=your-value -- docker run -i --rm -e BITDEFENDER_API_KEY -e BITDEFENDER_ACCESS_URL -e MCP_TRANSPORT -e AUTH_MODE -e LOG_LEVEL ghcr.io/wyre-ai/bitdefender-mcp:v1.0.1動かす前に、空欄の値を入力してください。
プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"bitdefender": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"BITDEFENDER_API_KEY",
"-e",
"BITDEFENDER_ACCESS_URL",
"-e",
"MCP_TRANSPORT",
"-e",
"AUTH_MODE",
"-e",
"LOG_LEVEL",
"ghcr.io/wyre-ai/bitdefender-mcp:v1.0.1"
],
"env": {
"BITDEFENDER_API_KEY": "your-value",
"BITDEFENDER_ACCESS_URL": "your-value",
"MCP_TRANSPORT": "your-value",
"AUTH_MODE": "your-value",
"LOG_LEVEL": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"bitdefender": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"BITDEFENDER_API_KEY",
"-e",
"BITDEFENDER_ACCESS_URL",
"-e",
"MCP_TRANSPORT",
"-e",
"AUTH_MODE",
"-e",
"LOG_LEVEL",
"ghcr.io/wyre-ai/bitdefender-mcp:v1.0.1"
],
"env": {
"BITDEFENDER_API_KEY": "your-value",
"BITDEFENDER_ACCESS_URL": "your-value",
"MCP_TRANSPORT": "your-value",
"AUTH_MODE": "your-value",
"LOG_LEVEL": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
MCP_TRANSPORT envAUTH_MODE envLOG_LEVEL envこの設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月8日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント WYRE-AI で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
入力が必要なもの:BITDEFENDER_API_KEY, BITDEFENDER_ACCESS_URL
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(1.0.1)がレジストリに届いたのは16 日前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにDockerも必要です。
同じカテゴリには:GitHub, Desktop Commander, Cloudflare MCP
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
MCP server for terminal commands, file operations, and process management
Cloudflare MCP servers
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
MCP server for Bitdefender GravityZone's Control Center API - endpoint/network inventory, security policies, the account-wide malware-hash Blocklist, and scheduled/instant reports - for AI assistants and the WYRE Conduit gateway.
New call shape for this catalog: GravityZone's API is JSON-RPC 2.0, not REST - every other Conduit sidecar (Cork, CyberQP, Slide, UniFi, Cisco Duo) calls a conventional REST API. See Authentication and JSON-RPC shape below.
GravityZone authenticates with HTTP Basic Authentication (RFC 2617): the API key is sent as the username, with an empty password - Authorization: Basic base64(apiKey + ":"). This is also a new shape for this catalog - every other static-key connector here (Cork, CyberQP, Slide, UniFi) sends a custom X-Vendor-Api-Key header that the sidecar turns into a Bearer token; GravityZone has no bearer-token concept at all.
API keys are generated in Control Center under My Account -> API keys, and each key is scoped, at generation time, to a checklist of API *areas* (Network, Policies, Reports, Incidents, Companies, Licensing, Accounts, Packages, Integrations, Push, Quarantine). This connector's key needs the Network, Policies, Reports, and Incidents areas selected - the other seven are never called and do not need to be enabled.
This connector also needs the account's Control Center Access URL (shown on that same My Account page, under Control Center API) - GravityZone Cloud, its EU region, and any self-hosted/on-premise Control Center each have a different API host, so unlike most vendors in this catalog there is no single fixed base URL to hardcode.
In gateway mode, both arrive per-request via the X-Bitdefender-Api-Key and X-Bitdefender-Access-Url headers; in local/stdio mode they're read once from BITDEFENDER_API_KEY and BITDEFENDER_ACCESS_URL.
GravityZone exposes several separate JSON-RPC 2.0 endpoints, one per product area, at /v1.0/jsonrpc/ (e.g. /v1.0/jsonrpc/network, /v1.0/jsonrpc/policies). Every call to a given area - whatever it does - is an HTTP POST to that same URL with an identical envelope:
{ "id": "<uuid>", "jsonrpc": "2.0", "method": "getEndpointsList", "params": { "parentId": "..." } }
The operation lives entirely inside the body (method + params), never in the URL or HTTP verb - there is no GET/POST/PATCH/DELETE distinction to key a read-only boundary off of, unlike every REST sidecar in this catalog. This connector's read-only scope is therefore enforced by only ever calling documented getXxx/listXxx method names (see Scope below and client.ts's jsonRpcCall()), not by restricting HTTP verbs.
A successful call returns { "id", "jsonrpc", "result": ... }. A failed call can come back two ways, and this connector's client.ts distinguishes both:
401 (bad/missing key), 403 (the key doesn't have this API area enabled - see above), 405 (non-POST), or 429 (rate limit).200 with a body error member ({code, message, data.details}, e.g. -32602 Invalid params).Rate limit: 10 requests/second per API key; GravityZone returns 429 above that.
| Env var | Description | |||
|---|---|---|---|---|
BITDEFENDER_API_KEY | API key generated in Control Center, with the Network/Policies/Reports/Incidents areas selected. | |||
BITDEFENDER_ACCESS_URL | The account's Control Center Access URL (e.g. https://cloud.gravityzone.bitdefender.com). | |||
MCP_TRANSPORT | stdio (default) or http. | |||
AUTH_MODE | env (default, reads the two vars above) or gateway (credentials arrive per-request via the X-Bitdefender-Api-Key / X-Bitdefender-Access-Url headers, injected by the Conduit gateway). | |||
CONDUIT_S2S_SECRET | When set, the HTTP transport requires a valid X-Gateway-S2S header (Conduit sidecar auth) on every /mcp request. | |||
LOG_LEVEL | debug \ | info (default) \ | warn \ | error. |
X-Gateway-S2S check passes, a Content-Length above the cap returns 413 with a JSON-RPC error; bodies without Content-Length are capped by the MCP SDK transport. Unauthenticated requests still get 401 first.tools/call arguments are capped at 10,000 elements (every array item and object key at any depth). Larger inputs return an isError tool result and are never dispatched.These limits address CVE-2026-111768 / GHSA-46jr-4wx8-v453 (memory exhaustion during validation) and GHSA-f897-62hf-6gxq (no request body / batch cap).
bitdefender_list_endpoints - list managed/unmanaged endpoints (name, FQDN, IP, MACs, group, agent flags), optionally scoped and filtered.bitdefender_get_endpoint - full detail for one managed endpoint (agent version, license status, scan/update status).bitdefender_list_custom_groups - list the child groups under a Network Inventory group.bitdefender_list_network_inventory - list inventory items (groups, computers, VMs, EC2 instances) with per-type filtering.bitdefender_list_scan_tasks - list previously created on-demand scan tasks and their status.bitdefender_list_policies - list security policies available to the account.bitdefender_get_policy - get full settings for one security policy.bitdefender_list_blocklist_items - list file hashes present in the account's Blocklist.bitdefender_list_reports - list scheduled/instant reports configured on the account.bitdefender_get_report_download_links - check download readiness and get a report's download URL(s).This is a deliberately narrow, read-only v1 surface: exactly 10 of GravityZone's `getXxx`/`listXxx` methods across the Network, Policies, Incidents, and Reports APIs. Every tool is classified isAdmin: true in the Conduit gateway - GravityZone is an endpoint-protection product, so every read this connector exposes (endpoint IP/MAC/hostname inventory, security policy settings, malware-hash blocklist entries, security posture reports) is security/PII-adjacent by construction. No mutating (create/update/delete/move/set/add/remove) method is implemented, by design, not by oversight:
Hard-excluded (Network API) - never implemented:
createCustomGroup, deleteCustomGroup, moveCustomGroup - group provisioning/mutation.moveEndpoints, deleteEndpoint - endpoint mutation/removal.createScanTask - dispatches a real on-demand scan to a real managed endpoint. bitdefender_list_scan_tasks (read) stays; this does not.setEndpointLabel - endpoint mutation.Hard-excluded (Incidents API) - never implemented:
addToBlocklist, removeFromBlocklist - Blocklist mutation. bitdefender_list_blocklist_items (read) stays; these do not.createIsolateEndpointTask, createRestoreEndpointFromIsolationTask - genuine remote-response actions that isolate/restore a real managed endpoint from the network.Hard-excluded (Reports API) - never implemented:
createReport - creates a new scheduled/instant report definition.deleteReport - deletes a report definition.Out of scope entirely (not requested, not implemented): the Companies, Licensing, Accounts, Packages, Integrations, Push, and Quarantine APIs. Quarantine in particular (getQuarantineItemsList and its createRemove/Restore*QuarantineItemTask write methods) was in Bitdefender's own catalog of API areas but outside this connector's requested scope (endpoint/network inventory, policies, incidents, reports); it can be added as a deliberate follow-up if there's demand, not by default.
They can be added as a follow-up if there's demand, after a deliberate scope decision - not by default.
Two-tier confidence split, per this catalog's convention for a claim about what a credential can and cannot reach:
client.ts/tools/*.ts, only the 10 documented getXxx/listXxx methods listed under Tools are ever sent, no passthrough/arbitrary-method call exists anywhere in src/. This connector is read-only by construction.getEndpointsList (read) and moveEndpoints/deleteEndpoint/createScanTask (write) - the same area, the same permission checkbox, no finer-grained scoping exists on Bitdefender's side. This connector's read-only posture is enforced entirely by its own code, not by any narrower credential scope GravityZone itself offers - the same posture this catalog's other security-product connectors (Cork, CyberQP, Cisco Duo) already document for their own admin-tier classification, stated once here for the credential-scope question specifically.npm install
npm run build npm test npm run lint # tsc --noEmit
docker build -t bitdefender-mcp .
docker run -p 8080:8080 -e BITDEFENDER_API_KEY=... -e BITDEFENDER_ACCESS_URL=... bitdefender-mcp