Skip to main content
Glama
WYRE-AI

Telivy MCP Server

by WYRE-AI

Telivy MCP Server

MCP server for Telivy's security assessment API for MSPs - external (surface) scans, deep-scan risk assessments, device inventory, M365/Google Workspace user exposure, PII summaries, and finding-level detail, for AI assistants and the WYRE Conduit gateway.

Authentication

Telivy authenticates with a single static API key, generated from the Telivy Portal (Account > Integrations). An OAuth2/Auth0 implicit flow also exists, but the API-key path is simpler and is what MSP integrations use, so that's what this connector uses. The key is sent as the x-api-key HTTP header.

Related MCP server: AlertLogic MCP Server

Configuration

Env var

Description

TELIVY_API_KEY

API key issued by Telivy.

MCP_TRANSPORT

stdio (default) or http.

AUTH_MODE

env (default, reads the var above) or gateway (credential arrives per-request via the X-Telivy-Api-Key header, 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

External scans

  • telivy_list_external_scans - list external (surface) scans, with search/sort/pagination.

  • telivy_get_external_scan - get a single external scan by assessment ID.

  • telivy_list_external_scan_findings - list the findings for an external scan.

  • telivy_get_external_scan_finding - get details for a single external scan finding by slug.

  • telivy_get_breach_data - get breach records surfaced for an external scan's domain(s).

Risk assessments

  • telivy_list_risk_assessments - list deep-scan risk assessments, with search/sort/pagination/status filters.

  • telivy_get_risk_assessment - get a single risk assessment by ID.

  • telivy_list_risk_assessment_devices - list all deep-scan devices for a risk assessment.

  • telivy_get_risk_assessment_device - get a single deep-scan device by ID.

  • telivy_get_risk_assessment_scan_status - get scan completion status across all devices.

  • telivy_list_m365_users - get Microsoft 365 user accounts with login status and MFA info.

  • telivy_list_gws_users - get Google Workspace user accounts with login and 2SV status.

  • telivy_get_pii_summary - get the PII exposure summary across all devices.

Findings, agent versions, and risk progress

  • telivy_get_agent_versions - get the latest deep-scan agent versions (Windows/Mac).

  • telivy_get_finding - get top-level finding details by slug (e.g. TYPO_SQUATTING, PERSONAL_EMAILS).

  • telivy_get_risk_progress - get a progress report (new/resolved/regressed/open findings) comparing two scan timestamp groups.

Scope

This is a v1, read-only MSP fleet/security-visibility surface, matching this wave's convention of scoping connectors to monitoring/visibility and deferring provisioning-style writes. Explicitly out of scope for now:

  • All write endpoints: creating or updating external scans and risk assessments, rescan-all, uninstall-all, rescanning a single device, convert-to-risk-assessment, and updating monitoring settings. These are provisioning/destructive actions, not read-only visibility.

  • The binary report-download endpoints (GET .../external-scans/{id}/report, GET .../risk-assessments/{id}/report) - they return files, not the structured JSON this connector's tools deal in.

  • GET /api/v1/security/risk-assessments/{id}/domain-change-preview - a preview endpoint for an in-flight domain-change write, out of scope alongside the write it previews.

They can be added as a follow-up if there's demand.

Development

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

Docker

docker build -t telivy-mcp .
docker run -p 8080:8080 -e TELIVY_API_KEY=... telivy-mcp

Available Tools

16 tools
telivy_get_agent_versionsA

Get the latest Telivy deep-scan agent versions available (Windows and Mac).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full disclosure burden. 'Get' implies a read-only operation, and the description conveys the core behavior clearly. However, it does not mention potential response format, error behavior, or any access prerequisites, which are useful for a tool with no schema or annotation context.

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 single, front-loaded sentence with no filler. It communicates the action, resource, scope, and platforms efficiently; every word contributes to the agent's understanding.

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 zero-parameter read-only tool, the description covers the essential details: what is returned and for which platforms. It does not specify the exact return shape or freshness guarantees, but the absence of an output schema and parameters makes the description reasonably complete for 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 tool accepts zero parameters, so there is nothing for the description to clarify about parameter behavior. The mention of Windows and Mac is a helpful contextual detail even though it is not parameter-driven. A baseline of 4 is appropriate for a zero-parameter tool.

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 ('Get'), a clear resource ('Telivy deep-scan agent versions'), and the platforms covered ('Windows and Mac'). This distinguishes the tool from all sibling tools, which focus on scans, breaches, users, and risk assessments rather than agent version information.

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

Usage Guidelines3/5

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

The tool's purpose implies when to use it — when the agent needs the latest Telivy agent versions — and no sibling appears to overlap with this functionality. However, the description does not explicitly discuss alternatives or exclusions, leaving usage guidance mostly implicit.

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

telivy_get_breach_dataB

Get breach records surfaced for an external scan's domain(s) (dark-web/credential exposure).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesAssessment ID.

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries full behavioral burden. It implies a read operation ('Get') and hints at sensitive data ('dark-web/credential exposure'), but it does not disclose permissions, response shape, sensitivity handling, or any side effects. For a no-annotation tool, this is a significant gap.

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?

A single, tight sentence that front-loads the action and resource, then adds a clarifying parenthetical. Every word earns its place, and there is no filler or repetition.

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

Completeness2/5

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

The one-parameter tool has no output schema and no annotations, so the description must clearly convey the identifier semantics. It fails to explain the relationship between the 'Assessment ID' and the 'external scan's domain(s)' it references. This ambiguity can lead an agent to pass the wrong ID type. Return structure is also unaddressed.

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 baseline is 3. The description adds no extra parameter meaning; it leaves ambiguous how the 'Assessment ID' maps to the 'external scan's domain(s)' reference. It does not contradict the schema, but it also fails to enrich it.

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 states a specific verb ('Get'), a resource ('breach records'), and a distinctive context ('surfaced for an external scan's domain(s)', 'dark-web/credential exposure'). This differentiates it from generic external-scan finding tools, though it does not explicitly name a sibling it is not.

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

Usage Guidelines3/5

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

Usage is implied: an agent looking for breach/credential-exposure data tied to an external scan would reasonably select this tool. However, there is no explicit when-to-use guidance, no mention of alternatives, and no exclusion criteria, so the agent must infer the right context.

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

telivy_get_external_scanC

Get a single external scan by assessment ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesAssessment ID.

TDQS

C2.8/5.0
Behavior1/5

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

No annotations are provided, so the description carries the full burden. It only restates the name, providing no details on side effects, errors, permissions, or response format. It does not even explicitly state it's read-only, though implied.

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

Conciseness4/5

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

One sentence with no fluff, efficient. However, it's minimal and could be expanded with useful details, but conciseness itself is fine.

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

Completeness3/5

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

For a simple one-parameter get operation, the description is minimal but adequate to identify the call. Missing context about return value, error handling, or relation to other tools, but given low complexity, it's passable. However, without annotations or output schema, it could be more 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?

Schema coverage is 100% and the schema describes 'id' as 'Assessment ID.' The description repeats this by saying 'by assessment ID,' adding no extra meaning such as format, validation, or example.

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?

States a clear verb ('Get') and resource ('single external scan') with the key identifier ('assessment ID'). Distinguishes from list operation by 'single' and from finding-get by resource type. However, it doesn't explicitly differentiate from other get tools but the resource is distinct.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus siblings like telivy_list_external_scans or telivy_get_external_scan_finding. It doesn't mention any prerequisites or exclusions.

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

telivy_get_external_scan_findingB

Get details for a single external scan finding by slug.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesAssessment ID.
slugYesFinding slug.

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the operation is a read ('Get details') but doesn't disclose any potential side effects, authentication requirements, rate limits, or what happens if the slug is invalid. For a read operation, this is a moderate gap but not severe.

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 single, concise sentence that front-loads the action and resource. Every word earns its place, with no wasted text or redundancy.

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

Completeness3/5

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

For a simple read operation with two fully documented parameters, the description is mostly complete. However, without annotations or an output schema, it doesn't clarify what the response contains or whether any special conditions apply. The sibling tools suggest a broader security assessment context, but the description doesn't leverage that to add context.

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 both parameters ('Assessment ID' and 'Finding slug'). The description adds minimal meaning beyond the schema, only clarifying that the slug identifies the finding. Baseline 3 is appropriate since the schema does the heavy lifting.

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 states a specific verb ('Get') and resource ('details for a single external scan finding by slug'), which clearly distinguishes it from sibling tools like telivy_list_external_scan_findings. However, it doesn't explicitly differentiate from telivy_get_finding, which could be ambiguous without further context.

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

Usage Guidelines3/5

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

The description implies usage for retrieving a single finding by slug, but provides no explicit guidance on when to use this tool versus alternatives like telivy_get_finding or telivy_list_external_scan_findings. The context is clear enough for basic use, but lacks explicit exclusions or alternative routing.

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

telivy_get_findingA

Get top-level finding details by slug (e.g. TYPO_SQUATTING, PERSONAL_EMAILS).

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesFinding slug.

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only says the tool retrieves details; it does not describe the return format, what happens when a slug is invalid or missing, permissions, or any rate-limit implications.

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 one short, front-loaded sentence with no filler. It communicates the operation, resource, lookup mechanism, and examples efficiently.

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

Completeness3/5

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

For a simple one-parameter get-by-slug tool, this is mostly sufficient to invoke it. However, it does not explain what 'top-level finding details' contain or how this finding type relates to sibling finding tools, and there is no output schema to fill that gap.

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 fully describes the single slug parameter, so the baseline is 3. The description adds value by providing concrete slug examples, TYPO_SQUATTING and PERSONAL_EMAILS, which clarify the expected format beyond just 'Finding slug.'

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 operation, 'get', on a specific resource, 'top-level finding details', keyed by slug, with concrete examples. The 'top-level' qualifier also helps distinguish it from external-scan finding tools.

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

Usage Guidelines3/5

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

The 'top-level' wording and slug examples imply when to use this tool, but there is no explicit guidance about alternatives such as telivy_get_external_scan_finding or when not to use it. The usage context is only implied, not stated.

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

telivy_get_pii_summaryB

Get the PII exposure summary across all devices in a risk assessment.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesAssessment UUID.

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only indicates a read operation ('Get') and the aggregate scope; it does not describe what the summary contains, how results are structured, whether devices without PII are included, or any error behavior.

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 single, front-loaded sentence with no redundant wording. It immediately communicates the action, resource, and scope without spending words on obvious details.

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

Completeness3/5

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

For a simple getter with one well-documented parameter, the description is adequate for making the call. However, with no output schema and no annotations, it would benefit from stating what kind of data the PII exposure summary includes or how the summary is aggregated, leaving some ambiguity about the return value.

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 single parameter 'id' is fully described in the schema as 'Assessment UUID', and the description's 'in a risk assessment' reinforces that the id refers to a risk assessment. Since schema coverage is 100%, the description adds no new parameter-level information beyond confirming the assessment context.

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 states a specific action and resource: getting the PII exposure summary across all devices within a risk assessment. This clearly distinguishes it from per-device or individual-assessment tools, though it does not explicitly name sibling alternatives.

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

Usage Guidelines3/5

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

The phrase 'across all devices in a risk assessment' implies an aggregate-scope use case and suggests this is not for per-device queries. However, there is no explicit guidance about when to prefer this tool over alternatives like telivy_get_risk_assessment_device or telivy_get_breach_data.

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

telivy_get_risk_assessmentB

Get a single risk assessment by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesAssessment UUID.

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Get' implies a read operation, but nothing is said about not-found behavior, response contents, authorization needs, or whether the returned assessment is a full object or a summary.

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 single, direct sentence with no filler. It front-loads the action and resource and communicates the one essential constraint (by ID) efficiently.

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

Completeness3/5

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

The tool is simple: one required parameter and no nested objects. Still, with no output schema and no annotations, the agent is left to infer what 'a risk assessment' means in the response and what to expect on failure. It is minimally viable but has clear gaps.

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 coverage is 100% and the id parameter is already described as 'Assessment UUID.' The description adds no additional meaning beyond the schema, so the baseline of 3 applies.

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 states a specific action ('Get'), a resource ('risk assessment'), and scope ('single ... by ID'). It is distinguishable from list_risk_assessments and the more specific device/scan-status getters, though it does not explicitly name those siblings.

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

Usage Guidelines2/5

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

There is no guidance about when to use this tool versus telivy_list_risk_assessments or the other risk-assessment getters. 'By ID' implies the agent should already have an assessment UUID, but the description does not state prerequisites, exclusions, or alternative tools.

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

telivy_get_risk_assessment_deviceB

Get a single deep-scan device by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesAssessment UUID.
deviceIdYesDeep scan target (device) UUID.

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states that it retrieves a single item; it does not mention required access, error cases, the response shape, or whether the device is scoped under the assessment. The description is not misleading but adds minimal behavioral context beyond the name and schema.

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 single efficient sentence with no filler. It leads with the core action and object, making it easy to scan.

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

Completeness3/5

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

For a simple get-by-ID tool with two well-documented parameters, the description is arguably sufficient to invoke it correctly. However, it lacks context about when to use this tool versus related risk assessment tools and does not clarify what a 'deep-scan device' is in relation to the assessment and device UUIDs.

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%, with both 'id' and 'deviceId' clearly documented as UUIDs. The description does not add further semantic meaning beyond those schema descriptions, 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.

Purpose4/5

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

The description states the action ('Get') and resource ('a single deep-scan device by ID'), clearly distinguishing it from the sibling list tool. However, the phrase 'deep-scan device' is somewhat jargon-heavy and the relationship to the required assessment UUID is not explicitly explained.

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

Usage Guidelines3/5

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

The description implies usage when you need one specific device by ID, and the sibling list tool implies an alternative when listing all devices. But there is no explicit guidance about when to choose this over telivy_list_risk_assessment_devices or how the assessment UUID and device ID interact.

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

telivy_get_risk_assessment_scan_statusA

Get scan completion status across all devices in a risk assessment.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesAssessment UUID.

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. 'Get' implies a read-only operation and the scope is clear, but the description does not explain what 'completion status' means, whether results are aggregated or per-device, or what kind of response to expect. There is no mutating or destructive implication, so this is minimally transparent.

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 single direct sentence that front-loads the action and scope with no filler. Every word contributes meaning, making it appropriately concise for a simple one-parameter getter.

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

Completeness3/5

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

For a simple one-parameter tool with full schema coverage, the description is mostly adequate, but it never defines what 'completion status' looks like (e.g., aggregate counts, per-device booleans, or a status enum). Combined with the lack of usage routing, an agent may still be unsure what the call returns or when to prefer this over sibling tools.

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 input schema already fully documents the only parameter, id, as 'Assessment UUID', giving 100% schema coverage. The description adds no additional parameter-level meaning, so the baseline score 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 states a specific verb ('Get') and resource ('scan completion status across all devices in a risk assessment'). It clearly distinguishes this from sibling tools like telivy_get_risk_assessment_device by emphasizing the all-devices aggregate scope.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool versus alternatives such as telivy_list_risk_assessment_devices or telivy_get_risk_assessment_device. It does not mention conditions, exclusions, or context that would help an agent choose among the closely related risk-assessment siblings.

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

telivy_get_risk_progressA

Get a risk progress report comparing two scan timestamp groups for an assessment (new/resolved/regressed/open findings).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesAssessment UUID.
currentTimestampGroupYesThe current/most recent scan timestamp group.
compareWithTimestampGroupNoThe scan timestamp group to compare against. Defaults to the previous scan if omitted.

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses that the tool compares two timestamp groups and reports on finding categories, which gives a sense of the operation. However, it does not describe the output format, whether it returns counts, lists, or both, or any edge cases (e.g., what happens if no previous scan exists). Since the tool is a read operation, the lack of side-effect disclosure is acceptable, but the return structure is unspecified.

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 single sentence that front-loads the action and resource, then specifies the comparison scope and categories. There is no filler or redundancy; every word earns its place.

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 that there is no output schema, the description should hint at the return content. It does mention the categories of findings, which gives a good sense of what the report will contain. However, it does not clarify whether the report is a summary, a detailed list, or includes counts. For a tool with three simple parameters, this is nearly sufficient, but a bit more detail about the response shape would make it 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?

Schema description coverage is 100%, so the baseline is 3. The description adds context about the purpose of comparison (new/resolved/regressed/open) but does not add meaning beyond what the parameter descriptions already state. The parameter descriptions themselves are clear, so the description adds minimal extra value here.

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 ('Get') and resource ('risk progress report'), and specifies the comparison scope ('two scan timestamp groups') plus the categories of findings (new/resolved/regressed/open). This clearly differentiates it from sibling tools like telivy_get_risk_assessment, which likely returns overall assessment details, and telivy_get_risk_assessment_scan_status, which focuses on scan status rather than progress.

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

Usage Guidelines3/5

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

The description implies when to use this tool (when comparing risk progress between two scan groups) but provides no explicit guidance on when not to use it or which alternative to choose. For example, it doesn't distinguish from telivy_get_risk_assessment or telivy_get_risk_assessment_scan_status. The usage context is clear enough but not exhaustive.

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

telivy_list_external_scan_findingsC

List the findings for an external scan.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesAssessment ID.

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It only states the basic operation and does not disclose response shape, pagination behavior, permissions, or any caveats. 'List' implies read-only behavior, but nothing is made explicit.

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 single sentence with no filler. The action and object are front-loaded and efficiently stated.

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

Completeness2/5

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

The schema covers the parameter, but the definition lacks context about how to obtain the Assessment ID, what the response contains, or how this tool relates to sibling list/get tools. With no output schema and no annotations, the definition is too thin for confident selection and invocation.

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 provides 100% coverage for the single parameter, describing 'id' as 'Assessment ID.' The description adds no additional parameter-level meaning, so the baseline of 3 applies.

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 has a specific verb, 'List,' and a specific resource, 'findings for an external scan.' The plural 'findings' and the word 'List' help distinguish it from telivy_get_external_scan_finding and telivy_get_external_scan. However, it does not explicitly clarify the relationship between an external scan and the required Assessment ID, nor does it contrast itself with sibling tools.

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

Usage Guidelines2/5

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

There is no explicit guidance on when to use this tool versus alternatives such as telivy_get_external_scan_finding, telivy_get_external_scan, or telivy_get_finding. The intended use is only implied by the tool name and the one-line description.

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

telivy_list_external_scansB

List external (surface) scans - lightweight, agentless domain/email security assessments.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum results to return. Defaults to 100.
offsetNoPagination offset.
searchNoFree-text search query.
agencyIdNoTELIVY_ADMIN-only: scope results to a specific agency (ignored by non-admin API keys).
sortOrderNoSort order. Defaults to DESC.
assessmentSortByNoField to sort by. Defaults to createdAt.

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description carries the burden, and 'List' plus 'lightweight, agentless' communicates a non-mutating, low-impact read operation. It does not disclose response shape, pagination behavior, or admin/auth restrictions, though the schema partially covers limit/offset and agencyId.

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 entire description is one front-loaded sentence with no filler or repeated information. It conveys the essential purpose and nature of the tool in about ten words.

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

Completeness3/5

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

For a simple list operation with a fully documented schema, the description is mostly adequate, but it lacks usage guidance and any indication of the response format since no output schema exists. Sibling tool names provide some context, though not enough to fully replace explicit guidance.

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 six parameters already have descriptions in the input schema (100% coverage), including enums for sortOrder and assessmentSortBy. The tool description adds no parameter-specific meaning, so the baseline of 3 is appropriate.

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 uses a specific verb ('List') and resource ('external (surface) scans'), and clarifies the item type as 'lightweight, agentless domain/email security assessments.' It does not explicitly distinguish itself from sibling tools, but the resource term is unambiguous enough.

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

Usage Guidelines2/5

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

No guidance is provided about when to use this tool versus telivy_list_external_scan_findings, telivy_list_risk_assessments, or telivy_get_external_scan. The description only defines what the tool does, leaving selection to the agent to infer from names. This is a clear gap.

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

telivy_list_gws_usersA

Get Google Workspace user accounts with login and 2SV status for a risk assessment.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesAssessment UUID.

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are present, so the description carries the burden. It communicates a read-only retrieval operation ('Get') and the kind of data returned (login and 2SV status), but it does not disclose output format, pagination, empty-result behavior, or permissions. It does not contradict any annotations.

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 single sentence with the action and resource front-loaded and no filler. Every phrase adds relevant meaning.

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 one-parameter list endpoint with no output schema, the description and schema supply enough to invoke it correctly. It could be more explicit about not including M365 users or about pagination, but these are minor given the low complexity.

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 coverage is 100%, with the only parameter already described as 'Assessment UUID', so the baseline is 3. The description's 'for a risk assessment' reinforces the id's role but adds no format or type detail 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 states a specific verb ('Get'), a specific resource ('Google Workspace user accounts'), and the distinguishing scope ('login and 2SV status for a risk assessment'). This differentiates it from telivy_list_m365_users and other list tools.

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

Usage Guidelines3/5

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

The phrase 'for a risk assessment' and the required assessment id imply the context, but there is no explicit guidance on when to choose this tool over alternatives like telivy_list_m365_users. No exclusions or decision rules are provided.

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

telivy_list_m365_usersA

Get Microsoft 365 user accounts with login status and MFA info for a risk assessment.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesAssessment UUID.

TDQS

A3.8/5.0
Behavior3/5

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

There are no annotations, so the description carries the full burden. It does disclose the kind of data returned (login status and MFA info) and the name/verb imply a read-only list operation, but it does not state whether the operation is read-only, describe response structure, or mention any permissions or limitations. This is adequate but not rich.

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 entire description is one focused sentence that front-loads the resource and purpose without any filler. Every phrase adds value: the resource, the data content, and the context.

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 simple one-parameter schema, this description is mostly sufficient: an agent knows what data to expect and how the tool fits into a risk assessment. It could be more complete by explicitly stating that it returns a list of user accounts or by describing the response format, but the missing details are minor for this tool's simplicity.

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 single required parameter 'id' is already fully documented as 'Assessment UUID.' The description adds no additional parameter meaning beyond reinforcing the risk-assessment context, which keeps it at the baseline for high schema coverage.

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 action ('Get'), the resource ('Microsoft 365 user accounts'), and the specific data returned ('login status and MFA info'). It also ties the tool to a risk-assessment context and distinguishes it from sibling tools like telivy_list_gws_users by naming Microsoft 365 explicitly.

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

Usage Guidelines3/5

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

The phrase 'for a risk assessment' gives useful context, implying this tool should be used when M365 user data is needed during an assessment. However, there is no explicit when-to-use versus alternatives, no exclusions, and no mention of the sibling Google Workspace tool, so usage guidance is mostly implied rather than stated.

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

telivy_list_risk_assessment_devicesA

List all deep-scan devices for a risk assessment.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesAssessment UUID.

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description must carry the behavioral burden itself. It clearly indicates a read-only enumeration operation, but it does not disclose details such as pagination, return shape, or whether 'deep-scan devices' implies any filtering. There is no contradiction or misleading side-effect information.

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 one short, front-loaded sentence with no filler or repetition. Every word contributes to identifying the action, target, and scope.

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 simple one-parameter list operation, the description plus schema are largely sufficient. There is no output schema, but the return concept ('devices') is implied by the description; additional detail about pagination or the meaning of 'deep-scan' would improve completeness but is not critical for basic invocation.

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 input schema fully describes the single parameter 'id' as an 'Assessment UUID' (100% schema description coverage), so the description does not need to add parameter details. The description adds no additional parameter meaning, matching the baseline for complete schema coverage.

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 ('List') and resource ('deep-scan devices for a risk assessment'), clearly distinguishing it from sibling tools like telivy_get_risk_assessment_device (single device) and telivy_list_risk_assessments (list assessments). The scope is explicit: all devices for a particular assessment.

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

Usage Guidelines3/5

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

The phrase 'for a risk assessment' implies the intended context of calling with an assessment UUID, but it does not explicitly say when to prefer this over related tools or when not to use it. No alternatives or exclusions are mentioned, leaving usage guidance mostly inferential.

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

telivy_list_risk_assessmentsB

List risk assessments - deep-scan (agent-based) fleet security assessments, optionally filtered by scan status.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum results to return. Defaults to 100.
offsetNoPagination offset.
searchNoFree-text search query.
agencyIdNoTELIVY_ADMIN-only: scope results to a specific agency (ignored by non-admin API keys).
sortOrderNoSort order. Defaults to DESC.
scanStatusNoFilter to one or more scan statuses.
assessmentSortByNoField to sort by. Defaults to createdAt.

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavior fully. It only states the tool lists risk assessments and optionally filters by scan status. It does not mention that the list is read-only (likely safe), nor whether it returns large datasets, handles pagination limits, or if there are any side effects. For a list tool, this is a moderate gap.

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

Conciseness4/5

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

The description is one sentence, front-loaded with the core purpose and optional filtering. It is concise and free of fluff, earning a 4 for efficiency while retaining essential information.

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

Completeness2/5

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

Given the tool has 7 optional parameters, no output schema, and no annotations, the description is too brief. It does not explain default behaviors (e.g., limit of 100, sort order) or how to use filters effectively, nor does it mention the absence of sorting/filtering combinations. An agent would need to rely on the schema, but the description adds little context.

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%, as every parameter has a description in the schema. The description adds minimal extra meaning beyond the schema, only clarifying that results are 'deep-scan' and filterable by scan status. Since the schema already fully documents parameters, a baseline of 3 is appropriate.

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 states the tool lists risk assessments and specifies they are deep-scan (agent-based) fleet security assessments. It distinguishes from siblings like telivy_list_external_scans by the 'deep-scan' qualifier, but does not explicitly name the sibling it differs from.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool versus alternatives. The description implies it is for listing risk assessments, but does not mention when to use telivy_get_risk_assessment or other list tools. No exclusions or conditions are stated.

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. 16 tool updatesv0.1.0
    • First observedtelivy_get_agent_versions
    • First observedtelivy_get_breach_data
    • First observedtelivy_get_external_scan
    • First observedtelivy_get_external_scan_finding
    • First observedtelivy_get_finding
    • First observedtelivy_get_pii_summary
    • First observedtelivy_get_risk_assessment
    • First observedtelivy_get_risk_assessment_device
    • First observedtelivy_get_risk_assessment_scan_status
    • First observedtelivy_get_risk_progress
    • First observedtelivy_list_external_scan_findings
    • First observedtelivy_list_external_scans
    • First observedtelivy_list_gws_users
    • First observedtelivy_list_m365_users
    • First observedtelivy_list_risk_assessment_devices
    • First observedtelivy_list_risk_assessments

TDQS

A3.5/5.0

Scored across 16 tools

Disambiguation4/5

Most tools map cleanly to distinct resources and actions, with clear list/get pairs for scans, assessments, findings, and devices. The only notable ambiguity is between get_external_scan_finding and generic get_finding, since both retrieve finding-like details by slug.

Naming Consistency5/5

All tools follow a consistent telivy_<verb>_<object> snake_case pattern, using only list and get verbs. Minor semantic differences like get_breach_data or get_risk_progress still fit the established naming convention.

Tool Count4/5

At 16 tools, the set is one above the ideal range but each tool represents a distinct resource view or operation needed for the two main assessment workflows. It feels slightly heavy rather than bloated.

Completeness4/5

The external scan and risk assessment surfaces are well covered, including findings, devices, breach data, user accounts, PII, progress, and agent versions. Gaps include no direct listing of risk-assessment findings or a way to enumerate finding slugs without prior knowledge.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    C
    quality
    C
    maintenance
    Enables AI assistants to fully access and manage SyncroMSP resources including tickets, customers, assets, invoices, and over 30 resource types through 180+ API endpoints.
    100
    16 npm
    10
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Brings the full AlertLogic MDR platform into AI assistants, exposing 473+ tools for incident response, log search, SOAR automation, and multi-account security operations at MSSP scale.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI assistants to query an organization's device posture, compliance, policies, and software/CVE status through a remote, read-only, OAuth-secured MCP endpoint.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI assistants to manage MSP-multi-tenant email security: organizations, domains, users, licensing, features, subscription packages, and email flow reporting.
    Apache 2.0