LLM Pricing
Überblick
Beschreibung vom Entwickler (englisches Original)
Real-time, drift-verified LLM pricing across 31 providers with cost+quality model routing.
Die drei Säulen von PopNx MCP
Diese drei werden nie zu einer Punktzahl zusammengefasst: Meinungen, Messungen und Beliebtheit sind verschiedene Dinge.
- Stimmen der NutzeriNoch keine BewertungenBewertungen starten in einem späteren Schritt zusammen mit Benutzerkonten
- Unsere Basischecksi3 von 3 bestandenAnhand öffentlicher Informationen geprüft; Code noch nicht gescannt
- NutzungiGanz neu↓ 141/Wo. · ★ –
Was du damit machen kannst
Für diesen Server haben wir noch keine Zusammenfassung in einfacher Sprache geschrieben. Unten stehen die Fakten, die wir aus der Registry gelesen haben.
- Verbindung: Computer oder Cloud
- Transport: stdio, Streamable HTTP
- Kategorie: Suche & KI-Gedächtnis
- Das musst du eintragen: LLM_PRICING_API_KEY
Installation
Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.
Bevor du installierst
- Basischecks: 3 von 3 bestanden
- Läuft auf dem Server des Entwicklers: Was du fragst, läuft über dessen Server.
- Kann 32 Dinge (Tools) get_all_pricing, estimate_cost, compare_costs, get_performance_metrics …
- Das trägst du selbst ein:
LLM_PRICING_MCP_URL,LLM_PRICING_MCP_TIMEOUT_MS,LLM_PRICING_API_KEY
Als geheim markierte Werte sind Schlüssel zu deinem Konto. Gib sie nie weiter und füge sie nie in einen Chat ein.
Du brauchst
- Läuft in der CloudNichts zu installieren; die Verbindung läuft übers Internet
- npmNode.js installiert (für den Befehl npx)
Welche App nutzt du?
Wähle oben deine App. Wir merken sie uns, damit der Button beim nächsten Mal „In … installieren“ anzeigt.
Funktioniert in Claude im Web, auf dem Desktop und auf dem Handy:
- Öffne Settings → Connectors
- Tippe auf Add custom connector
- Füge die Adresse unten ein und tippe auf Add
- Wenn eine Anmeldung verlangt wird, melde dich beim Dienst des Entwicklers an
https://llm-pricing-api.fly.dev/mcpOder führ ihn auf deinem Computer aus
Öffne Claude Desktop → Settings → Developer → Edit Config und füge dies in claude_desktop_config.json ein
{
"mcpServers": {
"llm-pricing": {
"command": "npx",
"args": [
"-y",
"llm-pricing-mcp"
],
"env": {
"LLM_PRICING_MCP_URL": "your-value",
"LLM_PRICING_MCP_TIMEOUT_MS": "your-value",
"LLM_PRICING_API_KEY": "your-value"
}
}
}
}Führe das in deinem Terminal aus
claude mcp add --transport http llm-pricing https://llm-pricing-api.fly.dev/mcpOder führ ihn auf deinem Computer aus
claude mcp add llm-pricing --env LLM_PRICING_MCP_URL=your-value --env LLM_PRICING_MCP_TIMEOUT_MS=your-value --env LLM_PRICING_API_KEY=your-value -- npx -y llm-pricing-mcpTrag die leeren Werte ein, bevor du ihn startest.
Oder kopier die Einstellungen selbst
In .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen
{
"mcpServers": {
"llm-pricing": {
"url": "https://llm-pricing-api.fly.dev/mcp"
}
}
}Oder führ ihn auf deinem Computer aus
Oder kopier die Einstellungen selbst
In .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen
{
"mcpServers": {
"llm-pricing": {
"command": "npx",
"args": [
"-y",
"llm-pricing-mcp"
],
"env": {
"LLM_PRICING_MCP_URL": "your-value",
"LLM_PRICING_MCP_TIMEOUT_MS": "your-value",
"LLM_PRICING_API_KEY": "your-value"
}
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
Oder kopier die Einstellungen selbst
In .vscode/mcp.json in deinem Projekt einfügen
{
"servers": {
"llm-pricing": {
"type": "http",
"url": "https://llm-pricing-api.fly.dev/mcp"
}
}
}Oder führ ihn auf deinem Computer aus
Oder kopier die Einstellungen selbst
In .vscode/mcp.json in deinem Projekt einfügen
{
"servers": {
"llm-pricing": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"llm-pricing-mcp"
],
"env": {
"LLM_PRICING_MCP_URL": "your-value",
"LLM_PRICING_MCP_TIMEOUT_MS": "your-value",
"LLM_PRICING_API_KEY": "your-value"
}
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
ChatGPT verbindet sich nur mit Servern im Internet:
- Öffne ChatGPT im Web → Settings → Connectors (Apps)
- Tippe auf Create oder Add (bei manchen Tarifen musst du zuerst Developer mode unter Advanced einschalten)
- Füge die Adresse unten ein, gib ihr einen Namen und speichere
- Wenn eine Anmeldung verlangt wird, melde dich beim Dienst des Entwicklers an
https://llm-pricing-api.fly.dev/mcpMenünamen können sich je nach Tarif und mit der Zeit leicht unterscheiden.
Deine Auswahl bleibt in einem Cookie auf diesem Gerät; kein Konto nötig.
Werte, die du selbst einträgst
LLM_PRICING_MCP_URLenvUpstream MCP endpoint to bridge to. Defaults to the hosted server; set to point at a self-hosted instance.LLM_PRICING_MCP_TIMEOUT_MSenvPer-request timeout to the upstream server, in milliseconds.- Optional service API key (POST /billing/signup), sent as x-api-key. Only the usage and budget tools need it; they then act on your own org.
Diese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.
Was er kann
Tool-Namen und -Beschreibungen genau so, wie der Server sie am 7. Nov. 2026 gemeldet hat. Geschrieben hat sie der Entwickler, nicht wir; wir zeigen sie als reinen Text.
get_all_pricingGet current pricing for all LLM models from all providers
estimate_costEstimate the cost of using a specific LLM model
compare_costsCompare costs for multiple LLM models. Every named model is priced; pass client (e.g. 'claude_code') to also flag each model runnable_in_client (it never filters here). Recognised clients: claude_code, claude_desktop, cursor, github_copilot, windsurf, cline, continue, zed, jetbra
get_performance_metricsGet performance metrics (throughput, latency, context window) for models
get_use_casesGet recommended use cases and strengths for LLM models
get_telemetryGet MCP server telemetry and usage statistics including tool usage, response times, and error rates
get_pricing_historyQuery historical pricing snapshots recorded over time. Use this to look up past prices for a model or provider, or to see how prices have changed over a given number of days.
get_pricing_trendsFind models whose prices changed the most over a given period. Returns models sorted by absolute percentage price change with a direction label ('increased', 'decreased', or 'unchanged'). Use this to answer questions like 'which models got cheaper this month?' or 'which providers
register_price_alertRegister a webhook URL to receive notifications when a model's price changes by more than a specified percentage. Optionally scope the alert to a specific provider or model. Returns the alert ID and a one-time alert_token needed to view or delete it via manage_price_alert.
list_price_alertsList all registered price-change webhook alerts with their IDs and settings. Operator only: needs the server operator's key (MCP_API_KEY) on the MCP connection (x-api-key or Authorization: Bearer); any other caller, including the chat agent and the local STDIO server, gets error_
delete_price_alertDelete a registered price-change alert by its ID. Operator only: needs the server operator's key (MCP_API_KEY) on the MCP connection (x-api-key or Authorization: Bearer); any other caller, including the chat agent and the local STDIO server, gets error_code operator_key_required.
manage_price_alertView or delete the one price-change alert you registered, using the alert_token that register_price_alert returned once. No API key needed: the alert_token is the credential and is scoped to exactly that alert. action 'view' returns its id, url, threshold_pct, provider, model_nam
get_pricing_export_urlGenerate a download URL for the pricing history export. Returns a URL the user can open in their browser to download snapshot history as CSV (for spreadsheets) or JSON (for code). Use this when the user asks to export, download, or save pricing data.
list_conversationsList stored chat conversation sessions with their IDs, last-updated timestamp, turn count, and a preview of the most recent user message. Use this when the user asks to see their past conversations or chat history. Operator only: needs the server operator's key (MCP_API_KEY) on t
delete_conversationDelete a specific chat conversation by its ID. Use when the user asks to delete, clear, or remove a past conversation. Use list_conversations first to find the conversation ID. Operator only: needs the server operator's key (MCP_API_KEY) on the MCP connection (x-api-key or Author
get_ide_pricingGet subscription pricing for AI coding IDE tools: GitHub Copilot, Cursor, Windsurf, Claude.ai, JetBrains AI, Amazon Q Developer, and Tabnine. Returns monthly subscription cost, inline completion support, context window, and per-tool strengths. Use this when the user asks to compa
predict_costPredict the real cost of an LLM call from your actual prompt text — no need to know token counts in advance. Counts tokens locally, infers the task type (or accepts one explicitly), estimates output length from empirical I/O profiles, and returns all models ranked cheapest-first
optimize_workloadOptimise a multi-task LLM workload by assigning the cheapest qualifying model to each task instead of running everything through one model. Takes a list of workloads (task type + monthly volume + optional quality floor and capability requirements) and returns a per-task model all
recommend_modelRecommend the optimal LLM model from a free-text description of your use case — no need to already know the routing engine's task_type vocabulary. Classifies the description into a task type, then runs it through the same routing engine behind /router/recommend (live pricing + be
check_price_driftAudit this server's own pricing data against an external reference registry. Prices here are hand-maintained and go stale silently; a price that disagrees with the registry by more than the threshold is automatically withheld from serving the moment it's detected, not just when t
get_data_qualityReport an aggregate accuracy summary for the pricing catalogue: what percentage of models have a confirmed, fresh price, how many are currently withheld due to price drift, how many are newly discovered and not yet priced, and how many confirmed prices are over 90 days old. A sin
get_cache_statsReport process-lifetime hit/miss counts, total lookups, and hit rate for the ~5-minute recommendation cache, separately for the recommend_model tool and POST /router/recommend (never combined). Server-operations introspection for confirming the cache is reducing recomputation in
record_usageRecord actual token usage for a completed LLM call. Cost is computed server-side from current pricing, never trusted from the caller — this is the 'actual spend' counterpart to estimate_cost's hypothetical numbers. Usage is attributed to your org. Resubmitting the same request_id
get_usage_summaryGet a summary of actual recorded LLM spend: total cost, request count, and breakdowns by model and provider, from usage events previously logged via record_usage. Use when the user asks what they've actually spent, as opposed to a hypothetical cost estimate. Requires your service
analyze_session_usageAnalyze one specific session's actual recorded LLM usage (tagged via record_usage's session_id) on demand: total input/output tokens, total actual cost, and a per-model breakdown if more than one model was used. Also runs the session's own observed token pattern through the same
import_session_usageBulk-import a completed session's usage in a single call — the retroactive counterpart to record_usage, for when a session wasn't instrumented live. Use when a calling agent (e.g. VS Code Copilot Chat) already has a session's turn-by-turn history in its own local store and wants
register_budget_alertRegister a webhook URL to receive notifications when actual recorded spend (from record_usage) crosses a USD threshold within a rolling window. The alert monitors your org's spend. Fires at most once per period_days while spend stays over threshold. Returns the alert ID. Requires
list_budget_alertsList your org's registered budget-spend webhook alerts with their IDs and settings. Requires your service API key on the MCP connection (x-api-key or Authorization: Bearer); only alerts for that key's org are returned.
delete_budget_alertDelete one of your org's registered budget-spend alerts by its ID. Requires your service API key on the MCP connection (x-api-key or Authorization: Bearer); another org's alert ID reads as not found.
dispatchSend a text chat request through the dispatch gateway: it applies your policy, runs the best eligible model, and returns the completion, usage and the full dispatch_receipt (chosen model, reason, cost, savings, attempts) — the same as POST /v1/chat/completions with a `dispatch` o
ask_agentAsk the LLM Pricing AI agent a question in natural language. Use for complex queries about pricing, model recommendations, cost optimisation advice, or anything that benefits from multi-step reasoning.
support_chatAsk the customer support assistant about THIS service: plans and prices, signing up, upgrading or cancelling, invoices, service API keys (rotation, lost key), rate limits, connecting over MCP or REST, data accuracy, and how to reach the owner. Answers come only from the published
Basischecksi
Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 10. Nov. 2026
- ✓ Bestanden
Entwickler passt zum Repo
Der Registry-Name wurde mit dem GitHub-Konto skakumanu bestätigt, dem das Repo gehört
- … Noch nicht geprüft
Wird noch gepflegt
Dieses Repo haben wir noch nicht von GitHub gelesen
- … Noch nicht geprüft
Hat eine Lizenz
Dieses Repo haben wir noch nicht von GitHub gelesen
- ✓ Bestanden
Endpunkt antwortet
Antwort in 162 ms (HTTP 200)
- – Nicht zutreffend
Anmeldung mit OAuth
Keine Anmeldung nötig
- ✓ Bestanden
Keine versteckten Anweisungen in Tool-Beschreibungen
Wir haben 32 Tool-Beschreibungen gelesen und keine versteckten Anweisungen an die KI gefunden
Im Vergleich mit anderen in Suche & KI-Gedächtnisi
- Mehr Sterne als 0 % der anderen 5823 Server in dieser Kategorie
- Neuer in der Registry veröffentlicht als 77 % der anderen 5823 Server in dieser Kategorie
- Basischecks gleich gut wie oder besser als bei 100 % der anderen 5823 Server in dieser Kategorie
Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.
Häufige Fragen
Ist LLM Pricing sicher?
Er hat 3 von 3 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.
Welche Schlüssel oder Codes braucht er?
Das musst du eintragen: LLM_PRICING_API_KEY
Läuft er auf meinem Computer oder in der Cloud?
Beides geht: Installiere ihn auf deinem Computer oder verbinde dich mit der Cloud-Version.
Wird er noch gepflegt?
Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (1.79.1) kam vor 11 Tagen in die Registry.
Welche Apps können ihn nutzen?
Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Er verbindet sich per URL, also funktionieren auch Apps, die Remote-MCP-Server akzeptieren, zum Beispiel ChatGPT im Entwicklermodus.
Was kann ich stattdessen nutzen?
In derselben Kategorie: Context7, Codebase Memory, Exa
Alternativen
Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.
So liest du eine Karte:↓ Downloads pro Wochei★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti
Codebase Memory
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
Exa
Connect AI agents to Exa for web search, content fetching, and multi-step research.
README vom Entwickler
README öffnen
Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.
LLM Pricing MCP Server
LLM pricing you can verify, route on, and act on: 32 MCP tools, a REST API and browser UIs over pricing data from 30 LLM providers.
Live at: https://llm-pricing-api.fly.dev · API reference: /api-docs · Swagger: /docs
What it does
- Verified prices: every curated price is checked against a live external registry; anything drifted more than 5% is withheld, never silently served.
- Routes, not just quotes: picks a model by cost *and* quality for your task.
- Executes: the dispatch gateway runs the best eligible model on your own provider keys.
- Tracks real spend: records usage, analyzes sessions, fires budget alerts.
- Price alerts: webhooks on price changes, self-managed with an
alert_token. - Local currency: optional
currency/countryon pricing and estimates (13 currencies). - Many surfaces: MCP (STDIO + HTTP), REST, chat agent, calculator / compare / history UIs, billing dashboard, FAQ (
/faq), published legal pages and security statement (/terms,/privacy,/refunds,/dpa,/subprocessors,/security). - Customer support: a grounded support assistant (Support mode on
/chat,support_chatMCP tool) that knows the FAQ, the plan catalogue and your own account, and escalates anything it cannot do to the owner with a reference. - Retired providers: Anyscale (2026-10)
Quick start
Claude Desktop (remote, no install): open Settings → Connectors → Add custom connector and paste:
https://llm-pricing-api.fly.dev/mcp
- Claude Desktop ignores a
urlentry inclaude_desktop_config.json; that file only launches local commands. - A connector sends no custom headers. For tools that need your service key, use the npx bridge below.
npx bridge (STDIO, no clone, no Python): add to claude_desktop_config.json:
{
"mcpServers": { "llm-pricing": { "command": "npx", "args": ["-y", "llm-pricing-mcp"], "env": { "LLM_PRICING_API_KEY": " " } } } }
LLM_PRICING_API_KEYis optional; it is forwarded asx-api-key. Options are in npm/llm-pricing-mcp/README.md.- Other clients (Cursor, VS Code, Claude Code): docs/MCP_QUICK_START.md · Claude details and troubleshooting: docs/CLAUDE_INTEGRATION.md.
Run locally (Python 3.11):
pip install -r requirements.txt
uvicorn src.main:app --reload --port 8000 # REST + POST /mcp; STDIO server: python mcp/server.py
MCP tools
All 32 tools are listed over POST /mcp and STDIO. MCP protocol version 2024-11-05.
| Group | Tools |
|---|---|
| Pricing and estimates | get_all_pricing, estimate_cost, compare_costs, predict_cost, get_performance_metrics, get_use_cases, get_ide_pricing, get_pricing_export_url |
| Routing | recommend_model, optimize_workload, get_cache_stats |
| Data quality | check_price_drift, get_data_quality |
| History | get_pricing_history, get_pricing_trends, get_telemetry |
| Price alerts | register_price_alert, manage_price_alert, list_price_alerts, delete_price_alert |
| Usage and budget | record_usage, get_usage_summary, analyze_session_usage, import_session_usage, register_budget_alert, list_budget_alerts, delete_budget_alert |
| Agent, support and dispatch | ask_agent, support_chat, list_conversations, delete_conversation, dispatch |
Pass client (e.g. Claude Code, cursor, github copilot, cline) to recommend_model, optimize_workload, compare_costs or POST /router/recommend and the answer is restricted to models that tool can run before ranking; on the hosted MCP server it is inferred from the handshake when omitted, and an explicit value always wins. Recognised clients and the override order are in docs/MCP_QUICK_START.md.
The chat agent binds 27 of the 32 MCP tools (all except ask_agent, support_chat, get_telemetry, get_cache_stats and dispatch).
Key features
Dispatch gateway
- Add a
dispatchpolicy toPOST /v1/chat/completions. The best eligible model runs for real and you get adispatch_receiptwith the chosen model, reason, actual cost and savings. - Objectives:
balanced,cheapest,best_quality,lowest_latency,pinned. Failover never drops below yourmin_quality_score. - Supports
stream: true(OpenAI-format SSE; the receipt arrives in the final chunk). - Text-only, single-choice.
tools,n > 1and image parts are rejected up front, with the feature named. - Also available as the
dispatchMCP tool. Executable providers are listed atGET /dispatch/providers.
Stored provider keys
- Store each provider key once per org with
POST /dispatch/keys. After that, callers need only their service key. - Keys are AES-256-GCM-encrypted at rest and never returned; listings show only a last-4 fingerprint.
- A per-request
X-Provider-Key-header still overrides the stored key.
Price alerts with alert_token
- Registering a price alert returns a one-time
alert_token. It is stored only as a hash and nobody can recover it. - View or delete your alert with no account:
POST /pricing/alerts/self/viewor/self/deletewith the token in the JSON body, or themanage_price_alerttool. - Listing or deleting *all* alerts is operator-only.
Webhook SSRF guard
- Webhook URLs must be public https. Private, loopback, metadata and unresolvable hosts are refused with 422
invalid_webhook_url. - The URL is checked at registration and again at every delivery, connecting only to the checked IP; redirects are never followed.
- Older alerts that break the rules are kept but skipped at delivery.
WEBHOOK_ALLOW_PRIVATE_TARGETSis for local development only; never set it in production.
Cost estimation
POST /cost-estimate(one model) andPOST /cost-estimate/batch(1–50 models). No key needed; requests are rate-limited.predict_costandscripts/audit_repo.pyestimate the cost of a workload or a codebase's LLM call sites.
Data quality
GET /data-qualitygives one trust score,confirmed_pct, plus counts of drift-withheld, never-priced and stale models.- Every price carries
price_source_kind(providerorregistry).check_price_driftgives per-model detail.
Usage and budget
POST /usagerecords actual spend.GET /usage/summaryandGET /usage/session/{session_id}analyze it.- Budget alerts (
POST /usage/alerts) fire a webhook at a threshold;hard_stop: truealso blocks dispatch for your org.
Customer support and plans
- Support mode on /chat and the
support_chatMCP tool answer plan, billing, key, rate-limit and how-to questions only from the published FAQ (docs/FAQ.md), the plan catalogue (GET /billing/config) and, with your service key, your own account. No invented prices, policies or response times. - Everything outside its authority (refunds, credits, disputes, failed payments, a lost key without the current key, bug/feature/security reports, "talk to a human") becomes an escalation in the owner's operator-only queue with a reference;
POST /support/escalations/statusreturns the owner's reply. - Plans describe only what is implemented: rate limit, support assistant allowance and escalation priority. Upgrade and Manage Billing work when Stripe is configured;
POST /billing/key/rotaterotates a key with the current one;GET /billing/account/exportdownloads everything held about your organisation andPOST /billing/account/delete(body{"confirm": "DELETE", "org_id": ...}) irreversibly erases it, ends any Stripe subscription and opens a refund review when you delete inside the 14-day window (v1.87.0); service keys are stored only as a SHA-256 hash; the Stripe webhook handles failed renewals (14-day grace, then the free limit), refunds and disputes, and ignores duplicate deliveries. - Legal pages (v1.86.0): /terms, /privacy, /refunds, /dpa, /subprocessors are generated from
docs/legal/*.md(scripts/sync_legal.py), linked from the site footer,/billingand/faq, and show a draft notice until the owner turns onLEGAL_PAGES_LIVEand every placeholder is replaced. Paid checkout stays disabled until then; the Stripe customer portal is unaffected. Refunds: full within 14 days of the first payment, pro-rated after, every request reviewed by the owner via the support assistant. /security states what the service does and does not have (no SOC 2, ISO 27001 or third-party penetration test). The pre-launch list is docs/LAUNCH_CHECKLIST.md. - Spend: per-caller daily LLM caps by tier (anonymous strictest) under the orchestrator's global monthly ceiling; a cap hit returns a non-LLM fallback with FAQ links. Every support action leaves an operator-only, append-only record.
Orchestrator core (operator-only)
- One place where the operator's inbound work (GitHub issues/PRs, the weekly price audit, owner requests) is accepted exactly once, routed by trigger class and owner-applied labels only, and held at human checkpoints.
/orchestrator/*plus an Orchestrator block on/admin: approval queue, parked runs, run log (CSV), global pause, per-workflow mode, budgets. Nothing merges, moves money or sends anything without a recorded approval.- The SDLC pipeline is wrapped as an owner checkpoint: the queue shows the exact
/release-featurecommand; the PR it opens completes the run and posts one status comment on the issue.
Compliance audit (operator-only, v1.88.0)
- A weekly (Mondays 07:00 UTC,
compliance-audit.yml) and on-demand mechanical audit of the whole system: legal placeholders and the legal-live gate, Litestream coverage of every database, production secret presence (names only), version consistency, data-quality regression against the previous report, the weekly price audit, orchestrator budget, service-key hashing, Stripe reconciliation whenSTRIPE_AUDIT_KEYis set, and the launch checklist's "done" items. It is report-only (changes nothing audited), makes no legal-compliance claim, and opens an owner approval only when a check fails. POST /audit/run,GET /audit/reports,GET /audit/reports/{id}(latestalias) and a Compliance audit panel on/admin. Reports hold counts, file and setting names and opaque prefixes, never emails, keys or Stripe ids.
Document agent (operator-only, v1.89.0)
- Owner-requested decks, one-pagers, release briefs and status reports from a closed four-type catalogue (
release_notes_brief,pricing_comparison_deck,pricing_one_pager,internal_status_report). Every figure comes from a product data call made during the generation and is recorded in a provenance manifest; every number in the text is cross-checked against it (untraceable numbers are removed and counted); each price carries itsprice_as_ofand a status label, and models without a usable price show "price not available" and stay out of rankings and charts. GET /documents/types,POST /documents/generate,GET /documents/artifacts,GET /documents/artifacts/{id}and.../download?format=html|md|pptx|docx(
Nur der Anfang wird gezeigt; den Rest findest du im Repo