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.

com.argosvix/server

NPM · @ARGOSVIX/MCP-SERVER · SCANNED SEP 25

Observability MCP server: query LLM cost/errors/latency & operate alerts/evals from Claude/Cursor

0 this week 78 Trust /100
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 Security98
  • 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
  • 31 of 95 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency19
Schema Quality & AI Usability81
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 17197 tokens (~186/item across 92 items; 89 tools + 3 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
  • No destabilizing schema changes in the last 30 days.Pass
Tool Coverage99
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 98% 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 27 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "delete_alert" 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 90 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

How do I install the com.argosvix/server MCP server?

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

npm · @argosvix/mcp-server

# add to Claude Code
claude mcp add com-argosvix-server -- npx -y @argosvix/mcp-server
// .cursor/mcp.json
{
  "mcpServers": {
    "com-argosvix-server": {
      "command": "npx",
      "args": [
        "-y",
        "@argosvix/mcp-server"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "com-argosvix-server": {
      "command": "npx",
      "args": [
        "-y",
        "@argosvix/mcp-server"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add com-argosvix-server -- npx -y @argosvix/mcp-server
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-argosvix-server": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@argosvix/mcp-server"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add com-argosvix-server --command npx --arg -y --arg @argosvix/mcp-server
# ~/.hermes/config.yaml
mcp_servers:
  com-argosvix-server:
    command: "npx"
    args: ["-y", "@argosvix/mcp-server"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "com-argosvix-server": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "@argosvix/mcp-server"
      ]
    }
  }
}
# add to Vellum
assistant mcp add com-argosvix-server -t stdio -c npx -a -y @argosvix/mcp-server
// mcp.json
{
  "mcpServers": {
    "com-argosvix-server": {
      "command": "npx",
      "args": [
        "-y",
        "@argosvix/mcp-server"
      ]
    }
  }
}
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.

  • 25 Sept 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 24 Sept 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.

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

  • 20 Sept 26 +1

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

  • 19 Sept 26 −3
    • Stability: pass → 0.80 functional
  • 18 Sept 26 0
    • Stability: 0.97 → pass security
  • 17 Sept 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.

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

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 25 Sept 2026 · Analysed npm/@argosvix/mcp-server@1.1.2

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem npm

Background: How many MCP packages publish verified provenance →

Dependencies 95 packages
Packages resolved 95
Stale 31
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 89 exposed · ~17,040 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
acknowledge_alert ~126

Mark an individual alert firing (event) as handled / acknowledged. Unlike silence_alert (which temporarily mutes the whole alert rule), ack is a per-event receipt — future firings of the same rule are still delivered as usual. Pass the id obtained from list_alert_events as eventId. Re-acking an already acknowledged event does not overwrite the existing ack info (the first acknowledgedAt / acknowledgedBy) and returns 200 (idempotent; distinguishable via the alreadyAcknowledged flag).

NameTypeReqDescription
eventIdstringyesEvent id to acknowledge (list_alert_events.events[].id)

No output schema declared.

No examples provided.

aggregate_calls ~577

Get an aggregation cube over calls (POST /v1/query/aggregate). groupBy (provider / model / day / hour / minute / tag / error) x metric (cost / latency / tokens / input_tokens / output_tokens / cached_tokens / cache_savings / count / error_rate) — e.g. "aggregate this month's cost by model" in one call. tag mode requires tagKey (alphanumerics plus _ - only, e.g. 'env' / 'feature'). error mode aggregates only error rows by error string (which errors, how many; metric=count recommended). hour mode caps at 168h / minute mode at 60min (400 beyond). cost = SUM(cost_usd) / latency = AVG(latency_ms) / tokens = SUM(total_tokens) / input_tokens = SUM(prompt_tokens) / output_tokens = SUM(completion_tokens) / cached_tokens = SUM(cached_read_tokens) / cache_savings = SUM(cache_savings_usd) / count = COUNT(*) / error_rate = errors / total. Returns { groups: [{key, value, count}], total: {value, count} }.

NameTypeReqDescription
endTimestring–Range end ISO timestamp (UTC; omit = now)
groupBystring–Aggregation axis ('provider' / 'model' / 'day' / 'hour' / 'minute' / 'tag' / 'error'), default = 'provider'. hour caps at 168h / minute at 60min. error aggregates only error rows by kind
metricstring–Metric kind ('cost' / 'latency' / 'tokens' / 'input_tokens' / 'output_tokens' / 'cached_tokens' / 'cache_savings' / 'reasoning_tokens' / 'audio_tokens' / 'ttft' / 'count' / 'error_rate'), default = '…
providerstring–Provider filter ('openai' / 'anthropic' etc.); omit = all providers
startTimestring–Range start ISO timestamp (UTC; omit = all time)
tagKeystring–Required when groupBy='tag'. Key name inside the tags JSON (alphanumerics plus _- only, 1-64 chars)
tzOffsetMinutesinteger–groupBy='day' only. Pass the client timezone offset (minutes, Tokyo = +540, -840..840) to bucket by local days. Omit = UTC days. Fixed offset, so buckets can shift around DST transitions

No output schema declared.

No examples provided.

apply_promo_code_to_customer ~425

Apply a user-facing promotion code already registered in Stripe (e.g. 'LAUNCH50') to your account's Stripe subscription (POST /v1/tier2/promo/apply). Internal operations tool (support use); customer accounts receive 403. It will not be opened up without terms covering economically impactful operations (timing undecided). 409 if an active discount already exists (structural defense against stacking), and 409 when the status is canceled / incomplete_expired. Redemption is delegated to Stripe via promotion_code (applying coupons directly is forbidden as a constraint bypass); dryRun must be passed explicitly, and idempotencyKey is required when dryRun=false. Re-calls with the same key return the cached result via the tier2_idempotency table, structurally serializing concurrent applies. dryRun=true previews resolution + the active-discount check + the estimated discount only (no Stripe mutation); dryRun=false applies the promotion code.

NameTypeReqDescription
approvalIdstring–Approval id granted via request_approval (apr_ + 32 hex; create with action 'apply_promo_code_to_customer'). Server-side verification + atomic consumption on a fresh execution (1 approval = 1 executi…
dryRunbooleanyesMust be passed explicitly. true = preview only; false = actual promotion-code application + Stripe mutation
idempotencyKeystring–Required when dryRun=false. 16-128 chars alphanumeric plus '_-'; re-calls with the same key return the cached result
promoCodestringyesPromotion code already registered in Stripe (e.g. 'LAUNCH50'; alphanumerics plus '_-', 64 chars max)
reasonstringyesReason for applying it (recorded in the audit log; required, 200 chars max)
targetAccountIdstringyesTarget account id (your own account only for now; specifying another user gets 403)

No output schema declared.

No examples provided.

auto_silence_noisy_alert ~509

Bulk-silence noisy alerts that fired repeatedly in the past hour (POST /v1/tier2/alerts/auto-silence). Finishes "this alert fired 50 times in the past hour — silence it for an hour" in one prompt. Specify exactly one of alertId (silence a single alert) or byVolumeThreshold (all alerts with N+ firings in the past hour). silenceDurationMinutes is 5-1440 (5 minutes to 24 hours), default 60. An optional reason can be attached. dryRun=true previews the targets with fireCount; dryRun=false UPDATEs alerts.silenced_until and emits an audit event per alert (tier2.auto_silence_noisy_alert). Because this is a reversible mutation (the existing unsilence_alert can undo it) with strict per-account scoping (other accounts' alerts are unaffected), no special authorization is required — Pro+ accounts can call it directly. Returns (dryRun=true) { dryRun: true, targetCount, silenceUntil, silenceDurationMinutes, lookbackStart, targets: [{alertId, name, fireCount}] }; (dryRun=false) { dryRun: false, targetCount, silenceUntil, silenceDurationMinutes, succeeded: string[], failed: [{alertId, reason}], skipped: string[], reason }. idempotencyId = sha1(endpoint+accountId+alertId+silenceUntil truncated to the minute), coalescing duplicate runs within the same minute.

NameTypeReqDescription
alertIdstring–Alert id for single-alert silencing (alrt_xxx format). Cannot be combined with byVolumeThreshold
approvalIdstring–Approval id granted via request_approval (apr_ + 32 hex; create with action 'auto_silence_noisy_alert'). Server-side verification + atomic consumption on the actual silence (1 approval = 1 execution)…
byVolumeThresholdinteger–Batch-silence all alerts with N+ firings in the past hour. Cannot be combined with alertId
dryRunboolean–true = preview only (zero mutation); false = actual silence. Default false
reasonstring–Silence reason (recorded in the audit log, 200 chars max)
silenceDurationMinutesinteger–Silence duration (minutes, 5-1440 = 5 minutes to 24 hours), default 60

No output schema declared.

No examples provided.

bulk_delete_calls ~191

Bulk-delete the given call ids (max 100), scoped to your account (POST /v1/calls/bulk-delete). Useful for cleaning up junk calls accumulated during development and testing. dryRun=true returns the matched count before deleting. The delete is one atomic SQL statement; a bulk_deleted event is recorded in the audit log. Per FK constraints, related traces / annotations / scores are cascade-deleted via ON DELETE.

NameTypeReqDescription
approvalIdstring–Approval id granted via request_approval (apr_ + 32 hex; create with action 'bulk_delete_calls'). Server-side verification + atomic consumption on actual deletion (1 approval = 1 execution). dryRun o…
callIdsarrayyesArray of call ids to delete (1-100 entries, each 1-128 chars)
dryRunboolean–true returns only the matched count without deleting (confirmation UX)

No output schema declared.

No examples provided.

classify_calls_batch ~205

Batch safety-classify unclassified calls on demand (via OpenAI Moderation, POST /v1/safety-assessments/scan-batch). Complements the cron (every 15 min, 50 records) with a "right now" path — an AI agent can finish "classify all of last week's calls" in one prompt. Pro+ only (Free relies on the cron); the backend enforces the plan gate and budget gate. maxRecords (1-100, default 50); returns { scanned, assessed, flagged, failures, skipped }. Recorded with source='mcp' (distinguished from cron entries, so the dashboard can visualize on-demand classification). Audit: emits a safety.scan_batch_run event to the audit log.

NameTypeReqDescription
maxRecordsinteger–Max records scanned per request (1-100, default 50). Capped considering OpenAI's 1000 RPM limit and the 10s CPU/IO limit per worker request

No output schema declared.

No examples provided.

compare_eval_runs ~148

Compare two eval runs (baseline / candidate) and return per-criterion mean score deltas + the failed count delta + a verdict (GET /v1/eval-runs/compare). Lets an AI agent grasp "how did the candidate change relative to the baseline" in one call, for prompt-improvement measurement and regression detection. verdict = improved / regressed / mixed / unchanged. The failed count treats scores <= 2 as "failed". Same account only.

NameTypeReqDescription
baselineRunIdintegeryesId of the baseline run (list_eval_runs.runs[].id)
candidateRunIdintegeryesId of the candidate run (same source); must differ from the baseline

No output schema declared.

No examples provided.

create_alert ~794

Create a new alert rule. Watches for cost / error rate / latency / anomaly threshold breaches and notifies the specified channels. Example: "notify me by email when daily cost exceeds $10". channelKinds is an array of channel kinds to enable; channelTargets is an object keyed by those kinds holding the destinations (e.g. channelKinds:["email"], channelTargets:{"email":"dev@example.com"}). Every kind listed in channelKinds must have a destination in channelTargets. anomaly_* types interpret thresholdValue as a standard-deviation multiplier (0.5-10, e.g. 3 = 3 sigma). The Free plan allows the email channel only and up to 3 alerts (the backend returns 403 beyond that).

NameTypeReqDescription
alertTypestringyesMetric to watch. cost_threshold = one-shot cost threshold (USD) / monthly_budget = monthly budget (USD) / error_rate = error rate (%) / latency_degradation = latency degradation (ms) / anomaly_cost /…
channelKindsarrayyesArray of notification channel kinds to enable (each kind needs a destination under the same key in channelTargets). The Free plan can use email only.
channelTargetsobjectyesObject keyed by channel kind with the destination as the value (must include a destination for every kind listed in channelKinds). Example: {"email": "dev@example.com"}. email takes an email address;…
conditionsobject–Multi-condition alert (composite conditions). When specified, single-metric evaluation via alertType + thresholdValue + windowMinutes is ignored and the conditions JSON switches to AND/OR aggregation…
enabledboolean–Whether to enable immediately after creation. Default true.
evalCriterionIdinteger–Required when alertType=eval_score. The id of the eval criterion to watch (list_eval_criteria.criteria[].id). Fires when the mean score in the recent window drops below thresholdValue.
filterModelstring–Restrict to this model name only (substring match). Omit for all models
filterProviderstring–Restrict to this provider only (openai / anthropic / gemini / mistral / xai / moonshot / deepseek / alibaba / meta). Omit for all providers
namestringyesDisplay name of the alert (1-100 chars, no line breaks)
sleepMinutesinteger–Suppression window for repeated notifications (minutes, 5-10080). After firing once, no re-notification during this window. Default 60.
thresholdValuenumberyesThreshold (>= 0). USD for cost types, % for error_rate, ms for latency_degradation. For anomaly types, a standard-deviation multiplier (e.g. 3 = 3 sigma)
windowMinutesinteger–Aggregation window (minutes, 5-43200). Default 60. Ignored for anomaly types (fixed at 60).

No output schema declared.

No examples provided.

create_annotation ~195

Create a new annotation (human review / labeling) for an LLM call. Specify at least one of annotationText / label / qualityScore (an "empty annotation" gets 400 from the backend). Example phrasing: "Claude, label this call 'badly-summarized' with quality 2", or bulk-apply positive / negative labels for an eval loop. Combined with the eval baseline runner (run_eval), annotations can calibrate eval criteria as ground truth.

NameTypeReqDescription
annotationTextstring–Free-form comment (0-2000 chars). Length is validated by the backend
callIdstringyesTarget call id (query_calls.records[].id)
labelstring–Label (0-50 chars, alphanumerics plus _ - only). Usable as a dashboard filter
qualityScoreinteger–Quality score (integer 1-5). Omit for NULL

No output schema declared.

No examples provided.

create_budget_gate ~462

Create a runtime budget gate (Pro+ only). Sets a monthly LLM spend limit (USD) for the account; the SDK (budgetGate opt-in) blocks over-limit calls before execution. Enforcement is optimistic (spend is cached for 60 seconds and in-flight calls pass, so the limit is a guideline that can be exceeded, not a strict hard cap). enforceMode = fail_open (default; calls pass when the backend is unreachable) / fail_closed (calls are blocked when unreachable; a cold start where the SDK has never fetched the config additionally requires the SDK-side failClosed opt-in). Omitting projectId = an account-wide gate (only one; 409 if one exists). Specifying projectId = a gate for that project only (ANDed with the account gate — the strictest limit wins; one per project). Specifying tagKey + tagValue = a gate for calls carrying that tag (e.g. tagKey=service / tagValue=checkout caps the monthly spend of service=checkout. ANDed with the account gate; one per (tagKey,tagValue)). tagKey/tagValue must be specified together and are mutually exclusive with projectId. Example phrasing: "create a budget gate at $50/month" / "cap project X at $10/month" / "cap the service=checkout tag at $20/month"

NameTypeReqDescription
enabledboolean–Whether the gate is enabled (default true)
enforceModestring–Behavior when the backend is unreachable (default fail_open)
monthlyLimitUsdnumberyesMonthly limit in USD (0.01 - 1000000, $0.01 increments). E.g. 50 / 100.5
projectIdstring–proj_-style project ID (omit for an account-wide gate). The project must belong to your account and not be archived
tagKeystring–Tag key for a per-tag gate (e.g. service). Must be specified together with tagValue; mutually exclusive with projectId. 1-128 chars
tagValuestring–Tag value for a per-tag gate (e.g. checkout). Must be specified together with tagKey. 1-128 chars

No output schema declared.

No examples provided.

create_eval_criterion ~483

Create one custom eval criterion in your account (Pro+ only). name + rubric + scaleMin + scaleMax are required. Same name already existing in the account = 409. A name matching a global default is structurally allowed (UNIQUE (account_id, name) separates it from account_id IS NULL). type defaults to 'llm_judge' (judge LLM scoring). Specifying a deterministic evaluator type (exact_match / contains / regex / json_schema / json_path) scores without calling an LLM — free and instant (pass -> scaleMax / fail -> scaleMin). Deterministic types require config. The path an AI agent takes when it decides "add this criterion" while evaluating your own workloads.

NameTypeReqDescription
configobject–Type-specific settings (not needed for llm_judge). exact_match: {expectedOutput}, contains: {substring, caseSensitive?}, regex: {pattern, flags?}, json_schema: {schema}, json_path: {path, expectedVal…
namestringyesCriterion name (1-50 chars, starts with an alphanumeric, [A-Za-z0-9 _\-.] only). E.g. 'helpfulness' / 'concise'
rubricstringyesScoring rubric text (10-2000 chars; the narrative the judge LLM bases scores on. Required as a human-readable explanation even for deterministic evaluators)
scaleMaxintegeryesScore upper bound (1-100, must be greater than scaleMin)
scaleMinintegeryesScore lower bound (1-100, must be less than scaleMax)
scopestring–Evaluation scope (default call). call = per call; trajectory = scores multiple calls + steps in the same trace as one trajectory (llm_judge only)
scoreTypestring–Scoring type (default numeric). boolean = pass/fail; categorical requires config.categories (llm_judge only)
typestring–Evaluator type (default 'llm_judge'). Deterministic evaluators score without an LLM call — free and instant: 'exact_match' / 'contains' / 'regex' / 'json_schema' / 'json_path'

No output schema declared.

No examples provided.

create_eval_dataset ~173

Create a golden dataset (POST /v1/eval-datasets, Pro+ only). items can carry up to 20 test cases with expected outputs. Up to 50 datasets per account. frozen=true freezes the population (items can no longer be changed or unfrozen — fixing comparability for regression verdicts).

NameTypeReqDescription
descriptionstring–Optional description (<= 500 chars)
frozenboolean–true = freeze the population (items can no longer be changed or unfrozen). Omit = false.
itemsarray–Test cases (up to 20). Each inputText is fed to the target model, and expectedOutput is used as the judge's [REFERENCE ANSWER] for scoring.
namestringyesDataset name (1-100 chars, unique within the account)

No output schema declared.

No examples provided.

create_policy_gate ~265

Create a runtime policy gate (Pro+ only). Configures an account-wide model allowlist / PII block / secret block; the SDK (policyGate opt-in) blocks violating calls before execution. At least one rule (modelAllowlist / blockPii / blockSecrets) is required. One per account (409 if one exists). A redact mode is not supported (block only). Example phrasing: "only allow gpt-5.5 and claude-fable-5" / "block calls containing PII"

NameTypeReqDescription
blockPiiboolean–Block on PII detection. Coverage = email / card numbers (Luhn-verified) / delimited phone numbers / delimited national ID numbers / IPv4 / IPv6 (full and common compressed forms). Undelimited digit r…
blockSecretsboolean–Block on detection of API-key / private-key-like tokens
enabledboolean–Whether the gate is enabled (default true)
enforceModestring–Behavior when the backend is unreachable (default fail_open)
modelAllowlistarray–Array of allowed model names (1-100 entries, exact match). Omit = no model restriction

No output schema declared.

No examples provided.

create_project ~140

Create a new project (POST /v1/projects). name = display name; slug = a short URL-safe identifier (/^[a-z][a-z0-9-]{0,31}$/). Pro caps at 5 projects, Team unlimited, Free cannot create (403). As a mutation, session-authenticated requests enforce Origin/Referer (dashboard-driven).

NameTypeReqDescription
namestringyesProject display name (1-64 chars)
slugstringyesShort URL-safe identifier (/^[a-z][a-z0-9-]{0,31}$/, up to 32 chars, starts with a lowercase letter, hyphens allowed)

No output schema declared.

No examples provided.

create_prompt ~279

Register one new prompt template (Pro+ only). name + version + template are required; variables / labels / description are optional. An existing (name, version) pair returns 409 (UNIQUE constraint). Used when an AI agent auto-registers templates for evals / experiments.

NameTypeReqDescription
descriptionstring–Description (up to 500 chars). Optional.
labelsarray–Array of labels (up to 8, each [A-Za-z0-9][A-Za-z0-9_-]{0,31}). E.g. ['production', 'staging'].
namestringyesPrompt name (series identifier, [A-Za-z0-9][A-Za-z0-9_-]{0,63}). E.g. 'customer_support'
templatestringyesPrompt body (non-empty, up to 50000 chars). {{var}} placeholders are filled from variables.
variablesobject–Default values for {{var}} placeholders in the template (plain object, 4096 bytes max after JSON serialization). Optional.
versionstringyesVersion identifier ([A-Za-z0-9][A-Za-z0-9._-]{0,63}). E.g. 'v1' / '1.0.2' / '2026-06-03'

No output schema declared.

No examples provided.

create_saved_view ~185

Create a new saved view, or overwrite when the name exists (POST /v1/saved-views). name is unique within the account. filter follows the SavedViewFilter shape (startDate / endDate / provider / model / limit / preset / sortBy? / sortOrder?). Lets an AI agent save frequently used filters under a name — e.g. create a "last 7 days, GPT-4 only" view and recall it later.

NameTypeReqDescription
filterobjectyesFilter shape = startDate (ISO) + endDate (ISO) + provider (may be empty) + model (may be empty) + limit (number) + preset (string|null) + sortBy? + sortOrder?
namestringyesName of the saved view (1-80 chars, no line breaks). Overwrites an existing view with the same name

No output schema declared.

No examples provided.

create_webhook ~233

Register one outbound event webhook (Pro+ only, POST /v1/webhooks). url (HTTPS required; SSRF defense rejects private/loopback) + optional secret (HMAC-SHA256 signing key) + eventTypes (array of event kinds to subscribe to; omitted / empty = subscribe to everything). Up to 10 per account. Delivery payload = { event, eventId, occurredAt, accountId, data }; with a secret set, an X-Argosvix-Signature header is attached.

NameTypeReqDescription
descriptionstring–Display memo (optional, up to 200 chars)
enabledboolean–Enabled flag (default true)
eventTypesarray–Array of event kinds to subscribe to (omitted / empty array = all events). Available: approval.requested / proposal.executed / proposal.reversed
secretstring–Optional. HMAC-SHA256 signing key (when set, X-Argosvix-Signature is attached)
urlstringyesDestination URL (HTTPS required; private/loopback hosts are rejected)

No output schema declared.

No examples provided.

delete_alert ~93

Delete an alert (DELETE /v1/alerts/:id). Related alert_events are CASCADE-deleted too. To guard against accidental deletion, checking the details with get_alert first is recommended. If you only want to pause an alert, prefer silence_alert (mute) or update_alert with enabled=false instead of delete (both are recoverable).

NameTypeReqDescription
alertIdstringyesTarget alert ID (from list_alerts)

No output schema declared.

No examples provided.

delete_annotation ~68

Delete an annotation (DELETE /v1/annotations/:id). No other rows depend on it, so there is no CASCADE impact. To guard against accidental deletion, checking the details with get_annotation first is recommended.

NameTypeReqDescription
annotationIdintegeryesTarget annotation id (AUTOINCREMENT integer)

No output schema declared.

No examples provided.

delete_budget_gate ~64

Delete a runtime budget gate (Pro+ only). After deletion the SDK's pre-execution enforcement is disabled. To pause temporarily, prefer update_budget_gate with enabled: false.

NameTypeReqDescription
gateIdstringyesTarget gate id (from get_budget_gate, starts with bg_)

No output schema declared.

No examples provided.

delete_eval_criterion ~182

Delete a custom criterion in your account (Pro+ only, DELETE /v1/eval-criteria/:id, 204). Global defaults (account_id IS NULL) are structurally out of scope = 404; other accounts are 404 too. WARNING: all past eval_run score rows for this criterion (eval_scores) are physically deleted at the same time via ON DELETE CASCADE — historical comparisons and score trend analysis become permanently impossible. This is not a tool for an AI agent to call casually while tidying up criteria; only proceed when the user has explicitly confirmed the past run scores are not needed. If you only want to rename, using update_eval_criterion (full replace) with name + rubric + scaleMin + scaleMax preserves the history.

NameTypeReqDescription
criterionIdintegeryesTarget criterion id (list_eval_criteria.criteria[].id)

No output schema declared.

No examples provided.

delete_eval_dataset ~56

Delete a golden dataset (DELETE /v1/eval-datasets/:id, Pro+ only). Items are cascade-deleted. Past eval runs / scores remain.

NameTypeReqDescription
datasetIdintegeryesId of the dataset to delete

No output schema declared.

No examples provided.

delete_policy_gate ~52

Delete a runtime policy gate (Pro+ only). To pause temporarily, prefer update_policy_gate with enabled: false.

NameTypeReqDescription
policyIdstringyesTarget policy id (from get_policy_gate, starts with pg_)

No output schema declared.

No examples provided.

delete_project ~89

Soft-delete a project (DELETE /v1/projects/:id; sets archived_at for a logical delete). The default project cannot be deleted (400, keeping accounts.default_project_id referentially consistent). After archiving, calls / alerts remain as-is (past observations are kept); route new records to another project.

NameTypeReqDescription
projectIdstringyesId of the project to delete (via list_projects)

No output schema declared.

No examples provided.

delete_prompt ~136

Delete an existing prompt (Pro+ only, DELETE /v1/prompts/:id, 204 No Content). Scoped to your account (other accounts' ids return 404). WARNING: physical delete with no restore; past eval_runs' prompt_registry_id is SET NULL, losing the trace of which prompt template each run used (history comparisons can no longer be linked). Even when sunsetting an old version in a rotation, while past run traces remain it is safer to do a logical sunset via update_prompt with labels such as 'sunset'.

NameTypeReqDescription
promptIdintegeryesTarget prompt id (list_prompts.prompts[].id)

No output schema declared.

No examples provided.

delete_saved_view ~50

Delete the saved view with the given id (DELETE /v1/saved-views/:id). Scoped to your account.

NameTypeReqDescription
idstringyesId of the saved view to delete (UUID)

No output schema declared.

No examples provided.

delete_webhook ~62

Delete an outbound event webhook (Pro+ only, DELETE /v1/webhooks/:id). Other accounts' webhooks return 404. webhookId is the id from list_webhooks.

NameTypeReqDescription
webhookIdstringyesTarget webhook id (owh_...)

No output schema declared.

No examples provided.

deploy_prompt ~146

Deploy a specific prompt version to a label (an environment such as production / staging) (Pro+ only, POST /v1/prompts/:id/deploy). If a deployment already exists, the prior version is kept as previous and rollback_prompt can revert in one step. Re-deploying the same version does not create a previous entry. Labels are per prompt name (each name has its own production version).

NameTypeReqDescription
labelstringyesEnvironment label (alphanumerics plus _ -, 1-32 chars. E.g. 'production' / 'staging')
promptIdintegeryesId of the version to deploy (list_prompts.prompts[].id)

No output schema declared.

No examples provided.

detect_anomaly ~299

Compare the current window against a baseline window (the immediately preceding window of the same length) and detect anomalies across 4 axes: cost / latency / error_rate / call_volume — lets an AI grasp "is anything off?" in one prompt. Sensitivity is tunable via threshold: sensitive (1.5x) / normal (2x, default) / conservative (3x). 0-4 detections, each with a narrative. Returns { window, threshold, multiplier (the numeric factor behind threshold), current: {...}, baseline: {...}, anomalies: [{ axis, severity: 'minor'|'major'|'critical', current, baseline, ratio, narrative }], partialFailures?: string[] (axes that failed to fetch, as 'current:xxx' / 'baseline:xxx'; omitted when everything succeeds) }. errorRate is evaluated and displayed as a percent (0-100), matching the backend aggregate unit. Insufficient baseline data (fewer than 10 records in the period) yields anomalies: [] plus a warning message (this path omits multiplier; partialFailures is optional in the same way).

NameTypeReqDescription
thresholdstring–Sensitivity ('sensitive' 1.5x / 'normal' 2x / 'conservative' 3x, default 'normal')
windowstring–Observation window ('1h' / '24h' / '7d', default '24h')

No output schema declared.

No examples provided.

export_calls ~236

Large-batch export of calls (POST /v1/query/export). Higher limit than query_calls (per-plan max records: Free 1000 / Pro 50000); available on all plans. Filter axes = startTime / endTime / provider / model plus limit. Example phrasing: "pull all of last month's GPT-4 calls and analyze the trends" — one call. The result format is the same JSON as query_calls (the AI can feed it straight into CSV / statistics).

NameTypeReqDescription
endTimestring–Range end ISO timestamp (UTC; omit = now)
limitinteger–Cap on returned records. Passed through when within the plan max; clamped to the plan max beyond it
modelstring–Model name filter (exact match, no substring matching; e.g. 'gpt-4o-mini')
providerstring–Provider filter (openai / anthropic / gemini / mistral / xai / moonshot / deepseek / alibaba / meta)
startTimestring–Range start ISO timestamp (UTC; omit = all time)

No output schema declared.

No examples provided.

extend_customer_trial ~399

Extend your account's Stripe subscription trial by 1-30 days (POST /v1/tier2/trial/extend). Internal operations tool (support use); customer accounts receive 403. Trial extension directly affects revenue, so there is no plan to open it up. Cumulative cap of 60 days (aggregated from the last 30 days of audit logs); 409 unless status='trialing'. dryRun must be passed explicitly (guards against accidental mutation via an implicit false); when dryRun=false, idempotencyKey is also required (16-128 alphanumeric plus '_-'). Re-calling with the same key returns the cached result via the tier2_idempotency table (structurally preventing retry double-extends). dryRun=true previews previousTrialEnd / newTrialEnd / the cumulative total only (no Stripe call); dryRun=false performs the actual Stripe mutation plus the accounts_subscription sync update.

NameTypeReqDescription
approvalIdstring–Approval id granted via request_approval (apr_ + 32 hex; create with action 'extend_customer_trial'). Server-side verification + atomic consumption on a fresh execution (1 approval = 1 execution chai…
dryRunbooleanyesMust be passed explicitly. true = preview only; false = actual trial extension + Stripe mutation
extendDaysintegeryesDays to extend (1-30, cumulative cap 60 days)
idempotencyKeystring–Required when dryRun=false. 16-128 chars alphanumeric plus '_-'; re-calls with the same key return the cached result
reasonstringyesReason for the extension (recorded in the audit log; required, 200 chars max)
targetAccountIdstringyesTarget account id (your own account only for now; specifying another user gets 403)

No output schema declared.

No examples provided.

get_account_health ~256

Get a health summary of your LLM infrastructure in one call. Fetches 4 existing endpoints in parallel (aggregate_calls / get_percentiles / get_llm_budget / list_audit_log) and compresses them into one response. Returns { window, totals: {calls, costUsd, errorRate (percent 0-100)}, latency: {p50, p95, p99 (ms)}, budget: {used, limit, percentUsed (0-100)}, recentEvents: count, summary: 'ok' | 'warn' | 'critical', partialFailures?: string[] (axes that failed to fetch; omitted when everything succeeds) }. critical = errorRate>=10% / budget>=90% / p95>=10s; warn = >=3% / >=70% / >=3s. Example phrasing: "how is our LLM infra doing right now?" — answered in one prompt. Pure read aggregator (no new backend endpoint); individual endpoint failures return partial results (one axis timing out does not block the summary; failed axes are listed in partialFailures).

NameTypeReqDescription
windowstring–Observation window ('1h' / '24h' / '7d', default '24h')

No output schema declared.

No examples provided.

get_alert ~64

Return the detailed configuration of an alert and its recent trigger history. Pass the alertId obtained from list_alerts. Use it to check the threshold / notification channels / silence state / when it fired.

NameTypeReqDescription
alertIdstringyesTarget alert ID (from list_alerts)

No output schema declared.

No examples provided.

get_annotation ~74

Fetch one annotation by id (obtained from list_annotations_*). Includes annotationText / label / qualityScore / callId / createdAt / updatedAt / createdByUserId. Ids belonging to other accounts return 404 (structural defense).

NameTypeReqDescription
annotationIdintegeryesTarget annotation id (AUTOINCREMENT integer)

No output schema declared.

No examples provided.

get_approval ~84

Get the current state of an approval request. status = pending / approved / denied / expired. Do not perform the target operation unless the status is approved (default-deny). Dangerous mutation tools also support server-side consumption via their approvalId param (see the request_approval description).

NameTypeReqDescription
approvalIdstringyesThe id returned by request_approval (starts with apr_)

No output schema declared.

No examples provided.

get_budget_gate ~146

Get the runtime budget gate settings (part of the runtime control plane) plus this month's LLM spend. Response = { gates: [{ id, projectId, monthlyLimitUsd, enforceMode, enabled, ... }], spentUsdThisMonth, monthStart, ttlSeconds }. monthStart is the UTC month start. The same source the SDK's budgetGate opt-in evaluates before execution. Distinct from get_llm_budget (which caps Argosvix's internal AI feature costs) — this one is a monthly cap on your own LLM spend. Example phrasing: "how much budget gate headroom is left this month?" / "is the gate set to fail_open?"

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_cost_summary ~96

Return cost / call count / token aggregates per time range, with a per-provider breakdown. When groupBy="none" is specified, a per-provider breakdown is still returned for backend compatibility (check the response.total field for the overall sum).

NameTypeReqDescription
groupBystring–Aggregation axis (overall sum / per provider / per model). Default provider
rangePresetstring–Aggregation range. Default 7d

No output schema declared.

No examples provided.

get_daily_readthrough ~212

Fetch a Readthrough issue (Argosvix's agent reads one trending OSS repo per day via the GitHub API and records what it found). Public data tool — works without an API key. Omit date = latest issue; date (YYYY-MM-DD) = that issue. Response = { issue: { date, repo: { owner, name, url, language?, license?, stars? }, oneLiner, oneLinerEn?, keyFiles: [{ path, why, whyEn? }], highlights, cautions, generation?, traceId?, generatedAt } }. A reading guide, not a review — "files worth reading", "design highlights", "facts to check before adopting". Use for: "what's today's featured OSS repo?" "what should I check before adopting this repo?"

NameTypeReqDescription
datestring–Issue date to fetch (YYYY-MM-DD). Omit = latest issue. All dates: https://ingest.argosvix.com/v1/readthrough/dates

No output schema declared.

No examples provided.

get_deployed_prompt ~92

Resolve and return the prompt version currently deployed to the given environment (name + label) (GET /v1/prompts/resolve, available on Free). The main runtime path for an agent to fetch the "production prompt". Returns that version's template / variables / labels / version. 404 when nothing is deployed.

NameTypeReqDescription
labelstringyesEnvironment label
namestringyesPrompt name

No output schema declared.

No examples provided.

get_eval_criterion ~89

Fetch one criterion's detail (name / rubric / scaleMin / scaleMax / createdAt) by id. The id comes from list_eval_criteria.criteria[].id. Both global defaults (accountId NULL) and your account's custom criteria are accepted; other accounts' customs return 404 (structural defense).

NameTypeReqDescription
criterionIdintegeryesTarget criterion id (AUTOINCREMENT integer)

No output schema declared.

No examples provided.

get_eval_dataset ~61

Fetch one dataset's detail plus all of its items (GET /v1/eval-datasets/:id). datasetId is list_eval_datasets.datasets[].id.

NameTypeReqDescription
datasetIdintegeryesTarget dataset id (list_eval_datasets.datasets[].id)

No output schema declared.

No examples provided.

get_eval_run ~95

Fetch one eval run's detail plus the list of per-(criterion x call) scores. Use runs[].id from list_eval_runs as-is. The scores array includes score (an integer within the criterion's scale) + reasoning (the judge's rationale). Same endpoint as the argosvix://eval-runs/{id} resource template.

NameTypeReqDescription
runIdintegeryesTarget eval run id (AUTOINCREMENT integer)

No output schema declared.

No examples provided.

get_llm_budget ~117

Get the current monthly LLM feature budget (the LLM cost cap covering the 3 axes: safety classifier + secondary PII audit + eval baseline runner). Response = { budgetUsd, spentUsd, remainingUsd, periodStart, defaultBudgetUsd, minBudgetUsd, maxBudgetUsd }. Readable on Free and Pro+ alike; used when an AI agent decides "have we hit 80% of budget?" / "should we raise it?". Default $5/month; auto-resets at month boundaries (per YYYY-MM).

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_percentiles ~236

Get percentile metrics over calls (POST /v1/query/percentiles). metric = 'latency' (ms) or 'cost' (USD); either a single value for the whole range, or a time series with groupBy='day'/'hour'/'minute'. Example phrasing: "daily p95 latency trend for last week". Percentiles are computed with the nearest-rank method.

NameTypeReqDescription
endTimestring–Range end ISO timestamp
groupBystring–Time-series bucketing (omit = one value for the whole range, 'day' = daily, 'hour' = hourly, 'minute' = per minute)
metricstring–Metric kind, default = 'latency'
modelstring–Model filter
providerstring–Provider filter
startTimestring–Range start ISO timestamp (UTC; omit = all time)
tzOffsetMinutesinteger–groupBy='day' only. Same local-day bucketing as aggregate_calls (minutes, Tokyo = +540, -840..840). Omit = UTC days

No output schema declared.

No examples provided.

get_policy_gate ~104

Get the runtime policy gate settings (part of the runtime control plane). Response = { policy: { id, modelAllowlist, blockPii, blockSecrets, enforceMode, enabled, ... } | null }. The config the SDK's policyGate opt-in evaluates locally before each LLM call (exact-match model allowlist + blocking on PII / secret detection). Example phrasing: "what model restrictions are active right now?" / "is PII blocking enabled?"

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_prompt ~92

Fetch one prompt's detail by id. Use prompts[].id from list_prompts as-is. Includes template + variables + labels + description; scoped to your account (structurally enforced by a backend WHERE clause — other accounts' ids return 404). Same endpoint as the argosvix://prompts/{id} resource template.

NameTypeReqDescription
promptIdintegeryesTarget prompt id (AUTOINCREMENT integer)

No output schema declared.

No examples provided.

get_proposal_thread ~57

Return the thread for a proposal (the questions asked so far and the AI's replies). Get proposalId from list_proposals.

NameTypeReqDescription
proposalIdstringyesTarget proposal ID (from list_proposals, starts with prp_)

No output schema declared.

No examples provided.

get_safety_assessment ~96

Fetch one assessment's detail by id. Use assessments[].id from list_safety_assessments as-is. Includes labels (array of flagged categories) + score (max category score 0-1) + reasoning + classifier_id + source. Same endpoint as the argosvix://safety-assessments/{id} resource template.

NameTypeReqDescription
assessmentIdintegeryesTarget assessment id (AUTOINCREMENT integer)

No output schema declared.

No examples provided.

get_synth_daily ~197

Fetch Synth Daily issue data (a daily AI digest produced by Argosvix's own agent pipeline). Public data tool — works without an API key (alongside get_daily_readthrough). Omit date = latest issue; date (YYYY-MM-DD) = that issue. Response = { issue: { date, scoop, items: [{ rank, name, desc, why, sourceUrl, metric, nameEn?, descEn?, whyEn? }], generatedAt } }. desc/why are Japanese, descEn/whyEn are English. metric carries first-party numbers (e.g. '+4,349 stars/day'). Use for: "what's new in AI today?" "any new models or price cuts?"

NameTypeReqDescription
datestring–Issue date to fetch (YYYY-MM-DD). Omit = latest issue. All dates: https://ingest.argosvix.com/v1/synth-daily/dates

No output schema declared.

No examples provided.

list_alert_events ~246

Return alert trigger events, newest first. Account-wide (recent firings of all alerts) by default; pass alertId to narrow to one alert. Use for questions like "which alerts fired recently and how often?" or "when did the cost alert go off?". Each event's id can be passed directly to the acknowledge_alert tool. acknowledgedAt / acknowledgedBy are null if not yet acknowledged. Each event includes a snapshot of thresholdValue / windowMinutes / alertType at firing time (so the firing-time conditions survive later rule edits). For the next page, pass the last event's triggeredAt + id as beforeTriggeredAt + beforeId (keyset cursor).

NameTypeReqDescription
alertIdstring–ID to narrow to a specific alert. Omit for all alerts' trigger history
beforeIdstring–Pagination cursor (id of the last event on the previous page). Must be passed together with beforeTriggeredAt
beforeTriggeredAtstring–Pagination cursor (triggeredAt of the last event on the previous page). Must be passed together with beforeId
limitinteger–Number of events to return (1-100, default 20)

No output schema declared.

No examples provided.

Common questions

What is the com.argosvix/server MCP server?

com.argosvix/server is an MCP server listed in the public MCP registry as com.argosvix/server. Observability MCP server: query LLM cost/errors/latency & operate alerts/evals from Claude/Cursor. This page covers its npm package (@argosvix/mcp-server).

Is the com.argosvix/server MCP server safe to use?

com.argosvix/server scores 78 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 25 September 2026. It declares no install or post-install scripts. 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 com.argosvix/server MCP server expose?

com.argosvix/server exposes 89 tools: query_calls, get_cost_summary, list_alerts, list_proposals, get_proposal_thread, and 84 more. Their descriptions and schemas cost roughly 17,040 tokens of context every time the server is loaded.

Is the com.argosvix/server MCP server still maintained?

com.argosvix/server is still listed as active in the MCP registry. We last reached this channel on 25 September 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 com.argosvix/server MCP server under?

com.argosvix/server declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.