mcpField
F
Fabrica

Fabrica

远程服务
docs.fabrica.land商业与营销03 天前更新

关于 Fabrica

Fabrica MCP 服务让 AI Agent 查询美国土地目录、地块与借贷及持仓信息,适用于土地研究和尽职调查。还提供地税、信托文件与地图数据,并支持通过独立 URL 连接主网或 Sepolia 测试网。

主要功能

  1. 01按地址或 APN 查找美国地块
  2. 02筛选土地并查看详细属性
  3. 03查询估值、地税与信托文件
  4. 04分析借贷市场及钱包持仓
  5. 05获取地块边界和地图图像
  6. 06检索带引用的 Fabrica 文档

适用场景

  1. 01筛选特定州或县的待售土地
  2. 02核查地块估值、产权和税务
  3. 03评估土地抵押借款额度
  4. 04查看钱包持仓与贷款到期情况

MCP 相关

作为 MCP 服务,向客户端提供土地搜索、地块与贷款查询等工具,并注册文档资源和尽调提示词。也可在 Sepolia 测试网上连接;支持准备需用户自行签名的市场与借贷操作。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://mcp.fabrica.land/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

11
参数类型必填说明
limitinteger否结果上限(默认 20,最多 100)
offsetinteger否分页偏移量
regionstring否美国州代码(例如 'TX'、'CA'、'NV')
ownedBystring否按所有者钱包地址筛选
hasLoansboolean否仅显示有有效贷款的房产
maxAcresnumber否地块面积上限,以英亩计
minAcresnumber否地块面积下限,以英亩计
minScoreinteger否Property checks 数值下限:Property checks 的 5 位数字编码,整数。默认值为 72032(市场阈值),但设置 ownedBy 时除外(此时会列出该钱包中的所有房产)。任何下限筛选还要求产权契据已验证。最大值:75342。
hasListingsboolean否仅显示有有效出售挂牌的房产

详细介绍

Fabrica MCP 服务

让 AI Agent 访问 Fabrica 上的美国土地。搜索房产、调查地块、查看可借款额度,并探索 Fabrica 协议上美国各地土地的投资组合。

这是什么?

在 Fabrica 上,房产由信托持有;以太坊上的 ERC-1155 代币发行后,该代币便控制着持有产权的信托。此 MCP 服务无需 API 密钥,即可让任何 AI Agent 查询完整的房产目录、借贷市场和投资组合数据。

基于 Model Context Protocol(MCP)构建。

快速开始

托管版(推荐):无需安装

将任何 MCP 客户端指向托管服务:

网络URL
Ethereum Mainnet(真实地块)https://mcp.fabrica.land/mcp
Sepolia Testnet(测试房产)https://mcp-testnet.fabrica.land/mcp

Claude(claude.ai 和桌面版): 设置 → 连接器 → 添加自定义连接器 → 粘贴 URL。

Claude Code:

claude mcp add --transport http fabrica https://mcp.fabrica.land/mcp
claude mcp add --transport http fabrica-testnet https://mcp-testnet.fabrica.land/mcp

Cursor: 单击即可安装主网服务:

将 Fabrica 添加到 Cursor

也可以手动添加(.cursor/mcp.json):

{
  "mcpServers": {
    "fabrica": { "url": "https://mcp.fabrica.land/mcp" }
  }
}

任何支持远程 MCP 服务(Streamable HTTP)的其他客户端也可以用相同方式使用。如果想在主网前先在测试网上试用,可以将两个 URL 添加为两个独立的服务:每个 URL 对应的网络是固定的,因此 Agent 无法通过测试网服务访问主网。

无需注册表即可发现: 每个主机都提供 /.well-known/mcp.json(URL、传输方式、身份验证、文档、另一个网络的服务)和 /.well-known/mcp/server-card.json(包含相同信息,以及每个工具的标题和注释、提示词和资源模板),此外还提供 /.well-known/ai-catalog.json。域级发现会优先读取此 AI Catalog,其中指向两个服务的卡片。卡片从正在运行的服务读取,因此始终与该主机注册的内容一致。

本地运行(stdio)

上方的托管 URL 是使用此服务的受支持方式;该服务未发布到 npm。如要在自己的机器上从源码运行(Node 20 或更高版本):

git clone https://github.com/fabrica-land/fabrica-mcp.git
cd fabrica-mcp
npm install
npm run build
claude mcp add fabrica -- node /absolute/path/to/fabrica-mcp/dist/index.js

在服务的环境中设置 FABRICA_NETWORK=sepolia,即可使用测试网。

可用工具

