FactLot

السجل الرسمي الذكاء الاصطناعي والوكلاء

Cited CRE facts and deterministic calculators for agents: rent, CAM, debt sizing, IRR, parcel IDs.

التثبيت

أضف هذا إلى إعدادات MCP في عميلك (Claude Desktop: claude_desktop_config.json، وCursor: ‏.cursor/mcp.json، ويستخدم VS Code وغيره الصيغة نفسها «mcpServers»).

Remote (streamable-http)
Claude Code
claude mcp add --transport http factlot 'https://api.factlot.com/mcp'
إعداد JSON (Claude Desktop وCursor وVS Code)
{
    "mcpServers": {
        "factlot": {
            "type": "http",
            "url": "https://api.factlot.com/mcp"
        }
    }
}
OCI package ghcr.io/9mp96ygnbk-alt/factlot:0.1.1
Claude Code
claude mcp add factlot -- docker run -i --rm ghcr.io/9mp96ygnbk-alt/factlot:0.1.1 node packages/mcp/dist/bin.js
إعداد JSON (Claude Desktop وCursor وVS Code)
{
    "mcpServers": {
        "factlot": {
            "command": "docker",
            "args": [
                "run",
                "-i",
                "--rm",
                "ghcr.io/9mp96ygnbk-alt/factlot:0.1.1",
                "node",
                "packages/mcp/dist/bin.js"
            ]
        }
    }
}
MCPB package https://github.com/9mp96ygnbk-alt/factlot/releases/download/v0.1.1/factlot-0.1.1.mcpb

التوثيق

مأخوذ من ملف README للمشروع على GitHub ويُحدَّث أسبوعيًا. تفتح الروابط على GitHub.

المحتويات
  1. FactLot
  2. Why
  3. What FactLot covers today
  4. Connect FactLot to any AI platform
  5. Quick start: use FactLot from an agent
  6. Quick start: Python agents
  7. Quick start: use the libraries
  8. Develop
  9. How FactLot is built and funded
  10. Docs

FactLot

The open fact layer for commercial real estate AI agents.

Install in one line (v0.1.0; no API key, no network calls; listed in the official MCP Registry as io.github.9mp96ygnbk-alt/factlot):

# Any MCP client (stdio). For Claude Code: claude mcp add factlot -- npx -y <this URL>
npx -y https://github.com/9mp96ygnbk-alt/factlot/releases/download/v0.1.0/factlot-mcp-standalone-0.1.0.tgz

Claude Desktop: open factlot-0.1.0.mcpb. REST, OpenAPI and remote MCP: docker run -p 8787:8787 ghcr.io/9mp96ygnbk-alt/factlot:0.1.0. Python: pip install "git+https://github.com/9mp96ygnbk-alt/factlot.git@v0.1.0#subdirectory=python".

Hosted registry early access: teams that want cited parcel-to-owner-to-entity lookups without self-hosting can email contact@factlot.com. The hosted service is not yet public, and early-access teams help set pricing. Questions and bug reports go in GitHub Discussions and Issues.

Agents doing CRE work get stuck in the same places. They can't trust their own arithmetic, they can't cite where a number came from, and they can't tell that "Suite 400, 123 Main LLC" in one system is the same thing as a parcel number in another.

FactLot gives every agent three things it can use by default:

PackageWhat it doesLicense
@factlot/calcDeterministic CRE calculators: rent schedules, net effective rent, proposal comparison, percentage rent, CAM reconciliation, loan sizing, ASC 842 lease remeasurement, prepayment and defeasance, WALT, IRR/NPV, lease vs. own, renew vs. relocate, hotel metrics. Every result includes an audit trail and a versioned formula ID.Apache-2.0
@factlot/idFactLot ID gives canonical IDs for parcels, legal entities, buildings, spaces, leases, and documents. IDs are deterministic wherever the world already has a key, so any agent can compute them offline.Apache-2.0
@factlot/schemaThe FactLot data model. A fact is one atomic claim with provenance (source document, page, clause, method) and rights (whether an AI may use or redistribute it).MIT
@factlot/toolsThe tool catalog, with native tool definitions for Claude, OpenAI, Gemini, Amazon Bedrock, Mistral, and OpenAPI platforms, plus one runTool dispatcher.MIT
@factlot/serverThe remote connector: Streamable HTTP MCP at /mcp, REST at /v1, and OpenAPI. Runs in Docker.Apache-2.0
@factlot/mcpAn MCP server that exposes all of the above to Claude and any other MCP-capable agent. It runs locally and needs no API key.Apache-2.0

