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.

Solwyn

PYPI · SOLWYN-CLI

Check budgets before AI spend, record what your code spends and read Solwyn costs.

Available components

59 Trust /100

Last scanned (3 hours ago)

Scores higher than 57% of PyPI servers

Category Finance and Payments

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 Security82
  • No malware found by supply-chain analysis.Pass
  • CVE check failed: a known high-severity CVE affects mcp 2.1.1, a direct dependency. A fixed version is available. View diagnostics → Fail
  • Runs hatchling.build at install time, a recognised build step with no custom scripting around it. View diagnostics → Pass
  • 7 of 55 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency19
  • Repository check failed: no source repository is declared. See how to fix → View diagnostics → Fail
  • Build provenance not yet verified. View diagnostics → Unverified
  • Clear OSI-approved license (Apache-2.0).Pass
  • Actively maintained (last published 1 days ago).Pass
  • Security-disclosure policy not yet verified: we couldn't inspect the source repository.Unverified
Schema Quality & AI Usability60
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 8432 tokens (~227/item across 37 items; 37 tools + 0 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 Management13
  • Stability observed for 4 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 37 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 38 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass
Changelog

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

  • 4 Nov 26 +1

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

  • 3 Nov 26 +15
    • Malware scan: unverified → pass ▲ security
    • Package version: 0.4.2 → 0.4.3 functional
  • 2 Nov 26 −14
    • Malware scan: pass → unverified ▼ security
    • Stability: unverified → 0.03 ▲ functional
    • Package version: 0.4.0 → 0.4.2 functional
  • 1 Nov 26 57

    First indexed and scored.

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 5 Nov 2026 · Analysed pypi/solwyn-cli@0.4.3

Provenance Inconclusive

We could not complete the check, so nothing is claimed either way. This is a gap on our side, not a finding about the package.

Result Inconclusive
Ecosystem pypi
Reason Unsupported forge
Discovered via Registry attestation endpoint

Background: How many MCP packages publish verified provenance →

Install scripts 1 script
Hook Tier Command
build_backend allowlisted hatchling.build

Background: Why install scripts are a supply-chain risk →

Vulnerabilities 4 findings
ID CVE Severity Vector Fix available
GHSA-5h93-6whr-6q8j CVE-2026-116685 medium CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N yes
GHSA-84m7-p3x7-pcfv CVE-2026-59951 high CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H yes
GHSA-rwrf-2pqf-9j8j CVE-2026-116686 medium CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H yes
GHSA-w4fh-qvv9-3v23 CVE-2026-116684 medium CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:N yes

Background: What a vulnerability scan can and cannot prove →

Dependencies 55 packages
Packages resolved 55
Stale 6
No linked repository 1
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 37 exposed · ~8,353 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
budget_check ~694

Reserve budget only immediately before the caller-made spend. Denial is a successful decision with allowed=false, not an execution error. Denials record attribution by default; no_record skips ingest. Never automatically replay an ambiguous check: each invocation can create a new reservation. Use `solwyn budget check` followed by `solwyn budget confirm` only around a specific un-instrumented provider spend that you make yourself. Never wrap SDK-instrumented code with `budget check` or `budget confirm`; the Solwyn SDK already reserves and confirms that spend. Fail-open is explicit: when a check returns `allowed=true` and `reservation_id=null`, skip confirm. Do not create repeated unconfirmed checks. They temporarily hold budget and can cause self-denial. Requires a write-scoped project API key; writes use its project, not the selected read project.

NameTypeReqDescription
agent_run_id––Stable caller run ID (at most 256 characters); overrides SOLWYN_AGENT_RUN_ID. Reuse across this run; never replace it to evade a stopped run.
audio_seconds––Estimated billed audio duration in seconds, nonnegative; null means unobservable, zero means no duration.
estimated_input_tokensintegeryesEstimated input token count for admission; nonnegative integer. This estimate reserves budget, not provider output.
estimated_output_tokens––Optional output token bound, integer 0–100,000,000, for denial attribution only; does not set the reservation amount or provider generation limit.
fallback_models––Ordered model alternatives available to the caller, at most 8 models of at most 2048 characters each; must align one-for-one with fallback_providers. Inspect returned routing before spending.
fallback_providers––Ordered provider alternatives available to the caller, at most 8; must align one-for-one with fallback_models. Inspect the decision before routing; Solwyn does not invoke providers.
generation_count––Estimated number of billed generations, nonnegative integer; null means unobservable, zero means none.
image_count––Estimated number of billed images, nonnegative integer; null means unobservable, zero means no billed images.
input_characters––Estimated billed input character count, nonnegative integer; null means unobservable, zero means none.
is_estimatedboolean–True when usage quantities are estimates rather than observed provider usage; false by default.
modelstringyesModel used for this call, at most 2048 characters; use the actual served model when recording or confirming.
no_recordboolean–True skips denial attribution ingest only; the reservation decision still runs. False records denied calls by default.
provider–yesProvider used for this call; use the actual served provider when recording or confirming.
quality––Pricing quality selector, at most 32 characters; preserve the model's supported variant rather than inventing a default.
resolution––Pricing resolution selector, at most 32 characters; preserve the model's supported variant rather than inventing a default.
tags––Attribution tags; explicit keys override SOLWYN_TAGS. At most 10 merged keys, keys 1–64 characters, values at most 256, no NUL. Whitespace and case are preserved.
video_seconds––Estimated billed video duration in seconds, nonnegative; null means unobservable, zero means no duration.
NameTypeReqDescription
data–––
error–––
okbooleanyes–
recovery–––
schemastring––

No examples provided.

budget_check_batch ~466

Submit 1–32 checks once to Core's durable batch journal. Retain a caller-prepared UUIDv7 operation_id before calling so an entirely lost MCP reply is recoverable. Omission generates an ID returned when a reply can be delivered. recover_only with that ID performs GET only: no admission, recording, resumption or renewed reservation authority. Indexed completed, failed, unknown and unattempted outcomes remain distinct; reservations expire at their original checked_at + 300 seconds and journal IDs expire after 24 hours. Never replay an unknown outcome or unattempted suffix automatically, or replace an ID to evade conflicts/expiry. Denials are successful decisions and record attribution unless no_record; retain each recording_retry payload for explicit record_only retry, which only ingests that identical event. Settlement remains separate. All calls share a fixed 30-second work deadline, 1 MiB HTTP response budget and 2 MiB result limit. An admitted request may remain effective after cancellation. Requires a project API key. Submission and record_only require write scope; recover_only GET accepts read-only scope. Uses the key's project, not the selected read project.

NameTypeReqDescription
checks––1–32 ordered check bodies for one durable admission operation; omit entirely for recover_only or record_only. Validate before submission; never automatically replay unknown outcomes.
estimated_output_tokens––Optional output token bound, integer 0–100,000,000, for denial attribution only; does not set the reservation amount or provider generation limit.
no_recordboolean–True skips denial attribution for every item only; checks still run and allowed items may reserve budget.
operation_id––Caller-retained canonical UUIDv7. Prepare before submission to recover a wholly lost reply; expires 24 hours after its encoded creation time. Required for recover_only and record_only.
record_only––Explicit attribution-only retry: exact recording_retry entries from the original result, with the same operation_id, original index and event payload. Omit checks; never regenerates timestamps or ide…
recover_onlyboolean–True performs only historical GET using operation_id; omit checks. It never resumes admission, records denial attribution or renews original reservation authority. Read-only key scope is accepted.
NameTypeReqDescription
data–––
error–––
okbooleanyes–
recovery–––
schemastring––

No examples provided.

budget_confirm ~1,403

Settle a non-null reservation after caller-made spend using observed token/media usage and actual served provider/model. Records attribution with the same call_id and attempt_index; no_record skips ingest. Recording failure does not undo settlement. Save the FIRST recording_retry event. After known settlement success, use only record_only=FIRST event to retry ingest; this reports settlement=not_submitted. After a lost 204, within Core's project-bound 3600-second receipt window replay identical settlement inputs with no_record=true. After a known 204, submit only record_only=FIRST event; never replace it with the replay's unused new event. Ordinary fresh-confirm replay regenerates timestamp/SDK identity and rereads ambient tags. An event never returned cannot be reconstructed. The receipt cannot correct successful settlement. Missing-media 422 permits corrected quantities under the retained funding ID; never reserve again for completed provider work. Use `solwyn budget check` followed by `solwyn budget confirm` only around a specific un-instrumented provider spend that you make yourself. Never wrap SDK-instrumented code with `budget check` or `budget confirm`; the Solwyn SDK already reserves and confirms that spend. Fail-open is explicit: when a check returns `allowed=true` and `reservation_id=null`, skip confirm. Do not create repeated unconfirmed checks. They temporarily hold budget and can cause self-denial. Requires a write-scoped project API key; writes use its project, not the selected read project.

NameTypeReqDescription
accepted_prediction_tokensinteger–Accepted prediction token subset of output_tokens; integer 0–100,000,000. Do not add again to output total.
agent_run_id––Stable caller run ID (at most 256 characters); overrides SOLWYN_AGENT_RUN_ID. Reuse across this run; never replace it to evade a stopped run.
attempt_indexinteger–Observed nonnegative provider-attempt index, 0 by default; retained in attribution, never creates or retries a provider attempt. Keep identical on recording retry.
audio_input_tokensinteger–Audio token subset already included in input_tokens; integer 0–100,000,000. Distinct from audio seconds.
audio_output_tokensinteger–Audio token subset already included in output_tokens; integer 0–100,000,000. Distinct from audio seconds.
cache_creation_1h_tokensinteger–Input tokens written to the one-hour cache; subset of input_tokens, integer 0–100,000,000.
cache_creation_5m_tokensinteger–Input tokens written to the five-minute cache; subset of input_tokens, integer 0–100,000,000.
cached_input_tokensinteger–Cached-read input token subset already included in input_tokens; integer 0–100,000,000, not additional tokens.
call_id––Caller-persisted canonical UUID, at most 36 characters; required for settlement. Keep identical across settlement and recording retries; omit for record_only.
image_input_tokensinteger–Image token subset already included in input_tokens; integer 0–100,000,000. Distinct from image count.
image_output_tokensinteger–Image token subset already included in output_tokens; integer 0–100,000,000. Distinct from image count.
input_tokensinteger–Total observed input tokens, including cached, cache creation, audio, image and tool-use input subsets; integer 0–100,000,000. The sum of the three cache buckets must not exceed this total.
is_estimatedboolean–True when usage quantities are estimates rather than observed provider usage; false by default.
is_provider_fallbackboolean–True when the served provider differs through fallback routing; report the actual served provider and model.
latency_msnumber–Observed call latency in milliseconds; finite, nonnegative number. Used for attribution, not reservation settlement pricing.
media_usage––Actual observed media billing quantities and pricing variants, forwarded unchanged to settlement and attribution. Null quantities are unobservable; zero means none. Never substitute admission estimat…
modality––Actual completed call modality for attribution (text by default); the pricing card selects settlement units from observed media_usage.
model––Actual served model, required for settlement, at most 2048 characters; omit for record_only.
no_recordboolean–True skips ingest only; settlement still occurs. After a lost 204, replay identical settlement inputs with no_record=true; after a known 204, use record_only with the FIRST retained event, never this…
output_tokensinteger–Total observed output tokens, including reasoning, audio, image and prediction subsets; integer 0–100,000,000.
parent_run_id––Parent caller run ID for attribution, at most 256 characters; does not change the reservation's run identity.
provider––Actual served provider, required for settlement; omit for record_only.
provider_region––Actual served provider region for regional pricing, at most 32 characters; omit when unavailable.
reasoning_tokensinteger–Reasoning token subset already included in output_tokens; integer 0–100,000,000, not additional tokens.
record_only––Exact FIRST retained recording_retry event; omit every other argument. After a lost 204, first obtain a known 204 by replaying identical settlement inputs with no_record=true. Never replace the FIRST…
rejected_prediction_tokensinteger–Rejected prediction token bucket reported by the provider; integer 0–100,000,000. Preserve provider usage without double-counting totals.
reservation_id––Non-null, non-empty reservation ID returned by check, required for settlement. Confirm only after its call using the same project key identity; omit for record_only.
run_name––Human-readable run name for attribution, at most 255 characters; distinct from stable agent_run_id.
service_tier––Actual served service tier for pricing; omit when unavailable so Core applies its default pricing behavior.
statusstring–Completed provider-call outcome: success or error. Used for attribution; an error does not imply zero observed usage.
tags––Attribution tags; explicit keys override SOLWYN_TAGS. At most 10 merged keys, keys 1–64 characters, values at most 256, no NUL. Whitespace and case are preserved.
tool_use_input_tokensinteger–Tool-use input token subset already included in input_tokens; integer 0–100,000,000, not additional tokens.
NameTypeReqDescription
data–––
error–––
okbooleanyes–
recovery–––
schemastring––

No examples provided.

budget_status ~95

Use `solwyn budget status --json` for polling. It is a pure read and does not hold budget. Accepts a Solwyn login or a project API key with access to the selected project.

NameTypeReqDescription
project_id––Read project ID; non-empty when supplied. Overrides launch --project, then SOLWYN_PROJECT_ID/config default_project. A key must have access to this project; this never changes the authenticated write…
NameTypeReqDescription
data–––
error–––
okbooleanyes–
recovery–––
schemastring––

No examples provided.

budget_uncounted ~105

Read advisory unpriced upper-bound offline traffic, possibly overcounted. A 503 means unknown; retry the read, never assume zero or no past traffic. Accepts a Solwyn login or a project API key with access to the selected project.

NameTypeReqDescription
project_id––Read project ID; non-empty when supplied. Overrides launch --project, then SOLWYN_PROJECT_ID/config default_project. A key must have access to this project; this never changes the authenticated write…
NameTypeReqDescription
data–––
error–––
okbooleanyes–
recovery–––
schemastring––

No examples provided.

get_account_alert ~78

Read account spend alert configuration, optionally latest firing and lifecycle history within Core’s 30d retention window. Requires a Solwyn login.

NameTypeReqDescription
with_last_firedboolean–Include latest firing within Core's default 30d retention window; requires a Solwyn login even for project budget rules. Null means no matching history in that window.
NameTypeReqDescription
data–––
error–––
okbooleanyes–
recovery–––
schemastring––

No examples provided.

get_account_phone ~33

Read user phone verification and SMS consent state. Verification and consent writes stay in the dashboard. Requires a Solwyn login.

Input schema present but exposes no named parameters.

NameTypeReqDescription
data–––
error–––
okbooleanyes–
recovery–––
schemastring––

No examples provided.

get_agent_run ~125

Read one agent run by storage ID or exact raw run name. Accepts a project key or login. Accepts a Solwyn login or a project API key with access to the selected project.

NameTypeReqDescription
project_id––Read project ID; non-empty when supplied. Overrides launch --project, then SOLWYN_PROJECT_ID/config default_project. A key must have access to this project; this never changes the authenticated write…
runstringyesRun storage ID or exact raw caller run name, 1–255 characters; ambiguous names fail with guidance to list IDs.
NameTypeReqDescription
data–––
error–––
okbooleanyes–
recovery–––
schemastring––

No examples provided.

get_cost_baseline ~108

Read committed daily spend baseline excluding today. Accepts a Solwyn login or a project API key with access to the selected project.

NameTypeReqDescription
daysinteger–Baseline lookback days from 3 through 30, excluding today; defaults to 7.
project_id––Read project ID; non-empty when supplied. Overrides launch --project, then SOLWYN_PROJECT_ID/config default_project. A key must have access to this project; this never changes the authenticated write…
NameTypeReqDescription
data–––
error–––
okbooleanyes–
recovery–––
schemastring––

No examples provided.

get_cost_drift ~162

Compare historical stored spend and estimates with coverage and caveats. Accepts a Solwyn login or a project API key with access to the selected project.

NameTypeReqDescription
from_––Custom window start: timezone-aware ISO timestamp paired with to; the pair overrides time_range.
project_id––Read project ID; non-empty when supplied. Overrides launch --project, then SOLWYN_PROJECT_ID/config default_project. A key must have access to this project; this never changes the authenticated write…
time_rangestring–Preset query window; paired custom start/end timestamps override this preset. Available values are declared by the schema.
to––Custom window end: timezone-aware ISO timestamp paired with from_, strictly later than from_; overrides time_range.
NameTypeReqDescription
data–––
error–––
okbooleanyes–
recovery–––
schemastring––

No examples provided.

get_cost_total ~409

Read uncapped project cost totals with the same cost filters and custom windows as get_costs. Accepts a Solwyn login or a project API key with access to the selected project.

NameTypeReqDescription
agent_run––Filter by run_<32 lowercase hex> storage ID or otherwise exact raw caller run name, at most 256 characters.
failover_reason––Filter stored costs by failover reason; omit to include all reasons.
from_––Custom window start: timezone-aware ISO timestamp paired with to; the pair overrides time_range.
modality––Filter stored costs by call modality; omit to include all modalities.
model––Filter stored costs by exact served model identifier; omit to include all models.
model_fallback––Filter is_model_fallback; false selects non-fallback calls, null includes both.
project_id––Read project ID; non-empty when supplied. Overrides launch --project, then SOLWYN_PROJECT_ID/config default_project. A key must have access to this project; this never changes the authenticated write…
provider––Filter stored costs by served provider; omit to include all providers.
provider_fallback––Filter is_provider_fallback; false selects non-fallback calls, null includes both.
provider_region––Filter stored costs by served provider region; omit to include all regions.
service_tier––Filter stored costs by served service tier; omit to include all tiers.
status––Filter stored costs by recorded call status; omit to include all statuses.
tag––AND filters as key=value strings; unique keys 1–64 characters, values at most 256, no NUL. Empty values, whitespace and case are preserved.
time_range––Preset query window; paired custom start/end timestamps override this preset. Available values are declared by the schema.
to––Custom window end: timezone-aware ISO timestamp paired with from_, strictly later than from_; overrides time_range.
NameTypeReqDescription
data–––
error–––
okbooleanyes–
recovery–––
schemastring––

No examples provided.

get_costs ~520

Read project costs grouped by a Core dimension or tag:<key>, or account costs grouped by project by default. Shared filters/custom windows apply; account mode permits only model/provider/modality and window filters. Project mode accepts a project key or a Solwyn login; account=true requires a Solwyn login and is mutually exclusive with explicit project_id. Account filters are restricted by Core.

NameTypeReqDescription
accountboolean–True reads account costs with a Solwyn login; mutually exclusive with explicit project_id. Supports only model/provider/modality/group_by and window filters.
agent_run––Filter by run_<32 lowercase hex> storage ID or otherwise exact raw caller run name, at most 256 characters.
failover_reason––Filter stored costs by failover reason; omit to include all reasons.
from_––Custom window start: timezone-aware ISO timestamp paired with to; the pair overrides time_range.
group_by––Core grouping dimension (for example model, provider or modality), or tag:<key> with key 1–64 characters and no NUL. Core validates dimensions.
modality––Filter stored costs by call modality; omit to include all modalities.
model––Filter stored costs by exact served model identifier; omit to include all models.
model_fallback––Filter is_model_fallback; false selects non-fallback calls, null includes both.
project_id––Read project ID; non-empty when supplied. Overrides launch --project, then SOLWYN_PROJECT_ID/config default_project. A key must have access to this project; this never changes the authenticated write…
provider––Filter stored costs by served provider; omit to include all providers.
provider_fallback––Filter is_provider_fallback; false selects non-fallback calls, null includes both.
provider_region––Filter stored costs by served provider region; omit to include all regions.
service_tier––Filter stored costs by served service tier; omit to include all tiers.
status––Filter stored costs by recorded call status; omit to include all statuses.
tag––AND filters as key=value strings; unique keys 1–64 characters, values at most 256, no NUL. Empty values, whitespace and case are preserved.
time_range––Preset query window; paired custom start/end timestamps override this preset. Available values are declared by the schema.
to––Custom window end: timezone-aware ISO timestamp paired with from_, strictly later than from_; overrides time_range.
NameTypeReqDescription
data–––
error–––
okbooleanyes–
recovery–––
schemastring––

No examples provided.

get_forecast ~87

Read the configured project's month-to-date spend forecast without authorizing spend. Accepts a Solwyn login or a project API key with access to the selected project.

NameTypeReqDescription
project_id––Read project ID; non-empty when supplied. Overrides launch --project, then SOLWYN_PROJECT_ID/config default_project. A key must have access to this project; this never changes the authenticated write…
NameTypeReqDescription
data–––
error–––
okbooleanyes–
recovery–––
schemastring––

No examples provided.

get_overview ~39

Read calendar-month account spend, requests, trend, savings, and free-tier quota metadata. Requires a Solwyn login. Requires a Solwyn login.

Input schema present but exposes no named parameters.

NameTypeReqDescription
data–––
error–––
okbooleanyes–
recovery–––
schemastring––

No examples provided.

get_project_status ~86

Read the configured project's budget and provider health without authorizing spend. Accepts a Solwyn login or a project API key with access to the selected project.

NameTypeReqDescription
project_id––Read project ID; non-empty when supplied. Overrides launch --project, then SOLWYN_PROJECT_ID/config default_project. A key must have access to this project; this never changes the authenticated write…
NameTypeReqDescription
data–––
error–––
okbooleanyes–
recovery–––
schemastring––

No examples provided.

get_unit_economics ~167

Read unit-cost metrics and optional server-inferred causes. Accepts a Solwyn login or a project API key with access to the selected project.

NameTypeReqDescription
causeboolean–Include server-inferred suspected cost drivers when true; no provider payloads are read.
project_id––Read project ID; non-empty when supplied. Overrides launch --project, then SOLWYN_PROJECT_ID/config default_project. A key must have access to this project; this never changes the authenticated write…
time_rangestring–Unit-economics preset 7d, 30d or 90d (default 30d); optional vs_prev compares the previous equal-length window.
vs_prevboolean–Compare unit economics with the previous equal-length window when true.
NameTypeReqDescription
data–––
error–––
okbooleanyes–
recovery–––
schemastring––

No examples provided.

get_whoami ~53

Read account identity and email verification; project keys return local key context without a user identity. A Solwyn login reads user/account/project identity; project keys return only local auth and selected-project context without revealing the key.

Input schema present but exposes no named parameters.

NameTypeReqDescription
data–––
error–––
okbooleanyes–
recovery–––
schemastring––

No examples provided.

list_agent_runs ~320

List project agent runs. Costs are lifetime totals; the window only selects which runs qualify. Accepts a project key or login. Accepts a Solwyn login or a project API key with access to the selected project.

NameTypeReqDescription
cursor––Opaque cursor from a previous page of the same query; preserve filters and ordering when continuing.
from_time––Custom run-selection start: timezone-aware RFC3339 timestamp paired with to_time; overrides time_range. Costs remain lifetime totals.
limitinteger–Maximum entries in this page, integer 1–100; defaults to 25. Continue using the returned cursor.
parent––Parent run storage ID or raw caller run ID, 1–256 characters; selects children of this parent.
project_id––Read project ID; non-empty when supplied. Overrides launch --project, then SOLWYN_PROJECT_ID/config default_project. A key must have access to this project; this never changes the authenticated write…
query––Case-insensitive run-name search text, at most 255 characters; omit to include all qualifying runs.
sort––Descending page sort key; defaults to last_seen_at. Must match the cursor's stored sort when continuing; remove cursor when changing sort.
time_range––Preset query window; paired custom start/end timestamps override this preset. Available values are declared by the schema.
to_time––Custom run-selection end: timezone-aware RFC3339 timestamp after from_time; provide both bounds. Costs remain lifetime totals.
NameTypeReqDescription
data–––
error–––
okbooleanyes–
recovery–––
schemastring––

No examples provided.

list_alert_activity ~162

Read account-wide activity across all projects plus account scope with delivery receipts. Requires a Solwyn login.

NameTypeReqDescription
all_pagesboolean–True follows at most 10 pages within the 30-second/1 MiB response budget, including empty continued pages; limits retain the first unread cursor. False returns one page.
cursor––Opaque cursor from a previous page of the same query; preserve filters and ordering when continuing.
event_type––Exact activity event type: fired, snoozed, unsnoozed, paused or resumed; omit for all events.
time_rangestring–Activity preset 7d, 30d or 90d (default 30d); no custom timestamps. Core clamps retained account-wide history.
NameTypeReqDescription
data–––
error–––
okbooleanyes–
recovery–––
schemastring––

No examples provided.

list_alert_events ~437

Read cursor-paginated alert history and per-channel delivery receipts. Project keys work for project history; account history requires a Solwyn login. failed_only filters partial/failed rollups locally; scope is the rule scope. No mutation tools are exposed. Project history accepts a project key or a Solwyn login; account=true reads account-scope history, requires a Solwyn login and ignores project_id. Use list_alert_activity for all projects plus account scope.

NameTypeReqDescription
accountboolean–True reads account-scope history and requires a Solwyn login; project_id is ignored. False reads the selected project using a project key or a Solwyn login.
all_pagesboolean–True fetches at most 10 history pages within one 30-second/1 MiB response budget, counting empty filtered pages. A fixed limit error retains the cursor of the first unread page. False returns one pag…
cursor––Opaque cursor from a previous page of the same query; preserve filters and ordering when continuing.
failed_onlyboolean–True keeps only partial/failed delivery rollups using a local filter; a page can be empty while next_cursor remains present.
from_––Custom window start: timezone-aware ISO timestamp paired with to; the pair overrides time_range.
project_id––Read project ID; non-empty when supplied. Overrides launch --project, then SOLWYN_PROJECT_ID/config default_project. A key must have access to this project; this never changes the authenticated write…
rule_type––Filter by alert rule type, at most 32 characters and no NUL; omit to include all types.
scope––Filter by rule scope, at most 32 characters and no NUL; this is not project/account selection (use account).
time_rangestring–Alert-history preset: 7d, 30d or 90d (default 30d); paired custom timestamps override it. Core may clamp retention.
to––Custom window end: timezone-aware ISO timestamp paired with from_, strictly later than from_; overrides time_range.
NameTypeReqDescription
data–––
error–––
okbooleanyes–
recovery–––
schemastring––

No examples provided.

list_audit_events ~154

Read account audit events newest first with exact action filters and bounded pagination. Requires a Solwyn login.

NameTypeReqDescription
action––Exact audit action string of 1–100 characters; omit to include all actions.
all_pagesboolean–True follows at most 10 pages within the 30-second/1 MiB response budget, including empty continued pages; limits retain the first unread cursor. False returns one page.
cursor––Opaque cursor from a previous page of the same query; preserve filters and ordering when continuing.
time_range––Audit window 7d, 30d, 90d or 365d (default 30d); exact action and cursor filters preserve this window.
NameTypeReqDescription
data–––
error–––
okbooleanyes–
recovery–––
schemastring––

No examples provided.

list_budget_rules ~165

Read budget rule conditions, routing, and separate paused/snoozed states. A snoozed hard_deny still denies; pausing releases enforcement. Rule keys change when keyed fields are edited. Project keys or a Solwyn login can list rules; with_last_fired=true requires a Solwyn login for the account latest-events read.

NameTypeReqDescription
project_id––Read project ID; non-empty when supplied. Overrides launch --project, then SOLWYN_PROJECT_ID/config default_project. A key must have access to this project; this never changes the authenticated write…
with_last_firedboolean–Include latest firing within Core's default 30d retention window; requires a Solwyn login even for project budget rules. Null means no matching history in that window.
NameTypeReqDescription
data–––
error–––
okbooleanyes–
recovery–––
schemastring––

No examples provided.

list_cost_events ~504

Read cursor-paginated cost events with shared filters and bounded all_pages. Accepts a Solwyn login or a project API key with access to the selected project.

NameTypeReqDescription
agent_run––Filter by run_<32 lowercase hex> storage ID or otherwise exact raw caller run name, at most 256 characters.
all_pagesboolean–True follows at most 10 pages within the 30-second/1 MiB response budget, including empty continued pages; limits retain the first unread cursor. False returns one page.
cursor––Opaque cursor from a previous page of the same query; preserve filters and ordering when continuing.
failover_reason––Filter stored costs by failover reason; omit to include all reasons.
from_––Custom window start: timezone-aware ISO timestamp paired with to; the pair overrides time_range.
limitinteger–Maximum events per page, integer 1–100 (default 50); preserve all filters when continuing with the returned cursor.
modality––Filter stored costs by call modality; omit to include all modalities.
model––Filter stored costs by exact served model identifier; omit to include all models.
model_fallback––Filter is_model_fallback; false selects non-fallback calls, null includes both.
project_id––Read project ID; non-empty when supplied. Overrides launch --project, then SOLWYN_PROJECT_ID/config default_project. A key must have access to this project; this never changes the authenticated write…
provider––Filter stored costs by served provider; omit to include all providers.
provider_fallback––Filter is_provider_fallback; false selects non-fallback calls, null includes both.
provider_region––Filter stored costs by served provider region; omit to include all regions.
service_tier––Filter stored costs by served service tier; omit to include all tiers.
status––Filter stored costs by recorded call status; omit to include all statuses.
tag––AND filters as key=value strings; unique keys 1–64 characters, values at most 256, no NUL. Empty values, whitespace and case are preserved.
time_rangestring–Preset query window; paired custom start/end timestamps override this preset. Available values are declared by the schema.
to––Custom window end: timezone-aware ISO timestamp paired with from_, strictly later than from_; overrides time_range.
NameTypeReqDescription
data–––
error–––
okbooleanyes–
recovery–––
schemastring––

No examples provided.

list_open_alert_deliveries ~96

Read pending/retrying deliveries and attempts regardless of event retention. Requires a Solwyn login.

NameTypeReqDescription
all_pagesboolean–True follows at most 10 pages within the 30-second/1 MiB response budget, including empty continued pages; limits retain the first unread cursor. False returns one page.
cursor––Opaque cursor from a previous page of the same query; preserve filters and ordering when continuing.
NameTypeReqDescription
data–––
error–––
okbooleanyes–
recovery–––
schemastring––

No examples provided.

list_priced_models ~84

List exact available priced targets and current pricing version. Accepts a Solwyn login or a project API key with access to the selected project.

NameTypeReqDescription
project_id––Read project ID; non-empty when supplied. Overrides launch --project, then SOLWYN_PROJECT_ID/config default_project. A key must have access to this project; this never changes the authenticated write…
NameTypeReqDescription
data–––
error–––
okbooleanyes–
recovery–––
schemastring––

No examples provided.

list_projects ~29

List projects visible to the logged-in user. Requires a Solwyn login. Requires a Solwyn login.

Input schema present but exposes no named parameters.

NameTypeReqDescription
data–––
error–––
okbooleanyes–
recovery–––
schemastring––

No examples provided.

list_provider_failovers ~128

Read recent provider/model failover groups, capped by Core at 50 groups. Accepts a Solwyn login or a project API key with access to the selected project.

NameTypeReqDescription
project_id––Read project ID; non-empty when supplied. Overrides launch --project, then SOLWYN_PROJECT_ID/config default_project. A key must have access to this project; this never changes the authenticated write…
time_range––Failover aggregation window 24h, 7d or 30d (default 7d); Core returns at most 50 groups, with no cursor.
NameTypeReqDescription
data–––
error–––
okbooleanyes–
recovery–––
schemastring––

No examples provided.

list_tag_values ~206

Read one page of account-scoped values for a verbatim tag key. Team required; prefix is case-sensitive. Accepts a Solwyn login or a project API key with access to the selected project.

NameTypeReqDescription
cursor––Opaque cursor from a previous page of the same query; preserve filters and ordering when continuing.
keystringyesVerbatim tag key, 1–64 characters and no NUL; whitespace and case are significant. Team plan required.
limitinteger–Maximum entries in this page, integer 1–100; defaults to 25. Continue using the returned cursor.
prefix––Case-sensitive value prefix, at most 256 characters and no NUL; omit for all values of this key.
project_id––Read project ID; non-empty when supplied. Overrides launch --project, then SOLWYN_PROJECT_ID/config default_project. A key must have access to this project; this never changes the authenticated write…
NameTypeReqDescription
data–––
error–––
okbooleanyes–
recovery–––
schemastring––

No examples provided.

list_tags ~91

List account-scoped tag discovery through a project. Team required; keys preserve whitespace and case. Accepts a Solwyn login or a project API key with access to the selected project.

NameTypeReqDescription
project_id––Read project ID; non-empty when supplied. Overrides launch --project, then SOLWYN_PROJECT_ID/config default_project. A key must have access to this project; this never changes the authenticated write…
NameTypeReqDescription
data–––
error–––
okbooleanyes–
recovery–––
schemastring––

No examples provided.

list_team_invites ~42

Read all open account invitations and their delivery status, including expired invitations. Core requires owner/admin role; no project selection is required. Requires a Solwyn login.

Input schema present but exposes no named parameters.

NameTypeReqDescription
data–––
error–––
okbooleanyes–
recovery–––
schemastring––

No examples provided.

list_team_members ~38

Read the complete active account roster in join order. Any account member may read it; no project selection is required. Requires a Solwyn login.

Input schema present but exposes no named parameters.

NameTypeReqDescription
data–––
error–––
okbooleanyes–
recovery–––
schemastring––

No examples provided.

list_untracked_surfaces ~131

Read untracked surfaces with effective retention window, capped by Core at 25 observations. Accepts a Solwyn login or a project API key with access to the selected project.

NameTypeReqDescription
project_id––Read project ID; non-empty when supplied. Overrides launch --project, then SOLWYN_PROJECT_ID/config default_project. A key must have access to this project; this never changes the authenticated write…
time_range––Untracked observation window 7d, 30d or 90d (default 7d); effective retention is reported and Core returns at most 25 observations.
NameTypeReqDescription
data–––
error–––
okbooleanyes–
recovery–––
schemastring––

No examples provided.

plan_catalog ~50

Read plan catalog: prices in cents, currency, included requests, decimal cent overage, limits and capabilities. Accepts a Solwyn login or project keys with authenticated user context; no project selection is required.

Input schema present but exposes no named parameters.

NameTypeReqDescription
data–––
error–––
okbooleanyes–
recovery–––
schemastring––

No examples provided.

plan_preview ~114

Read a plan-change estimate: immediate proration or scheduling at term end, integer cents, currency and line periods. Never changes a subscription or bills; not a price lock. No 503/transport replay. Requires a Solwyn login at any account role; no selected project required.

NameTypeReqDescription
intervalstringyesTarget billing interval, month or year. Preview only; does not create a charge.
tierstringyesTarget paid plan tier: production, team or scale. Preview only; does not change the plan.
NameTypeReqDescription
data–––
error–––
okbooleanyes–
recovery–––
schemastring––

No examples provided.

plan_status ~39

Read current plan limits, capabilities and subscription lifecycle state. Accepts a Solwyn login or a project key with account context; no project selection is required.

Input schema present but exposes no named parameters.

NameTypeReqDescription
data–––
error–––
okbooleanyes–
recovery–––
schemastring––

No examples provided.

record_call ~670

Record one caller-owned completed call without reserving or settling budget, including a record-only retry after known settlement success. Do not duplicate SDK events. Persist call_id before sending and reuse it with unchanged payload and attempt_index=0 on retries; omission generates a new ID per call. Core deduplicates the project/call_id/attempt_index identity while retained; this is not an update mechanism. Costs are server-priced. Inspect status, rejected and duplicates even when transport succeeds. Requires a write-scoped project API key; writes use its project, not the selected read project.

NameTypeReqDescription
agent_run_id––Stable caller run ID (at most 256 characters); overrides SOLWYN_AGENT_RUN_ID. Reuse across this run; never replace it to evade a stopped run.
agent_run_name––Human-readable run name for attribution, at most 255 characters; distinct from stable agent_run_id.
call_id––Caller-persisted UUIDv4 or UUIDv7, at most 36 characters; reuse for retries with identical payload and attempt_index=0. Omission generates a new ID on each invocation, so cannot deduplicate lost-resp…
input_tokens––Total observed input tokens, including cached, cache creation, audio, image and tool-use input subsets; integer 0–100,000,000. The sum of the three cache buckets must not exceed this total. If omitte…
latency_msnumber–Observed call latency in milliseconds; finite, nonnegative number. Used for attribution, not reservation settlement pricing.
media_usage––Observed media billing quantities and pricing variants; null quantities mean unobservable, zero means none. Used for ingest pricing, not reservation settlement.
modality––Recorded call modality (text by default); report the actual modality for server-side pricing and analytics.
modelstringyesModel used for this call, at most 2048 characters; use the actual served model when recording or confirming.
output_tokens––Total observed output tokens, including reasoning, audio, image and prediction subsets; integer 0–100,000,000. If omitted, use token_details.output_tokens or zero; when both are supplied they must ma…
parent_agent_run_id––Parent caller run ID for attribution, at most 256 characters; omit for a root run.
provider–yesProvider used for this call; use the actual served provider when recording or confirming.
provider_region––Actual served provider region for regional pricing, at most 32 characters; omit when unavailable.
service_tier––Actual served service tier for pricing; omit when unavailable so Core applies its default pricing behavior.
statusstring–Completed provider-call outcome: success or error. Used for attribution; an error does not imply zero observed usage.
tags––Attribution tags; explicit keys override SOLWYN_TAGS. At most 10 merged keys, keys 1–64 characters, values at most 256, no NUL. Whitespace and case are preserved.
token_details––Observed token totals and subset buckets; subsets are not additional tokens. Explicit top-level input/output counts must equal these totals.
NameTypeReqDescription
data–––
error–––
okbooleanyes–
recovery–––
schemastring––

No examples provided.

simulate_costs ~263

Read-only historical repricing; never reserves or bills. 429: one bounded retry. No 503/transport replay. Accepts a Solwyn login or a project API key with access to the selected project.

NameTypeReqDescription
from_––Custom window start: timezone-aware ISO timestamp paired with to; the pair overrides time_range.
modelstringyesExact target model (1–2048 characters) from list_priced_models; Core rejects unavailable or unsupported targets.
project_id––Read project ID; non-empty when supplied. Overrides launch --project, then SOLWYN_PROJECT_ID/config default_project. A key must have access to this project; this never changes the authenticated write…
provider–yesTarget priced provider to replay historical usage against, without spending or reserving.
region––Explicit Bedrock target region paired with service_tier; unavailable for other providers.
service_tier––Explicit Bedrock target service tier paired with region; unavailable for other providers.
time_rangestring–Preset query window; paired custom start/end timestamps override this preset. Available values are declared by the schema.
to––Custom window end: timezone-aware ISO timestamp paired with from_, strictly later than from_; overrides time_range.
NameTypeReqDescription
data–––
error–––
okbooleanyes–
recovery–––
schemastring––

No examples provided.

Install

How do I install the Solwyn MCP server?

Solwyn runs locally as a PyPI package, launched with uvx solwyn-cli. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

pypi · solwyn-cli

# add to Claude Code
claude mcp add ai-solwyn-solwyn -- uvx solwyn-cli
Common questions

What is the Solwyn MCP server?

Solwyn is an MCP server listed in the public MCP registry as ai.solwyn/solwyn. Check budgets before AI spend, record what your code spends and read Solwyn costs. This page covers its PyPI package (solwyn-cli).

Is the Solwyn MCP server safe to use?

Solwyn scores 59 out of 100 on VerifyMCP. We recorded 4 known advisories against it as of 5 November 2026. 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 Solwyn MCP server expose?

Solwyn exposes 37 tools: budget_status, budget_check, budget_confirm, get_project_status, get_forecast, and 32 more. Their descriptions and schemas cost roughly 8,353 tokens of context every time the server is loaded.

Is the Solwyn MCP server still maintained?

Solwyn is still listed as active in the MCP registry. We last reached this channel on 5 November 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 Solwyn MCP server under?

Solwyn declares the Apache-2.0 licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.