{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_epbth47h5vhx","handle":"factlot","url":"https://wellknown.network/agents/factlot","links":{"self":"https://wellknown.network/agents/factlot/record.json","html":"https://wellknown.network/agents/factlot","markdown":"https://wellknown.network/agents/factlot/record.md","api":"https://wellknown.network/api/v1/agents/factlot","status":"https://wellknown.network/api/v1/agents/factlot/status","claim":"https://wellknown.network/agents/factlot/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/factlot/claim.json","badge":"https://wellknown.network/agents/factlot/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/factlot/history","tools":"https://wellknown.network/api/v1/agents/factlot/tools"},"ard":{"identifier":"urn:air:api.factlot.com:server:factlot","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"FactLot","summary":"Cited CRE facts and deterministic calculators for agents: rent, CAM, debt sizing, IRR, parcel IDs.","description":"Cited CRE facts and deterministic calculators for agents: rent, CAM, debt sizing, IRR, parcel IDs.","publisher":{"name":"9mp96ygnbk-alt","url":null},"homepage":"https://factlot.com","repository":"https://github.com/9mp96ygnbk-alt/factlot","version":"0.3.0","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://api.factlot.com/mcp","type":"mcp_streamable_http","auth":null,"probeable":true},{"url":"oci:ghcr.io/9mp96ygnbk-alt/factlot:0.3.0","type":"package_oci","auth":null,"probeable":false}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-11-04T08:34:02.607192Z","publishedAt":"2026-11-04T08:34:02.607192Z","registryName":"io.github.9mp96ygnbk-alt/factlot"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","repoUrl":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"commerce.payments","name":"Payments","confidence":1,"provenance":"derived"},{"slug":"documents.contracts","name":"Contracts & Legal","confidence":0.977,"provenance":"derived"},{"slug":"analytics.reporting","name":"Reporting & Dashboards","confidence":0.977,"provenance":"derived"},{"slug":"productivity.hr","name":"HR & Recruiting","confidence":0.554,"provenance":"derived"},{"slug":"finance.markets","name":"Markets & Trading","confidence":0.525,"provenance":"derived"},{"slug":"content.writing","name":"Writing & Editing","confidence":0.51,"provenance":"derived"},{"slug":"dev.package-management","name":"Packages & Dependencies","confidence":0.51,"provenance":"derived"}],"categories":["analytics","commerce","content","dev","documents","finance","productivity"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 1h ago.","lastOkAt":"2026-11-06T01:27:20.434Z","lastProbedAt":"2026-11-06T01:27:20.434Z","statusComputedAt":"2026-11-06T01:30:43.138Z","reliability30d":{"probes":2,"successRate":1,"p50Ms":76,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":2,"ok":2,"authBoundaryOk":0,"serviceOk":2,"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-11-06T01:27:20.434Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":49,"error":null,"detail":{"tools":[{"name":"calc_rent_schedule","description":"Build a base-rent schedule from commencement date, term, area, starting $/SF/yr, escalations (percent or fixed $/SF), and abated months. Lease months run from t"},{"name":"calc_net_effective_rent","description":"Compute effective rent, straight-line net effective rent, and discounted net effective rent ($/SF/yr) after free rent, TI allowance, leasing commissions, and ot"},{"name":"calc_compare_proposals","description":"Rank 2–20 lease proposals with different terms, sizes, free rent, TI, concessions, and operating-expense structures (gross, NNN, base year, expense stop, with o"},{"name":"calc_multifamily_rent_roll","description":"Analyze an apartment rent roll (up to 5,000 units with status occupied, notice, vacant, model, or down; market and lease rent per month; lease dates; concession"},{"name":"calc_percentage_rent","description":"Percentage (overage) rent for a lease year: net sales after exclusions over a natural or fixed breakpoint, prorated for partial years, less amounts already paid"},{"name":"calc_cam_reconciliation","description":"Reconcile a tenant's annual CAM charge: exclusions, occupancy gross-up of variable expenses, pro rata share, controllable-expense caps (compounding_from_base, s"},{"name":"calc_cam_reconciliation_batch","description":"Reconcile CAM for a whole building in one call: the expense pool and gross-up once, then up to 500 tenants each with share, base year or expense stop, cap, admi"},{"name":"calc_capex_recovery","description":"Recoverable capital expenditure under a lease clause: amortize a capital cost over its useful life or the lease-specified period, straight-line (declining inter"},{"name":"calc_debt_sizing","description":"Size the maximum loan under any combination of max LTV, min DSCR, and min debt yield for a given NOI, rate, and amortization. Reports the binding constraint, de"},{"name":"calc_lease_remeasurement_asc842","description":"Remeasure a lessee's lease liability and right-of-use asset under ASC 842 after a modification, lease-term reassessment, contingency resolution, or residual val"},{"name":"calc_prepayment_and_defeasance","description":"Prepayment premium, total payoff, and cost as a share of balance for a fixed-rate amortizing or interest-only loan under yield maintenance (PV of remaining paym"},{"name":"calc_walt","description":"Weighted average remaining lease term in years as of a date (actual days ÷ 365.25), weighted by each lease's area_sf (weight_by \"area\") or annual_rent (weight_b"},{"name":"calc_npv","description":"NPV of periodic cash flows (t = 0, 1, 2, ...; the t = 0 flow is not discounted) at a per-period discount rate given as a decimal. Deterministic: use this instea"},{"name":"calc_irr","description":"Periodic and annualized IRR of periodic cash flows, as decimals (0.085 = 8.5%), solved deterministically by scanning a 1-point grid of per-period rates and bise"},{"name":"calc_lease_vs_own","description":"Compare leasing with buying over a fixed horizon: NPV of each case's annual cash costs (rent, free rent, tenant expenses, and move-in costs versus equity, debt "},{"name":"calc_renew_vs_relocate","description":"Compare renewing in place with moving over one horizon: NPV and discounted effective rent of each case (rent schedule with free rent, TI net of allowance, fees,"},{"name":"calc_hotel_metrics","description":"Occupancy, ADR, RevPAR, TRevPAR, and a USALI-style profit ladder for a period: departmental profit, GOP and margin, GOPPAR, management fees, EBITDA, FF&E reserv"},{"name":"calc_dcf_pro_forma","description":"Property-level discounted cash flow from an in-place rent roll: each lease's rent, escalations, remaining term, and expense recovery (NNN, gross, base year), th"},{"name":"calc_direct_cap","description":"Value by direct capitalization: (NOI − capital reserve) ÷ cap rate, then below-the-line deductions for lease-up costs, free-rent burn-off, and other adjustments"},{"name":"calc_amortization_schedule","description":"Period-by-period schedule of a fixed-rate loan, monthly or quarterly: an optional interest-only period, then level payments on an amortization term that can run"},{"name":"calc_equity_waterfall","description":"Split periodic project equity cash flows between LP and GP: preferred return (compounding or simple) and return of capital pro rata to capital in either order, "},{"name":"calc_exchange_1031","description":"Not tax advice: arithmetic only. The 45-day identification and 180-day exchange deadlines of IRC §1031(a)(3) (the exchange period ends earlier at a given tax-re"},{"name":"rules_tx_property_tax_protest_deadline","description":"Deadline to file a Texas property tax protest with the appraisal review board: the later of May 15 or 30 days after the notice of appraised value was delivered,"},{"name":"id_parcel","description":"Deterministic FactLot ID for a parcel from state FIPS, county FIPS, and the assessor's parcel number (APN). The same parcel always yields the same ID, offline. "},{"name":"id_entity","description":"Deterministic FactLot ID for a legal entity (LLC, LP, corporation, trust) from its registry jurisdiction and file number, or from its LEI (an LEI whose ISO 1744"},{"name":"id_space","description":"FactLot ID for a suite or unit within a building, given the building's FactLot URN (from id_building). Suite designators are normalized: \"Suite 100\", \"Ste 100\" "},{"name":"id_building","description":"Deterministic FactLot ID for a building from its street address: county FIPS, ZIP code, and street line. Every condominium unit, suite, and floor at the address"},{"name":"id_document","description":"Content-addressed FactLot ID (SHA-256) for a document such as a lease, amendment, or estoppel."},{"name":"id_parse","description":"Validate a FactLot URN and return its kind, components, and short ID."},{"name":"fact_validate","description":"Check one FactLot fact against the published fact schema (spec/schemas/fact.json): subject URN, dotted predicate, as_of date, provenance, optional rights; unkno"},{"name":"doc_verify_facts","description":"Check values YOU extracted from a document against its text, deterministically; FactLot runs no model. Send the pages as text and one candidate per value: {pred"},{"name":"doc_abstract_lease","description":"Current-state lease abstract from a lease and its amendments, with amendment precedence. Give each document's pages with the candidates you extracted (checked e"},{"name":"doc_compare","description":"Compare values another document asserts (an estoppel, rent roll or offering memo, mapped by you to predicates) with verified lease facts from doc_abstract_lease"},{"name":"doc_verify_claim","description":"Check one claim against a document page: {predicate, value} (anything doc_verify_facts accepts) or a short claim sentence, plus the verbatim quote and page it r"},{"name":"doc_spread_statement","description":"Spread a T-12, operating statement, budget or rent roll summary YOU read, onto FactLot's published chart of accounts (multifamily, commercial, or hotel after th"},{"name":"doc_check_use_conflict","description":"Check a proposed use (a description, plus an optional use category or 2022 NAICS code) against a center's verified lease.exclusive_use and lease.prohibited_uses"},{"name":"fact_package_create","description":"Bundle FactLot facts (each must pass fact_validate) into a fact package a counterparty can verify: canonical JSON (RFC 8785) of every fact, an RFC 6962 Merkle t"},{"name":"fact_package_verify","description":"Verify a fact package from fact_package_create: recompute every fact's hash, the Merkle root and the digest from the content (any changed fact, title, date or d"},{"name":"lease_comp_validate","description":"Check a lease comparable one firm shares with others, as a FactLot fact with predicate lease.comp, and derive its net effective rent. The fact goes through fact"},{"name":"search","description":"Search FactLot's knowledge base (tools, inputs, CRE predicates, ID and fact specifications). Returns matching document ids, titles, and URLs; call fetch for ful"},{"name":"fetch","description":"Fetch the full text of a FactLot knowledge document by the id returned from search. With a registry loaded, a registry fact's source document_id (fl:document:sh"},{"name":"schema_get","description":"Return the FactLot data model (Fact, Provenance, SourceRef, Rights, Relationship) as JSON Schema."}],"toolCount":42,"toolsHash":"aa45b038a20f8e3904beccc209d8b2d4d83ee81a8e4e0f16128b572d7c53ae32","serverName":"factlot","capabilities":["tools"],"serverVersion":"0.3.0","protocolVersion":"2025-06-18"}},{"at":"2026-11-05T16:25:42.238Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":102,"error":null,"detail":{"tools":[{"name":"calc_rent_schedule","description":"Build a base-rent schedule from commencement date, term, area, starting $/SF/yr, escalations (percent or fixed $/SF), and abated months. Lease months run from t"},{"name":"calc_net_effective_rent","description":"Compute effective rent, straight-line net effective rent, and discounted net effective rent ($/SF/yr) after free rent, TI allowance, leasing commissions, and ot"},{"name":"calc_compare_proposals","description":"Rank 2–20 lease proposals with different terms, sizes, free rent, TI, concessions, and operating-expense structures (gross, NNN, base year, expense stop, with o"},{"name":"calc_multifamily_rent_roll","description":"Analyze an apartment rent roll (up to 5,000 units with status occupied, notice, vacant, model, or down; market and lease rent per month; lease dates; concession"},{"name":"calc_percentage_rent","description":"Percentage (overage) rent for a lease year: net sales after exclusions over a natural or fixed breakpoint, prorated for partial years, less amounts already paid"},{"name":"calc_cam_reconciliation","description":"Reconcile a tenant's annual CAM charge: exclusions, occupancy gross-up of variable expenses, pro rata share, controllable-expense caps (compounding_from_base, s"},{"name":"calc_cam_reconciliation_batch","description":"Reconcile CAM for a whole building in one call: the expense pool and gross-up once, then up to 500 tenants each with share, base year or expense stop, cap, admi"},{"name":"calc_capex_recovery","description":"Recoverable capital expenditure under a lease clause: amortize a capital cost over its useful life or the lease-specified period, straight-line (declining inter"},{"name":"calc_debt_sizing","description":"Size the maximum loan under any combination of max LTV, min DSCR, and min debt yield for a given NOI, rate, and amortization. Reports the binding constraint, de"},{"name":"calc_lease_remeasurement_asc842","description":"Remeasure a lessee's lease liability and right-of-use asset under ASC 842 after a modification, lease-term reassessment, contingency resolution, or residual val"},{"name":"calc_prepayment_and_defeasance","description":"Prepayment premium, total payoff, and cost as a share of balance for a fixed-rate amortizing or interest-only loan under yield maintenance (PV of remaining paym"},{"name":"calc_walt","description":"Weighted average remaining lease term in years as of a date (actual days ÷ 365.25), weighted by each lease's area_sf (weight_by \"area\") or annual_rent (weight_b"},{"name":"calc_npv","description":"NPV of periodic cash flows (t = 0, 1, 2, ...; the t = 0 flow is not discounted) at a per-period discount rate given as a decimal. Deterministic: use this instea"},{"name":"calc_irr","description":"Periodic and annualized IRR of periodic cash flows, as decimals (0.085 = 8.5%), solved deterministically by scanning a 1-point grid of per-period rates and bise"},{"name":"calc_lease_vs_own","description":"Compare leasing with buying over a fixed horizon: NPV of each case's annual cash costs (rent, free rent, tenant expenses, and move-in costs versus equity, debt "},{"name":"calc_renew_vs_relocate","description":"Compare renewing in place with moving over one horizon: NPV and discounted effective rent of each case (rent schedule with free rent, TI net of allowance, fees,"},{"name":"calc_hotel_metrics","description":"Occupancy, ADR, RevPAR, TRevPAR, and a USALI-style profit ladder for a period: departmental profit, GOP and margin, GOPPAR, management fees, EBITDA, FF&E reserv"},{"name":"calc_dcf_pro_forma","description":"Property-level discounted cash flow from an in-place rent roll: each lease's rent, escalations, remaining term, and expense recovery (NNN, gross, base year), th"},{"name":"calc_direct_cap","description":"Value by direct capitalization: (NOI − capital reserve) ÷ cap rate, then below-the-line deductions for lease-up costs, free-rent burn-off, and other adjustments"},{"name":"calc_amortization_schedule","description":"Period-by-period schedule of a fixed-rate loan, monthly or quarterly: an optional interest-only period, then level payments on an amortization term that can run"},{"name":"calc_equity_waterfall","description":"Split periodic project equity cash flows between LP and GP: preferred return (compounding or simple) and return of capital pro rata to capital in either order, "},{"name":"calc_exchange_1031","description":"Not tax advice: arithmetic only. The 45-day identification and 180-day exchange deadlines of IRC §1031(a)(3) (the exchange period ends earlier at a given tax-re"},{"name":"rules_tx_property_tax_protest_deadline","description":"Deadline to file a Texas property tax protest with the appraisal review board: the later of May 15 or 30 days after the notice of appraised value was delivered,"},{"name":"id_parcel","description":"Deterministic FactLot ID for a parcel from state FIPS, county FIPS, and the assessor's parcel number (APN). The same parcel always yields the same ID, offline. "},{"name":"id_entity","description":"Deterministic FactLot ID for a legal entity (LLC, LP, corporation, trust) from its registry jurisdiction and file number, or from its LEI (an LEI whose ISO 1744"},{"name":"id_space","description":"FactLot ID for a suite or unit within a building, given the building's FactLot URN (from id_building). Suite designators are normalized: \"Suite 100\", \"Ste 100\" "},{"name":"id_building","description":"Deterministic FactLot ID for a building from its street address: county FIPS, ZIP code, and street line. Every condominium unit, suite, and floor at the address"},{"name":"id_document","description":"Content-addressed FactLot ID (SHA-256) for a document such as a lease, amendment, or estoppel."},{"name":"id_parse","description":"Validate a FactLot URN and return its kind, components, and short ID."},{"name":"fact_validate","description":"Check one FactLot fact against the published fact schema (spec/schemas/fact.json): subject URN, dotted predicate, as_of date, provenance, optional rights; unkno"},{"name":"doc_verify_facts","description":"Check values YOU extracted from a document against its text, deterministically; FactLot runs no model. Send the pages as text and one candidate per value: {pred"},{"name":"doc_abstract_lease","description":"Current-state lease abstract from a lease and its amendments, with amendment precedence. Give each document's pages with the candidates you extracted (checked e"},{"name":"doc_compare","description":"Compare values another document asserts (an estoppel, rent roll or offering memo, mapped by you to predicates) with verified lease facts from doc_abstract_lease"},{"name":"doc_verify_claim","description":"Check one claim against a document page: {predicate, value} (anything doc_verify_facts accepts) or a short claim sentence, plus the verbatim quote and page it r"},{"name":"doc_spread_statement","description":"Spread a T-12, operating statement, budget or rent roll summary YOU read, onto FactLot's published chart of accounts (multifamily, commercial, or hotel after th"},{"name":"doc_check_use_conflict","description":"Check a proposed use (a description, plus an optional use category or 2022 NAICS code) against a center's verified lease.exclusive_use and lease.prohibited_uses"},{"name":"fact_package_create","description":"Bundle FactLot facts (each must pass fact_validate) into a fact package a counterparty can verify: canonical JSON (RFC 8785) of every fact, an RFC 6962 Merkle t"},{"name":"fact_package_verify","description":"Verify a fact package from fact_package_create: recompute every fact's hash, the Merkle root and the digest from the content (any changed fact, title, date or d"},{"name":"lease_comp_validate","description":"Check a lease comparable one firm shares with others, as a FactLot fact with predicate lease.comp, and derive its net effective rent. The fact goes through fact"},{"name":"search","description":"Search FactLot's knowledge base (tools, inputs, CRE predicates, ID and fact specifications). Returns matching document ids, titles, and URLs; call fetch for ful"},{"name":"fetch","description":"Fetch the full text of a FactLot knowledge document by the id returned from search. With a registry loaded, a registry fact's source document_id (fl:document:sh"},{"name":"schema_get","description":"Return the FactLot data model (Fact, Provenance, SourceRef, Rights, Relationship) as JSON Schema."}],"toolCount":42,"toolsHash":"aa45b038a20f8e3904beccc209d8b2d4d83ee81a8e4e0f16128b572d7c53ae32","serverName":"factlot","capabilities":["tools"],"serverVersion":"0.3.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"calc_rent_schedule","description":"Build a base-rent schedule from commencement date, term, area, starting $/SF/yr, escalations (percent or fixed $/SF), and abated months. Lease months run from t"},{"name":"calc_net_effective_rent","description":"Compute effective rent, straight-line net effective rent, and discounted net effective rent ($/SF/yr) after free rent, TI allowance, leasing commissions, and ot"},{"name":"calc_compare_proposals","description":"Rank 2–20 lease proposals with different terms, sizes, free rent, TI, concessions, and operating-expense structures (gross, NNN, base year, expense stop, with o"},{"name":"calc_multifamily_rent_roll","description":"Analyze an apartment rent roll (up to 5,000 units with status occupied, notice, vacant, model, or down; market and lease rent per month; lease dates; concession"},{"name":"calc_percentage_rent","description":"Percentage (overage) rent for a lease year: net sales after exclusions over a natural or fixed breakpoint, prorated for partial years, less amounts already paid"},{"name":"calc_cam_reconciliation","description":"Reconcile a tenant's annual CAM charge: exclusions, occupancy gross-up of variable expenses, pro rata share, controllable-expense caps (compounding_from_base, s"},{"name":"calc_cam_reconciliation_batch","description":"Reconcile CAM for a whole building in one call: the expense pool and gross-up once, then up to 500 tenants each with share, base year or expense stop, cap, admi"},{"name":"calc_capex_recovery","description":"Recoverable capital expenditure under a lease clause: amortize a capital cost over its useful life or the lease-specified period, straight-line (declining inter"},{"name":"calc_debt_sizing","description":"Size the maximum loan under any combination of max LTV, min DSCR, and min debt yield for a given NOI, rate, and amortization. Reports the binding constraint, de"},{"name":"calc_lease_remeasurement_asc842","description":"Remeasure a lessee's lease liability and right-of-use asset under ASC 842 after a modification, lease-term reassessment, contingency resolution, or residual val"},{"name":"calc_prepayment_and_defeasance","description":"Prepayment premium, total payoff, and cost as a share of balance for a fixed-rate amortizing or interest-only loan under yield maintenance (PV of remaining paym"},{"name":"calc_walt","description":"Weighted average remaining lease term in years as of a date (actual days ÷ 365.25), weighted by each lease's area_sf (weight_by \"area\") or annual_rent (weight_b"},{"name":"calc_npv","description":"NPV of periodic cash flows (t = 0, 1, 2, ...; the t = 0 flow is not discounted) at a per-period discount rate given as a decimal. Deterministic: use this instea"},{"name":"calc_irr","description":"Periodic and annualized IRR of periodic cash flows, as decimals (0.085 = 8.5%), solved deterministically by scanning a 1-point grid of per-period rates and bise"},{"name":"calc_lease_vs_own","description":"Compare leasing with buying over a fixed horizon: NPV of each case's annual cash costs (rent, free rent, tenant expenses, and move-in costs versus equity, debt "},{"name":"calc_renew_vs_relocate","description":"Compare renewing in place with moving over one horizon: NPV and discounted effective rent of each case (rent schedule with free rent, TI net of allowance, fees,"},{"name":"calc_hotel_metrics","description":"Occupancy, ADR, RevPAR, TRevPAR, and a USALI-style profit ladder for a period: departmental profit, GOP and margin, GOPPAR, management fees, EBITDA, FF&E reserv"},{"name":"calc_dcf_pro_forma","description":"Property-level discounted cash flow from an in-place rent roll: each lease's rent, escalations, remaining term, and expense recovery (NNN, gross, base year), th"},{"name":"calc_direct_cap","description":"Value by direct capitalization: (NOI − capital reserve) ÷ cap rate, then below-the-line deductions for lease-up costs, free-rent burn-off, and other adjustments"},{"name":"calc_amortization_schedule","description":"Period-by-period schedule of a fixed-rate loan, monthly or quarterly: an optional interest-only period, then level payments on an amortization term that can run"},{"name":"calc_equity_waterfall","description":"Split periodic project equity cash flows between LP and GP: preferred return (compounding or simple) and return of capital pro rata to capital in either order, "},{"name":"calc_exchange_1031","description":"Not tax advice: arithmetic only. The 45-day identification and 180-day exchange deadlines of IRC §1031(a)(3) (the exchange period ends earlier at a given tax-re"},{"name":"rules_tx_property_tax_protest_deadline","description":"Deadline to file a Texas property tax protest with the appraisal review board: the later of May 15 or 30 days after the notice of appraised value was delivered,"},{"name":"id_parcel","description":"Deterministic FactLot ID for a parcel from state FIPS, county FIPS, and the assessor's parcel number (APN). The same parcel always yields the same ID, offline. "},{"name":"id_entity","description":"Deterministic FactLot ID for a legal entity (LLC, LP, corporation, trust) from its registry jurisdiction and file number, or from its LEI (an LEI whose ISO 1744"},{"name":"id_space","description":"FactLot ID for a suite or unit within a building, given the building's FactLot URN (from id_building). Suite designators are normalized: \"Suite 100\", \"Ste 100\" "},{"name":"id_building","description":"Deterministic FactLot ID for a building from its street address: county FIPS, ZIP code, and street line. Every condominium unit, suite, and floor at the address"},{"name":"id_document","description":"Content-addressed FactLot ID (SHA-256) for a document such as a lease, amendment, or estoppel."},{"name":"id_parse","description":"Validate a FactLot URN and return its kind, components, and short ID."},{"name":"fact_validate","description":"Check one FactLot fact against the published fact schema (spec/schemas/fact.json): subject URN, dotted predicate, as_of date, provenance, optional rights; unkno"},{"name":"doc_verify_facts","description":"Check values YOU extracted from a document against its text, deterministically; FactLot runs no model. Send the pages as text and one candidate per value: {pred"},{"name":"doc_abstract_lease","description":"Current-state lease abstract from a lease and its amendments, with amendment precedence. Give each document's pages with the candidates you extracted (checked e"},{"name":"doc_compare","description":"Compare values another document asserts (an estoppel, rent roll or offering memo, mapped by you to predicates) with verified lease facts from doc_abstract_lease"},{"name":"doc_verify_claim","description":"Check one claim against a document page: {predicate, value} (anything doc_verify_facts accepts) or a short claim sentence, plus the verbatim quote and page it r"},{"name":"doc_spread_statement","description":"Spread a T-12, operating statement, budget or rent roll summary YOU read, onto FactLot's published chart of accounts (multifamily, commercial, or hotel after th"},{"name":"doc_check_use_conflict","description":"Check a proposed use (a description, plus an optional use category or 2022 NAICS code) against a center's verified lease.exclusive_use and lease.prohibited_uses"},{"name":"fact_package_create","description":"Bundle FactLot facts (each must pass fact_validate) into a fact package a counterparty can verify: canonical JSON (RFC 8785) of every fact, an RFC 6962 Merkle t"},{"name":"fact_package_verify","description":"Verify a fact package from fact_package_create: recompute every fact's hash, the Merkle root and the digest from the content (any changed fact, title, date or d"},{"name":"lease_comp_validate","description":"Check a lease comparable one firm shares with others, as a FactLot fact with predicate lease.comp, and derive its net effective rent. The fact goes through fact"},{"name":"search","description":"Search FactLot's knowledge base (tools, inputs, CRE predicates, ID and fact specifications). Returns matching document ids, titles, and URLs; call fetch for ful"},{"name":"fetch","description":"Fetch the full text of a FactLot knowledge document by the id returned from search. With a registry loaded, a registry fact's source document_id (fl:document:sh"},{"name":"schema_get","description":"Return the FactLot data model (Fact, Provenance, SourceRef, Rights, Relationship) as JSON Schema."}],"package":null,"toolSurface":{"id":"ts_9yb3jzspwtcd","endpointId":"ep_x439zgyancuk","hash":"aa45b038a20f8e3904beccc209d8b2d4d83ee81a8e4e0f16128b572d7c53ae32","toolCount":42,"serverName":"factlot","serverVersion":"0.3.0","protocolVersion":"2025-06-18","firstSeenAt":"2026-11-05T16:25:42.255Z","lastSeenAt":"2026-11-06T01:27:20.438Z","observations":2,"toolNames":["calc_rent_schedule","calc_net_effective_rent","calc_compare_proposals","calc_multifamily_rent_roll","calc_percentage_rent","calc_cam_reconciliation","calc_cam_reconciliation_batch","calc_capex_recovery","calc_debt_sizing","calc_lease_remeasurement_asc842","calc_prepayment_and_defeasance","calc_walt","calc_npv","calc_irr","calc_lease_vs_own","calc_renew_vs_relocate","calc_hotel_metrics","calc_dcf_pro_forma","calc_direct_cap","calc_amortization_schedule","calc_equity_waterfall","calc_exchange_1031","rules_tx_property_tax_protest_deadline","id_parcel","id_entity","id_space","id_building","id_document","id_parse","fact_validate","doc_verify_facts","doc_abstract_lease","doc_compare","doc_verify_claim","doc_spread_statement","doc_check_use_conflict","fact_package_create","fact_package_verify","lease_comp_validate","search","fetch","schema_get"],"distinctSurfaces":1},"endpointFacts":[{"id":"ep_x439zgyancuk","url":"https://api.factlot.com/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-11-06T01:27:20.452Z","auth":{"observedAt":"2026-11-06T01:27:20.507Z","authRequired":false,"scheme":null,"resourceMetadata":null,"authorizationServer":null,"conformance":{"dpop":false,"rfc8414":false,"rfc9728":false,"pkceS256":false,"clientIdMetadataDocument":false,"dynamicClientRegistration":false}},"tls":{"observedAt":"2026-11-06T01:27:20.521Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"factlot.com","issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validFrom":"2026-11-03T16:48:01.000Z","validTo":"2027-02-01T17:47:58.000Z","daysToExpiry":87,"sanCount":3,"fingerprint256":"66:4E:D6:92:90:0B:DC:C4:A5:A8:86:23:F7:45:D8:AB:1B:BF:45:C1:96:A4:73:9D:DD:AE:28:A3:63:2A:88:1C"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"io.github.9mp96ygnbk-alt/factlot","url":"https://registry.modelcontextprotocol.io/v0/servers/io.github.9mp96ygnbk-alt%2Ffactlot","firstSeenAt":"2026-11-05T14:19:57.590Z","fetchedAt":"2026-11-05T14:19:57.590Z","normalizedAt":"2026-11-05T14:19:57.590Z"}]},"firstSeenAt":"2026-11-05T14:19:57.590Z","updatedAt":"2026-11-06T01:32:03.897Z"}