工具描述
search_land按州、县、面积、Property checks、挂牌状态、挂牌价格和每英亩价格,或与某个点的距离搜索房产;可按价格、每英亩价格、英亩数、估值、Property checks、添加日期或距离排序。每行包含房产生命周期阶段和每英亩价格;也可按州或县统计数量,并提供指向 fabrica.land 地点页面的链接
get_land_property房产完整详情:法律信息、估值、所有权、贷款、媒体、生命周期阶段、评估费用、重复地块标记
get_fabrica_lending_market借贷概览:贷款数量、DeFi 借贷池统计数据、平均 APR、事件
get_fabrica_loan_book借贷历史分布:贷款价值比分档、按州和英亩数统计的风险敞口、APR 和期限分布、已偿还和已清算数量、按月发放的贷款数量、最大贷款
get_land_portfolio钱包持有资产、信用历史、贷款头寸
get_fabrica_stats协议整体指标:房产数量、估值、贷款总额和数量、DeFi 借贷池 TVL
get_land_boundary用于制图和空间分析的 GeoJSON 边界数据
get_land_tax_statusProperty checks 中的房产税状态(当前、逾期、未知)、判断依据、检查日期,以及是否会限制借款
get_land_trust_documents法律记录:信托、信托协议(名称、版本、链接,可按需提供文本)、法律描述、地块 ID、契据引用、已上传的文件
estimate_land_borrowing房产的借款选项:DeFi 借贷池流动性、期限、当前贷款、限制借款金额的因素(池流动性、LTV、税务状态、预言机)、额度为零时的原因,以及如何提高额度(toRaise:每个可调整因素、其可带来的额度、需要采取的步骤)
get_loan_against_land房产的一笔贷款:状态、提供方、本金、APR、到期日、完整还款信息,以及贷款仍有效时的今日结清金额;可按房产、loanId 或两者查询
get_land_valuationAPI 保存的房产所有估值及其来源、日期和置信度:估算值、AVM、Prycd、县评估员估值、签署估值、池预言机状态
get_land_activity房产或钱包的活动动态,或整个网络的近期活动:转让、贷款、销售、新增房产
get_land_order_book房产的挂牌和报价:价格、卖方和买方、到期时间、贷款是否会阻止每项挂牌、房产是否仍在添加中
explain_property_checks将 Property checks 的数字编码(5 位,原称置信度评分)解码为验证组
get_land_map_image房产地块边界的静态地图图像(内嵌显示,深色/浅色主题)
get_land_portfolio_map_image显示钱包拥有的所有房产的地图图像(内嵌显示,深色/浅色主题)
ask_fabrica从 Fabrica 文档、帮助中心和美国信托协议中检索可回答 Fabrica 运作方式相关问题的引文段落
find_us_parcel将任意美国地址或地块编号(APN)解析为地块:查询其是否在 Fabrica 上,并提供添加链接;queries 接受最多包含 10 项的列表并返回表格。不会提供地块数据中的所有者姓名;每位客户端每分钟可查询 30 次,列表中的每项查询均计为一次
check_county_coverage查询美国某县(或州)的房产是否可以在线添加,以及需要所有者提供哪些信息。依据 Fabrica 添加房产规则表,该表手动更新并标注日期(npm run coverage:build)
contact_fabrica_support向 Fabrica 支持团队转交问题:提供帮助中心版块、支持邮箱,以及已预填摘要和房产链接的 mailto 链接。此工具本身不会发送任何内容
签署请求(先使用测试网主机)

在 mcp-testnet.fabrica.land 上(以及仅当 FABRICA_SIGN_REQUESTS=enabled 时的主网上),有七个工具会准备操作:市场的 make_land_offer、list_land_for_sale、accept_land_offer、buy_land 和 cancel_land_order,以及 DeFi 借贷池的 borrow_against_land(检查钱包是否持有该代币、没有未结清的贷款,且金额不超过借贷池的最高限额)和 repay_loan_against_land(检查贷款是否有效、钱包是否为借款人,并获取今日的还款金额)。每个工具都会检查实时数据(该 Property 是否有效、钱包是否持有该 Property、挂牌或报价是否开放且可购买,以及在需要时是否属于钱包本人),然后返回一个 signRequest:其中包含摘要、警告、指向 fabrica.land 上该 Property 页面且已预填对话框的签署链接,以及 15 分钟后的过期时间。用户打开链接并使用自己的钱包签署。服务器不持有任何密钥,不进行签署,也不提交任何内容;在 Connect Fabrica 发布之前,payload(类型化数据,或针对对话中钱包的未签署交易)会保持为 null。get_sign_request 会告知请求是否已签署(并检查订单簿),而 get_transaction_status 会根据哈希跟踪交易。

