LLM Pricing
What it does
Real-time, drift-verified LLM pricing across 31 providers with cost+quality model routing.
- Connects 컴퓨터 또는 클라우드
- Account or key Cloud: No key needed · Local: Needs LLM_PRICING_API_KEY
- Category 검색 및 AI 기억
설치
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
검사 4/4 통과 · 내가 묻는 내용은 제작자 서버(llm-pricing-api.fly.dev)를 거쳐요
먼저: 어떤 AI를 쓰시나요?
쓰는 앱을 고르면 아래에 단계가 나옵니다.
Claude에 연결할 수 있어요 · 약 2분
키 필요 없음, 설치 필요 없음 · claude.ai나 데스크톱 앱에서 한 번 설정하면 채팅에서 쓸 수 있어요 · 무료 계정은 1개까지 · Team/Enterprise는 소유자(Owner)가 추가
Claude의 Connectors 페이지 열기
CustomizeConnectors
“+ Add” → “Add custom connector”를 누르고 이 2칸 채우기
여기서 복사해 Claude의 같은 이름 칸에 붙여 넣고 Continue를 누르세요
Name · 이름LLM PricingRemote MCP server URL · 주소https://llm-pricing-api.fly.dev/mcpAuthentication은 Claude가 찾은 그대로 두고 Add를 누르세요
채팅에서 켜기
+ConnectorsLLM Pricing
해 보기
LLM Pricing을 써서 나에게 무엇을 해 줄 수 있는지 알려 주고, 하나 해 봐✓ Claude가 LLM Pricing을 쓰고 있다고 하거나 답에 LLM Pricing 도구 이름이 나오면 연결된 거예요
메뉴 이름은 2026년 11월 11일에 Anthropic 도움말에서 확인 · 앱 버전에 따라 화면이 조금 다를 수 있어요
ChatGPT는 기업용 요금제에서만 연결돼요
웹의 ChatGPT Business, Enterprise, Edu에서 워크스페이스 관리자나 소유자가 추가해요 · Free, Plus, Pro를 쓰면: 내 ChatGPT 요금제로는 아직 MCP를 직접 연결할 수 없어요
웹 ChatGPT에서 MCP 추가 페이지 열기
Plugins+Add custom MCP server
이름과 주소 입력
이름을 넣고 Connection에 주소를 붙여 넣은 뒤 경고에 체크하고 Create as a plugin을 누르세요
Name · 이름LLM PricingConnection · 주소https://llm-pricing-api.fly.dev/mcp채팅에서 LLM Pricing 고르기
새 채팅을 열고 입력 전에 플러그인 목록에서 LLM Pricing을 고르세요
해 보기
LLM Pricing을 써서 나에게 무엇을 해 줄 수 있는지 알려 주고, 하나 해 봐✓ ChatGPT가 LLM Pricing을 쓰고 있다고 하거나 답에 LLM Pricing 도구 이름이 나오면 연결된 거예요
메뉴 이름은 2026년 11월 11일에 OpenAI 도움말에서 확인 · 앱 버전에 따라 화면이 조금 다를 수 있어요
Claude Code에 연결할 수 있어요 · 약 2분
키 필요 없음, 설치 필요 없음
터미널 열기
Mac: Command+스페이스를 누르고 Terminal 입력 · Windows: PowerShell 열기
이 명령을 붙여 넣고 Enter
claude mcp add --transport http --scope user llm-pricing https://llm-pricing-api.fly.dev/mcpClaude Code에서 /mcp 입력
LLM Pricing이 목록에 있고 연결됨으로 보이면 돼요
해 보기
LLM Pricing을 써서 나에게 무엇을 해 줄 수 있는지 알려 주고, 하나 해 봐✓ Claude Code가 LLM Pricing을 쓰고 있다고 하거나 답에 LLM Pricing 도구 이름이 나오면 연결된 거예요
메뉴 이름은 2026년 11월 11일에 Anthropic 도움말에서 확인 · 앱 버전에 따라 화면이 조금 다를 수 있어요
Cursor에 연결할 수 있어요 · 약 2분
키 필요 없음, 설치 필요 없음
Cursor에서 AI 채팅을 Agent 모드로 열기
해 보기
LLM Pricing을 써서 나에게 무엇을 해 줄 수 있는지 알려 주고, 하나 해 봐✓ Cursor가 LLM Pricing을 쓰고 있다고 하거나 답에 LLM Pricing 도구 이름이 나오면 연결된 거예요
메뉴 이름은 2026년 11월 11일에 Cursor 도움말에서 확인 · 앱 버전에 따라 화면이 조금 다를 수 있어요
VS Code에 연결할 수 있어요 · 약 2분
키 필요 없음, 설치 필요 없음
VS Code에서 AI 채팅을 Agent 모드로 열기
해 보기
LLM Pricing을 써서 나에게 무엇을 해 줄 수 있는지 알려 주고, 하나 해 봐✓ VS Code가 LLM Pricing을 쓰고 있다고 하거나 답에 LLM Pricing 도구 이름이 나오면 연결된 거예요
메뉴 이름은 2026년 11월 11일에 VS Code 도움말에서 확인 · 앱 버전에 따라 화면이 조금 다를 수 있어요
Windsurf, Zed, Gemini CLI 같은 다른 MCP 앱은 추가 방법이 저마다 달라요. 앱 목록에서 확인하세요
웹으로 연결하는 앱용 주소
https://llm-pricing-api.fly.dev/mcpJSON 설정은 아래 “개발자용”에 있어요
개발자용: 터미널 명령과 JSON 설정
웹으로 연결
Claude Code
claude mcp add --transport http --scope user llm-pricing https://llm-pricing-api.fly.dev/mcpCursor (~/.cursor/mcp.json)
{
"mcpServers": {
"llm-pricing": {
"url": "https://llm-pricing-api.fly.dev/mcp"
}
}
}VS Code (mcp.json)
{
"servers": {
"llm-pricing": {
"type": "http",
"url": "https://llm-pricing-api.fly.dev/mcp"
}
}
}컴퓨터에 설치
Claude Code
claude mcp add --scope user 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-mcpClaude Desktop (claude_desktop_config.json)
{
"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"
}
}
}
}Cursor (~/.cursor/mcp.json)
{
"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"
}
}
}
}VS Code (mcp.json)
{
"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"
}
}
}
}직접 입력할 값
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.LLM_PRICING_API_KEY비밀 envOptional 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.
이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
한눈에 보기
어떤 앱에서 쓸 수 있나요
이 서버의 연결 방식과 각 앱의 공식 문서를 바탕으로 했어요. 2026년 11월 10일 확인.
인터넷으로 연결하는 앱
ClaudeChatGPTGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatOpen WebUIRaycast
내 컴퓨터에서 실행하는 앱
ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast
할 수 있는 일
도구 이름과 설명은 서버가 2026년 11월 12일에 알려 준 그대로예요. 우리가 아니라 제작자가 쓴 글이고, 일반 텍스트로만 보여 드려요.
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
기본 점검i
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 12일 점검
토론
질문하고, 팁을 나누고, 안 되는 점을 알려 주세요. "도움이 됨"이 많은 순서예요.
사용자 리뷰
아직 리뷰가 없어요
검색 및 AI 기억 카테고리의 다른 서버와 비교i
- 이 카테고리의 다른 서버 5978개 중 0%보다 스타가 많아요
- 이 카테고리의 다른 서버 5978개 중 73%보다 최근에 레지스트리에 공개됐어요
- 기본 점검 결과가 이 카테고리의 다른 서버 5978개 중 100%와 같거나 더 좋아요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
자주 묻는 질문
LLM Pricing, 안전한가요?
해당하는 기본 점검 4개 중 4개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
어떤 키나 코드가 필요한가요?
입력해야 할 값: LLM_PRICING_API_KEY
내 컴퓨터에서 실행되나요, 클라우드에서 실행되나요?
둘 다 가능해요. 내 컴퓨터에 설치해도 되고, 클라우드 버전에 연결해도 돼요.
아직 관리되고 있나요?
GitHub 저장소는 마지막으로 그저께 변경됐고, 최신 버전(1.79.1)은 13일 전 레지스트리에 올라왔어요.
어떤 앱에서 쓸 수 있나요?
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. URL로 연결되므로 원격 MCP를 지원하는 앱에서도 쓸 수 있어요. 예: ChatGPT Business 이상.
대신 쓸 수 있는 건 뭐가 있나요?
같은 카테고리에는: Context7, Codebase Memory, Ruflo
같은 카테고리의 다른 것
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:↓ 주간 다운로드i★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i
Codebase Memory
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
제작자의 README
README 열기
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
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(