com.argosvix/server
NPM · @ARGOSVIX/MCP-SERVER · SCANNED SEP 25
Observability MCP server: query LLM cost/errors/latency & operate alerts/evals from Claude/Cursor
Available components
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
- Repository check failed: no source repository is declared. See how to fix → View diagnostics → Fail
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 21 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
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
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
claude mcp add com-argosvix-server -- npx -y @argosvix/mcp-server
{
"mcpServers": {
"com-argosvix-server": {
"command": "npx",
"args": [
"-y",
"@argosvix/mcp-server"
]
}
}
} {
"servers": {
"com-argosvix-server": {
"command": "npx",
"args": [
"-y",
"@argosvix/mcp-server"
]
}
}
} codex mcp add com-argosvix-server -- npx -y @argosvix/mcp-server
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"com-argosvix-server": {
"type": "local",
"command": [
"npx",
"-y",
"@argosvix/mcp-server"
],
"enabled": true
}
}
} openclaw mcp add com-argosvix-server --command npx --arg -y --arg @argosvix/mcp-server
mcp_servers:
com-argosvix-server:
command: "npx"
args: ["-y", "@argosvix/mcp-server"] {
"McpServers": {
"com-argosvix-server": {
"Transport": "stdio",
"Command": "npx",
"Arguments": [
"-y",
"@argosvix/mcp-server"
]
}
}
} assistant mcp add com-argosvix-server -t stdio -c npx -a -y @argosvix/mcp-server
{
"mcpServers": {
"com-argosvix-server": {
"command": "npx",
"args": [
"-y",
"@argosvix/mcp-server"
]
}
}
} 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.
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 →
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 →
list_alerts ~48
Return the list of configured alerts plus trigger history within the last 24 hours.
| Name | Type | Req | Description |
|---|---|---|---|
| includeTriggered | boolean | – | true = include trigger history (triggered_at within the last 24h) |
No output schema declared.
No examples provided.
list_annotations_by_label ~113
Return annotations carrying the given label, newest first (account-wide, up to 100). Use for things like collecting calls rated "good" or listing human reviews labeled "bug". Labels are ASCII letters / digits / underscore / hyphen only ([a-zA-Z0-9_-], up to 64 chars).
| Name | Type | Req | Description |
|---|---|---|---|
| label | string | yes | Target label (exact match with the label set at annotation creation) |
| limit | integer | – | Number of annotations to return (1-100, default 20) |
No output schema declared.
No examples provided.
list_annotations_for_call ~107
Return the annotations attached to an LLM call (records[].id from query_calls). An annotation is a user-authored evaluation (rating / comment / label); each annotation includes annotationText / label / qualityScore / createdAt / updatedAt. Use to check whether a call has human review attached or what past reviews said. Independent of the Pro+ plaintext feature (annotations work without plaintext storage enabled).
| Name | Type | Req | Description |
|---|---|---|---|
| callId | string | yes | Target call id (query_calls.records[].id) |
No output schema declared.
No examples provided.
list_approvals ~46
List approval requests (latest 50). status filter = pending (default) / approved / denied / expired / all.
| Name | Type | Req | Description |
|---|---|---|---|
| status | string | – | Status filter (default pending) |
No output schema declared.
No examples provided.
list_audit_log ~256
List the audit log (GET /v1/audit-log). Scoped to your account; admin role only (viewer/member get 403). Lets an AI agent autonomously review recent operation history such as invitations / API key revocations / project changes. Filters = eventType ('invitation.created' / 'api_key.revoked' etc.) / targetKind / actorUserId / from / to. Supports cursor pagination (nextCursor format = 'created_at|id'), max limit 200.
| Name | Type | Req | Description |
|---|---|---|---|
| actorUserId | string | – | actor_user_id filter (only a specific user's operations) |
| cursor | string | – | Pagination cursor (pass the previous response's nextCursor as-is, 'created_at|id' format) |
| eventType | string | – | Exact-match event_type filter ('invitation.created' / 'api_key.revoked' / 'membership.removed' etc.) |
| from | string | – | Range start ISO timestamp (UTC) |
| limit | integer | – | Number of results (1-200, default 50) |
| targetKind | string | – | target_kind filter ('invitation' / 'api_key' / 'membership' etc.) |
| to | string | – | Range end ISO timestamp (UTC) |
No output schema declared.
No examples provided.
list_eval_criteria ~110
Return the list of LLM-as-judge evaluation criteria. Includes the 5 global defaults (helpfulness / accuracy / relevance / safety / conciseness) plus the custom criteria created in your account. Each criterion has id / name / rubric (the instruction text for the judge) / scaleMin / scaleMax. Use before running an eval to see which axes are available. The Free plan can read all criteria (creating custom ones is Pro+ only, but existing rows stay visible after downgrade).
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_eval_datasets ~68
List your account's golden datasets (GET /v1/eval-datasets). Each dataset has a name / description / item count / frozen state. A golden dataset is a fixed test set with expected outputs — the population run_eval_dataset pushes through a target model to measure regression A/B.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_eval_runs ~87
List the eval baseline runner's run history. Scoped to your account, most recent first. Includes summary.scoredCount / failedCount / meanScoreByCriterion, so an AI agent can grasp recent eval result summaries and per-criterion score trends in one call. Free users can read past runs too.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Number of results (1-50, default 20) |
No output schema declared.
No examples provided.
list_members ~79
List a Team account's members (GET /v1/memberships, removed members excluded). Read-only tool returning each member's email / role (admin/member/viewer) / status / joined-at. Invitations, role changes, and removals are privilege operations and intentionally not exposed over MCP (use the dashboard, or a future approval-gate flow).
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_projects ~53
List your account's active projects (GET /v1/projects, archived excluded). Supports per-environment observation such as dev / staging / prod. Pro allows 5 projects / Team unlimited; Free has the default project only.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_prompt_deployments ~85
List the current deployment states (GET /v1/prompts/deployments, available on Free). Each row = { promptName, label, currentVersion, canRollback, deployedAt }. Narrow by name / label (omit both for everything).
| Name | Type | Req | Description |
|---|---|---|---|
| label | string | – | Narrow by label (optional) |
| name | string | – | Narrow by prompt name (optional) |
No output schema declared.
No examples provided.
list_prompts ~165
List the prompt templates the user has registered. Each prompt includes id / name / version / template / variables / labels / description / createdAt. Filter by a label such as "production" (?label=xxx), or fetch all versions of one name (?name=xxx). Up to 200 entries; sort = name ASC + created_at DESC. The main path for an AI agent to read and use prompts the user registered in the dashboard.
| Name | Type | Req | Description |
|---|---|---|---|
| label | string | – | Label filter (e.g. 'production' / 'staging' / 'experiment'). Exact match. |
| limit | integer | – | Number of prompts to return (1-200, default 200) |
| name | string | – | Name filter (fetches all versions of that name). Exact match. |
No output schema declared.
No examples provided.
list_proposals ~60
Return the unresolved improvement proposals found by the Argosvix guardian (quality drift / reliability anomalies / cost switching / safety / silencing noisy alerts). Approving, dismissing, and executing happen in the dashboard inbox (agents can only read and converse).
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_safety_assessments ~236
List the assessments written by the safety classifier (OpenAI Moderation). source includes 'cron' (periodic batch) / 'mcp' (classify_calls_batch on-demand) / 'human_override' / 'api' / 'auto'. With callId = all classifier assessments for that call; without callId = account-wide, flagged first then most recent. In environments without OPENAI_API_KEY provisioned the cron does not run and this returns an empty array (classify_calls_batch also returns 503). Precondition: safety classification is disabled by default (a service-side staged rollout switch); no assessments are generated until it is enabled for your account. An empty array means "not enabled / nothing flagged", not a failure. AI agents use this to review recently flagged calls or to check policy-violation candidates for a specific call.
| Name | Type | Req | Description |
|---|---|---|---|
| callId | string | – | Target call id (llm_calls.id, [A-Za-z0-9_-]{1,128}). Omit for the whole account. |
| limit | integer | – | Number of results (1-200, default 50) |
No output schema declared.
No examples provided.
list_saved_views ~70
List the saved views (GET /v1/saved-views). A saved view is a named combination of frequently used /calls page filters (startDate/endDate/provider/model/limit). Enables phrasing like "show calls with my usual last-week OpenAI filter". Per account, max 20.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_webhooks ~86
List the registered outbound event webhooks (GET /v1/webhooks). Each webhook includes id / url / hasSecret / enabled / eventTypes / lastStatus / consecutiveFailures etc. (the secret itself is never returned). This is the subscription surface that notifies external endpoints of account events (approval requests, proposal execution / reversal) via signed POSTs. Readable on Free.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
propose_alert_rules ~240
Analyze the call patterns over the past lookbackDays (7-30, default 14) and propose recommended alert rules for cost / latency / error_rate / anomaly as JSON. Applying them is a separate step via create_alert after customer confirmation (propose only — zero side effects). Rules whose type already exists are normally not proposed (existing types are fetched via list_alerts); however, if the list_alerts fetch fails, the existing set is treated as empty and overlapping proposals may be returned (failed axes are reported in partialFailures). Returns { lookbackDays, baseline: {meanDailyCost (USD), p95Latency (ms), errorRate (percent 0-100), dailyCalls, totalCalls}, proposals: [{ name, alertType, thresholdValue, windowMinutes, reasoning }], skipped: [{ alertType, reason }], partialFailures?: string[] (axes that failed to fetch; omitted when everything succeeds) }. The thresholdValue of an error_rate proposal is also a percent (consistent with backend create_alert).
| Name | Type | Req | Description |
|---|---|---|---|
| lookbackDays | integer | – | Lookback days for computing the baseline (7-30, default 14) |
No output schema declared.
No examples provided.
propose_eval_criteria ~509
Have an LLM judge (gpt-4o-mini) propose eval criterion candidates from a one-line useCaseHint (e.g. "customer support bot") and optional sampleCallIds (representative calls from your account, up to 5) (POST /v1/eval-criteria/propose). An AI agent can finish "propose criteria to measure our prompt quality" in one prompt. Pro+ only (the backend enforces the plan gate + budget gate); nothing is INSERTed (propose only — adoption is a separate step via create_eval_criterion, structurally limiting LLM-hallucination impact). Decrypt failures for sampleCallIds are reported in partialFailures (the LLM call still runs without samples). Privacy note for prompt samples: with sampleCallIds, the backend decrypts those calls' prompt/response and sends excerpts (1500 chars each) to OpenAI gpt-4o-mini. If the sampled calls originally went to OpenAI this is a re-send to the same vendor, but note that samples from other providers (e.g. Gemini / Mistral) are newly sent to OpenAI. If that is a concern, run with useCaseHint only. Results are advisory: the returned criteria are LLM proposals and may include semantically weak rubrics (overuse of "helpful", duplicates) even when structurally valid. User review before adoption is recommended; do not feed them blindly into create_eval_criterion. Returns { criteria: [{ name (snake_case 32 chars), rubric (1-200), scaleMin (=1), scaleMax (5 or 10), reasoning (1-200) }], partialFailures: string[], budgetSpentUsd, proposedRawCount (raw count returned by the LLM), droppedCount (entries removed by the validator) }. Audit: emits an eval.propose_criteria event to the audit log.
| Name | Type | Req | Description |
|---|---|---|---|
| maxCriteria | integer | – | Max number of criteria to return (1-10, default 5) |
| sampleCallIds | array | – | Array of call_ids from your account passed as context (optional, up to 5, [A-Za-z0-9_-]{1,128}). Grounds the LLM's proposals in your own data |
| useCaseHint | string | yes | 1-2 line description of the intended use case (e.g. "customer support bot for e-commerce returns + refunds"; 1-500 chars, required) |
No output schema declared.
No examples provided.
purge_expired_plaintext ~413
Bulk-purge your account's plaintext records older than olderThanDays (POST /v1/tier2/plaintext/purge-expired). Consistent with the Terms of Service v2.1 "retainable up to 90 days" (automatic retention); an AI agent can finish "auto-purge plaintext older than 30 days" in one prompt. dryRun=true (the safe default to reach for) returns the count plus 5 sample call_ids; dryRun=false performs the actual UPDATE. Emit-then-UPDATE ordering plus a deterministic idempotencyId (sha1(endpoint+accountId+olderThanDays+cutoff_date)) gives webhook-retry-equivalent semantics. Pro+ plan only (Free gets 403). An actual purge (dryRun=false) requires approvalId — obtain human approval via request_approval (action: 'purge_expired_plaintext') first, because NULLing plaintext is irreversible. Only your own account is purged. Returns (dryRun=true) { dryRun: true, targetCount, cutoffTimestamp, olderThanDays, sampleTargetCallIds }; (dryRun=false) { dryRun: false, purgedCount, cutoffTimestamp, olderThanDays, purgedAt }. Audit: emits tier2.purge_expired_plaintext.
| Name | Type | Req | Description |
|---|---|---|---|
| approvalId | string | – | Approval id granted via request_approval (apr_ + 32 hex; create with action 'purge_expired_plaintext'). When passed, the server verifies approved + within expiry + action match + unconsumed, and atom… |
| dryRun | boolean | – | true = preview only (zero mutation); false = actual UPDATE. Default false (MCP discipline recommends passing dryRun explicitly) |
| olderThanDays | integer | – | Age threshold in days for purging (1-365, default 30; consistent with the Terms of Service v2.1) |
No output schema declared.
No examples provided.
query_calls ~365
Retrieve recent LLM call records captured by Argosvix. Filterable by provider / model / time range / tag (tagKey + tagValue pair). Defaults to the last 24 hours, 100 records.
| Name | Type | Req | Description |
|---|---|---|---|
| beforeId | string | – | Keyset pagination cursor (id of the last row on the previous page). Must be used together with beforeTimestamp |
| beforeTimestamp | string | – | Keyset pagination cursor (timestamp of the last row on the previous page, ISO-8601). Must be used together with beforeId. Descending timestamp order only |
| latencyMax | number | – | Upper bound on response latency (ms, >= 0). Combine with latencyMin for a range |
| latencyMin | number | – | Lower bound on response latency (ms, >= 0). For outlier drill-down (e.g. "only calls over 2 seconds") |
| limit | integer | – | Number of records to return (1-500, default 100) |
| model | string | – | Model name to filter by (substring match). Omit for all models |
| provider | string | – | Provider to filter by (openai / anthropic / gemini / mistral / xai / moonshot / deepseek / alibaba / meta). Omit for all providers |
| rangePreset | string | – | Time range preset. Default 24h |
| tagKey | string | – | Tag key to filter by (alphanumeric + _ - only, 1-64 chars, must not start or end with -). Must be used together with tagValue (either one alone returns 400) |
| tagValue | string | – | Tag value to filter by (exact match, 1-256 chars). Must be used together with tagKey |
No output schema declared.
No examples provided.
raise_llm_budget ~154
Raise or lower the monthly LLM feature budget (Pro+ only). Range $5 - $500 (hard cap against runaway spend), in $0.01 increments. Existing spend carries over; auto-resets at month boundaries. Example phrasing: "we hit 80% of the budget — raise it to $30 just for this month" / "we overspent — lower next month to $10". A new value below current spend is accepted (remaining simply becomes 0; counting restarts from 0 next month).
| Name | Type | Req | Description |
|---|---|---|---|
| budgetUsd | number | yes | New monthly budget in USD (5-500, $0.01 increments). E.g. 30 / 50.5 / 100 |
No output schema declared.
No examples provided.
rename_project ~123
Update an existing project's name / slug (PATCH /v1/projects/:id). Specify either or both. slug keeps the URL-safe constraint (/^[a-z][a-z0-9-]{0,31}$/). Renaming the default project is allowed.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | – | New display name (unchanged when omitted) |
| projectId | string | yes | Target project id (the UUID obtained from list_projects) |
| slug | string | – | New slug (unchanged when omitted, /^[a-z][a-z0-9-]{0,31}$/) |
No output schema declared.
No examples provided.
rename_prompt ~158
Change an existing prompt's name + version (Pro+ only, POST /v1/prompts/:id/rename). Main use is typo fixes ('customer_supprt' to 'customer_support'). Collision with an existing (name, version) in the account = 409. Since update_prompt never changes name/version by contract, rename is a separate tool for semantic separation.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | New name ([A-Za-z0-9][A-Za-z0-9_-]{0,63}) |
| promptId | integer | yes | Target prompt id (list_prompts.prompts[].id) |
| version | string | yes | New version ([A-Za-z0-9][A-Za-z0-9._-]{0,63}) |
No output schema declared.
No examples provided.
reply_proposal ~83
Post a question about a proposal and get the AI's reply (same as the inbox conversation). Explanation only — nothing is executed. Get proposalId from list_proposals.
| Name | Type | Req | Description |
|---|---|---|---|
| body | string | yes | Question about the proposal (e.g. why did it degrade? should we fix it?) |
| proposalId | string | yes | Target proposal ID (from list_proposals) |
No output schema declared.
No examples provided.
request_approval ~324
Create an approval request in the human approval gate (part of the runtime control plane; Pro+ only). Call it before dangerous operations (deletion / money transfer / account closure etc.); the account owner gets an email notification and a human approves or denies via the dashboard or the email link. Important: no MCP tool exists to approve or deny (an AI agent cannot self-approve its own request). Poll the result with get_approval. Expiry after timeoutSeconds (default 3600) counts as denied. Server-side consumption: passing approvalId to a dangerous mutation tool (bulk_delete_calls / purge_expired_plaintext / retry_failed_webhook / auto_silence_noisy_alert / extend_customer_trial / apply_promo_code_to_customer) makes the backend verify action match + approved + within expiry + unconsumed, and consume it on execution (1 approval = 1 execution). In that case create the request with an action exactly matching the target tool name. Example phrasing: "deleting user usr_123 is a dangerous operation — get human approval first"
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | Operation identifier (1-128 chars; alphanumerics, ._:-, and spaces). E.g. delete_user |
| metadata | object | – | Supplementary JSON object (up to 4KB, optional) |
| summary | string | yes | One-line human-readable description (1-500 chars; appears verbatim in the approval email) |
| timeoutSeconds | integer | – | Approval deadline in seconds (60-86400, default 3600) |
No output schema declared.
No examples provided.
retry_failed_webhook ~463
Mark failed Stripe webhook events (the billing_dead_letter table) for reprocessing in the audit log (POST /v1/tier2/webhook-events/retry). Finishes "retry all the Stripe webhooks that failed transiently last week" in one prompt. Select targets by eventIds (specific events, up to 100) or fromTimestamp/toTimestamp (range, 7-day cap). dryRun=true previews the list; dryRun=false records a 'marked_for_manual_redispatch' entry per event in the audit log (the actual retry is then performed manually by Argosvix operations; fully automatic re-dispatch is planned for a later release). Emits use a deterministic idempotencyId (sha1(endpoint+accountId+eventId)); duplicate runs with the same args are silently skipped. Internal operations tool (billing-webhook recovery); customer accounts receive 403. billing_dead_letter is an internal cross-account table and actual re-dispatch stays manual, so there is no plan to open this up. Returns (dryRun=true) { dryRun: true, targetCount, events: [{eventId, eventType, reason, receivedAt}] }; (dryRun=false) { dryRun: false, targetCount, succeeded: string[], failed: [{eventId, reason}], skipped: string[], narrative, retriedAt }. Audit: emits tier2.retry_failed_webhook per event.
| Name | Type | Req | Description |
|---|---|---|---|
| approvalId | string | – | Approval id granted via request_approval (apr_ + 32 hex; create with action 'retry_failed_webhook'). Server-side verification + atomic consumption on actual execution (1 approval = 1 execution). dryR… |
| dryRun | boolean | – | true = preview only; false = actually emit the markers. Default false |
| eventIds | array | – | Array of Stripe event ids to retry (evt_xxx format, up to 100). Can be combined with fromTimestamp |
| fromTimestamp | string | – | Range start (ISO-8601; more than 7 days ago is rejected with 400) |
| maxRetries | integer | – | Per-request cap (1-100, default 10) |
| toTimestamp | string | – | Range end (ISO-8601, optional) |
No output schema declared.
No examples provided.
rollback_prompt ~95
Revert the prompt deployed to a label to the previous version (Pro+ only, POST /v1/prompts/deployments/rollback). 409 when there is no previous version (first deployment only), and 409 when the previous version has already been deleted. After reverting, another rollback toggles back (current / previous swap).
| Name | Type | Req | Description |
|---|---|---|---|
| label | string | yes | Environment label |
| name | string | yes | Target prompt name |
No output schema declared.
No examples provided.
run_eval ~326
Start a new eval run immediately (POST /v1/eval-runs). Scores the most recent N calls against the 5 default criteria (plus up to 8 custom criteria) using gpt-4o-mini. Pro+ only (Free gets 403); environments without OPENAI_API_KEY provisioned return 500 from the backend. Precondition: only calls with plaintext storage (the content-storage opt-in) ON are scored. With the opt-in OFF (the default) there are zero candidates and the run returns summary.scoredCount=0 with reason='no_plaintext_calls' (gating, not a failure). Cost: about $0.01 per run (20 calls x 5 criteria = 100 LLM calls); e.g. 30 runs/month is about $0.30.
| Name | Type | Req | Description |
|---|---|---|---|
| idempotencyKey | string | – | Opaque key for retry dedup (UUID recommended, 64 char cap). Re-POSTing the same key within 60 minutes returns the existing run. |
| label | string | – | Label filter (substring match within tags). Omit = all calls. |
| name | string | yes | Free-form run name (1-100 chars, e.g. 'weekly-prod-eval-2026-06-02') |
| promptRegistryId | integer | – | Target prompt registry id (list_prompts.prompts[].id). Omit = ad-hoc run. |
| recentCount | integer | – | Number of calls to evaluate (1-20, default 10). The most recent N calls are passed to the judge. |
No output schema declared.
No examples provided.
run_eval_dataset ~258
Run a golden dataset against a target model and produce a regression verdict (POST /v1/eval-datasets/:id/run, Pro+ only). Feeds each item's inputText to targetModel, has gpt-4o-mini score the outputs against the default criteria plus expectedOutput, and records eval_scores (regression A/B). Results can be compared across runs with compare_eval_runs. Run records are excluded from production cost / analytics / alert aggregation. Cost: item count x criteria count LLM calls. 503 in environments without OPENAI_API_KEY provisioned.
| Name | Type | Req | Description |
|---|---|---|---|
| datasetId | integer | yes | Id of the dataset to run (list_eval_datasets.datasets[].id) |
| idempotencyKey | string | – | Opaque key for retry dedup (UUID recommended, 200 char cap). Re-POSTing the same key returns the existing run (double-billing prevention). |
| judgeModel | string | – | Judge model (omit = gpt-4o-mini). Only OpenAI models present in the pricing table. |
| targetModel | string | yes | Model to measure regressions for (only OpenAI models present in the pricing table, e.g. 'gpt-4o-mini'). Unknown models get 400. |
No output schema declared.
No examples provided.
silence_alert ~107
Temporarily mute an alert (stops notification delivery). Defaults to 24 hours; pass an ISO-8601 timestamp as until for a custom expiry. Pass the alertId obtained from list_alerts.
| Name | Type | Req | Description |
|---|---|---|---|
| alertId | string | yes | Target alert ID (from list_alerts) |
| until | string | – | Unmute time in ISO-8601 (e.g. 2026-06-01T00:00:00Z). Omit for 24 hours from now |
No output schema declared.
No examples provided.
test_webhook ~242
Send one fabricated alert to the given URL as a test delivery (Pro+ only). Main use: checking that a webhook URL is reachable before registering it. SSRF defense requires https and rejects private / loopback / cloud-metadata IPs. When secret is provided, an HMAC-SHA256 signature (X-Argosvix-Signature) is attached. Rate limit = 5/min per account (60s sliding window; may be exceeded across worker instances). response.delivered = whether the receiver returned 2xx within 5s; false means an invalid URL / timeout / 5xx / network error.
| Name | Type | Req | Description |
|---|---|---|---|
| alertName | string | – | Name for the fabricated alert (optional, 1-64 chars, [A-Za-z0-9 _\-.] only). Defaults to 'argosvix test alert' |
| secret | string | – | Secret for the HMAC-SHA256 signature (optional, 1-256 chars; verify X-Argosvix-Signature on the receiver side) |
| url | string | yes | Destination webhook URL (https, SSRF-guarded, 1-500 chars) |
No output schema declared.
No examples provided.
unsilence_alert ~29
Unmute a currently silenced alert.
| Name | Type | Req | Description |
|---|---|---|---|
| alertId | string | yes | Target alert ID |
No output schema declared.
No examples provided.
update_alert ~439
Update an existing alert's settings (PATCH /v1/alerts/:id). alertType (the watched metric type) is immutable — to change it, create a new alert and then delete the old one (completing the alert lifecycle). Threshold / evaluation window / notification channels / name / enabled flag / composite conditions can be partially updated (all fields optional). Example phrasing: "lower the monthly budget alert threshold from $100 to $50" / "add Slack as a notification channel".
| Name | Type | Req | Description |
|---|---|---|---|
| alertId | string | yes | Target alert ID (from list_alerts) |
| channelKinds | array | – | Notification channel kinds to enable. Omit to keep the current value. Updating together with channelTargets is recommended |
| channelTargets | object | – | Destination object for every kind listed in channelKinds. Omit to keep the current value |
| conditions | object | – | Update of the multi-condition (composite) alert. When specified, the single-metric path is ignored in favor of AND/OR aggregation. Can overwrite either an existing single-metric or multi-condition al… |
| enabled | boolean | – | Alert enabled flag. false pauses evaluation (unlike silence, re-enabling requires another PATCH) |
| filterModel | string | – | Target model (substring match). Omit to keep the current value. Clearing the filter is not possible through this tool (recreate via delete_alert + create_alert if needed) |
| filterProvider | string | – | Target provider. Omit to keep the current value. Clearing the filter is not possible through this tool (recreate via delete_alert + create_alert if needed) |
| name | string | – | Display name of the alert (1-100 chars, no line breaks). Omit to keep the current value |
| sleepMinutes | integer | – | Suppression window for repeated notifications (minutes, 5-10080). Omit to keep the current value |
| thresholdValue | number | – | Threshold (>= 0). Omit to keep the current value |
| windowMinutes | integer | – | Aggregation window (minutes, 5-43200). Omit to keep the current value |
No output schema declared.
No examples provided.
update_annotation ~162
Partially update an annotation's annotationText / label / qualityScore (PATCH /v1/annotations/:id). callId is immutable. For fixing a label or re-scoring quality from 4 to 5, etc. Pass annotations[].id obtained from list_annotations_for_call as annotationId.
| Name | Type | Req | Description |
|---|---|---|---|
| annotationId | integer | yes | Target annotation id (AUTOINCREMENT integer) |
| annotationText | string | – | New comment (0-2000 chars). Omit to keep the current value |
| label | string | – | New label (0-50 chars, alphanumerics plus _ - only). Omit to keep the current value |
| qualityScore | integer | – | New quality score (1-5). Omit to keep the current value |
No output schema declared.
No examples provided.
update_budget_gate ~134
Update a runtime budget gate (Pro+ only). Partially updates any of monthlyLimitUsd / enforceMode / enabled. Example phrasing: "raise the limit to $100" / "disable the gate temporarily" / "switch to fail_closed"
| Name | Type | Req | Description |
|---|---|---|---|
| enabled | boolean | – | Whether the gate is enabled |
| enforceMode | string | – | Behavior when the backend is unreachable |
| gateId | string | yes | Target gate id (from get_budget_gate, starts with bg_) |
| monthlyLimitUsd | number | – | New monthly limit in USD (0.01 - 1000000, $0.01 increments) |
No output schema declared.
No examples provided.
update_eval_criterion ~413
Update a custom criterion in your account with a full replace (Pro+ only, PATCH /v1/eval-criteria/:id). name + rubric + scaleMin + scaleMax are required (not a partial update — all fields are overwritten). type / config are also fully replaced (omitting them reverts to 'llm_judge' / no config). Deterministic types require config. Global defaults (account_id IS NULL) are structurally out of scope (404); other accounts' customs are 404 too. Name collision within the account = 409.
| Name | Type | Req | Description |
|---|---|---|---|
| config | object | – | Type-specific settings (not needed for llm_judge). exact_match: {expectedOutput}, contains: {substring, caseSensitive?}, regex: {pattern, flags?}, json_schema: {schema}, json_path: {path, expectedVal… |
| criterionId | integer | yes | Target criterion id (list_eval_criteria.criteria[].id) |
| name | string | yes | New name (1-50 chars, starts with an alphanumeric, [A-Za-z0-9 _\-.] only) |
| rubric | string | yes | New rubric (10-2000 chars) |
| scaleMax | integer | yes | New scaleMax (1-100, greater than scaleMin) |
| scaleMin | integer | yes | New scaleMin (1-100, less than scaleMax) |
| scope | string | – | Evaluation scope (default call). call = per call; trajectory = per trajectory (llm_judge only) |
| scoreType | string | – | Scoring type (default numeric). boolean = pass/fail; categorical requires config.categories (llm_judge only) |
| type | string | – | Evaluator type (defaults to 'llm_judge' when omitted). Deterministic: 'exact_match' / 'contains' / 'regex' / 'json_schema' / 'json_path' |
No output schema declared.
No examples provided.
update_policy_gate ~138
Update a runtime policy gate (Pro+ only). Partially updates modelAllowlist (null clears the restriction) / blockPii / blockSecrets / enforceMode / enabled. Example phrasing: "add gpt-4o-mini to the allowlist" / "enable secret blocking"
| Name | Type | Req | Description |
|---|---|---|---|
| blockPii | boolean | – | – |
| blockSecrets | boolean | – | – |
| enabled | boolean | – | – |
| enforceMode | string | – | – |
| modelAllowlist | array|null | – | New allowlist (null clears the model restriction) |
| policyId | string | yes | Target policy id (from get_policy_gate, starts with pg_) |
No output schema declared.
No examples provided.
update_prompt ~262
Partially update an existing prompt's template / variables / labels / description (Pro+ only, PATCH /v1/prompts/:id). name + version are immutable (change them via rename_prompt). promptId is required; only the fields you pass are updated. Used by AI agents for label moves (promoting 'staging' to 'production') and small patch edits.
| Name | Type | Req | Description |
|---|---|---|---|
| description | string | – | New description (1-500 chars). Omit to keep the current description. An empty string '' is rejected by the schema (prevents an LLM slip from wiping the existing description); clearing a stored descri… |
| labels | array | – | New labels (full replacement, up to 8, each [A-Za-z0-9][A-Za-z0-9_-]{0,31}). |
| promptId | integer | yes | Target prompt id (list_prompts.prompts[].id) |
| template | string | – | New template body (non-empty, up to 50000 chars). |
| variables | object | – | New variables (plain object). Omit to keep the current value (null cannot be sent through this schema). To clear them all, pass an empty object {} (overwrites with empty variables). |
No output schema declared.
No examples provided.
update_webhook ~198
Partially update an outbound event webhook (Pro+ only, PATCH /v1/webhooks/:id). Only the specified fields change (url / secret / eventTypes / description / enabled). Omit secret to keep the current value; sending an empty string "" removes the signature (null cannot be sent through this schema). Re-enabling with enabled=true also resets the consecutive-failure counter. Other accounts' webhooks return 404. webhookId is the id from list_webhooks.
| Name | Type | Req | Description |
|---|---|---|---|
| description | string | – | Display memo |
| enabled | boolean | – | Enabled flag |
| eventTypes | array | – | Array of subscribed event kinds (empty = all) |
| secret | string | – | New secret. Omit to keep the current value; an empty string "" removes the signature (null cannot be sent) |
| url | string | – | New URL (HTTPS required) |
| webhookId | string | yes | Target webhook id (owh_...) |
No output schema declared.
No examples provided.
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.