关于 FactLot
FactLot 为商业房地产 Agent 提供带来源引用的公共记录事实、标准化物业 ID 和确定性计算器。其 MCP 服务与 SDK 为 AI 工作流提供可审计的计算及物业数据工具。
主要功能
- 01提供带审计记录的确定性商业地产计算器
- 02为物业和实体生成标准化 ID
- 03记录事实来源及使用权
- 04查询已覆盖地区的登记数据
- 05提供适用于多种 AI 平台的工具
适用场景
- 01计算债务规模、租金、CAM 或 IRR
- 02将物业或实体映射为标准化 ID
- 03在商业地产工作流中使用带引用的公共记录
- 04核对租约数值与来源文件
MCP 相关
FactLot 提供托管式 Streamable HTTP MCP 服务和可本地运行的 MCP 服务,向 MCP 客户端开放计算器、ID 工具、事实验证、搜索与获取,以及可选的登记数据查询。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://api.factlot.com/mcpclaude mcp add --transport http 9mp96ygnbk-alt-factlot https://api.factlot.com/mcp{"mcpServers":{"9mp96ygnbk-alt-factlot":{"type":"http","url":"https://api.factlot.com/mcp"}}}在 Cursor 中打开{"servers":{"9mp96ygnbk-alt-factlot":{"type":"http","url":"https://api.factlot.com/mcp"}}}在 VS Code 中打开{"mcpServers":{"9mp96ygnbk-alt-factlot":{"type":"http","url":"https://api.factlot.com/mcp"}}}{"mcpServers":{"9mp96ygnbk-alt-factlot":{"serverUrl":"https://api.factlot.com/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
FactLot
面向商业地产 AI Agent 的开放事实层。 提供确定性的 CRE 计算、审计追踪、规范化物业 ID,以及注明来源文档的公共记录事实。托管服务免费使用,也可免费自行运行,且为开源项目。
十秒上手
无需密钥,无需安装:
curl -s https://api.factlot.com/v1/calc/debt_sizing -H 'content-type: application/json' \
-d '{"noi":1000000,"value":15000000,"rate_annual":0.065,"amortization_years":30,"max_ltv":0.65,"min_dscr":1.25}'
答案是最高 9,750,000 美元的贷款额度,受贷款价值比约束(仅按偿债覆盖率测试计算,额度可达 1,050 万美元)。结果包含每一步中间计算、使用的公式,以及版本化公式 ID calc.debt_sizing@2,方便 Agent 准确引用数字的计算方式。
连接你的 Agent
| 客户端 | 使用方法 |
|---|---|
| Claude Code 插件 | /plugin marketplace add 9mp96ygnbk-alt/factlot,然后运行 /plugin install factlot@factlot:八个 CRE 技能(贷款规模测算、租赁经济分析、CAM、ASC 842、回报分析等)连接到托管工具(插件) |
| Claude Code | claude mcp add --transport http factlot https://api.factlot.com/mcp |
| Claude(网页端和桌面版) | 设置 → 连接器 → 添加自定义连接器:https://api.factlot.com/mcp。或打开 factlot-0.1.1.mcpb |
| ChatGPT | 使用 https://api.factlot.com/mcp 的开发者模式应用,或导入 https://api.factlot.com/openapi-3.0.json 的自定义 GPT Action |
| Cursor、VS Code、其他客户端 | 远程 MCP URL:https://api.factlot.com/mcp(指南) |
| 任意 MCP 客户端,本地运行 | npx -y https://github.com/9mp96ygnbk-alt/factlot/releases/download/v0.1.1/factlot-mcp-standalone-0.1.1.tgz(Node.js 22.6+,不进行网络调用) |
| Python Agent | pip install "git+https://github.com/9mp96ygnbk-alt/[email protected]#subdirectory=python" |
| 可自托管 REST 和 MCP | docker run -p 8787:8787 ghcr.io/9mp96ygnbk-alt/factlot:0.1.1 |
托管端点免费使用,无需密钥,每分钟限 60 次请求。该端点已列入
官方 MCP Registry,
标识为 io.github.9mp96ygnbk-alt/factlot。REST、Python 和 Agent SDK 的可运行示例位于
examples/。
使用真实数据试用 Registry 工具:DC Registry 样本(19.7 MB,CC BY 4.0)包含 18,077 个哥伦比亚特区商业地块、5,513 个所有权实体和 7,908 条有引用来源的所有权关联。
curl -fLO https://github.com/9mp96ygnbk-alt/factlot/releases/download/registry-sample-dc-2026-11-03/factlot-registry-sample-dc-2026-11-03.db.gz && gunzip factlot-registry-sample-dc-2026-11-03.db.gz
FACTLOT_REGISTRY_DB="$PWD/factlot-registry-sample-dc-2026-11-03.db" npx -y https://github.com/9mp96ygnbk-alt/factlot/releases/download/v0.1.1/factlot-mcp-standalone-0.1.1.tgz
付费方案:Pro 每月 $49,Team 每月 $599,可提高托管服务限额,并在各地区开放时提供托管 Registry 查询。企业版和私有部署请联系:[email protected]。问题和 Bug 报告请发布到 GitHub Discussions 和 Issues。 从事 CRE 工作的 Agent 往往会在相同的地方卡住。它们无法信任自己的计算结果,无法引用数字的来源,也无法判断一个系统中的“Suite 400, 123 Main LLC”和另一个系统中的宗地编号其实指的是同一个实体。
FactLot 默认向每个 Agent 提供三类可用功能:
| 包 | 功能 | 许可证 |
|---|---|---|
@factlot/calc | 确定性的 CRE 计算器:租金计划表、净实际租金、提案对比、百分比租金、CAM 费用核对、贷款额度计算、ASC 842 租赁重新计量、提前还款和解除担保、WALT、IRR/NPV、租赁与自有对比、续租与搬迁对比、酒店指标。每个结果都包含审计跟踪记录和带版本的公式 ID。 | Apache-2.0 |
@factlot/id | FactLot ID 为宗地、法律实体、建筑物、空间、租约和文档提供规范 ID。只要现实中已有键,ID 就是确定性的,因此任何 Agent 都能离线计算。 | Apache-2.0 |
@factlot/schema | FactLot 数据模型。一条事实是一个原子声明,包含溯源信息(源文档、页码、条款、方法)和权利信息(AI 是否可以使用或再分发该事实)。 | MIT |
@factlot/tools | 工具目录,包含适用于 Claude、OpenAI、Gemini、Amazon Bedrock、Mistral 和 OpenAPI 平台的原生工具定义,以及一个 runTool 分发器。 | MIT |
@factlot/server | 远程连接器:在 /mcp 提供 Streamable HTTP MCP,在 /v1 提供 REST 和 OpenAPI。可在 Docker 中运行。 | Apache-2.0 |
@factlot/mcp | 一个 MCP 服务,可将上述所有功能提供给 Claude 和任何其他支持 MCP 的 Agent。它在本地运行,无需 API 密钥。 | Apache-2.0 |
为什么
在一项模拟调查中,调查了 20 种角色的 165 个 CRE Agent 人设:
- 评分最高的产品是文档转事实(3.52/5)、确定性计算器(3.24)以及规范 ID 和实体解析(3.12)。
- 95% 的受访者要求提供引用,51% 的受访者表示大模型计算结果有误,35% 的受访者称数据许可阻碍他们使用已付费的数据。
- Agent 间协商的评分为 0.35/5。Agent 想要的是可信的事实,而不是更多自主权。
这项调查用于提出假设,并非市场调研。客户探索计划介绍了我们如何验证这些假设。之后,这些人设也评审了已构建的 v0.1(同样是模拟):在适用之处,他们称赞了计算器、ID 和页面内引文验证工具;大多数人设则受限于覆盖范围,下一节会如实说明这一点。
FactLot 目前的覆盖范围
采用前,请先明确其范围:
- 计算器、ID 和事实模型可在任何地方使用。 它们不需要数据或 API 密钥,并且在两款 SDK 中均可离线运行,结果完全一致。
- 注册表覆盖了最大的都会区,但覆盖程度不一。 已载入 Harris、Dallas、Tarrant、Travis 和 Collin(Texas)、New York City、Los Angeles、Boston、San Francisco、Denver、Charlotte、Minneapolis 以及 District of Columbia 的真实公共登记记录:包含 708,538 个商业、工业和多户住宅地块,以及来自 Texas、New York、Colorado、Pennsylvania 和 DC 的 1,290 万个已登记实体,用于所有者解析。第二梯队的另外 28 个县已通过适配器验证(NY 的 Monroe、Suffolk、Nassau、Westchester 和 Erie;Maryland 的 3 个县;Massachusetts 的 4 个县;Denton、Williamson 和 Fort Bend;Milwaukee、Marion、Oakland、Wake、Davidson、DeKalb、Sacramento、Salt Lake、Utah County、Pierce、Multnomah,以及 Pennsylvania 的 2 个县),并已完整载入。其中 5 个来源覆盖了整个州,这些数据也已载入(New York 除该市之外的地区、Maryland、Wisconsin、Boston 以外的 Massachusetts,以及 Utah 29 个县中的 25 个):207 个县新增 1,008,126 个商业地块,其中 436,190 个登记所有者为机构。Maryland 和 Utah 的文件不包含所有者姓名;所有者关联目前仅覆盖已载入的 Connecticut 实体。Cook County、Florida、Fulton、Maricopa、Wayne、Fairfax、King 以及 California 的大部分地区,仍需等待许可决定、表格或采购。仅包含商业、工业和多户住宅地块;部分公共文件不含所有者姓名;不包含售价、租户、债务、分区信息或建筑规格(面积和建成年份除外)。请参阅注册表、Tier 1 目录和Tier 2 索引。
- 只有一套规则包:Texas 的房产税异议截止日期规则包,已根据官方法规文本验证。其他司法辖区的规则只有在经过人工验证后才会加入。
- 租约导入功能仍是原型:提供确定性的页面内引文和引文内数值检查,也可通过可插拔后端对扫描页面进行 OCR,但目前尚无已发布的准确率数据。
- 尚未发布到 npm 或 PyPI,也没有托管的公共端点。可从 v0.1.1 版本、Git、源代码或 Docker 安装(参阅入门指南)。
将 FactLot 连接到任意 AI 平台
| 平台 | 连接方式 |
|---|---|
| Claude | 添加自定义连接器并填写 https://api.factlot.com/mcp,安装一键式桌面扩展(factlot.mcpb),使用 Claude Code,或通过 Claude API 调用 |
| ChatGPT and OpenAI | 在开发者模式下创建 ChatGPT 应用(search/fetch 可用于深度研究),将 /openapi.json 导入为自定义 GPT Action,使用 Responses API 的远程 MCP,或使用函数调用 |
| Google Gemini | 使用 Gemini API 函数声明、通过 MCP 使用 Gemini CLI,或使用 Vertex AI |
| Microsoft Copilot | 在 Copilot Studio 中添加 MCP 工具,使用 Power Platform 连接器,或构建 Microsoft 365 API 插件 |
| Amazon Bedrock | 使用 Converse API 的 toolConfig,或使用由 Lambda 处理程序提供支持的 Bedrock Agents 操作组 |
| Mistral, xAI, Llama, DeepSeek, and others | 使用 OpenAI 兼容的函数调用或 MCP 客户端 |
所有接入方式都使用同一套由一个目录生成的工具。请参阅 connectors/。
快速开始:通过 Agent 使用 FactLot
FactLot 尚未发布到 npm 或 PyPI。以下方法无需依赖二者即可使用:它们会从 GitHub 发布版本、克隆的仓库或 Docker 运行 stdio MCP 服务。每种方法都已完成端到端运行测试 (安装验证)。
# From the GitHub release: one file, dependencies bundled
claude mcp add factlot -- npx -y https://github.com/9mp96ygnbk-alt/factlot/releases/download/v0.1.1/factlot-mcp-standalone-0.1.1.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.1
Claude Desktop 用户可从
发布页面安装 factlot-0.1.1.mcpb。对于其他任何 MCP 客户端,请在其配置中使用相同的命令:
{
"mcpServers": {
"factlot": {
"command": "node",
"args": ["/absolute/path/to/factlot/packages/mcp/dist/bin.js"]
}
}
}
首次发布到 npm 后:claude mcp add factlot -- npx -y @factlot/mcp。
入门指南介绍了所有选项,包括作为发布压缩包提供的 TypeScript 库。
服务提供以下工具: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 和 schema_get;配置注册表数据库(FACTLOT_REGISTRY_DB)后,还会提供六个 registry_* 查询工具。
快速开始:Python Agent
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
Python SDK 无依赖,并且通过了与 TypeScript 软件包相同的一致性测试向量。CI 中的差异测试会将随机输入传入两个 SDK,只要存在任何差异(精确到最后一位数字)就会失败。请参阅 python/README.md。
快速开始:使用库
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_..." }
开发
此操作要求 Node.js 22.6 或更高版本。
npm install
npm run check # lint, format check, typecheck, tests, build
FactLot 的构建与资金来源
FactLot 遵循 Supabase 模式:
-
开源。 平台代码采用 Apache-2.0 许可。面向客户端的架构和 SDK 采用 MIT 许可。这里的所有内容都可自托管,这在租约属于机密时尤为重要。
-
FactLot Cloud(计划中)。 这些托管服务的运行需要实际成本:
- FactLot Registry:ID 解析、所有权关系图、交叉映射、变更 Webhook
- Ingest:将文档转化为带引用的事实
- Rules packs:房产税、分区规划、建筑性能法规
采用按用量计费,并提供免费层级。
参见 docs/business-model.md 和 docs/roadmap.md。
文档
- Agent 指南:何时调用哪个工具 · llms.txt
- 规则包 · 租约摄取 · Registry
- FactLot ID 规范
- 事实模型:来源与权限
- 待办事项:所有尚未完成的内容
- 路线图
- 商业模式
- 客户探索计划
- 贡献指南 · 安全
“FactLot”和 FactLot 徽标是其所有者的商标。开源许可证 适用于代码,不适用于名称。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。