Fabrica (Sepolia testnet)

land.fabrica由 fabrica.land 發布官方發布者v0.2.0更新於 Oct 30, 2026

Fabrica test properties on Sepolia: try every Fabrica tool with no real-world effect.

發布方自己的服務:Fabrica

已驗證Streamable HTTP可網頁執行位置與生活金融資料與分析

概覽

AI 產生的概覽

Fabrica 的 Sepolia 測試網 MCP 伺服器:可搜尋與研究代幣化的美國土地、借貸市場與投資組合,並準備測試網土地交易供使用者簽署。

可以做什麼
  • 搜尋、篩選並檢視房產:土地搜尋、完整紀錄、GeoJSON 邊界、信託文件、稅務狀態、估值、活動紀錄與靜態地圖圖片
  • 檢視借貸市場:市場概況、貸款分布、單筆貸款、可借額度估算與全網統計
  • 檢視錢包投資組合、某房產的掛單與出價,並解讀以數字編碼的 Property checks
  • 依地址或 APN 查詢任一美國地塊、檢查郡覆蓋情況,並從 Fabrica 文件與說明中心取得附引用的回答
  • 將測試網操作(出價、掛售、接受、購買、取消、借款、還款)準備為簽署請求,並查詢簽署請求與交易狀態
適用情境
適合在 Sepolia 測試房產上無真實影響地試用 Fabrica 的全部工具,或在接觸主網前研究美國土地、借貸與投資組合資料。可用於盡職調查、市場統計與地塊查詢。
執行需求
遠端 Streamable HTTP 端點 mcp-testnet.fabrica.land;無需安裝,公開資料無需 API 金鑰。讀取個人帳戶資料需登入 Fabrica 並核准唯讀存取。已準備操作的簽署在使用者自己的錢包中於 fabrica.land 完成。
安裝前請注意
準備的操作僅涉及測試網資產,但仍會產生需使用者在錢包中核准的簽署連結;伺服器不持有金鑰也不提交任何內容。登入會授予對使用者 Fabrica 帳戶的唯讀存取,可在 Connected apps 中撤銷。地塊查詢限制為每用戶端每分鐘 30 次。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Fabrica (Sepolia testnet),將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/land.fabrica%2Fmcp-testnet/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "fabrica-sepolia-testnet": {
      "type": "http",
      "url": "https://mcp-testnet.fabrica.land/mcp"
    }
  }
}

README

Fabrica MCP Server

[Add to Claude]

Give AI agents access to US land on Fabrica. Search properties, research a parcel, check what it could borrow, and explore portfolios across the US land held on the Fabrica protocol.

What is this?

On Fabrica, a property is held in a trust; once its ERC-1155 token on Ethereum is issued, the token controls the trust, which holds title. This MCP server lets any AI agent query the full property catalog, lending market, and portfolio data, with no API keys required. A person can also connect their own Fabrica account (Connect Fabrica) so the agent reads their properties, offers and loans: the same server URL asks them to sign in and approve read-only access on fabrica.land the first time the agent needs it.

Built on the Model Context Protocol (MCP).

Quick Start

Hosted (recommended): nothing to install

Point any MCP client at the hosted server:

NetworkURL
Ethereum Mainnet (real parcels)https://mcp.fabrica.land/mcp
Sepolia Testnet (test properties)https://mcp-testnet.fabrica.land/mcp

No sign-in is needed for public data. Ask about your own properties, offers or loans and the client asks you to sign in to Fabrica and approve read-only access, then answers; disconnect any time in Connected apps on fabrica.land.

Claude (claude.ai, desktop and mobile): Fabrica is listed in the Claude directory. Open claude.ai/directory/fabrica-land and select Connect. Or add it by hand: Settings → Connectors → Add custom connector → paste the URL (this is also how to add the testnet server).

Signing in to Fabrica (only for your own account data) opens fabrica.land. On iPhone and iPad, start the connection from claude.ai in Safari: the Claude iOS app's in-app browser can't complete the sign-in.

Claude Code:

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

Cursor: one click installs the mainnet server:

[Add Fabrica to Cursor]

Or add it by hand (.cursor/mcp.json):

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

Any other client that supports remote MCP servers (Streamable HTTP) works the same way. Add both URLs as two separate servers if you want to try things on testnet before mainnet: the network is fixed per URL, so an agent can never reach mainnet through the testnet server.

