Search / land.fabrica/mcp-testnet
Fabrica (Sepolia testnet)
R0· no sign-inFabrica test properties on Sepolia: try every Fabrica tool with no real-world effect.
v0.1.0 · active · repository · website · descriptor JSON · versions
Search / land.fabrica/mcp-testnet
R0· no sign-inFabrica test properties on Sepolia: try every Fabrica tool with no real-world effect.
v0.1.0 · active · repository · website · descriptor JSON · versions
{
"mcpServers": {
"mcp-testnet": {
"type": "http",
"url": "https://mcp-testnet.fabrica.land/mcp"
}
}
}claude mcp add --transport http mcp-testnet https://mcp-testnet.fabrica.land/mcp[mcp_servers.mcp-testnet]
url = "https://mcp-testnet.fabrica.land/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"mcp-testnet": {
"type": "remote",
"url": "https://mcp-testnet.fabrica.land/mcp",
"enabled": true
}
}
}{
"mcpServers": {
"mcp-testnet": {
"type": "http",
"url": "https://mcp-testnet.fabrica.land/mcp"
}
},
"deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=mcp-testnet&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vbWNwLXRlc3RuZXQuZmFicmljYS5sYW5kL21jcCJ9"
}{
"servers": {
"mcp-testnet": {
"type": "http",
"url": "https://mcp-testnet.fabrica.land/mcp"
}
}
}{
"mcpServers": {
"mcp-testnet": {
"httpUrl": "https://mcp-testnet.fabrica.land/mcp"
}
}
}extensions:
"mcp-testnet":
enabled: true
name: "mcp-testnet"
type: streamable_http
uri: "https://mcp-testnet.fabrica.land/mcp"
timeout: 300
protocol.modernnewest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28protocol.statelessonly applies to 2026-07-28 serversprotocol.transportstreamable HTTPprotocol.list_ttlonly applies to 2026-07-28 serversauth.prm, auth.as_metadata, auth.cimdno remote uses OAuthauth.secret_in_urlno templated URLtools.descriptionsevery tool has a descriptiontools.description_length2 tools have descriptions over 1,024 characters, which crowds the contexttools.schemasevery tool has an object input schematools.annotations27 of 27 tools declare readOnlyHint or destructiveHinttools.directory_hintsevery tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHinttools.token_costabout 8,579 tokens to load every tooltools.api_dumptools are not a one-to-one API dumpstability.changes47 tool changes in 30 daysstability.rug_pullno tool changed its meaning under the same namedeps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI packageget_transaction_statusaddedGet 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.
get_sign_requestaddedGet a sign request a prepare tool returned (make_offer, list_for_sale, accept_offer, buy, cancel_order) by its id: pending or completed, with the order hash or transaction hash once signed. A pending request is also checked against the live order book. Requests expire 15 minutes after they are prepared; an expired id is reported as unknown.
cancel_orderaddedPrepare canceling the wallet's own open listing or offer (orderHash: orderId from get_order_book) on Sepolia Testnet. Checks first that the order 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.
buyaddedPrepare buying a property at its open listing (orderHash: orderId from get_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.
accept_offeraddedPrepare accepting an open offer (orderHash: orderId from get_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.
list_for_saleaddedPrepare 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.
make_offeraddedPrepare an offer to buy a minted 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.
get_loan_bookaddedGet 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.
get_lending_marketchangeddescriptionGet an overview of the Fabrica lending market: loan counts, loans, DeFi lending pool liquidity and utilization, average APR, and recent loan events. 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.
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_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.
find_parcelchangeddescription, input schemaResolve any US street address or parcel number (APN) to a parcel: 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 on-ramp link for that parcel; it starts an on-ramp 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. Limited to 30 lookups per minute per client.
Resolve any US street address or parcel number (APN) to a parcel: 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 on-ramp link for that parcel; it starts an on-ramp 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.
Showing the latest 10. Full history: list_changes · trend: quality JSON.
Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.
+repository +dns-namespace +website +reachable +uptime-100% +updated-21d-ago
Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.
| remote | auth | reachable | uptime 30d | p50 | protocol | last ok |
|---|---|---|---|---|---|---|
https://mcp-testnet.fabrica.land/mcp streamable-http | none | yes | 100% | 320 ms | 2025-11-25 | 2026-10-19 |
accept_offer | Prepare accepting an open offer (orderHash: orderId from get_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. |
ask_fabricaread-only | 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, the onramp and offramp, 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. |
buy | Prepare buying a property at its open listing (orderHash: orderId from get_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. |
cancel_order | Prepare canceling the wallet's own open listing or offer (orderHash: orderId from get_order_book) on Sepolia Testnet. Checks first that the order 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. |
check_coverageread-only | Whether a US county (or a whole state) can be added to Fabrica through the on-ramp: 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 on-ramp steps. Answers from a table of Fabrica's on-ramp rules as of 2026-10-16, refreshed by hand, so each answer carries that date; the on-ramp page 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. |
contact_supportread-only | Hand a question to Fabrica's support team when the documents (ask_fabrica) do not answer it or a person is needed: a stuck onramp, 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. |
explain_confidence_scoreread-only | Explain a Fabrica property's Property checks from their numeric encoding (formerly called the confidence score; the tool name keeps it). 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. |
find_parcelread-only | Resolve any US street address or parcel number (APN) to a parcel: 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 on-ramp link for that parcel; it starts an on-ramp 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. |
get_activityread-only | 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: mints, transfers, sales, listings, loans started/repaid/liquidated, configuration changes, and more. Covers transaction history and event timelines. |
get_borrow_quoteread-only | Get borrowing options for a specific tokenized property: 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 (onramp, 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. |
get_lending_marketread-only | 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_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. |
get_loan_bookread-only | 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. |
get_order_bookread-only | Get the marketplace order book for one property: 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 a premint and whether it is collateral for an active loan, with what that means for a sale. Expired, canceled and filled orders are left out unless status is 'all'. Links to the property page, where offers are made. |
get_portfolioread-only | Get a wallet's Fabrica portfolio: properties owned (paged), active loans (as borrower or lender), marketplace orders, credit history, and total portfolio value. Counts and totals always cover the whole wallet. |
get_portfolio_imageread-only | Get a static map image showing all properties owned by a wallet, plotted as points on a single map. Returns an inline image. Supports dark/light themes and custom dimensions. |
get_propertyread-only | Get comprehensive details about a specific tokenized 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 (premint, minted, removal in progress), 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). An old premint ID that was replaced by a minted token returns the successor. Boundary geometry is returned by get_property_map. 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_trust_documents; owner names from third-party parcel data are never returned. |
get_property_imageread-only | Get a static map image of a tokenized property showing its parcel boundary (or a pin marker if no boundary is available). Returns an inline image. Supports dark/light themes and custom dimensions. |
get_property_mapread-only | Get GeoJSON boundary data for a tokenized property, for mapping, spatial analysis, and visualization. The county boundary is added only with includeCountyBounds: true. |
get_protocol_statsread-only | Get protocol-wide statistics for the Fabrica real property tokenization platform: total properties, estimated value, lending volume and loan counts, DeFi lending pool TVL and utilization, geographic distribution, and contract addresses. |
get_sign_requestread-only | Get a sign request a prepare tool returned (make_offer, list_for_sale, accept_offer, buy, cancel_order) by its id: pending or completed, with the order hash or transaction hash once signed. A pending request is also checked against the live order book. Requests expire 15 minutes after they are prepared; an expired id is reported as unknown. |
get_tax_statusread-only | Get whether a tokenized 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. |
get_transaction_statusread-only | 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. |
get_trust_documentsread-only | 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_property; owner names from third-party parcel data are never returned. Property checks are not a title search or title insurance. |
get_valuationread-only | 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. |
list_for_sale | 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. |
make_offer | Prepare an offer to buy a minted 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. |
search_propertiesread-only | Search tokenized real properties on the Fabrica protocol (Sepolia Testnet). 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, mint date or distance; each row carries its price per acre (listing or estimate, labelled) 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. |
Schemas: list_tools.
1 other active names share this repository: land.fabrica/mcp
{
"name": "land.fabrica/mcp-testnet",
"title": "Fabrica (Sepolia testnet)",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"remotes": [
{
"url": "https://mcp-testnet.fabrica.land/mcp",
"type": "streamable-http"
}
],
"version": "0.1.0",
"repository": {
"url": "https://github.com/fabrica-land/fabrica-mcp",
"source": "github"
},
"websiteUrl": "https://docs.fabrica.land",
"description": "Fabrica test properties on Sepolia: try every Fabrica tool with no real-world effect."
}