待处理请求保存在服务器自己的存储中(Vercel KV / Upstash Redis:KV_REST_API_URL 和 KV_REST_API_TOKEN,以及用于记录 HMAC 的 SIGN_REQUEST_SECRET)。签署链接为 {web}/property/{network}/{tokenId}?action=…&request={id}。签署页面通过 GET /sign-requests/{id} 读取请求(过期后返回 410),并通过 POST /sign-requests/{id}/result 使用 { orderHash } 或 { transactionHash } 报告结果;服务器会先对照 API 或区块链进行验证,然后再记录结果。未配置存储时,工具会提示尚未配置;本地运行(stdio)时则使用进程内映射。

知识层

ask_fabrica 根据 Fabrica 自有文本回答有关 Fabrica 的问题(包括信任、费用、Property 审核、借贷、税费、添加和移除 Property 以及法律框架),并返回相关段落及其 URL,让 Agent 引用页面,而不是凭记忆转述。它使用三个来源:docs.fabrica.land、帮助中心 和 美国信托协议。

索引位于 src/knowledge/generated/index.json 中,并已提交到代码库,因此部署和测试时不会在运行时获取来源。检索使用基于段落文本的 BM25 算法,并提高标题的权重,同时为 Fabrica 的词汇添加了一个小型同义词列表;整个过程不调用模型,也不依赖外部服务。来源更新后,可通过以下命令重建:

npm run knowledge:build -- --docs-dir ../docs   # docs from a local checkout of fabrica-land/docs
GITHUB_TOKEN=... npm run knowledge:build        # or read the docs repo through the GitHub API
npm run knowledge:check                         # exit 1 when a source moved past its pin

来源版本锁定信息(docs 提交、帮助中心站点地图指纹、信托协议提交)记录在 knowledge/sources.json 中。构建大约需要 30 秒,索引大小不到 1 MB。

定时工作流(.github/workflows/refresh-knowledge.yml,每天运行一次,也可按需运行)会重建索引、运行测试,并创建标题为 "Knowledge index: " 的拉取请求,其正文会列出新增、删除和更改的页面(scripts/knowledge-diff.mjs)。合并后会部署两个服务。该工作流需要一个仓库机密 KNOWLEDGE_TOKEN,这是一个具有读取私有 fabrica-land/docs 仓库内容权限的细粒度 GitHub 令牌;如果来源获取失败,工作流也会失败,因此绝不会提交不完整的索引。

资源

这些文档也注册为 MCP 资源,因此用户无需让 Agent 搜索,就可以通过客户端的资源选择器(Claude 的“从连接器添加”、Cursor 的 @)将文档附加到对话中。所有资源均为 text/markdown,每次读取都会以来源 URL 和内容更新日期开头。

URI内容
fabrica://docs/<slug>docs.fabrica.land 上的所有页面(最有用的十篇列在最前面:义务、费用、添加和移除房产、Property checks、借贷池、信托、监管框架、术语表、AI Agent)
fabrica://help/<id>按文章 ID 和 slug 列出的所有帮助中心文章
fabrica://legal/us-trust-agreement美国信托协议文本
fabrica://property/{tokenId}/trust-agreement附加到某个代币的运营协议,内容由 API 提供(不同版本取决于代币的发行日期)
fabrica://network此部署的网络、合约地址和法律声明

fabrica://docs/{slug} 和 fabrica://help/{id} 也是支持补全的资源模板。

提示词和技能文件

该服务提供四个 MCP 提示词:due_diligence(针对一处房产,最后说明用户需要自行核实的事项)、work_parcel_list(通过 find_us_parcel 查询地址或地块编号列表)、wallet_review(持仓、贷款和到期日)以及 how_to_add_land(向 Fabrica 添加一个地块)。相同的循环流程、工具列表和法律红线也列在 Agent Skills 文件 skills/fabrica/SKILL.md 中;对于未连接到该服务的 Agent,该文件托管于 https://mcp.fabrica.land/skill.md。

对话示例

“帮我找出德克萨斯州所有代币化房产”

“Fabrica 借贷市场当前的平均 APR 是多少?借贷池有多少流动性?”

“对房产代币 12743610130101631987 做一份完整的尽职调查报告”

“显示钱包 0x23bc...fce4 的投资组合。他们拥有哪些房产?”

“提供 Fabrica 的全网统计数据:有多少处房产、分布在哪些州,以及贷款总额是多少?”

“以房产代币 12743610130101631987 作抵押,最多能借多少?”

“显示钱包 0x23bc...fce4 的所有近期活动”

“房产 3484741603659410548 的挂牌价是多少?有哪些待处理报价?”

“解释 Property checks 编号 73242。每个数字代表什么?”

“显示房产代币 12743610130101631987 的地图”

“显示此钱包投资组合中所有房产的地图”