Discovery without a registry: each host serves /.well-known/mcp.json (URL, transport, auth, docs, the other network's server) and /.well-known/mcp/server-card.json (the same plus every tool with its title and annotations, the prompts and the resource templates), plus /.well-known/ai-catalog.json, the AI Catalog that domain-level discovery reads first, pointing at both servers' cards. The card is read from the running server, so it always matches what that host registers.

Run locally (stdio)

The hosted URLs above are the supported way to use the server; it is not published to npm. To run it on your own machine from source (Node 20 or later; Yarn 4 is pinned in .yarn/releases, so any yarn on your PATH runs the right version):

bash
git clone https://github.com/fabrica-land/fabrica-mcp.gitcd fabrica-mcpyarn installyarn buildclaude mcp add fabrica -- node /absolute/path/to/fabrica-mcp/dist/index.js

Set FABRICA_NETWORK=sepolia in the server's environment for the testnet.

Available Tools

ToolDescription
search_landSearch properties by state, county, size, Property checks, listing status, listing price and price per acre, or distance from a point; sort by price, price per acre, acres, estimated value, Property checks, date added or distance. Each row carries its lifecycle stage and price per acre; or counts per state or county, with links to the fabrica.land location pages
get_land_propertyFull property details: legal, valuation, ownership, loans, media, lifecycle stage, assessed fees, duplicate-parcel flags
get_fabrica_lending_marketLending overview: loan counts, loans, DeFi lending pool stats, average APR, events
get_fabrica_loan_bookThe lending history as a distribution: loan-to-value bands, exposure by state and acreage, APR and duration spread, repaid and liquidated counts, originations by month, largest loans
get_land_portfolioWallet holdings, credit history, loan positions
get_fabrica_statsProtocol-wide metrics: properties, estimated value, loan volume and counts, DeFi lending pool TVL
get_land_boundaryGeoJSON boundary data for mapping and spatial analysis
get_land_tax_statusProperty tax status from Property checks (current, past due, unknown), its basis, check dates and whether it limits borrowing
get_land_trust_documentsThe legal record: trust, trust agreement (name, version, link, text on request), legal description, parcel IDs, deed reference, uploaded documents
estimate_land_borrowingBorrowing options for a property: DeFi lending pool liquidity, durations, current loans, what limits the amount (pool liquidity, LTV, tax status, oracle), why capacity is zero when it is, and what would raise it (toRaise: each lever, what it would allow, the step that moves it)
get_loan_against_landOne loan against a property: status, provider, principal, APR, maturity, full repayment and, while active, the payoff today; by property, loanId, or both
get_land_valuationEvery value the API holds for a property with its source, date and confidence: estimate, AVM, Prycd, county assessor, signed valuations, pool oracle state
get_land_activityActivity feed for a property or wallet, or the recent activity across the whole network: transfers, loans, sales, properties added
get_land_order_bookListings and offers on a property: prices, sellers and buyers, expiry, whether a loan blocks each listing, whether the property is still being added
explain_property_checksDecode the numeric encoding of Property checks (5 digits, formerly called the confidence score) into verification groups
get_land_map_imageStatic map image of a property's parcel boundary (inline, dark/light themes)
get_land_portfolio_map_imageMap image showing all properties owned by a wallet (inline, dark/light themes)
ask_fabricaCited passages from Fabrica's docs, help center and the US trust agreement that answer a question about how Fabrica works
find_us_parcelAny US address or parcel number (APN) to a parcel: on Fabrica or not, and the link to add it; queries takes a list of up to 10 and returns a table. No owner names from parcel data; 30 lookups per minute per client, each query in a list counting as one
check_county_coverageWhether property in a US county (or state) can be added online, and what it asks the owner for. From a table of Fabrica's rules for adding property, dated and refreshed by hand (yarn coverage:build)
contact_fabrica_supportHand a question to Fabrica support: help center section, support email, and a prefilled mailto with the summary and property link. Sends nothing itself

Your account (sign-in)

These tools read the connected person's own account, across every wallet on it, on mainnet. The first call asks the person to sign in to Fabrica and approve read-only access; disconnect any time in Connected apps on fabrica.land.

ToolDescription
get_my_accountEmail, linked accounts, verification status, and what this connection may read
get_my_propertiesProperties being added first, then live properties by estimated value, with stage, status, listing price and offers waiting
get_my_offersOffers received on the person's properties and offers they made
get_my_loansLoans against the person's properties, with maturity and payoff today, and loans they funded
what_needs_attentionOne ranked list of what waits on the person: loans near maturity, offers, steps of properties being added, fees to approve, property checks
get_my_properties_being_addedProperties the person is adding to Fabrica, with the next step and who acts
get_adding_statusOne property being added in full: every step, the next one, the open actions, and the county's questions with the answers so far

Adding a property

Two tools add a property as the connected person. They need the Fabrica API's add-property grants (onramp:write, premint:write, asked for at sign-in) and, for listing links, the web app's listing import key (FABRICA_LISTING_IMPORT_KEY).

ToolDescription
add_landStart adding a property from a listing link on another website, a parcel number with its state and county, or an address. Finds the parcel (a listing is read by the web app: title, price, acres, the seller's description, photos, and the parcel it names) and, signed in with the add-property grant, creates the property's record as the connected person with that description and those photos, held by their linked account. Returns where it stands and the questions the county asks for it. Not signed in, returns the fabrica.land link that adds the parcel; a listing link is read for signed-in people only, since it spends this server's import budget. A parcel number or an address counts as one lookup against the same 30-per-minute limit as find_us_parcel
answer_adding_questionsSave the owner named on the deed (one person, an entity with the person who signs for it, or several people with how they hold title) and the answers to the county's questions, and return what is still open

The questions are Fabrica's own rules for that county, state and kind of owner, read from the property's record each time (the same ones the web app's owner form shows), never a list kept here. The fee approval and the notarized signing session stay on fabrica.land; nothing is signed, paid or recorded by these tools.

Sign requests (testnet host first)

On mcp-testnet.fabrica.land (and on mainnet only with FABRICA_SIGN_REQUESTS=enabled), seven tools prepare actions: the marketplace's make_land_offer, list_land_for_sale, accept_land_offer, buy_land and cancel_land_order, and the DeFi lending pool's borrow_against_land (checks the wallet holds the token, no loan is active and the amount is within the pool's maximum) and repay_loan_against_land (checks the loan is active and the wallet is its borrower, with the payoff today). Each checks the live data (the property is live, the wallet holds it or not, the listing or offer is open, buyable and the wallet's own where it has to be), then returns a signRequest: a summary, warnings, a sign link to the property page on fabrica.land with the dialog prefilled, and an expiry 15 minutes out. The person opens the link and signs with their own wallet. The server holds no keys, signs nothing and submits nothing; payload (typed data or an unsigned transaction for a wallet in the conversation) stays null until Connect Fabrica ships. get_sign_request says whether a request was signed (it also checks the order book), and get_transaction_status follows a transaction by hash.

Where the sign-request tools are on, list_land_for_sale also takes a property its owner is still adding to Fabrica (claimed, token not issued yet): the listing goes on the marketplace at once, buyers can send offers, and it becomes buyable when the token is issued, as the web app's own list-for-sale dialog does. The other sign-request tools keep refusing a property that is still being added.

Owner actions follow the same pattern, on testnet first (on mainnet only with FABRICA_OWNER_ACTIONS=enabled as well): transfer_land moves a property the wallet holds outright to another account linked to the same Fabrica login (final once confirmed), update_trust_agreement moves it to the latest trust agreement version (the contract requires 70% of the property), update_land_description replaces its description with the prepared text, and update_land_photos opens its photo editor, where the owner picks files from their own device. Each checks that the wallet holds the share the contract requires and that the property backs no loan.

On the testnet server (and on mainnet only with FABRICA_POOL_SIGN_REQUESTS=enabled as well), deposit_to_lending_pool and withdraw_from_lending_pool prepare a deposit into, or a withdrawal from, one tick of the DeFi lending pool the same way. A tick sets the largest loan it funds (a share of a property's value, or a fixed dollar amount) and the longest loan length; the ticks come from the Fabrica API and the wallet's position at a tick is read from the pool contract. The sign link opens the pool page's deposit or withdraw dialog, prefilled. Interest is set by the pool, variable and not guaranteed, and deposits are at risk. A withdrawal larger than the funds the tick has not lent out waits in the pool's withdrawal queue for the rest and is claimed later on the pool page.

Pending requests live in the server's own store (Vercel KV / Upstash Redis: KV_REST_API_URL and KV_REST_API_TOKEN, plus SIGN_REQUEST_SECRET for the records' HMAC). The sign link is {web}/property/{network}/{tokenId}?action=…&request={id}. The sign page reads the request at GET /sign-requests/{id} (410 once expired) and reports the outcome at POST /sign-requests/{id}/result with { orderHash } or { transactionHash }, which the server checks against the API or the chain before recording. Without a store the tools say they are not configured; locally (stdio) an in-process map is used.

Knowledge layer

ask_fabrica answers questions about Fabrica (the trust, fees, Property checks, lending, taxes, adding and removing a property, the legal framework) from Fabrica's own text and returns the passages with their URLs, so an agent cites the page instead of paraphrasing from memory. Three sources feed it: docs.fabrica.land, the help center and the US trust agreement.

The index lives at src/knowledge/generated/index.json and is committed, so deploys and tests never fetch the sources at runtime. Retrieval is BM25 over passage text with titles weighted in and a small synonym list for Fabrica's vocabulary; there is no model call and no external service. To rebuild after the sources change:

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

Source pins (docs commit, help center sitemap fingerprint, trust agreement commit) are recorded in knowledge/sources.json. The build takes about 30 seconds and the index is under 1 MB.

A scheduled workflow (.github/workflows/refresh-knowledge.yml, daily and on demand) rebuilds the index, runs the tests and opens a pull request titled "Knowledge index: " whose body lists the pages added, removed and changed (scripts/knowledge-diff.mjs). Merging it deploys both servers. The workflow needs one repository secret, KNOWLEDGE_TOKEN, a fine-grained GitHub token with read access to the contents of the private fabrica-land/docs repository; a failed source fetch fails the run, so a partial index is never proposed.

Resources

The same documents are registered as MCP resources, so a person can attach one to a conversation from the client's resource picker (Claude's "add from connector", Cursor's @) without the agent searching for it. All are text/markdown, and every read starts with the source URL and the content's updated date.

URIWhat it is
fabrica://docs/<slug>Every docs.fabrica.land page (the ten most useful are listed first: obligations, fees, add and remove a property, Property checks, pool lending, the trust, the regulatory framework, the glossary, AI agents)
fabrica://help/<id>Every help center article, by its article id and slug
fabrica://legal/us-trust-agreementThe US trust agreement text
fabrica://property/{tokenId}/trust-agreementThe operating agreement attached to one token, as the API serves it (versions differ by the date the token was issued)
fabrica://networkThis deployment's network, contract addresses and legal notice

fabrica://docs/{slug} and fabrica://help/{id} are also resource templates with completion.

Prompts and skill file

The server offers four MCP prompts: due_diligence (one property, ending with what to verify yourself), work_parcel_list (a list of addresses or parcel numbers through find_us_parcel), wallet_review (holdings, loans and maturities) and how_to_add_land (adding one parcel to Fabrica). The same loops, the tool list and the legal red lines are in the Agent Skills file skills/fabrica/SKILL.md, served at https://mcp.fabrica.land/skill.md for agents that do not connect to the server.

Example Conversations

"Find me all tokenized properties in Texas"

"What's the current average APR on Fabrica's lending market? How much liquidity does the lending pool have?"

"Do a full due diligence report on property token 12743610130101631987"

"Show me the portfolio for wallet 0x23bc...fce4. What properties do they own?"

"Give me protocol-wide stats for Fabrica: how many properties, in which states, and total loan volume?"

"How much can I borrow against property token 12743610130101631987?"

"Show me all recent activity for wallet 0x23bc...fce4"

"What is property 3484741603659410548 listed for, and what offers are waiting on it?"

"Explain the Property checks number 73242. What does each digit mean?"

"Show me a map of property token 12743610130101631987"

"Show me a map of all properties in this wallet's portfolio"

Property card (MCP App)

In clients that support MCP Apps (such as Claude on the web and desktop), get_land_property renders a property card inline in the conversation:

  • a gallery with the parcel map first, followed by the owner's photos when there are any
  • name, location and acreage
  • Property checks, estimated value, listing price, and borrowing capacity
  • Buy (when listed), Make an offer, Contact owner and View on Fabrica buttons

Every button opens the property on Fabrica, where the user completes the action and signs; the server itself never prepares or submits a transaction. Clients without MCP Apps support receive the same data as JSON.

The agent can ask for the card fullscreen with display: "fullscreen"; the host may decline.

The card is on by default on Sepolia and off on mainnet unless FABRICA_MCP_APPS=enabled. Photos are limited to the origins the card's sandbox allows (see WIDGET_IMAGE_ORIGINS in src/tools/media.ts).

Network Selection

The hosted servers are split by URL (see Quick Start). A local server connects to Ethereum Mainnet by default, where properties represent real parcels of US land with real legal consequences. To experiment with test properties first, set FABRICA_NETWORK=sepolia:

Claude Code (Sepolia):

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

Claude Desktop (Sepolia):

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

Mainnet notice: On mainnet, the server instructions carry a legal notice stated as facts: the properties are real US land, each held in a trust; owning a token means owning the beneficial interest in the trust that holds the property; the trustee is designated by the token holder and is, by default, the holder; and acquiring, transferring, listing or borrowing against a token has legal, tax and liability consequences set out in the trust agreement attached to it.

Sepolia: Test properties only, no real-world implications.

Configuration

All optional; sensible defaults are built in:

VariableDefaultDescription
FABRICA_NETWORKethereumNetwork to operate on (ethereum or sepolia)
FABRICA_API_URLhttps://api.fabrica.land/graphqlFabrica GraphQL API
FABRICA_METASTREET_SUBGRAPH_URLAuto-selected per networkSubgraph for the lending pool contracts (the variable keeps its original name)
FABRICA_MEDIA_URLhttps://media.fabrica.landFabrica media service for map images
FABRICA_MCP_APPSon for Sepolia, off for mainnetenabled or disabled: the property card MCP App on get_land_property

Regression list

yarn regression (mainnet) or yarn regression sepolia calls every tool on a hosted server with the case list in scripts/regression/cases.json: happy paths, edge cases and the wording of a miss. One line per case, exit code 1 on a failure. Run it after each release and before a directory submission.

Hosting

The hosted servers run on Vercel from this repository: one Vercel project per network, both built with yarn build:vercel (see vercel.json), which emits a stateless Streamable HTTP function at /mcp, the sign-request endpoints at /sign-requests, the discovery documents at /.well-known/, and a landing page at /. Set FABRICA_NETWORK in each project's environment (ethereum or sepolia). The same handler (src/http.ts) can run behind any Node HTTP server.

MCP Registry

Both hosts are listed in the official MCP Registry as land.fabrica/mcp and land.fabrica/mcp-testnet (remote servers, no package). PulseMCP, Glama, the GitHub MCP registry and VS Code read from it. The entries live in server.json and server.testnet.json.

To republish after a release: bump version in package.json, src/server.ts and both server files (a test keeps them equal), then run yarn registry:publish (--dry-run prints the entries). Before writing anything it checks both entries against the registry: a version already there with the same content is skipped, so a rerun after a partial publish finishes the job, and one with different content stops the run. The namespace is proven by the v=MCPv1 TXT record on fabrica.land; the script reads the matching Ed25519 private key from MCP_REGISTRY_PRIVATE_KEY or ~/.config/mcp-registry/fabrica-land-ed25519.pem.

Links

License

MIT

來源:README.md,提交 99ceb80

工具

30

search_land

Search land

Search US land on Fabrica (Sepolia Testnet): land for sale and every other property on the network, mostly vacant lots and acreage. Returns a list of properties matching the given filters (location, size, Property checks, listing status, listing price and price per acre, distance from a point), sorted by price, price per acre, acres, estimated value, Property checks, date added or distance; each row carries its price per acre (listing or estimate, labeled) and, with near, its straight-line distance. Or counts per state or county with groupBy. When a state or county is given, the response includes the link to that location's page on fabrica.land. These are test properties on Sepolia with no real-world effect.

輸入參數nearlimitcountyoffsetregionsortBygroupByownedBysortDirhasLoansmaxAcresmaxPrice另有 6 個

get_land_property

Get land property details

Get the full record of one property on Fabrica (Sepolia Testnet), including legal description, valuation, property tax status, Property checks (with their 5-digit numeric encoding), current ownership and holders, active loans, marketplace listings and offers, recent activity, photos and a parcel map image link. Also its lifecycle stage (unclaimed, being added, replaced, live, removal in progress, removed, retired), fees assessed on the token with approval and payment state (fees is null when none are assessed), and flags for a duplicate parcel claim or the marketplace screen (an empty list when none apply). A token ID that was replaced when the property's token was issued returns that issued token. Boundary geometry is returned by get_land_boundary. Pass display: "fullscreen" to ask a host that renders the property card to open it fullscreen (the host may decline). Owner names: the majority holder's chosen display name is returned; the deed grantor from Fabrica's own records is in get_land_trust_documents; owner names from third-party parcel data are never returned.

輸入參數slugdisplaytokenId

get_fabrica_lending_market

Get lending market

Get an overview of the Fabrica lending market: loan counts, loans, DeFi lending pool liquidity and utilization, average APR, and recent loan events (the distribution of the whole history, by loan-to-value, state and outcome, is in get_fabrica_loan_book). Owners borrow against their properties through the DeFi lending pool (pool-based lending). Loan records also include historical peer-to-peer loans made through a former integration that is now retired.

輸入參數limitsincelenderstatusborrower

get_fabrica_loan_book

Get loan book

Get the lending history of the Fabrica protocol as a distribution: loan counts and principal by status and provider, loan-to-value bands against today's property estimates, exposure by state and acreage, APR and duration spread, repaid and liquidated counts, originations by month for the last 12 months, and the largest loans with their property pages. Covers DeFi lending pool loans and historical peer-to-peer loans. Counts come from the loan records; where the pool data source's counters differ, both are shown.

輸入參數statusgroupBylargestprovidersinceDays

get_land_portfolio

Get wallet portfolio

Get a wallet's land portfolio on Fabrica: properties owned (paged), active loans (as borrower or lender), listings and offers, credit history, and total portfolio value. Counts and totals always cover the whole wallet.

輸入參數limitoffsetaddress必填

get_fabrica_stats

Get Fabrica stats

Get network-wide statistics for Fabrica, where US land is held in trusts represented by tokens: total properties, estimated value, lending volume and loan counts, DeFi lending pool TVL and utilization, geographic distribution, and contract addresses.

無需輸入參數。

get_land_boundary

Get land parcel boundary (GeoJSON)

Get the parcel boundary of a property on Fabrica as GeoJSON, for mapping, spatial analysis, and visualization. The county boundary is added only with includeCountyBounds: true.

輸入參數slugtokenIdincludeCountyBounds

get_land_trust_documents

Get trust documents

Get the legal record of a tokenized property: the trust that holds it (holding entity, formation date), the trust agreement that governs the token (name, version, link), the legal description, the parcel identifiers (FIPS, APN, county, state), the recorded deed reference and grantor, and documents the owner uploaded. The agreement text is included only when includeAgreementText is true (it is long); trust.agreementResource is the MCP resource with this token's own agreement. Owner names: the deed grantor from Fabrica's own records is returned; a holder's chosen display name is in get_land_property; owner names from third-party parcel data are never returned. Property checks are not a title search or title insurance.

輸入參數slugtokenIdincludeAgreementText

get_land_tax_status

Get property tax status

Get whether a property's taxes are current, past due or unknown, according to Fabrica's Property checks: the status, which signal it comes from (the Property Taxes Current check, the DeFi lending pool's block reason, both, or a note that they disagree), when it was checked and when the checks expire, and whether it limits borrowing. It is a data lookup, not the county's own statement; the amount due and the due date are not available.

輸入參數slugtokenId

explain_property_checks

Explain Property checks

Explain a Fabrica property's Property checks from their numeric encoding (formerly called the confidence score). The encoding is a 5-digit positional number where each digit represents a different verification group: recovery status (ten-thousands), past title (thousands), ownership (hundreds), onchain history (tens), basic validation (ones). Each digit is a category value, not a count; with a tokenId the response also counts the individual checks that pass. Max: 75342. Property checks are a starting point for your own research, not a title search or title insurance.

輸入參數scoretokenId

estimate_land_borrowing

Estimate borrowing against land

Estimate how much can be borrowed against a property on Fabrica: DeFi lending pool liquidity (max loan amount, durations), existing loan status, the reasons when the pool shows no capacity (tax status, price oracle checks), and in limits what binds the amount (limitedBy: pool_liquidity, ltv, pool_limit, tax_status, oracle, existing_loan or unknown) with the collateral price, the pool's free liquidity and the highest loan-to-value. The oracle block shows how the collateral price is derived from the valuation sources. toRaise lists what would raise the amount, one entry per lever (setup, tax_status, deed_check, fees, existing_loan, price, ltv, pool_liquidity), each with where it stands today, what the pool would allow once it moves (wouldAllow, USD where computable) and the step or mechanism that moves it; pass amountUsd to test a loan amount. Answers questions such as 'How much can I borrow against this property?'. The amount is an estimate; the rate is set by a live quote when borrowing.

輸入參數slugtokenIdamountUsd

get_land_loan

Get a loan against land

Get one loan against a property on Fabrica: status (active, repaid, liquidated), provider, principal, APR, start, maturity, the full repayment and, for an active loan, the payoff today, with the borrower and lender wallets shortened and the property link. Give a property (tokenId or slug) for its active or latest loan, add loanId for a specific one, or give loanId alone to look it up across the network. otherLoans lists the property's other loans.

輸入參數slugloanIdtokenId

get_land_valuation

Get valuation sources

Get every value the Fabrica API holds for a property, each with its source, date and confidence: the estimate and the sources it comes from, the Fabrica AVM, Prycd and county assessor figures, the signed valuations the DeFi lending pool reads, the pool's oracle state (feed freshness, onchain price, usable price) with the reason when a price is missing, and the valuation report link. Presents data with its provenance; it suggests no price.

輸入參數slugtokenId

get_land_activity

Get activity history

Get the activity feed for a property or wallet, or, with no tokenId, slug or address, the most recent activity across every property on the network: properties added, transfers, sales, listings, loans started, repaid or liquidated, configuration changes, and more. Covers transaction history and event timelines.

輸入參數slugtypelimitaddresstokenId

get_land_order_book

Get order book

Get the listings and offers on one property on Fabrica: the lowest active listing, all listings, and offers sorted from highest to lowest, each with price in USD and in its currency, seller or buyer, expiry (ISO 8601 and relative), any buyer restriction and disclosure documents. Shows whether the property is still being added to Fabrica and whether it is collateral for an active loan, with what that means for a sale. Expired, canceled and filled listings and offers are left out unless status is 'all'. Links to the property page, where offers are made.

輸入參數slugstatustokenIdminOfferUsd

get_land_map_image

Get property map image

Get a static map image of a property on Fabrica showing its parcel boundary (or a pin marker if no boundary is available). Returns an inline image. Supports dark/light themes and custom dimensions.

輸入參數slugthemewidthheighttokenId

get_land_portfolio_map_image

Get portfolio map image

Get a static map image showing all properties a wallet owns on Fabrica, plotted as points on a single map. Returns an inline image. Supports dark/light themes and custom dimensions.

輸入參數themewidthheightaddress必填

ask_fabrica

Ask Fabrica

Answer questions about how Fabrica works from Fabrica's own published documents: docs.fabrica.land, the help center and the US trust agreement. Returns the best matching passages with their URLs, so an answer can be cited. Covers the trust structure, fees, Property checks, lending, property taxes, adding and removing a property, the legal framework, the glossary and the MCP server itself. When the question names a specific property, wallet or listing, the result also suggests which lookup tool to call. Retrieval is lexical over a committed index, with no external call.

輸入參數sourcequestion必填maxPassages

find_us_parcel

Find a US parcel

Look up any US land parcel by street address or parcel number (APN): address, place, APN, state and county, and whether it is already on Fabrica (token ID and property link). For a parcel not on Fabrica, links.addToFabrica is the fabrica.land link to add that parcel; it starts adding it only when a person opens it and decides there. The tool itself creates nothing. An ambiguous query returns up to 5 candidates, whose Fabrica status is matched by parcel number only; state and county narrow it to one, which gets the full check. When the US parcel search is not answering, properties already on Fabrica that the query names come back from Fabrica's own records as unconfirmed candidates (match: unconfirmed, matchSource: fabrica-index); present them as likely, not confirmed. Owner names from parcel data are never returned. For a list, queries takes up to 10 addresses or parcel numbers under one state and county scope and returns one row per resolved query (onFabrica, tokenId or addToFabrica, coverage) plus an unresolved list with the reason. Limited to 30 lookups per minute per client; each query in a list counts as one.

輸入參數querystatecountyqueries

check_county_coverage

Check county coverage

Whether a US county (or a whole state) can be added to Fabrica online: supported, notConfigured or unsupported, and for a supported county the deed and forms the owner signs (and which are notarized), witness requirements, the questions the owner is asked, and the steps to add a property. Answers from a table of Fabrica's rules for adding property as of 2026-10-16, refreshed by hand, so each answer carries that date; the add-property page on fabrica.land is the live answer. Give a 5-digit county FIPS, or a two-letter state with or without a county. No fee amounts (ask_fabrica has them) and no owner data.

輸入參數fipsstatecountyownerType

contact_fabrica_support

Contact Fabrica support

Hand a question to Fabrica's support team when the documents (ask_fabrica) do not answer it or a person is needed: adding a property that is stuck, a document question, a dispute. Returns the help center section for the topic, the support email address, and a mailto link that drafts an email with the summary and the property link (the same fabrica.land page the other tools link). subject sets the subject in the person's words; a line saying an AI agent drafted it is added unless discloseAgent is false. Nothing is sent by this tool; the person sends the email and replies come back by email. Summaries containing a private key or seed phrase are refused.

輸入參數topicsubjectsummary必填tokenIddiscloseAgent

make_land_offer

Prepare an offer

Prepare an offer to buy a live property on Fabrica (Sepolia Testnet) at a USD amount paid in USDC, open for expiresDays (default 14). Checks first that the property is live and the wallet does not already hold it, and warns when the amount is far from Fabrica's estimate, when a listing is at or below it, or when the property is collateral for a loan. Prepared, not sent: returns a signRequest (summary, warnings, signLink to fabrica.land, expiresAt 15 minutes out, payload null for now) and stores it so the sign page can load it. The person opens the link, signs in with that wallet and signs; nothing happens until then. The server holds no keys and submits nothing. wallet is the address that will sign.

輸入參數slugwallet必填tokenIdamountUsd必填expiresDays

list_land_for_sale

Prepare a listing

Prepare a listing of a property the wallet holds on Fabrica (Sepolia Testnet) at a USD price paid in USDC, open for expiresDays (default 180). Checks first that the wallet holds the token, and warns when the price is far from Fabrica's estimate, when the wallet already lists it, when an offer is at or above the price, or when the property is collateral for a loan. Prepared, not sent: returns a signRequest (summary, warnings, signLink to fabrica.land, expiresAt 15 minutes out, payload null for now) and stores it so the sign page can load it. The person opens the link, signs in with that wallet and signs; nothing happens until then. The server holds no keys and submits nothing. wallet is the address that will sign.

輸入參數slugwallet必填tokenIdpriceUsd必填expiresDays

accept_land_offer

Prepare accepting an offer

Prepare accepting an open offer (orderHash: orderId from get_land_order_book) on a property the wallet holds (Sepolia Testnet). Checks first that the offer is open and the wallet holds the token, and warns when it expires within a day, is far from Fabrica's estimate, or the property is collateral for a loan. Signing sells the property. Prepared, not sent: returns a signRequest (summary, warnings, signLink to fabrica.land, expiresAt 15 minutes out, payload null for now) and stores it so the sign page can load it. The person opens the link, signs in with that wallet and signs; nothing happens until then. The server holds no keys and submits nothing. wallet is the address that will sign.

輸入參數slugwallet必填tokenIdorderHash必填

buy_land

Prepare a purchase

Prepare buying a property at its open listing (orderHash: orderId from get_land_order_book) on Sepolia Testnet. Checks first that the listing is open, buyable (a listing on a property under a loan may not be yet), not the wallet's own and not reserved for other buyers, and lists the seller's disclosure documents. Signing sends an onchain transaction from the person's wallet; get_transaction_status follows it. Prepared, not sent: returns a signRequest (summary, warnings, signLink to fabrica.land, expiresAt 15 minutes out, payload null for now) and stores it so the sign page can load it. The person opens the link, signs in with that wallet and signs; nothing happens until then. The server holds no keys and submits nothing. wallet is the address that will sign.

輸入參數slugwallet必填tokenIdorderHash必填

cancel_land_order

Prepare canceling a listing or offer

Prepare canceling the wallet's own open listing or offer (orderHash: orderId from get_land_order_book) on Sepolia Testnet. Checks first that the listing or offer is open and the wallet made it. Canceling is a confirmation on the sign page, with no transaction. Prepared, not sent: returns a signRequest (summary, warnings, signLink to fabrica.land, expiresAt 15 minutes out, payload null for now) and stores it so the sign page can load it. The person opens the link, signs in with that wallet and signs; nothing happens until then. The server holds no keys and submits nothing. wallet is the address that will sign.

輸入參數slugwallet必填tokenIdorderHash必填

borrow_against_land

Prepare a loan against land

Prepare borrowing USDC from the DeFi lending pool against a property the wallet holds (Sepolia Testnet), for amountUsd over durationDays (the pool's offered length closest to it, default about 30 days). Checks first that the wallet holds the token, the property backs no active loan, the pool lends against it and the amount is within the pool's current maximum (estimate_land_borrowing shows it). The rate and repayment come from the pool's live quote on the sign page. This is a test loan on Sepolia with no real-world effect. Prepared, not sent: returns a signRequest (summary, warnings, signLink to fabrica.land, expiresAt 15 minutes out, payload null for now) and stores it so the sign page can load it. The person opens the link, signs in with that wallet and signs; nothing happens until then. The server holds no keys and submits nothing. wallet is the address that will sign.

輸入參數slugwallet必填tokenIdamountUsd必填durationDays

repay_land_loan

Prepare paying off a loan

Prepare paying off the open DeFi lending pool loan on a property (Sepolia Testnet), or the one named by loanId, with the payoff amount today. A loan is open while active and, past maturity, in default until the pool's auction starts. Checks first that the loan is open and the wallet is its borrower, and warns when it is past maturity. Paying off returns the token to the wallet, free of the loan. Prepared, not sent: returns a signRequest (summary, warnings, signLink to fabrica.land, expiresAt 15 minutes out, payload null for now) and stores it so the sign page can load it. The person opens the link, signs in with that wallet and signs; nothing happens until then. The server holds no keys and submits nothing. wallet is the address that will sign.

輸入參數slugloanIdwallet必填tokenId

get_sign_request

Get sign request status

Get a sign request a prepare tool returned (make_land_offer, list_land_for_sale, accept_land_offer, buy_land, cancel_land_order, borrow_against_land, repay_land_loan) by its id: pending or completed, with the order hash, transaction hash or loan id once signed. A pending request is also checked against the live order book, or the property's loans for a borrow or payoff. Requests expire 15 minutes after they are prepared; an expired id is reported as unknown.

輸入參數id必填

get_transaction_status

Get transaction status

Get the status of an Ethereum transaction on Sepolia Testnet by hash: not_found, pending, succeeded or failed, with the block, confirmations, sender, recipient and a block explorer link. Reads the chain only.

輸入參數hash必填

版本歷史

2
  1. v0.2.0最新Oct 22, 2026
  2. v0.1.0Sep 28, 2026

評分

已滿足適用檢查項的 100%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

其他 Fabrica 整合