Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Changed the definition of "check_accounts_tieout", "check_book", "check_budget_variance" and 5 more
Free, no key, instant result. Without api_key: 5 own checks per client address per UTC day, shared by check_book and the finance tools; samples are never counted. A free key (get_free_key, no card, no e-mail) runs 20 own checks a day and 200 in all. Send one or more balance-sheet periods as JSON; ⟨70 unchanged words⟩ reason sensitive_data_refused (not counted as a check).Free plan: runs under the shared free check cap.Desk: volume use. Top-level verdict is CLEAN, ⟨23 unchanged words⟩
CheckDeterministicanspendingagent'sguardrailsactions—againstcheckitsactionsowner'sagainst limits
Free, no key, instant result: call with sample="booking" for a real STOP result now, never counted. Call before confirming a booking, spend or subscription. Deterministicrulespendingchecksguardrails:of
Free, no key, instant result. Without api_key: 5 own checks per client address per UTC day, shared by check_book and the finance tools; samples are never counted. A free key (get_free_key, no card, no e-mail) runs 20 own checks a day and 200 in all. Send budget and actual lines as JSON; returns ⟨50 unchanged words⟩ reason sensitive_data_refused (not counted as a check).Free plan: runs under the shared free check cap.Desk: volume use. Top-level verdict is CLEAN, ⟨18 unchanged words⟩
Free, no key, instant result. Without api_key: 5 own checks per client address per UTC day, shared by check_book and the finance tools; samples are never counted. A free key (get_free_key, no card, no e-mail) runs 20 own checks a day and 200 in all. Send a dataset as a list of row ⟨81 unchanged words⟩ reason sensitive_data_refused (not counted as a check).Free plan: runs under the shared free check cap.Desk: volume use. Top-level verdict is CLEAN or FLAGGED.
Free, no key, instant result. Without api_key: 5 own checks per client address per UTC day, shared by check_book and the finance tools; samples are never counted. A free key (get_free_key, no card, no e-mail) runs 20 own checks a day and 200 in all. Send invoice or expense lines as JSON; returns ⟨38 unchanged words⟩ reason sensitive_data_refused (not counted as a check).Free plan: runs under the shared free check cap.Desk: volume use. Top-level verdict is CLEAN, FLAGGED or NOT_VERIFIED.
Free, no key, instant result. Without api_key: 5 own checks per client address per UTC day, shared by check_book and the finance tools; samples are never counted. A free key (get_free_key, no card, no e-mail) runs 20 own checks a day and 200 in all. Send quote or pricing sheet lines as JSON; ⟨48 unchanged words⟩ reason sensitive_data_refused (not counted as a check).Free plan: runs under the shared free check cap.Desk: volume use. Top-level verdict is CLEAN, FLAGGED or NOT_VERIFIED.
ReturnsFree, no card, no e-mail, instant result: returns a free key at once, the same as POST /v1/keys {"plan": "free"}: no card,no e-mail, andwith the same daily limits on new keys per ⟨16 unchanged words⟩ stored or logged; pass it as api_key tocheck_book.check_book or a finance tool. A free key runsmore20 own checks a daythanandthe200keylessinplan;all;thewithout a key it is 5 a day per client address. The result listsits
ReturnsFree, no key, instant result: returns a public sample request,theneversamecountedasagainstGETany/v1/sample.cap. Call before confirming a booking, spend or subscription. Start with name "booking" (sample 3, a hotel offer):passedandtothe limits its owner wrote): check_bookaswith sample="booking",it
Added "check_data_quality" (7 tools before, 8 now)
Check dataset quality — Send a dataset as a list of row dicts (JSON) or a CSV string; checks null rate per field (flagged when above max_null_rate, default 0.2), type inconsistencies within a field (number / bool / string, nulls excluded), exact duplicate rows, and numeric outliers (values beyond Q1 − 3×IQR or Q3 + 3×IQR, requires ≥ 4 non-null values per field). Schema-drift excluded from v1. Process-and-discard: nothing is stored or logged after the run. A request containing a Luhn-valid card number or a valid IBAN is refused before accept with reason sensitive_data_refused (not counted as a check). Free plan: runs…
Certificate recorded, valid to 2026-12-11
Authorization not required
Added "check_accounts_tieout" (6 tools before, 7 now)
Check balance-sheet accounts tie-out — Send one or more balance-sheet periods as JSON; checks that assets equal liabilities plus equity (tolerance 0.01), that any stated subtotals sum correctly, that net income less dividends agrees with the change in retained earnings (tolerance ±1, per terms), and that consecutive periods (when start/end dates are supplied) have no gaps or overlaps. Process-and-discard: nothing is stored or logged after the run. A request containing a Luhn-valid card number or a valid IBAN is refused before accept with reason sensitive_data_refused (not counted as a check). Free plan: runs under the shared free …
Changed the definition of "check_budget_variance", "check_invoice" and "check_quote_math"
⟨14 unchanged words⟩ per request, thresholds always echoed), rankedoverruns.overruns (largest % overrun first). Overall = worst line status. Math only. Process-and-discard: nothing is stored or logged ⟨31 unchanged words⟩ the shared free check cap. Desk: volume use. Top-level verdict is CLEAN, FLAGGED or NOT_VERIFIED. Per-line and overall status stay MATCH, WARN or STOP; those are not the top-level verdict.
⟨44 unchanged words⟩ , budget (number) and actual (number). A line with budget 0 is reported as NOT_CHECKED (not a flag) and makes coverage incomplete.","items":{"type":"object"}, ⟨76 unchanged words⟩
Added "check_budget_variance", "check_invoice" and "check_quote_math" (3 tools before, 6 now)
Check budget vs actuals — Send budget and actual lines as JSON; returns MATCH/WARN/STOP per line (default 5%/20%, overridable per request, thresholds always echoed), ranked overruns. Math only. Process-and-discard: nothing is stored or logged after the run. A request containing a Luhn-valid card number or a valid IBAN is refused before accept with reason sensitive_data_refused (not counted as a check). Free plan: runs under the shared free check cap. Desk: volume use.
Check invoice or expense lines — Send invoice or expense lines as JSON; returns flags for duplicate IDs, repeat vendor+amount+date, missing fields and currency mismatch. Math only. Process-and-discard: nothing is stored or logged after the run. A request containing a Luhn-valid card number or a valid IBAN is refused before accept with reason sensitive_data_refused (not counted as a check). Free plan: runs under the shared free check cap. Desk: volume use.
Check quote or pricing sheet arithmetic — Send quote or pricing sheet lines as JSON; returns flags for mismatched line totals, wrong discount amounts, subtotal and grand-total errors, and tier range conflicts (overlap and gap). Math only. Process-and-discard: nothing is stored or logged after the run. A request containing a Luhn-valid card number or a valid IBAN is refused before accept with reason sensitive_data_refused (not counted as a check). Free plan: runs under the shared free check cap. Desk: volume use.
Unknown → Live
First tool surface recorded: 3 tools (server version 0.2.0)
https://booklint.com/mcp (mcp_streamable_http) — from mcp_registry, with the record
Showing the latest 10 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
⟨58 unchanged words⟩ the shared free check cap. Desk: volume use. Top-level verdict is CLEAN, FLAGGED or NOT_VERIFIED.
⟨68 unchanged words⟩ the shared free check cap. Desk: volume use. Top-level verdict is CLEAN, FLAGGED or NOT_VERIFIED.