Fabrica
US land for sale and any US parcel by address or APN: maps, Property checks, taxes, trust documents.
| Endpoint | https://mcp.fabrica.land/mcp (streamable-http) |
|---|---|
| Registry version | 0.2.0 |
| Now | 45 tools · grade D (56) · pin ts_5bedcd95f988d8bffa4d52a2136b71f9 · protocol 2025-06-18 |
| First / last listed | 2026-11-08 01:29 UTC / 2026-11-08 01:29 UTC |
| Grade over time | 2026-11-08: D (56), 45 tools |
Is this your server? Own a server? ToolFit hosted watch re-checks it every 24 h ($0.25 per 30 days) or 6 h ($0.60) and sends you an HMAC-signed webhook when its tools or grade change: POST https://api.youraitools.co/toolfit/v1/watch. To opt out, see About & opt-out.
Tools: search_land get_land_property get_fabrica_lending_market get_fabrica_loan_book get_land_portfolio get_fabrica_stats get_land_boundary get_land_trust_documents get_land_tax_status explain_property_checks estimate_land_borrowing get_loan_against_land get_land_valuation get_land_activity get_land_order_book get_land_map_image get_land_portfolio_map_image ask_fabrica find_us_parcel check_county_coverage contact_fabrica_support make_land_offer list_land_for_sale accept_land_offer buy_land cancel_land_order borrow_against_land repay_loan_against_land transfer_land update_trust_agreement update_land_description update_land_photos deposit_to_lending_pool withdraw_from_lending_pool get_sign_request get_transaction_status get_my_account get_my_properties get_my_offers get_my_loans what_needs_attention get_my_properties_being_added get_adding_status add_land answer_adding_questions
search_land | Search US land on Fabrica (Ethereum Mainnet): 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 params: region, county, groupBy, minAcres, maxAcres, minScore, hasListings, hasLoans, ownedBy, minPrice, maxPrice, minPricePerAcre, maxPricePerAcre, near, sortBy, sortDir, limit, offset |
get_land_property | Get the full record of one property on Fabrica (Ethereum Mainnet), 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, params: tokenId, slug, display |
get_fabrica_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 loan params: status, borrower, lender, since, limit |
get_fabrica_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 params: provider, status, sinceDays, groupBy, largest |
get_land_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. params: address*, limit, offset |
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. params: none |
get_land_boundary | 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. params: tokenId, slug, includeCountyBounds |
get_land_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 params: tokenId, slug, includeAgreementText |
get_land_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 d params: tokenId, slug |
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 tok params: tokenId, score |
estimate_land_borrowing | 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 liquid params: tokenId, slug, amountUsd |
get_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 ne params: tokenId, slug, loanId |
get_land_valuation | 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 params: tokenId, slug |
get_land_activity | 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. params: tokenId, slug, address, type, limit |
get_land_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 th params: tokenId, slug, status, minOfferUsd |
get_land_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. params: tokenId, slug, theme, width, height |
get_land_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. params: address*, theme, width, height |
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 params: question*, maxPassages, source |
find_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 params: query, queries, state, county |
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 answe params: fips, state, county, ownerType |
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 params: summary*, topic, tokenId, subject, discloseAgent |
make_land_offer | Prepare an offer to buy a live property on Fabrica (Ethereum Mainnet) 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 (sum params: tokenId, slug, amountUsd*, expiresDays, wallet* |
list_land_for_sale | Prepare a listing of a property the wallet holds on Fabrica (Ethereum Mainnet) 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. A property its owner is still ad params: tokenId, slug, priceUsd*, expiresDays, wallet* |
accept_land_offer | Prepare accepting an open offer (orderHash: orderId from get_land_order_book) on a property the wallet holds (Ethereum Mainnet). 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, params: tokenId, slug, orderHash*, wallet* |
buy_land | Prepare buying a property at its open listing (orderHash: orderId from get_land_order_book) on Ethereum Mainnet. 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_statu params: tokenId, slug, orderHash*, wallet* |
cancel_land_order | Prepare canceling the wallet's own open listing or offer (orderHash: orderId from get_land_order_book) on Ethereum Mainnet. 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) an params: tokenId, slug, orderHash*, wallet* |
borrow_against_land | Prepare borrowing USDC from the DeFi lending pool against a property the wallet holds (Ethereum Mainnet), 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). T params: tokenId, slug, amountUsd*, durationDays, wallet* |
repay_loan_against_land | Prepare paying off the open DeFi lending pool loan on a property (Ethereum Mainnet), 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. params: tokenId, slug, loanId, wallet* |
transfer_land | Prepare moving a whole property the wallet holds to another account of the same person on Fabrica (Ethereum Mainnet): recipient is the destination address, which must be an account linked to the owner's own Fabrica login (the sign page offers only those; a sale to someone else is list_land_for_sale or accept_land_offer). Checks first that the wallet holds the property outright, that it backs no lo params: tokenId, slug, recipient*, wallet* |
update_trust_agreement | Prepare moving a property to the latest version of the Fabrica trust agreement (Ethereum Mainnet). The trust agreement governs the trust that holds the land; the contract lets only a wallet holding at least 70% of the property change it. Checks first that the wallet holds that share and that the property backs no loan, and reports the version it is on now (get_land_trust_documents shows the text). params: tokenId, slug, wallet* |
update_land_description | Prepare replacing a property's description with new plain text, up to 5000 characters (Ethereum Mainnet). Checks first that the wallet holds at least 50% of the property (the contract's rule for this change), that the property backs no loan and that the text differs from the current one. The sign page opens the description editor with the text filled in, editable before saving; saving stores it an params: tokenId, slug, description*, wallet* |
update_land_photos | Prepare a link that opens a property's photo editor on its page (Ethereum Mainnet), where the owner adds, removes or reorders photos and videos from their own device and saves; files are not passed through this server. Checks first that the wallet holds at least 50% of the property and that it backs no loan, and reports how many photos it has now. Prepared, not sent: returns a signRequest (summary params: tokenId, slug, wallet* |
deposit_to_lending_pool | Prepare depositing amountUsd in USDC into one tick of the DeFi lending pool (Ethereum Mainnet). 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; with tick left out and several open, the answer lists them (ticks) so the person can choose. Interest is set by the pool, variable and not guaranteed, and deposits are at risk: a params: amountUsd*, tick, pool, wallet* |
withdraw_from_lending_pool | Prepare withdrawing amountUsd (default: the whole position) from the wallet's deposit at one tick of the DeFi lending pool (Ethereum Mainnet). Checks first that the wallet has a deposit at the tick, read from the pool contract, and that the amount is within it, and warns when the tick has too few funds not lent out to pay all of it when signed: that part waits in the pool's withdrawal queue and is params: tick*, amountUsd, pool, wallet* |
get_sign_request | 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_loan_against_land, transfer_land, update_trust_agreement, update_land_description, update_land_photos, deposit_to_lending_pool, withdraw_from_lending_pool) by its id: pending or completed, with the order hash, transaction hash or loan id once s params: id* |
get_transaction_status | Get the status of an Ethereum transaction on Ethereum Mainnet by hash: not_found, pending, succeeded or failed, with the block, confirmations, sender, recipient and a block explorer link. Reads the chain only. params: hash* |
get_my_account | Get the connected person's own Fabrica account on Ethereum Mainnet: their email, their linked accounts (every wallet address on the account, each listed once), their verification status, and what this connection may read (its scopes and when its access token expires). Takes no input: it always answers for the person who connected, never for anyone else. params: none |
get_my_properties | List the connected person's own properties on Fabrica (Ethereum Mainnet), across every wallet on their account: the properties they are adding to Fabrica first, then their live properties by estimated value. Each row has its stage and status, location, acres, listing price, offers waiting, whether it is under a loan, Property checks encoding, estimated value and the property page link; totals cove params: includePremints |
get_my_offers | List the connected person's offers on Fabrica (Ethereum Mainnet), across every wallet on their account: received, the offers waiting on their properties (per property, highest first, with whether the property is under a loan and the property page where an offer is accepted), and made, the offers they placed on other properties. Each offer has its USD price and amount, buyer, expiry, and expiringSo params: side, status |
get_my_loans | List the connected person's lending on Fabrica (Ethereum Mainnet), across every wallet on their account: taken, the loans against their properties (active first, with maturity date, days to maturity, maturingSoon within 14 days, payoff today and its as-of time, APR and the property page where it is repaid); made, loans they funded; deposits, their position in the DeFi lending pool (value at curren params: none |
what_needs_attention | One ranked list of everything waiting on the connected person on Fabrica (Ethereum Mainnet): loans past or near maturity and offers waiting on their properties first, then steps of properties they are adding that wait on them, then fees to approve, then checks on their live properties (property taxes, owner contact, recovery status) and removals in progress. Each item has its kind, property, title params: none |
get_my_properties_being_added | List the properties the connected person is adding to Fabrica (Ethereum Mainnet), across every wallet on their account, those waiting on them first. Each has its address, county and parcel number, status, how many steps are done, the next step with who acts (the owner, Fabrica, or the county recorder), what it asks and the link to do it, any required details still missing, and the live token once params: none |
get_adding_status | Get one property the connected person is adding to Fabrica (Ethereum Mainnet) in full: every step with its status and dates, the next step and who acts, the actions open on it with the owner's own links, and what the owner entered so far (the owners named on the deed and the details the county asks for). Answers only for a property this account is adding. Needs the connection's onramp:read grant. params: tokenId* |
add_land | Start adding a property to Fabrica (Ethereum Mainnet) from one of: listingUrl, a listing page on another website (the web app reads it: title, price, acres, the seller's description, photos, parcel number, county and state, and names the parcel); parcelNumber with state and county; or address. Finds the parcel and whether it is already on Fabrica. Signed in with the add-property grant, it then cre params: listingUrl, address, parcelNumber, state, county, wallet |
answer_adding_questions | Save, on a property the connected person is adding to Fabrica (Ethereum Mainnet), the owner named on the deed (owner: 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 (answers, keyed by the question exactly as add_land or get_adding_status lists it; a select takes one of its options verbatim). Returns the params: tokenId*, owner, answers, email |
Entries describe changes in tool definitions. They are not statements about a server, its quality or its author. The grade measures how the tool definitions fit model providers (token cost, schema compatibility, confusable names) as scored by the ToolFit engine at the time of the listing. JSON: append .json. Opt-out: how or hello@youraitools.co.