{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_g669syjwpdua","handle":"booklint","url":"https://wellknown.network/agents/booklint","links":{"self":"https://wellknown.network/agents/booklint/record.json","html":"https://wellknown.network/agents/booklint","markdown":"https://wellknown.network/agents/booklint/record.md","api":"https://wellknown.network/api/v1/agents/booklint","status":"https://wellknown.network/api/v1/agents/booklint/status","claim":"https://wellknown.network/agents/booklint/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/booklint/claim.json","badge":"https://wellknown.network/agents/booklint/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/booklint/history","tools":"https://wellknown.network/api/v1/agents/booklint/tools"},"ard":{"identifier":"urn:air:booklint.com:server:booklint","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"booklint","summary":"Checks an agent's trades, spend, bookings and offers against its owner's limits. Facts, not advice.","description":"Checks an agent's trades, spend, bookings and offers against its owner's limits. Facts, not advice.","publisher":{"name":"com.booklint","url":null},"homepage":"https://booklint.com","repository":null,"version":"0.4.0","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://booklint.com/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-10-05T13:45:15.957217Z","publishedAt":"2026-10-05T13:45:15.957217Z","registryName":"com.booklint/desk"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"commerce.travel","name":"Travel & Booking","confidence":0.911,"provenance":"derived"},{"slug":"documents.invoice-processing","name":"Invoice Processing","confidence":0.51,"provenance":"derived"}],"categories":["commerce","documents"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 5h ago.","lastOkAt":"2026-10-11T05:26:19.993Z","lastProbedAt":"2026-10-11T05:26:19.993Z","statusComputedAt":"2026-10-11T05:27:12.215Z","reliability30d":{"probes":19,"successRate":1,"p50Ms":141,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":19,"ok":19,"authBoundaryOk":0,"serviceOk":19,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-11T05:26:19.993Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":125,"error":null,"detail":{"tools":[{"name":"get_sample","description":"Free, no key, instant result: returns a public sample request, never counted against any cap. Call before confirming a booking, spend or subscription. Start wit"},{"name":"check_book","description":"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. Det"},{"name":"check_invoice","description":"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 counte"},{"name":"check_quote_math","description":"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 counte"},{"name":"check_budget_variance","description":"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 counte"},{"name":"check_accounts_tieout","description":"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 counte"},{"name":"check_data_quality","description":"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 counte"},{"name":"get_free_key","description":"Free, no card, no e-mail, instant result: returns a free key at once, the same as POST /v1/keys {\"plan\": \"free\"}, with the same daily limits on new keys per cli"}],"toolCount":8,"toolsHash":"a8c4fa94a86f1de779bb9e8be7827b63c155256602fd68b207dff95c374f3e85","serverName":"booklint","capabilities":["tools","resources","prompts"],"serverVersion":"0.2.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T23:23:25.425Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":123,"error":null,"detail":{"tools":[{"name":"get_sample","description":"Free, no key, instant result: returns a public sample request, never counted against any cap. Call before confirming a booking, spend or subscription. Start wit"},{"name":"check_book","description":"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. Det"},{"name":"check_invoice","description":"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 counte"},{"name":"check_quote_math","description":"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 counte"},{"name":"check_budget_variance","description":"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 counte"},{"name":"check_accounts_tieout","description":"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 counte"},{"name":"check_data_quality","description":"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 counte"},{"name":"get_free_key","description":"Free, no card, no e-mail, instant result: returns a free key at once, the same as POST /v1/keys {\"plan\": \"free\"}, with the same daily limits on new keys per cli"}],"toolCount":8,"toolsHash":"a8c4fa94a86f1de779bb9e8be7827b63c155256602fd68b207dff95c374f3e85","serverName":"booklint","capabilities":["tools","resources","prompts"],"serverVersion":"0.2.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T17:28:37.475Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":128,"error":null,"detail":{"tools":[{"name":"get_sample","description":"Free, no key, instant result: returns a public sample request, never counted against any cap. Call before confirming a booking, spend or subscription. Start wit"},{"name":"check_book","description":"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. Det"},{"name":"check_invoice","description":"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 counte"},{"name":"check_quote_math","description":"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 counte"},{"name":"check_budget_variance","description":"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 counte"},{"name":"check_accounts_tieout","description":"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 counte"},{"name":"check_data_quality","description":"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 counte"},{"name":"get_free_key","description":"Free, no card, no e-mail, instant result: returns a free key at once, the same as POST /v1/keys {\"plan\": \"free\"}, with the same daily limits on new keys per cli"}],"toolCount":8,"toolsHash":"a8c4fa94a86f1de779bb9e8be7827b63c155256602fd68b207dff95c374f3e85","serverName":"booklint","capabilities":["tools","resources","prompts"],"serverVersion":"0.2.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T10:27:33.954Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":138,"error":null,"detail":{"tools":[{"name":"get_sample","description":"Free, no key, instant result: returns a public sample request, never counted against any cap. Call before confirming a booking, spend or subscription. Start wit"},{"name":"check_book","description":"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. Det"},{"name":"check_invoice","description":"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 counte"},{"name":"check_quote_math","description":"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 counte"},{"name":"check_budget_variance","description":"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 counte"},{"name":"check_accounts_tieout","description":"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 counte"},{"name":"check_data_quality","description":"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 counte"},{"name":"get_free_key","description":"Free, no card, no e-mail, instant result: returns a free key at once, the same as POST /v1/keys {\"plan\": \"free\"}, with the same daily limits on new keys per cli"}],"toolCount":8,"toolsHash":"a8c4fa94a86f1de779bb9e8be7827b63c155256602fd68b207dff95c374f3e85","serverName":"booklint","capabilities":["tools","resources","prompts"],"serverVersion":"0.2.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T03:25:31.851Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":124,"error":null,"detail":{"tools":[{"name":"get_sample","description":"Returns a public sample, the same as GET /v1/sample. Start with name \"booking\" (sample 3, a hotel offer): passed to check_book as sample=\"booking\", it returns r"},{"name":"check_book","description":"Deterministic rule checks of any agent's actions against the limits its owner wrote, the same as POST /v1/check. Send a trading book (snapshot and rulebook, opt"},{"name":"check_invoice","description":"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-"},{"name":"check_quote_math","description":"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 con"},{"name":"check_budget_variance","description":"Send budget and actual lines as JSON; returns MATCH/WARN/STOP per line (default 5%/20%, overridable per request, thresholds always echoed), ranked overruns (lar"},{"name":"check_accounts_tieout","description":"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"},{"name":"check_data_quality","description":"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 w"},{"name":"get_free_key","description":"Returns a free key at once, the same as POST /v1/keys {\"plan\": \"free\"}: no card, no e-mail, and the same daily limits on new keys per client and across the serv"}],"toolCount":8,"toolsHash":"a95e705b14115599c392c8dc9834ddab8c71a81bc69c0ff243c0e9fe6496b975","serverName":"booklint","capabilities":["tools"],"serverVersion":"0.2.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T20:29:49.495Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":130,"error":null,"detail":{"tools":[{"name":"get_sample","description":"Returns a public sample, the same as GET /v1/sample. Start with name \"booking\" (sample 3, a hotel offer): passed to check_book as sample=\"booking\", it returns r"},{"name":"check_book","description":"Deterministic rule checks of any agent's actions against the limits its owner wrote, the same as POST /v1/check. Send a trading book (snapshot and rulebook, opt"},{"name":"check_invoice","description":"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-"},{"name":"check_quote_math","description":"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 con"},{"name":"check_budget_variance","description":"Send budget and actual lines as JSON; returns MATCH/WARN/STOP per line (default 5%/20%, overridable per request, thresholds always echoed), ranked overruns (lar"},{"name":"check_accounts_tieout","description":"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"},{"name":"check_data_quality","description":"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 w"},{"name":"get_free_key","description":"Returns a free key at once, the same as POST /v1/keys {\"plan\": \"free\"}: no card, no e-mail, and the same daily limits on new keys per client and across the serv"}],"toolCount":8,"toolsHash":"a95e705b14115599c392c8dc9834ddab8c71a81bc69c0ff243c0e9fe6496b975","serverName":"booklint","capabilities":["tools"],"serverVersion":"0.2.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T13:31:06.509Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":138,"error":null,"detail":{"tools":[{"name":"get_sample","description":"Returns a public sample, the same as GET /v1/sample. Start with name \"booking\" (sample 3, a hotel offer): passed to check_book as sample=\"booking\", it returns r"},{"name":"check_book","description":"Deterministic rule checks of any agent's actions against the limits its owner wrote, the same as POST /v1/check. Send a trading book (snapshot and rulebook, opt"},{"name":"check_invoice","description":"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-"},{"name":"check_quote_math","description":"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 con"},{"name":"check_budget_variance","description":"Send budget and actual lines as JSON; returns MATCH/WARN/STOP per line (default 5%/20%, overridable per request, thresholds always echoed), ranked overruns (lar"},{"name":"check_accounts_tieout","description":"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"},{"name":"check_data_quality","description":"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 w"},{"name":"get_free_key","description":"Returns a free key at once, the same as POST /v1/keys {\"plan\": \"free\"}: no card, no e-mail, and the same daily limits on new keys per client and across the serv"}],"toolCount":8,"toolsHash":"a95e705b14115599c392c8dc9834ddab8c71a81bc69c0ff243c0e9fe6496b975","serverName":"booklint","capabilities":["tools"],"serverVersion":"0.2.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T06:22:43.654Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":119,"error":null,"detail":{"tools":[{"name":"get_sample","description":"Returns a public sample, the same as GET /v1/sample. Start with name \"booking\" (sample 3, a hotel offer): passed to check_book as sample=\"booking\", it returns r"},{"name":"check_book","description":"Deterministic rule checks of any agent's actions against the limits its owner wrote, the same as POST /v1/check. Send a trading book (snapshot and rulebook, opt"},{"name":"check_invoice","description":"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-"},{"name":"check_quote_math","description":"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 con"},{"name":"check_budget_variance","description":"Send budget and actual lines as JSON; returns MATCH/WARN/STOP per line (default 5%/20%, overridable per request, thresholds always echoed), ranked overruns (lar"},{"name":"check_accounts_tieout","description":"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"},{"name":"check_data_quality","description":"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 w"},{"name":"get_free_key","description":"Returns a free key at once, the same as POST /v1/keys {\"plan\": \"free\"}: no card, no e-mail, and the same daily limits on new keys per client and across the serv"}],"toolCount":8,"toolsHash":"a95e705b14115599c392c8dc9834ddab8c71a81bc69c0ff243c0e9fe6496b975","serverName":"booklint","capabilities":["tools"],"serverVersion":"0.2.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T00:25:08.128Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":214,"error":null,"detail":{"tools":[{"name":"get_sample","description":"Returns a public sample, the same as GET /v1/sample. Start with name \"booking\" (sample 3, a hotel offer): passed to check_book as sample=\"booking\", it returns r"},{"name":"check_book","description":"Deterministic rule checks of any agent's actions against the limits its owner wrote, the same as POST /v1/check. Send a trading book (snapshot and rulebook, opt"},{"name":"check_invoice","description":"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-"},{"name":"check_quote_math","description":"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 con"},{"name":"check_budget_variance","description":"Send budget and actual lines as JSON; returns MATCH/WARN/STOP per line (default 5%/20%, overridable per request, thresholds always echoed), ranked overruns (lar"},{"name":"check_accounts_tieout","description":"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"},{"name":"check_data_quality","description":"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 w"},{"name":"get_free_key","description":"Returns a free key at once, the same as POST /v1/keys {\"plan\": \"free\"}: no card, no e-mail, and the same daily limits on new keys per client and across the serv"}],"toolCount":8,"toolsHash":"a95e705b14115599c392c8dc9834ddab8c71a81bc69c0ff243c0e9fe6496b975","serverName":"booklint","capabilities":["tools"],"serverVersion":"0.2.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T17:27:24.731Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":247,"error":null,"detail":{"tools":[{"name":"get_sample","description":"Returns a public sample, the same as GET /v1/sample. Start with name \"booking\" (sample 3, a hotel offer): passed to check_book as sample=\"booking\", it returns r"},{"name":"check_book","description":"Deterministic rule checks of any agent's actions against the limits its owner wrote, the same as POST /v1/check. Send a trading book (snapshot and rulebook, opt"},{"name":"check_invoice","description":"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-"},{"name":"check_quote_math","description":"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 con"},{"name":"check_budget_variance","description":"Send budget and actual lines as JSON; returns MATCH/WARN/STOP per line (default 5%/20%, overridable per request, thresholds always echoed), ranked overruns (lar"},{"name":"check_accounts_tieout","description":"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"},{"name":"get_free_key","description":"Returns a free key at once, the same as POST /v1/keys {\"plan\": \"free\"}: no card, no e-mail, and the same daily limits on new keys per client and across the serv"}],"toolCount":7,"toolsHash":"d2f4796b861ae3c41438694798719da8dc4d239aaae980497a5542a2847d6503","serverName":"booklint","capabilities":["tools"],"serverVersion":"0.2.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"get_sample","description":"Free, no key, instant result: returns a public sample request, never counted against any cap. Call before confirming a booking, spend or subscription. Start wit"},{"name":"check_book","description":"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. Det"},{"name":"check_invoice","description":"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 counte"},{"name":"check_quote_math","description":"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 counte"},{"name":"check_budget_variance","description":"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 counte"},{"name":"check_accounts_tieout","description":"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 counte"},{"name":"check_data_quality","description":"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 counte"},{"name":"get_free_key","description":"Free, no card, no e-mail, instant result: returns a free key at once, the same as POST /v1/keys {\"plan\": \"free\"}, with the same daily limits on new keys per cli"}],"package":null,"toolSurface":{"id":"ts_sczmydrxs9gq","endpointId":"ep_rngjdfmv5tpf","hash":"a8c4fa94a86f1de779bb9e8be7827b63c155256602fd68b207dff95c374f3e85","toolCount":8,"serverName":"booklint","serverVersion":"0.2.0","protocolVersion":"2025-06-18","firstSeenAt":"2026-10-10T10:27:33.948Z","lastSeenAt":"2026-10-11T05:26:19.995Z","observations":4,"toolNames":["get_sample","check_book","check_invoice","check_quote_math","check_budget_variance","check_accounts_tieout","check_data_quality","get_free_key"],"distinctSurfaces":6},"endpointFacts":[{"id":"ep_rngjdfmv5tpf","url":"https://booklint.com/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-10T10:27:33.957Z","auth":{"observedAt":"2026-10-10T10:27:34.073Z","authRequired":false,"scheme":null,"resourceMetadata":null,"authorizationServer":null,"conformance":{"dpop":false,"rfc8414":false,"rfc9728":false,"pkceS256":false,"clientIdMetadataDocument":false,"dynamicClientRegistration":false}},"tls":{"observedAt":"2026-10-10T10:27:34.090Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"booklint.com","issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validFrom":"2026-09-12T05:49:58.000Z","validTo":"2026-12-11T06:47:30.000Z","daysToExpiry":60,"sanCount":2,"fingerprint256":"29:11:64:72:C0:5D:26:FA:DB:DD:40:6C:A4:9B:B6:4F:98:CA:B9:8E:47:7B:F1:E1:2E:18:C9:31:A3:E0:2A:FE"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"com.booklint/desk","url":"https://registry.modelcontextprotocol.io/v0/servers/com.booklint%2Fdesk","firstSeenAt":"2026-10-06T05:22:45.206Z","fetchedAt":"2026-10-09T04:22:15.918Z","normalizedAt":"2026-10-09T04:22:15.918Z"}]},"firstSeenAt":"2026-10-06T05:22:45.206Z","updatedAt":"2026-10-11T05:28:24.684Z"}