Commercial real estate MCP server

FactLot's MCP server gives AI agents commercial real estate tools they can rely on: deterministic calculators that return every step and a versioned formula ID, lease-document verification, canonical IDs for parcels, entities and documents, and public-record facts that cite their source. The hosted server needs no API key.

Hosted MCP server details
Remote URL https://api.factlot.com/mcp
Transport Streamable HTTP, stateless
Authentication None on the free tier (60 requests a minute per IP address). Paid plans send Authorization: Bearer <key>.
Registry name io.github.9mp96ygnbk-alt/factlot in the official MCP Registry
Tool annotations Every tool is read-only and has a title
Licence Apache-2.0 (server and calculators), MIT (schema and SDKs). The same server runs locally or in Docker.

Connect a client

How to connect each MCP client
Client How
Claude (web, Desktop, mobile) Settings, Connectors, Add custom connector, then enter https://api.factlot.com/mcp.
Claude Code claude mcp add --transport http factlot https://api.factlot.com/mcp, or install the plugin with CRE skills: /plugin marketplace add 9mp96ygnbk-alt/factlot then /plugin install factlot@factlot.
ChatGPT Settings, Apps, Advanced settings, Developer mode; create an app with https://api.factlot.com/mcp. For a Custom GPT Action, import https://api.factlot.com/openapi-3.0.json.
Cursor .cursor/mcp.json: {"mcpServers": {"factlot": {"url": "https://api.factlot.com/mcp"}}}
VS Code (agent mode) .vscode/mcp.json: {"servers": {"factlot": {"type": "http", "url": "https://api.factlot.com/mcp"}}}
Gemini CLI ~/.gemini/settings.json: {"mcpServers": {"factlot": {"httpUrl": "https://api.factlot.com/mcp"}}}
Any client, run locally npx -y https://github.com/9mp96ygnbk-alt/factlot/releases/download/v0.4.0/factlot-mcp-standalone-0.4.0.tgz (Node.js 22.6 or newer; the local server makes no network calls). More options: getting started.
Docker docker run -p 8787:8787 ghcr.io/9mp96ygnbk-alt/factlot:0.4.0 serves MCP at /mcp and REST at /v1.

Menu names change between client releases; the URL stays the same. Per-client guides: connectors.

Check the connection

The server answers a plain JSON-RPC initialize request, so you can test it without a client:

curl -s https://api.factlot.com/mcp \
  -H 'content-type: application/json' \
  -H 'accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"check","version":"1"}}}'

The reply names the server and carries its instructions: which tool to use for which task, and how to cite the result.

What the tools do

  • Calculators (calc_*): lease economics, CAM, debt sizing, prepayment, ASC 842, valuation, returns, waterfalls, 1031 timing, hotel and multifamily metrics. Each returns the value, every intermediate step with its formula, warnings, and a versioned formula ID. See the calculator pages.
  • Document verification (doc_*): the agent extracts a lease term with its verbatim quote and page; FactLot checks that the quote is on that page and states the value, and returns a cited fact or the reason it could not. No model runs on FactLot's side and nothing is stored.
  • IDs and facts (id_*, fact_*): deterministic IDs for parcels, entities, buildings, spaces and documents, and cited fact packages a counterparty can check.
  • Rules (rules_*): the Texas property tax protest deadline, with statute citations.
  • Lease comps and registry: 6,994 federal (GSA) lease comps on the hosted server; the registry_* parcel and owner lookups run on a self-hosted copy with a registry file.
  • Discovery: search, fetch and schema_get help an agent find the right tool.

Full definitions with every input described: tools.json · REST and OpenAPI: openapi.json

Agent frameworks

LangGraph and LangChain (langchain-mcp-adapters), the OpenAI Agents SDK, CrewAI, the MCP Python and TypeScript SDKs and the Vercel AI SDK connect with their standard MCP clients. The framework guide has tested recipes: loading only some tools, backing off on HTTP 429, naming your client, and sending a key.

Limits

  • The free tier allows 60 requests a minute per IP address. Every HTTP request counts, including initialize and tools/list; cache the tool list.
  • Hosted registry lookups are not open yet. The coverage page lists what the registry holds and the downloadable samples.
  • Calculators check their inputs and return warnings; they do not replace professional judgment on lease terms, valuation or tax positions.