Why

In a simulated survey of 165 CRE agent personas across 20 roles:

  • The highest-rated offerings were document-to-facts (3.52/5), deterministic calculators (3.24), and canonical IDs and entity resolution (3.12).
  • 95% asked for citations, 51% reported that LLM math was wrong, and 35% said data licensing stops them using data they already pay for.
  • Agent-to-agent negotiation scored 0.35/5. Agents want facts they can trust, not more autonomy.

That survey is a hypothesis generator, not market research. The customer discovery plan describes how we validate it. The same personas later reviewed v0.1 as built (also simulated): the calculators, IDs, and the quote-on-page verifier were praised wherever they applied, and most personas were blocked by coverage, which is what the section below is honest about.

What FactLot covers today

Be clear about scope before adopting it:

  • Calculators, IDs, and the fact model work anywhere. They need no data and no API key, and they run offline in both SDKs with identical results.
  • The registry covers the largest metros, unevenly. Real public-record rolls are loaded for Harris, Dallas, Tarrant, Travis and Collin (Texas), New York City, Los Angeles, Boston, San Francisco, Denver, Charlotte, Minneapolis and the District of Columbia: 708,538 commercial, industrial and multifamily parcels, with 12.9 million registered entities from Texas, New York, Colorado, Pennsylvania and DC for owner resolution. A second tier of 28 more counties is verified with adapters (Monroe, Suffolk, Nassau, Westchester and Erie NY; three Maryland counties; four Massachusetts counties; Denton, Williamson and Fort Bend; Milwaukee, Marion, Oakland, Wake, Davidson, DeKalb, Sacramento, Salt Lake, Utah County, Pierce, Multnomah, and two Pennsylvania counties) and is loaded in full: 517,495 more commercial parcels, 206,130 with an organisation owner of record. Cook County, Florida, Fulton, Maricopa, Wayne, Fairfax, King and much of California wait on a licence decision, a form or a purchase. Commercial, industrial and multifamily parcels only; several public files omit owner names; no sales prices, tenants, debt, zoning, or building specs beyond area and year built. See the registry, the Tier 1 catalog and the Tier 2 index.
  • One rules pack, the Texas property-tax protest deadline, verified against the official statute text. Other jurisdictions follow only after a person verifies them.
  • Lease ingestion is a prototype: deterministic quote-on-page and value-in-quote checks, OCR for scanned pages through a pluggable backend, but no published accuracy number yet.
  • Not yet on npm or PyPI, and no hosted public endpoint. Install from the v0.1.0 release, from git, from source, or with Docker (getting started).

Connect FactLot to any AI platform

PlatformHow to connect
ClaudeAdd a custom connector with https://<host>/mcp, install the one-click Desktop extension (factlot.mcpb), use Claude Code, or call it from the Claude API
ChatGPT and OpenAICreate a ChatGPT app in developer mode (search/fetch make deep research work), import /openapi.json as a Custom GPT Action, use the Responses API's remote MCP, or use function calling
Google GeminiUse Gemini API function declarations, Gemini CLI over MCP, or Vertex AI
Microsoft CopilotAdd an MCP tool in Copilot Studio, use the Power Platform connector, or build a Microsoft 365 API plugin
Amazon BedrockUse the Converse API toolConfig, or a Bedrock Agents action group backed by the Lambda handler
Mistral, xAI, Llama, DeepSeek, and othersUse OpenAI-compatible function calling or MCP clients

Every surface serves the same tools, generated from one catalog. See connectors/.

Quick start: use FactLot from an agent

FactLot is not on npm or PyPI yet. These work without either: they run the stdio MCP server from a GitHub release, from a clone, or in Docker. Each was run end to end (install verification).

# From the GitHub release: one file, dependencies bundled
claude mcp add factlot -- npx -y https://github.com/9mp96ygnbk-alt/factlot/releases/download/v0.1.0/factlot-mcp-standalone-0.1.0.tgz

# From a clone
git clone https://github.com/9mp96ygnbk-alt/factlot.git && cd factlot
npm install && npm run build
claude mcp add factlot -- node "$PWD/packages/mcp/dist/bin.js"

# Remote connector (Streamable HTTP MCP at /mcp, REST at /v1, OpenAPI)
docker run --rm -p 8787:8787 ghcr.io/9mp96ygnbk-alt/factlot:0.1.0

