Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

io.github.rafaelgaspar/longhorn-mcp

NPM · LONGHORN-MCP

MCP server for the Longhorn distributed storage manager API, with a --read-only mode.

Available components

−1 this week 89 Trust /100

Last scanned (19 hours ago)

Scores higher than 91% of npm servers

Category Cloud Infrastructure

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security100
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • 0 of 6 dependencies flagged as unhealthy. View diagnostics → Pass
Provenance & Transparency97
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to rafaelgaspar/longhorn-mcp). View diagnostics → Pass
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 7 days ago).Pass
  • Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability71
  • AI-judged instruction clarity (good).Pass
  • Tool/resource definitions use about 9544 tokens (~87/item across 109 items; 109 tools + 0 resources), lean.Pass
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management90
  • Stability observed for 27 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage70
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 11% of tool parameters carry a description.Partial
Tool Safety75
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 0 of 17 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "volume_delete" implies "delete" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
  • An AI judge read all 110 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 16 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 87 to 90. That category is still filling its 30-day observation window: 26 days of observed history at the previous scan, 27 at this one. The score rises as the window fills, whether or not the server changes.

  • 14 Oct 26 +39
    • Injection markers: unverified → pass ▲ security
    • Tool coverage: unverified → 100 ▲ functional
    • Stability: unverified → 0.83 ▲ functional
    • MCP protocol: unverified → pass ▲ functional
    • Package version: 0.1.7 → 0.1.8 functional
  • 13 Oct 26 0
    • Package version: 0.1.7 → 0.1.8 functional
  • 12 Oct 26 0
    • Security disclosure: unverified → fail ▼ functional
    • Package version: 0.1.7 → 0.1.8 functional
  • 11 Oct 26 −41
    • Stability: pass → unverified ▼ security
    • Tool safety: pass → unverified ▼ security
    • Capabilities: pass → unverified ▼ functional
    • Security disclosure: fail → unverified ▼ functional
    • Tool coverage: 100 → unverified ▼ functional
    • First check of Schema quality: unverified functional
    • Package version: 0.1.7 → 0.1.8 functional
  • 4 Oct 26 0
    • Stability: 0.97 → pass security
  • 3 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.

  • 30 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 16 Oct 2026 · Analysed npm/longhorn-mcp@0.1.8

Provenance Verified

A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.

Result Verified
Ecosystem npm
Reason Verified
Discovered via Registry attestation endpoint
Source repo rafaelgaspar/longhorn-mcp
Certificate issuer https://token.actions.githubusercontent.com
Certificate SAN https://github.com/rafaelgaspar/longhorn-mcp/.github/workflows/release.yaml@refs/tags/v0.1.8
Rekor log index 3146177958
Predicate type SLSA build provenance https://slsa.dev/provenance/v1
Subject digest sha512:e0c110ff3e08415789a0aa25a2193db7fb230ecc853f7447b9b6a5db9e456a3c5a0dce6ceda2cf4d375b1913ffe157bd27643f138ce632df8a03dda62

Background: How many MCP packages publish verified provenance →

Dependencies 6 packages
Packages resolved 6
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 109 exposed · ~8,336 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
recurringjob_list ~46

List Longhorn recurring jobs. Longhorn docs: https://longhorn.io/docs/1.13.0/snapshots-and-backups/scheduling-backups-and-snapshots/

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

recurringjob_update ~195

Update an existing Longhorn recurring job. Fields you omit are left unchanged (read-merge-write under the hood — the API itself does a full replace on PUT). Lowering `retain` can prune existing snapshots/backups beyond the new limit. Destructive. Do not call this unless the user has explicitly authorized it in this conversation — never proactively, speculatively, or as a side effect of another task. Longhorn docs: https://longhorn.io/docs/1.13.0/snapshots-and-backups/scheduling-backups-and-snapshots/

NameTypeReqDescription
concurrencyinteger––
cronstring––
groupsarray––
labelsobject––
namestringyes–
parametersobject––
retaininteger––
retainAgestring––
retentionPolicystring––
taskstring––

No output schema declared.

No examples provided.

setting_get ~44

Get a single Longhorn setting by name. Longhorn docs: https://longhorn.io/docs/1.13.0/references/settings/

NameTypeReqDescription
namestringyes–

No output schema declared.

No examples provided.

