Skip to main content
Glama
WYRE-AI

Bitdefender GravityZone MCP Server

by WYRE-AI

Bitdefender GravityZone MCP Server

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.

Authentication

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.

JSON-RPC shape

GravityZone exposes several separate JSON-RPC 2.0 endpoints, one per product area, at <accessUrl>/v1.0/jsonrpc/<area> (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:

  • HTTP-layer failure - 401 (bad/missing key), 403 (the key doesn't have this API area enabled - see above), 405 (non-POST), or 429 (rate limit).

  • JSON-RPC-layer failure - HTTP 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.

Related MCP server: falcon-mcp

Configuration

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.

Tools

Network - endpoint/network inventory

  • 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.

Policies

  • bitdefender_list_policies - list security policies available to the account.

  • bitdefender_get_policy - get full settings for one security policy.

Incidents

  • bitdefender_list_blocklist_items - list file hashes present in the account's Blocklist.

Reports

  • 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).

Scope

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.

Credential scope

Two-tier confidence split, per this catalog's convention for a claim about what a credential can and cannot reach:

  • STRUCTURALLY VERIFIED - this connector's own code never calls a mutating JSON-RPC method: confirmed against 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.

  • VENDOR-DOCUMENTED, AND THE FINDING RUNS THE OTHER WAY - GravityZone's own API-key generation UI (Control Center -> My Account -> API keys) only gates access per API area (Network/Policies/Reports/Incidents/...), confirmed against Bitdefender's official API Guide (Getting Started section 1.3, "API Keys": "Each API key allows the application to call methods exposed by one or several APIs. The allowed APIs are selected at the time the API key is generated"). There is no documented per-method or read/write permission flag. A key with the Network area enabled can call 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.

Development

npm install
npm run build
npm test
npm run lint   # tsc --noEmit

Docker

docker build -t bitdefender-mcp .
docker run -p 8080:8080 -e BITDEFENDER_API_KEY=... -e BITDEFENDER_ACCESS_URL=... bitdefender-mcp

Available Tools

10 tools
bitdefender_get_endpointA

Get full detail for one managed endpoint: power state, IP, last-seen timestamp, and the installed security agent's engine/product versions, license status, and update/outdated flags. Requires an endpoint ID from bitdefender_list_endpoints.

ParametersJSON Schema
NameRequiredDescriptionDefault
endpointIdYesEndpoint ID, from bitdefender_list_endpoints.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It explicitly lists the returned data (power state, IP, last-seen, agent versions, license status, update flags) and the prerequisite (endpoint ID from the list call). It does not discuss error handling or side effects, but 'Get' clearly implies a safe read operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a compact two-sentence definition that front-loads the core purpose and then lists the specific return fields. Every clause adds value; there is no redundant phrasing or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter read tool with no output schema, the description is complete: it states what the tool returns, clarifies the required input, and points to the sibling that supplies it. Nothing an agent needs to correctly invoke this tool is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already provides 100% coverage for the single parameter, describing endpointId as 'Endpoint ID, from bitdefender_list_endpoints.' The description repeats this same information, adding no new semantic detail beyond what the schema provides, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the verb ('Get'), the resource ('full detail for one managed endpoint'), and enumerates the exact data fields returned. It distinguishes itself from sibling bitdefender_list_endpoints by describing a single-endpoint detail operation rather than a listing operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly instructs that an endpoint ID from bitdefender_list_endpoints is required, establishing a clear prerequisite and implying the sequential use case. It does not explicitly contrast with sibling tools or state when not to use it, but the single-endpoint vs. list distinction is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bitdefender_get_policyA

Get full detail for one security policy: creator, created/last-modified dates, and its complete settings object. Requires a policy ID from bitdefender_list_policies.

ParametersJSON Schema
NameRequiredDescriptionDefault
policyIdYesPolicy ID, from bitdefender_list_policies.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It discloses useful behavioral detail: the call returns a complete settings object plus metadata fields, and it requires a policy ID from a specific sibling. It does not discuss errors or permissions, but as a read-only get-by-ID operation, the disclosed behavior is sufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no fluff. The primary action and return contents are front-loaded, and the prerequisite is stated in the second sentence. Every clause adds necessary information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter, no-output-schema get tool, the description covers the key things: what is returned, the scope of the object, and where the required ID comes from. Minor omissions like error behavior are not critical for this low-risk read operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema already documents policyId as coming from bitdefender_list_policies. The description repeats that same source requirement without adding new meaning beyond the schema, so it meets the baseline but does not exceed it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Get full detail for one security policy.' It enumerates the returned contents (creator, dates, settings object), which is a concrete scope. The reference to bitdefender_list_policies also distinguishes it from the 'list' sibling and from get_endpoint.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly establishes the prerequisite: 'Requires a policy ID from bitdefender_list_policies.' This tells the agent when and how to call the tool. It does not explicitly state when not to use alternatives, but the get-by-ID vs list distinction is strongly implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bitdefender_list_blocklist_itemsA

List file hashes present in the account's Blocklist - hash, hash algorithm (SHA256/MD5), source (incident/import/manual), source description, and filename where known. Read-only - this connector never adds to or removes from the Blocklist (addToBlocklist/removeFromBlocklist are excluded; see README's Scope section). Returns a paginated envelope: page/pagesCount/perPage/total/items.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoResults page number (1-based). Defaults to 1.
perPageNoItems per page (max 100). Defaults to 30.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly discloses the read-only safety profile and the paginated response envelope (page/pagesCount/perPage/total/items). It does not cover rate limits or auth errors, but for a simple list operation this is adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each earning its place: what is listed, the read-only guarantee, and the response shape. The most important information is front-loaded and there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list endpoint with no required parameters and no output schema, the description is complete: it names the resource, output fields, safety behavior, and pagination envelope. An agent has everything needed to select and invoke this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so page and perPage are already fully documented. The description only mentions the paginated envelope, which corroborates but does not add significant meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly specifies the action ('List'), the resource ('file hashes present in the account's Blocklist'), and the returned fields (hash, algorithm, source, source description, filename). This distinguishes it from sibling list tools like bitdefender_list_endpoints or bitdefender_list_policies, which target different resources.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context: use this tool to view blocklist file hashes, and it explicitly states the tool is read-only and will never add/remove entries. It does not name an alternative tool to use for mutation, but the sibling set contains no competing blocklist tool, so the guidance is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bitdefender_list_custom_groupsA

List the child groups directly under a group in the Network Inventory tree. Omit parentId to list the top-level 'Computers and Groups' and 'Deleted' groups. Group IDs from this response can be passed as parentId to bitdefender_list_endpoints and bitdefender_list_network_inventory. Returns a plain array (not a paginated envelope), each entry {id, name}.

ParametersJSON Schema
NameRequiredDescriptionDefault
parentIdNoParent group ID. Omit for the top-level groups.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden and it discloses the return format (plain array, not paginated) and the shape of entries ({id, name}), plus the fact that it returns only direct children. It does not mention auth or rate limits, but those are less critical for a read-only list operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences with no redundancy. The purpose is front-loaded, and each sentence adds value: scope, parameter behavior, and return format. Efficient and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one optional parameter and no output schema, the description covers everything needed: how to call it, what it returns, and how to use the result. Nothing essential is missing for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already describes parentId, but the description adds the specific top-level group names ('Computers and Groups' and 'Deleted') and the downstream usage of the returned IDs. This goes beyond the schema's generic 'Omit for the top-level groups' text.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (list), a specific resource (child groups), and a scope (under a group in the Network Inventory tree). It also clarifies top-level behavior and mentions how returned IDs can be reused with sibling tools, distinguishing it from list_endpoints and list_network_inventory.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides explicit guidance on when to omit parentId and how to chain the result with bitdefender_list_endpoints and bitdefender_list_network_inventory. While it doesn't explicitly state alternatives, the tool's role as a prerequisite group-lister is evident from the description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bitdefender_list_endpointsA

List managed/unmanaged endpoints (computers, VMs, EC2 instances) - name, FQDN, IP, MAC addresses, AD SID, group, and installed-agent flags. Endpoint IDs from this response are required by bitdefender_get_endpoint. Scope to a group with parentId (from bitdefender_list_custom_groups); omit for the root of the Network Inventory. Returns a paginated envelope: page/pagesCount/perPage/total/items.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoResults page number (1-based). Defaults to 1.
filtersNoOptional filters, structured in sections/subsections (any selected filter within a subsection matches; matches across sections AND). Some filters require a specific GravityZone license to be active, otherwise they are silently ignored.
perPageNoItems per page (max 100). Defaults to 30.
parentIdNoGroup ID to scope the listing to. Defaults to Computers and Groups (root).
isManagedNoTrue to return only managed endpoints. Omit to return both managed and unmanaged.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the behavioral disclosure burden. It discloses the paginated envelope (page/pagesCount/perPage/total/items), the scope behavior (root vs. group), and the returned fields. It does not explicitly state that this is a read-only operation or mention rate limits/auth requirements, but for a list operation the pagination and scope semantics are the most behaviorally relevant and are well covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but well-structured: it opens with the core purpose and returned fields, then adds the cross-tool dependency, scoping guidance, and pagination format. Every sentence adds distinct information, and there is no redundant or filler content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no output schema and no annotations, the description covers the key operational details: return fields, pagination envelope, group scoping, and the relationship to bitdefender_get_endpoint. The main gap is the lack of guidance distinguishing this from bitdefender_list_network_inventory, but the rest of the context is sufficient for an agent to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds value beyond the schema by explaining that parentId is sourced from bitdefender_list_custom_groups and that omission targets the Network Inventory root, and by describing the pagination envelope that applies to page/perPage. These details are not in the schema and meaningfully help an agent construct calls.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool as listing endpoints with a specific verb ('List') and resource ('managed/unmanaged endpoints'), and enumerates the returned attributes (name, FQDN, IP, MAC, AD SID, group, agent flags). It does not explicitly differentiate from the sibling bitdefender_list_network_inventory, which is a similar-sounding listing tool, so it is clear but not fully sibling-distinct.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides concrete usage context: endpoint IDs are required by bitdefender_get_endpoint, parentId comes from bitdefender_list_custom_groups, and omitting parentId returns the root of the Network Inventory. It lacks an explicit 'when not to use' statement or routing to bitdefender_list_network_inventory, but the context is strong enough for an agent to understand the primary use case.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bitdefender_list_network_inventoryA

List Network Inventory items (groups, computers, virtual machines, EC2 instances) under a container, with per-type detail. Broader than bitdefender_list_endpoints, which returns only endpoints - this also returns group nodes and lets you filter by item type. Returns a paginated envelope: page/pagesCount/perPage/total/items.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoResults page number (1-based). Defaults to 1.
filtersNoOptional filters, structured in sections/subsections (any selected filter within a subsection matches; matches across sections AND). Some filters require a specific GravityZone license to be active, otherwise they are silently ignored.
perPageNoItems per page (max 100). Defaults to 30.
parentIdNoContainer ID to scope the listing to. Defaults to the root of the Network Inventory.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It reveals the paginated envelope structure (page/pagesCount/perPage/total/items) and the container-scoped listing behavior. It does not mention rate limits, license-dependent filter behavior, or read-only guarantees, but the 'List' verb and explicit output shape provide meaningful transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no wasted words: the first states purpose and scope, the second names the sibling alternative and the output envelope. Key differentiators are front-loaded, making the description easy to scan and act on.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (4 parameters, nested filter objects, no output schema, no annotations), the description is largely complete: it gives resource, scope, sibling differentiation, and output envelope. The rich schema covers parameter details, so the description does not need to repeat them. Minor omissions like license-gated filter behavior are already present in the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the supported baseline is 3. The description adds no parameter-specific detail beyond mentioning type filtering and pagination, but that is acceptable because the schema already documents every parameter thoroughly, including default values and filter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('List') and resource ('Network Inventory items'), enumerates the item categories (groups, computers, virtual machines, EC2 instances), and explicitly distinguishes itself from bitdefender_list_endpoints by scope and filtering capability. An agent can clearly identify what this tool does and how it differs from its closest sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly names the alternative tool (bitdefender_list_endpoints), explains the difference (returns only endpoints vs. also group nodes), and notes the type-filtering capability. This gives an agent a clear routing rule: use this tool when broader inventory or type filtering is needed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bitdefender_list_policiesA

List security policies available to the account (id, name, owning company). Policy IDs from this response are required by bitdefender_get_policy. Returns a paginated envelope: page/pagesCount/perPage/total/items.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoResults page number (1-based). Defaults to 1.
perPageNoItems per page (max 100). Defaults to 30.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden and does well: 'List' signals a read operation, account scoping is stated, and the paginated envelope with field names is disclosed. It does not mention auth requirements or rate limits, but those are not critical for a simple listing operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact: one sentence for purpose and fields, one for the downstream dependency, and one for the response envelope. No wasted words, and the most important operational facts are front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple, read-only listing tool with two optional parameters and no output schema, the description is complete: it covers what the tool returns, the pagination shape, the item fields, and the relationship to bitdefender_get_policy. Nothing essential for correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents page and perPage. The description's mention of a paginated envelope adds relevant context but does not add new semantics beyond what the parameter descriptions already convey, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb-resource pair ('List security policies available to the account') and names the returned fields, so there is no ambiguity. It also distinguishes this tool from sibling list tools by focusing on security policies and explicitly linking its output to bitdefender_get_policy.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly states the primary use case: obtain policy IDs that then feed into bitdefender_get_policy. It does not explicitly contrast with sibling list tools, but the domain focus ('security policies') makes the appropriate context evident.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bitdefender_list_reportsA

List scheduled/instant reports configured on the account - id, name, report type, and run occurrence (hourly/daily/weekly/monthly). Report IDs from this response are required by bitdefender_get_report_download_links. Returns a paginated envelope: page/pagesCount/perPage/total/items.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoFilter by report name.
pageNoResults page number (1-based). Defaults to 1.
typeNoFilter by report type: 1 Antiphishing Activity, 2 Blocked Applications, 3 Blocked Websites, 5 Data Protection, 6 Device Control Activity, 7 Endpoint Modules Status, 8 Endpoint Protection Status, 9 Firewall Activity, 11 Malware Activity, 12 Malware Status, 13 Monthly License Usage, 14 Network Status, 15 On demand scanning, 16 Policy Compliance, 17 Security Audit, 18 Security Server Status, 19 Top 10 Detected Malware, 21 Top 10 Infected Endpoints, 22 Update Status, 23 Upgrade Status, 24 AWS Monthly Usage.
perPageNoItems per page (max 100). Defaults to 30.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the behavioral disclosure burden. It does this well by specifying the paginated envelope (page/pagesCount/perPage/total/items) and noting the returned fields including run occurrence. The read-only nature is implied by 'List', though not explicitly stated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three compact sentences with no filler: the resource and key output fields come first, then the critical downstream dependency, then the pagination envelope. Every sentence earns its place and the structure makes the tool easy to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a list endpoint with no output schema, the description is complete: it states what is listed, what fields are returned, that pagination is used, and how the results connect to another tool. Parameter details are already fully covered by the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All four parameters are fully described in the schema (100% coverage), so the description does not need to add parameter-level details. It does not add extra meaning beyond the schema for name, page, type, or perPage, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb, resource, and scope: listing scheduled/instant reports configured on the account. It also distinguishes this tool from sibling list tools by focusing on reports and explicitly connecting the response IDs to bitdefender_get_report_download_links.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when this tool is useful: it is the source of report IDs needed by bitdefender_get_report_download_links. It does not explicitly state exclusions or alternatives, but the downstream linkage is strong enough to guide correct usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bitdefender_list_scan_tasksA

List previously created on-demand scan tasks and their status (1=Pending, 2=In progress, 3=Finished). Read-only - this connector never creates a scan task (createScanTask is excluded; see README's Scope section). Returns a paginated envelope: page/pagesCount/perPage/total/items.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoFilter by task name. Prefix with '*' to match anywhere in the name; otherwise matches names starting with the keyword.
pageNoResults page number (1-based). Defaults to 1.
statusNo1=Pending, 2=In progress, 3=Finished.
perPageNoItems per page (max 100). Defaults to 30.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description fully bears the responsibility of behavioral disclosure. It clearly states the tool is read-only and will never create tasks, and it describes the paginated response envelope (page/pagesCount/perPage/total/items). This goes beyond basic expectations and gives the agent a clear understanding of what will happen and what the response looks like.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficient and well-structured. It leads with the primary purpose, immediately follows with a read-only guarantee, and ends with the return envelope. Every sentence adds valuable information, with no redundancy or fluff. It is appropriately sized for the tool's simplicity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that there is no output schema, the description compensates by explaining the pagination envelope. It also covers the read-only nature and status codes, which are key for correct usage. While it doesn't mention error handling or authentication, those are often covered in the README, which is referenced. For a list operation with 4 parameters, the description is sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already provides 100% coverage for all four parameters, including descriptions for the name filter wildcard behavior, pagination, and status enums. The tool description does not add any new information about the parameters beyond what the schema documents, so the baseline score of 3 applies as the description adds no extra semantic value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'List previously created on-demand scan tasks and their status'. It specifies the resource (scan tasks) and the verb (list), and distinguishes from sibling list tools by focusing on scan tasks specifically. The status codes are also mentioned, adding specificity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description notes it is read-only and explicitly says it never creates a scan task (createScanTask is excluded), which informs when not to use it for creation. It references the README for scope details, but does not explicitly name alternative tools for other operations. This is clear enough for most scenarios, though a direct alternative mention would elevate it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

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

  1. 10 tool updatesv0.1.0
    • First observedbitdefender_get_endpoint
    • First observedbitdefender_get_policy
    • First observedbitdefender_get_report_download_links
    • First observedbitdefender_list_blocklist_items
    • First observedbitdefender_list_custom_groups
    • First observedbitdefender_list_endpoints
    • First observedbitdefender_list_network_inventory
    • First observedbitdefender_list_policies
    • First observedbitdefender_list_reports
    • First observedbitdefender_list_scan_tasks

TDQS

A4.3/5.0

Scored across 10 tools

Disambiguation4/5

Most tools are clearly distinct by resource type and action, but list_endpoints and list_network_inventory overlap somewhat in what they return. The descriptions explicitly disambiguate them, so confusion is unlikely but possible.

Naming Consistency5/5

All tool names follow a consistent bitdefender_<verb>_<noun> pattern, using only list and get verbs. This makes the API predictable and easy to navigate.

Tool Count5/5

With 10 read-only tools covering endpoints, groups, inventory, scan tasks, policies, blocklist, and reports, the surface is well-scoped for a read-only GravityZone connector. No tool feels redundant or extraneous.

Completeness4/5

The server covers the main read-only visibility use cases for Bitdefender GravityZone, with list/get pairs for endpoints and policies plus list-only surfaces for scans, blocklist, and reports. Minor gaps exist, such as no detailed scan-task view or single blocklist-item lookup, but the core workflows are supported.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    D
    quality
    D
    maintenance
    Enables AI assistants to access real-time threat intelligence, malware sample metadata, and security analysis tools via integration with MalwareBazaar, VirusTotal, and Telegram.
    29
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Connects AI agents with the CrowdStrike Falcon platform to programmatically access detections, threat intelligence, host management, and other security capabilities for intelligent security analysis and automation.
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI assistants to query and manage OpenCTI threat intelligence data, including indicators, observables, reports, malware, and more, with read-only and optional write operations.
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables AI assistants to query Grafana datasources (Prometheus/Loki metrics and SQL databases like ClickHouse/Postgres/MySQL) and search or inspect dashboards through natural language, using read-only access to Grafana's API.
    6
    MIT