Borrowing it
Nothing to install: this file belongs to fabrica-land/fabrica-mcp. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/fabrica-land/fabrica-mcp/main/AGENTS.mdgit clone --depth 1 https://github.com/fabrica-land/fabrica-mcpWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/instructions/fabrica-land/fabrica-mcp/agents-md)<a href="https://agentmods.dev/instructions/fabrica-land/fabrica-mcp/agents-md"><img src="https://agentmods.dev/badge/instructions/fabrica-land/fabrica-mcp/agents-md/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/instructions/fabrica-land/fabrica-mcp/agents-md"><img src="https://agentmods.dev/badge/instructions/fabrica-land/fabrica-mcp/agents-md.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.06203 | $0.06203 |
| Opus 5.5 | $0.02481 | $0.02481 |
| Sonnet 5.5 | $0.01241 | $0.01241 |
| Haiku 4.5 | $0.00620 | $0.00620 |
Grade A, and why
fabrica-mcp AGENTS.md scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 298 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Fabrica MCP Server
An MCP server giving AI agents read-only access to tokenized real property data on the Fabrica protocol.
What is Fabrica?
Fabrica tokenizes real property (land) as ERC-1155 NFTs on Ethereum. A legal trust holds title at the county level, and the token represents the beneficial interest in that trust: owning the token means owning the beneficial interest in the trust that holds the property.
- Platform: https://fabrica.land
- Docs: https://docs.fabrica.land
- Company overview: https://about.fabrica.land
- Dune: https://dune.com/fabrica/dashboard
Project Structure
src/
config.ts # Network config, contract addresses, legal notices
server.ts # createServer(): registers every tool
prompts.ts # MCP prompts (due_diligence, work_parcel_list, wallet_review, how_to_add_land)
index.ts # stdio entrypoint (local installs)
http.ts # stateless Streamable HTTP handler (hosted)
usage-log.ts # one structured log line per request, no arguments or IPs (docs/usage/)
vercel.ts # Vercel function entry, bundled by scripts/build-vercel.mjs
auth/
config.ts # Connect Fabrica (OAuth resource server): FABRICA_OAUTH flag, issuer per network, the /mcp/account resource
token.ts # access-token checks (ES256 JWT, issuer, audience, expiry, at+jwt) against the issuer's JWKS; never logged
ui/property-card.ts # registers the property card MCP App resource (ui://fabrica/property-card)
ui/generated/ # gitignored: HTML built from /ui by scripts/build-ui.mjs
server.json, server.testnet.json # MCP Registry entries (land.fabrica/mcp, land.fabrica/mcp-testnet); npm run registry:publish
skills/fabrica/SKILL.md # Agent Skills file, served at /skill.md by scripts/build-vercel.mjs; keep it in step with the tools
ui/
property-card/ # the MCP App view (index.html template + app.ts), bundled with the
# MCP Apps SDK into one self-contained HTML string (no CDN scripts).
# view.ts: layout from the host context (compact under 480 px or on a
# phone, regular otherwise), hover, safe areas, fact lines; unit tested
fonts/ # Open Sauce Two (OFL) subset, served at /fonts by the hosted server
tools/
properties.ts # search_land, get_land_property, get_land_boundary
lending.ts # get_fabrica_lending_market
loan-book.ts # get_fabrica_loan_book (distribution of the loan records; no auction proceeds or per-loan liquidation rows)
portfolio.ts # get_land_portfolio
protocol.ts # get_fabrica_stats
scoring.ts # explain_property_checks
borrowing.ts # estimate_land_borrowing
valuation.ts # get_land_valuation (GraphQL GetValuation + REST /valuation/v1)
activity.ts # get_land_activity
marketplace.ts # get_land_order_book
images.ts # get_land_map_image, get_land_portfolio_map_image
documents.ts # get_land_trust_documents
tax.ts # get_land_tax_status (also the taxes line on get_land_property)
knowledge.ts # ask_fabrica
parcels.ts # find_us_parcel (Regrid type-ahead via the API, /go on-ramp link, per-client limit)
coverage.ts # check_county_coverage (static on-ramp rules table in src/data/onramp-coverage.json, built by scripts/build-coverage.mjs)
support.ts # contact_fabrica_support (help center link, support email, prefilled mailto; nothing sent)
sign-requests.ts # make_land_offer, list_land_for_sale, accept_land_offer, buy_land, cancel_land_order (prepare a sign request), get_sign_request
loans.ts # borrow_against_land, repay_loan_against_land (sign requests), get_loan_against_land (GetLoanContext, never cached)
transactions.ts # get_transaction_status (JSON-RPC reads only)
account.ts # get_my_account, get_my_properties (signed-in endpoint /mcp/account only, the connected user's own token)
attention.ts # what_needs_attention (signed-in endpoint only; ranks items from the other personal reads plus fees and checks on up to 20 live properties)
my-loans.ts # get_my_loans (signed-in endpoint only, portfolio:read; loans with live payoff, pool deposits valued at tick prices)
offers.ts # get_my_offers (signed-in endpoint only, portfolio:read; public order data for the account's wallets)
onramps.ts # get_my_properties_being_added, get_adding_status (signed-in endpoint only, onramp:read)
own-wallet.ts # On the signed-in endpoint, fills wallet arguments from the account (omitted or "me"; portfolio:read); public reads otherwise unchanged
inputs.ts # zod pieces shared by the tools' input schemas (property reference, image size)
knowledge/
index.ts # typed, validated loader for generated/index.json (committed)
search.ts # BM25 retrieval with Fabrica synonyms and compound-term normalization
facts.ts # wording red lines the tests check the top passages against
documents.ts # whole documents reassembled from the index, for resources
resources/
knowledge.ts # fabrica://docs, fabrica://help, fabrica://legal, fabrica://property/{tokenId}/trust-agreement, fabrica://network
# scripts/build-knowledge.mjs builds the index; scripts/knowledge-diff.mjs and
# .github/workflows/refresh-knowledge.yml open the daily refresh pull request
clients/
graphql.ts # Fabrica GraphQL API client (primary data source)
account.ts # personal reads with the connected user's token (never cached, never on anonymous calls)
rpc.ts # Ethereum JSON-RPC reads (transaction, receipt, block number) for get_transaction_status
generated/ # operations.ts: one result type per gql document, from scripts/codegen.mjs (committed; npm run codegen)
subgraph.ts # Lending pool subgraph client (dynamic pool discovery)
cache.ts # Short-TTL read cache with in-flight de-duplication (TtlCache)
budgets.ts # Read budgets (loan page budget, MAX_LOANS)
data/
us-counties.ts # Regrid county paths to FIPS and name (copied from soil-app's /go table)
sign-requests/
store.ts # SignRequestStore: Vercel KV / Upstash REST (or an in-process map locally), HMAC-checked records, 15-minute expiry
http.ts # GET /sign-requests/{id} and POST /sign-requests/{id}/result for the Soil sign page
vercel-sign-requests.ts # Vercel function entry for /sign-requests
well-known.ts # /.well-known/mcp.json, /.well-known/mcp/server-card.json, /.well-known/ai-catalog.json (card read from a live in-process server)
vercel-well-known.ts # Vercel function entry for /.well-known
lifecycle.ts # propertyStage(): unclaimed, being_added, replaced, live, removal_in_progress, removed, retired
fees.ts # fees assessed on a token, by currency address
types/
index.ts # Names for the generated operation types (TokenListItem, TokenDetail, WalletModel...) plus the REST and subgraph shapes
__tests__/ # vitest test suite
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 4d ago Changed · +1 lines · +96 tokens per session 0f1c4a815a43
- 5d ago Changed · +15 lines · +787 tokens per session d3345780eacc
- 6d ago Changed · +6 lines · +213 tokens per session c07fdfd8fb75
- 9d ago Changed · +47 tokens per session 3ff3dd0ad6dc
- 12d ago Changed · +45 lines · +1,860 tokens per session ce6ea231bdfa
- 13d ago First seen · 231 lines · 3,200 tokens per session scan A ad47afdd4b8f
fabrica-mcp AGENTS.md is an instructions file published in the GitHub repository fabrica-land/fabrica-mcp (0 stars, last pushed 2d ago), licensed MIT. It adds 6,203 tokens to every session, about $0.0248 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-10-16.
Other instructions, from other repositories
vscode buildNext.instructions.md
Working notes and architecture documentation for the new esbuild-based build system in build/next. Use when making changes to the new build pipeline (transpile/bundle commands, NLS plugin, source-map handling, resource copying, or self-hosting watch tasks).
next.js AGENTS.md
AGENTS.md instructions for vercel/next.js, covering next.js development guide, codebase structure, monorepo overview, core package: packages/next and other important packages.
vscode oss-third-party-notices.instructions.md
Instructions for microsoft/vscode, covering vs code oss third-party-notices pipeline, architecture, pipeline flow in ci, cache eligibility and rollout and applying the notice (cutover).
langchain AGENTS.md
AGENTS.md instructions for langchain-ai/langchain, covering global development guidelines for the langchain monorepo, corridor security analysis, project architecture and context, monorepo structure and development tools & commands.
vscode copilot-instructions.md
Copilot instructions for microsoft/vscode, covering vs code copilot instructions, project overview, root folders, core architecture (src/ folder) and built-in extensions (extensions/ folder).
deno copilot-instructions.md
Copilot instructions for denoland/deno, covering deno development guide for github copilot, network access, high level overview, key directories and key files to understand first.