setting_list ~35

List all Longhorn global settings. Longhorn docs: https://longhorn.io/docs/1.13.0/references/settings/

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

setting_update ~104

Update a Longhorn global setting value. Some settings (Longhorn's own "Danger Zone" category) affect every volume in the cluster. Destructive. Do not call this unless the user has explicitly authorized it in this conversation — never proactively, speculatively, or as a side effect of another task. Longhorn docs: https://longhorn.io/docs/1.13.0/references/settings/

NameTypeReqDescription
namestringyes–
valuestringyes–

No output schema declared.

No examples provided.

shard_get ~46

Get a single shard by id. Longhorn docs: https://longhorn.io/docs/1.13.0/advanced-resources/sharding-storage/

NameTypeReqDescription
idstringyes–

No output schema declared.

No examples provided.

shard_list ~49

List erasure-coded shards backing V2 data engine sharded volumes (experimental feature). Longhorn docs: https://longhorn.io/docs/1.13.0/advanced-resources/sharding-storage/

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

shardgroup_get ~48

Get a single shard group by id. Longhorn docs: https://longhorn.io/docs/1.13.0/advanced-resources/sharding-storage/

NameTypeReqDescription
idstringyes–

No output schema declared.

No examples provided.

shardgroup_list ~57

List shard groups (erasure-coding sets of shards) backing V2 data engine sharded volumes (experimental feature). Longhorn docs: https://longhorn.io/docs/1.13.0/advanced-resources/sharding-storage/

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

snapshot_get ~61

Get a single snapshot by id (plain read-only GET — available in --read-only mode). Longhorn docs: https://longhorn.io/docs/1.13.0/snapshots-and-backups/setup-a-snapshot/

NameTypeReqDescription
idstringyes–

No output schema declared.

No examples provided.

snapshot_list ~54

List all snapshots across all volumes (plain read-only GET — available in --read-only mode). Longhorn docs: https://longhorn.io/docs/1.13.0/snapshots-and-backups/setup-a-snapshot/

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

snapshotgroup_create ~119

Create a snapshot group that snapshots multiple volumes together. Set exactly one of `volumes` (explicit volume names) or `volumeSelector` (label query) — not both, not neither. Longhorn docs: https://longhorn.io/docs/1.13.0/snapshots-and-backups/csi-snapshot-support/csi-volume-group-snapshot/

NameTypeReqDescription
deadlineSecondsinteger––
labelsobject––
namestringyes–
volumeSelectorobject––
volumesarray––

No output schema declared.

No examples provided.

snapshotgroup_delete ~91

Delete a Longhorn snapshot group. Destructive. Do not call this unless the user has explicitly authorized it in this conversation — never proactively, speculatively, or as a side effect of another task. Longhorn docs: https://longhorn.io/docs/1.13.0/snapshots-and-backups/csi-snapshot-support/csi-volume-group-snapshot/

NameTypeReqDescription
namestringyes–

No output schema declared.

No examples provided.

snapshotgroup_get ~58

Get a single snapshot group by name. Longhorn docs: https://longhorn.io/docs/1.13.0/snapshots-and-backups/csi-snapshot-support/csi-volume-group-snapshot/

NameTypeReqDescription
namestringyes–

No output schema declared.

No examples provided.

snapshotgroup_list ~66

List Longhorn snapshot groups (coordinated multi-volume snapshots introduced in Longhorn 1.13.0). Longhorn docs: https://longhorn.io/docs/1.13.0/snapshots-and-backups/csi-snapshot-support/csi-volume-group-snapshot/

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

snapshotgroup_preview ~105

Dry-run which volumes would be included in a snapshot group for the given `volumes` or `volumeSelector` (collection `preview` action — POST, so unavailable in --read-only mode). Set exactly one of those fields. Longhorn docs: https://longhorn.io/docs/1.13.0/snapshots-and-backups/csi-snapshot-support/csi-volume-group-snapshot/

NameTypeReqDescription
volumeSelectorobject––
volumesarray––

No output schema declared.

No examples provided.

supportbundle_get ~47

Get a single support bundle by id. Longhorn docs: https://longhorn.io/docs/1.13.0/troubleshoot/support-bundle/

NameTypeReqDescription
idstringyes–

No output schema declared.

No examples provided.

supportbundle_list ~39

List generated Longhorn support bundles. Longhorn docs: https://longhorn.io/docs/1.13.0/troubleshoot/support-bundle/

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

systembackup_create ~50

Create a new Longhorn system backup. Longhorn docs: https://longhorn.io/docs/1.13.0/advanced-resources/system-backup-restore/

NameTypeReqDescription
namestringyes–

No output schema declared.

No examples provided.

systembackup_delete ~83

Delete a Longhorn system backup. Destructive. Do not call this unless the user has explicitly authorized it in this conversation — never proactively, speculatively, or as a side effect of another task. Longhorn docs: https://longhorn.io/docs/1.13.0/advanced-resources/system-backup-restore/

NameTypeReqDescription
namestringyes–

No output schema declared.

No examples provided.

systembackup_get ~50

Get a single system backup by name. Longhorn docs: https://longhorn.io/docs/1.13.0/advanced-resources/system-backup-restore/

NameTypeReqDescription
namestringyes–

No output schema declared.

No examples provided.

systembackup_list ~41

List Longhorn system backups. Longhorn docs: https://longhorn.io/docs/1.13.0/advanced-resources/system-backup-restore/

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

systemrestore_create ~101

Restore the Longhorn system from a system backup — restores cluster-wide Longhorn state. Destructive. Do not call this unless the user has explicitly authorized it in this conversation — never proactively, speculatively, or as a side effect of another task. Longhorn docs: https://longhorn.io/docs/1.13.0/advanced-resources/system-backup-restore/

NameTypeReqDescription
namestringyes–
systemBackupstringyes–

No output schema declared.

No examples provided.

systemrestore_delete ~84

Delete a Longhorn system restore record. Destructive. Do not call this unless the user has explicitly authorized it in this conversation — never proactively, speculatively, or as a side effect of another task. Longhorn docs: https://longhorn.io/docs/1.13.0/advanced-resources/system-backup-restore/

NameTypeReqDescription
namestringyes–

No output schema declared.

No examples provided.

systemrestore_get ~50

Get a single system restore by name. Longhorn docs: https://longhorn.io/docs/1.13.0/advanced-resources/system-backup-restore/

NameTypeReqDescription
namestringyes–

No output schema declared.

No examples provided.

systemrestore_list ~42

List Longhorn system restore operations. Longhorn docs: https://longhorn.io/docs/1.13.0/advanced-resources/system-backup-restore/

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

volume_activate ~60

Activate a standby (DR) volume. Longhorn docs: https://longhorn.io/docs/1.13.0/snapshots-and-backups/setup-disaster-recovery-volumes/

NameTypeReqDescription
frontendstring––
namestringyes–

No output schema declared.

No examples provided.

volume_attach ~96

Attach a volume to a node. Longhorn docs: https://longhorn.io/docs/1.13.0/nodes-and-volumes/volumes/create-volumes/

NameTypeReqDescription
attachedBystring––
attacherTypestring––
attachmentIDstring––
disableFrontendboolean––
hostIdstringyesNode name to attach to.
namestringyes–

No output schema declared.

No examples provided.

volume_cancel_expansion ~52

Cancel an in-progress volume expansion. Longhorn docs: https://longhorn.io/docs/1.13.0/nodes-and-volumes/volumes/create-volumes/

NameTypeReqDescription
namestringyes–

No output schema declared.

No examples provided.

volume_create ~192

Create a new Longhorn volume. Longhorn docs: https://longhorn.io/docs/1.13.0/nodes-and-volumes/volumes/create-volumes/

NameTypeReqDescription
accessModestring–"rwo" or "rwx".
backingImagestring––
dataLocalitystring––
diskSelectorarray––
extraobject–Additional Longhorn fields not covered by the named parameters above, merged verbatim into the request body.
fromBackupstring–Backup URL to restore from.
frontendstring–e.g. "blockdev" or "iscsi".
namestringyes–
nodeSelectorarray––
numberOfReplicasintegeryes–
sizestringyesBytes, or a size string like "10Gi".
staleReplicaTimeoutinteger––

No output schema declared.

No examples provided.

volume_delete ~83

Delete a Longhorn volume. Destructive. Do not call this unless the user has explicitly authorized it in this conversation — never proactively, speculatively, or as a side effect of another task. Longhorn docs: https://longhorn.io/docs/1.13.0/nodes-and-volumes/volumes/create-volumes/

NameTypeReqDescription
namestringyes–

No output schema declared.

No examples provided.

volume_detach ~123

Detach a volume. `forceDetach: true` risks data corruption if the volume is mid-write. Destructive. Do not call this unless the user has explicitly authorized it in this conversation — never proactively, speculatively, or as a side effect of another task. Longhorn docs: https://longhorn.io/docs/1.13.0/nodes-and-volumes/volumes/create-volumes/

NameTypeReqDescription
attachmentIDstring––
forceDetachboolean––
hostIdstring––
namestringyes–

No output schema declared.

No examples provided.

volume_engine_upgrade ~110

Upgrade the engine image used by a volume. `image` is not validated against a known-good list — a bad image can make the volume inoperable. Destructive. Do not call this unless the user has explicitly authorized it in this conversation — never proactively, speculatively, or as a side effect of another task. Longhorn docs: https://longhorn.io/docs/1.13.0/deploy/upgrade/

NameTypeReqDescription
imagestringyes–
namestringyes–

No output schema declared.

No examples provided.

volume_expand ~58

Expand a volume to a new size. Longhorn docs: https://longhorn.io/docs/1.13.0/nodes-and-volumes/volumes/create-volumes/

NameTypeReqDescription
namestringyes–
sizestringyes–

No output schema declared.

No examples provided.

volume_get ~52

Get a single Longhorn volume by name. Longhorn docs: https://longhorn.io/docs/1.13.0/nodes-and-volumes/volumes/create-volumes/

NameTypeReqDescription
namestringyes–

No output schema declared.

No examples provided.

volume_job_list ~111

List a volume's background async jobs via its "jobList" action. Longhorn does not publish a dedicated input or output schema for this action in /v1/schemas, and it has no corresponding docs page — use longhorn_describe_resource_type('volume') to check the deployed version's exact shape, or pass fields via extra.

NameTypeReqDescription
extraobject–Additional Longhorn fields not covered by the named parameters above, merged verbatim into the request body.
namestringyes–

No output schema declared.

No examples provided.

volume_list ~42

List all Longhorn volumes. Longhorn docs: https://longhorn.io/docs/1.13.0/nodes-and-volumes/volumes/create-volumes/

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

volume_pv_create ~98

Create a Kubernetes PersistentVolume backed by this Longhorn volume. Longhorn docs: https://longhorn.io/docs/1.13.0/nodes-and-volumes/volumes/create-volumes/

NameTypeReqDescription
fsTypestring––
namestringyes–
pvNamestring––
secretNamestring––
secretNamespacestring––
storageClassNamestring––

No output schema declared.

No examples provided.

volume_pvc_create ~75

Create a Kubernetes PersistentVolumeClaim bound to this Longhorn volume's PV. Longhorn docs: https://longhorn.io/docs/1.13.0/nodes-and-volumes/volumes/create-volumes/

NameTypeReqDescription
namestringyes–
namespacestring––
pvcNamestring––

No output schema declared.

No examples provided.

volume_recurring_job_add ~78

Attach a recurring job (or job group) to a volume. Longhorn docs: https://longhorn.io/docs/1.13.0/snapshots-and-backups/scheduling-backups-and-snapshots/

NameTypeReqDescription
isGroupboolean––
jobNamestringyes–
namestringyes–

No output schema declared.

No examples provided.

volume_recurring_job_delete ~125

Detach a recurring job (or job group) from a volume — this can remove the volume's only backup/snapshot schedule. Destructive. Do not call this unless the user has explicitly authorized it in this conversation — never proactively, speculatively, or as a side effect of another task. Longhorn docs: https://longhorn.io/docs/1.13.0/snapshots-and-backups/scheduling-backups-and-snapshots/

NameTypeReqDescription
isGroupboolean––
jobNamestringyes–
namestringyes–

No output schema declared.

No examples provided.

volume_recurring_job_list ~57

List recurring jobs attached to a volume. Longhorn docs: https://longhorn.io/docs/1.13.0/snapshots-and-backups/scheduling-backups-and-snapshots/

NameTypeReqDescription
namestringyes–

No output schema declared.

No examples provided.

volume_replica_remove ~95

Remove a specific replica from a volume. Destructive. Do not call this unless the user has explicitly authorized it in this conversation — never proactively, speculatively, or as a side effect of another task. Longhorn docs: https://longhorn.io/docs/1.13.0/nodes-and-volumes/volumes/create-volumes/

NameTypeReqDescription
namestringyes–
replicaNamestringyes–

No output schema declared.

No examples provided.

volume_salvage ~103

Salvage a volume from a list of (potentially stale) replica names. Destructive. Do not call this unless the user has explicitly authorized it in this conversation — never proactively, speculatively, or as a side effect of another task. Longhorn docs: https://longhorn.io/docs/1.13.0/nodes-and-volumes/volumes/create-volumes/

NameTypeReqDescription
namestringyes–
replicaNamesarrayyes–

No output schema declared.

No examples provided.

volume_snapshot_backup ~75

Create a backup from a volume snapshot. Longhorn docs: https://longhorn.io/docs/1.13.0/snapshots-and-backups/backup-and-restore/

NameTypeReqDescription
backupModestring––
labelsobject––
namestringyes–
snapshotNamestring––

No output schema declared.

No examples provided.

volume_snapshot_cr_create ~79

Create a snapshot via the newer VolumeSnapshot CRD-backed action (equivalent to volume_snapshot_create). Longhorn docs: https://longhorn.io/docs/1.13.0/snapshots-and-backups/setup-a-snapshot/

NameTypeReqDescription
labelsobject––
namestringyes–
snapshotNamestring––

No output schema declared.

No examples provided.

volume_snapshot_cr_delete ~96

Delete a CRD-backed snapshot for a volume. Destructive. Do not call this unless the user has explicitly authorized it in this conversation — never proactively, speculatively, or as a side effect of another task. Longhorn docs: https://longhorn.io/docs/1.13.0/snapshots-and-backups/setup-a-snapshot/

NameTypeReqDescription
namestringyes–
snapshotNamestringyes–

No output schema declared.

No examples provided.

volume_snapshot_cr_get ~62

Get one CRD-backed snapshot for a volume. Longhorn docs: https://longhorn.io/docs/1.13.0/snapshots-and-backups/setup-a-snapshot/

NameTypeReqDescription
namestringyes–
snapshotNamestringyes–

No output schema declared.

No examples provided.

volume_snapshot_cr_list ~53

List CRD-backed snapshots for a volume. Longhorn docs: https://longhorn.io/docs/1.13.0/snapshots-and-backups/setup-a-snapshot/

NameTypeReqDescription
namestringyes–

No output schema declared.

No examples provided.

volume_snapshot_create ~73

Create a snapshot of a volume. Longhorn docs: https://longhorn.io/docs/1.13.0/snapshots-and-backups/setup-a-snapshot/

NameTypeReqDescription
backupModestring––
labelsobject––
namestringyes–
snapshotNamestring––

No output schema declared.

No examples provided.

Install

How do I install the io.github.rafaelgaspar/longhorn-mcp server?

io.github.rafaelgaspar/longhorn-mcp runs locally as an npm package, launched with npx -y longhorn-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · longhorn-mcp

# add to Claude Code
claude mcp add rafaelgaspar-longhorn-mcp -- npx -y longhorn-mcp
Common questions

What is the io.github.rafaelgaspar/longhorn-mcp server?

io.github.rafaelgaspar/longhorn-mcp is listed in the public MCP registry as io.github.rafaelgaspar/longhorn-mcp. MCP server for the Longhorn distributed storage manager API, with a --read-only mode. This page covers its npm package (longhorn-mcp).

Is the io.github.rafaelgaspar/longhorn-mcp server safe to use?

io.github.rafaelgaspar/longhorn-mcp scores 89 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 16 October 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the io.github.rafaelgaspar/longhorn-mcp server expose?

io.github.rafaelgaspar/longhorn-mcp exposes 109 tools: volume_list, volume_get, volume_create, volume_delete, volume_attach, and 104 more. Their descriptions and schemas cost roughly 8,336 tokens of context every time the server is loaded.

Is the io.github.rafaelgaspar/longhorn-mcp server still maintained?

io.github.rafaelgaspar/longhorn-mcp is still listed as active in the MCP registry. We last reached this channel on 16 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the io.github.rafaelgaspar/longhorn-mcp server under?

io.github.rafaelgaspar/longhorn-mcp declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.