房产卡片(MCP App)

在支持 MCP Apps 的客户端(例如网页版和桌面版 Claude)中,get_land_property 会在对话中内嵌显示房产卡片:

  • 图片库中首先显示地块地图,之后显示所有者的照片(如有)
  • 名称、位置和面积
  • Property checks、估值、挂牌价和借款额度
  • 购买(已挂牌时)、报价、联系所有者和在 Fabrica 上查看按钮

每个按钮都会在 Fabrica 上打开该房产页面,用户可在那里完成操作并签名;服务本身绝不会准备或提交交易。不支持 MCP Apps 的客户端会收到相同的 JSON 数据。

Agent 可以通过 display: "fullscreen" 请求全屏显示卡片;宿主可以拒绝。

Sepolia 上默认启用卡片;主网上默认关闭,除非设置 FABRICA_MCP_APPS=enabled。照片仅限于卡片沙盒允许的来源(参见 src/tools/media.ts 中的 WIDGET_IMAGE_ORIGINS)。

网络选择

托管服务按 URL 区分(见快速入门)。本地服务默认连接到 Ethereum Mainnet,其中的地块代表美国的真实土地,并会产生真实的法律后果。若要先使用测试地块进行试验,请设置 FABRICA_NETWORK=sepolia:

Claude Code(Sepolia):

claude mcp add fabrica -e FABRICA_NETWORK=sepolia -- node /absolute/path/to/fabrica-mcp/dist/index.js

Claude Desktop(Sepolia):

{
  "mcpServers": {
    "fabrica": {
      "command": "node",
      "args": ["/absolute/path/to/fabrica-mcp/dist/index.js"],
      "env": { "FABRICA_NETWORK": "sepolia" }
    }
  }
}

**主网须知:**在主网上,服务说明会将法律声明作为事实陈述:这些地块是美国的真实土地,每块地都由信托持有;拥有代币意味着拥有持有该地块的信托的受益权益;受托人由代币持有者指定,默认情况下由持有者担任;获取、转让、挂牌或以代币作为抵押借款,都会产生信托协议中所述的法律、税务和责任后果。

**Sepolia:**仅限测试地块,不会产生现实影响。

配置

所有配置项均为可选;已内置合理的默认值:

变量默认值说明
FABRICA_NETWORKethereum运行所用的网络(ethereum 或 sepolia)
FABRICA_API_URLhttps://api.fabrica.land/graphqlFabrica GraphQL API
FABRICA_METASTREET_SUBGRAPH_URL按网络自动选择借贷池合约的子图(该变量保留了原始名称)
FABRICA_MEDIA_URLhttps://media.fabrica.landFabrica 地图图片媒体服务
FABRICA_MCP_APPSSepolia 上启用,主网上禁用enabled 或 disabled:在 get_land_property 上使用的地块卡片 MCP App

回归测试列表

npm run regression(主网)或 npm run regression -- sepolia 会使用 scripts/regression/cases.json 中的案例列表,调用托管服务上的每个工具:正常路径、边缘情况以及未命中时的措辞。每个案例占一行,失败时退出代码为 1。每次发布后以及提交到目录前都应运行。

托管

托管服务通过此仓库在 Vercel 上运行:每个网络对应一个 Vercel 项目,二者均使用 npm run build:vercel 构建(见 vercel.json),生成位于 /mcp 的无状态 Streamable HTTP 函数、位于 /sign-requests 的签名请求端点、位于 /.well-known/ 的发现文档,以及位于 / 的着陆页。在每个项目的环境中设置 FABRICA_NETWORK(ethereum 或 sepolia)。同一个处理程序(src/http.ts)也可运行在任何 Node HTTP 服务器之后。

MCP Registry

两个托管服务都已列入官方 MCP Registry,名称分别为 land.fabrica/mcp 和 land.fabrica/mcp-testnet(远程服务,无软件包)。PulseMCP、Glama、GitHub MCP 注册表和 VS Code 均从中读取信息。条目位于 server.json 和 server.testnet.json 中。

发布新版本后重新发布:更新 package.json、src/server.ts 和两个服务文件中的 version(测试会确保它们一致),然后运行 npm run registry:publish(-- --dry-run 会打印条目)。写入任何内容之前,脚本会先对照注册表检查两个条目:若已有相同内容的版本,则跳过,因此部分发布后重新运行即可完成剩余工作;若已有不同内容,则停止运行。命名空间由 fabrica.land 上的 v=MCPv1 TXT 记录证明;脚本会从 MCP_REGISTRY_PRIVATE_KEY 或 ~/.config/mcp-registry/fabrica-land-ed25519.pem 读取匹配的 Ed25519 私钥。

链接

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。