Claude Desktop users can install factlot-0.1.0.mcpb from the release. For any other MCP client, use the same command in its config:

{
  "mcpServers": {
    "factlot": {
      "command": "node",
      "args": ["/absolute/path/to/factlot/packages/mcp/dist/bin.js"]
    }
  }
}

After first publish to npm: claude mcp add factlot -- npx -y @factlot/mcp. Getting started has every option, including the TypeScript libraries as release tarballs.

The server provides these tools: calc_rent_schedule, calc_net_effective_rent, calc_compare_proposals, calc_percentage_rent, calc_cam_reconciliation, 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, rules_tx_property_tax_protest_deadline, id_parcel, id_entity, id_space, id_document, id_parse, fact_validate, search, fetch, and schema_get, plus the six registry_* lookups when a registry database is configured (FACTLOT_REGISTRY_DB).

Release files, the GHCR image, and git+https installs need the repository to be public and a release (here v0.1.0) to exist; from a clone works now.

Quick start: Python agents

pip install "git+https://github.com/9mp96ygnbk-alt/factlot.git#subdirectory=python"
# after first publish to PyPI: pip install factlot
import factlot

tools = factlot.anthropic_tools()  # or factlot.openai_tools(); pass these to your model
# When the model calls a tool, run it by name with the model's arguments:
result = factlot.run_tool("calc_npv", {"cash_flows": [-1000, 600, 600], "rate": 0.08})
result["value"]["npv"]  # 69.96

The Python SDK has no dependencies and passes the same conformance vectors as the TypeScript packages. A differential test runs random inputs through both SDKs in CI and fails on any difference, down to the last digit. See python/README.md.

Quick start: use the libraries

import { debtSizing } from "@factlot/calc";
import { parcelId } from "@factlot/id";

const loan = debtSizing({
  noi: 1_000_000,
  value: 15_000_000,
  rate_annual: 0.06,
  amortization_years: 30,
  max_ltv: 0.65,
  min_dscr: 1.25,
  min_debt_yield: 0.09,
});
loan.value.max_loan; // 9750000
loan.value.binding_constraint; // "ltv"
loan.steps; // every intermediate value, with formulas
loan.formula; // { id: "calc.debt_sizing", version: 2 }

parcelId({ stateFips: "06", countyFips: "037", apn: "5432-001-012" });
// { kind: "parcel", urn: "fl:parcel:us-06037:5432001012", short: "flp_..." }

Develop

This requires Node.js 22.6 or newer.

npm install
npm run check   # lint, format check, typecheck, tests, build

How FactLot is built and funded

FactLot follows the Supabase model:

  • Open source. The platform code is Apache-2.0. Client-facing schemas and SDKs are MIT. Everything here can be self-hosted, which matters when leases are confidential.
  • FactLot Cloud (planned). These are hosted services that cost real money to run:

    • the FactLot Registry: ID resolution, ownership graph, crosswalks, change webhooks
    • Ingest: documents to cited facts
    • Rules packs: property tax, zoning, building-performance law

    Pricing is usage-based with a free tier.

See docs/business-model.md and docs/roadmap.md.

Docs

"FactLot" and the FactLot logo are trademarks of their owner. The open-source licenses cover the code, not the name.

الأسئلة الشائعة

ما هو FactLot؟

Cited CRE facts and deterministic calculators for agents: rent, CAM, debt sizing, IRR, parcel IDs.

كيف أثبّت FactLot؟

يعمل كخادم بعيد. في Claude Code: claude mcp add --transport http factlot 'https://api.factlot.com/mcp'. وفي العملاء الآخرين، الصق إعداد JSON من هذه الصفحة في إعدادات MCP الخاصة بهم.

هل يحتاج FactLot إلى مفتاح API؟

لا يذكر إدراجه في السجل أي مفتاح أو سر إلزامي. قد تتطلب بعض الميزات حسابًا لدى الخدمة التي يتصل بها.

هل FactLot مفتوح المصدر؟

نعم. شيفرته متاحة على GitHub بترخيص Apache-2.0.

من يصون FactLot؟

ينشره 9mp96ygnbk-alt. يدرجه AI.tn لكنه لا يصونه ولا يوصي به.

من سجل MCP الرسمي. الإدراج ليس توصية: راجع شيفرة الخادم وصلاحياته قبل منحه الوصول إلى بياناتك.