Skip to main content
Glama

Microfarm MCP

これから小規模農業を始めたい人のための、土地の適性を見極めるインテリジェンス — 無料・オープンソースの MCP サーバーで、Claude、Cursor、その他 MCP 対応 AI に接続し、ある土地について重要な 2 つの問いに答えます:

  1. この区画は実際に食料栽培に適しているか?

  2. ここに合法的に住居を建てられるか?

…さらに、そもそも評価対象となる実際の売り土地も見つけます。

投機家のためではなく、土地を守り育てる人のためのツール。

License: MIT Python 3.10+ CI tests


なぜこれが存在するのか

誰もが土地を所有すべきだ。なぜなら、それがあなたを豊かにするから。 お金や高級車ではなく、耕し、育て、豊かにできる土地。あなたと家族、隣人、 地域社会のために恵みをもたらす土地。動物を養い、生命を支える土地。

——このプロジェクトが存在する理由

不動産市場が土地に対してしていることの大半は投機です。この ツールは、所有し、そこに暮らし、手入れをするための土地を求める人々のためのものです。 水、表土、耕作可能な季節、そして実際に建ててよいのかという正直な答えを提供します。 推測はしません。すべてのシグナルは明示された公的ソースから得られ、分からないことはフラグされ、でっち上げられることはありません。

米国・フランス・キプロスで動作し、Open-Meteo + OSM がデータを持つ場所ならどこでも土地をスコアリングできます。利用できる機能は国によって異なります。正直な全体像は次のとおりです。

Related MCP server: Plantos MCP Server

国別の対応状況

国

土地のスコアリング(assess_land)

売り土地の検索(find_land)

洪水・住居チェック

米国

✅ 気候・水・農地・土地タイプのすべて

✅ farms.com + Craigslist(ライブ)

✅ FEMA 洪水リスクゾーン

キプロス

✅ すべて

✅ index.cy(ライブ、ギリシャ語/英語のタイトル)

⚠️ 洪水データなし — 「計画当局に確認」とフラグ

フランス

✅ すべて

🔜 ブラウザ限定(leboncoin.fr、offer.com.cy)— まだスクレイピング未対応

⚠️ 洪水データなし — 「mairie/DDT に確認」とフラグ

その他の地域(Open-Meteo + OSM がデータを持つ場所)

✅ 気候・水・農地・土地タイプ・アクセス

❌ 物件情報ソースの接続なし

⚠️ 洪水データなし

判定の凡例: ✅ = 現在動作 · ⚠️ = 動作するが、「現地で確認」という正直な注記付き · 🔜 = 登録済みだがブラウザが必要(land_sources.browser_only 参照)

グローバルな機能と国別の機能:

  • グローバル(ほぼどこでも動作): 気候(降水量、生育期間、耐寒性)、水域・水辺、農地、土地タイプ、道路/アクセス。これが assess_land のスコアリング対象で、全世界をカバーする Open-Meteo + OpenStreetMap を使用します。

  • 国別: find_land の物件情報は国ごとのサイトから取得します。洪水リスクゾーンは米国限定の FEMA 由来のため、住居の洪水チェックが実際に機能するのは米国のみで、それ以外の地域では推測せず「お住まいの地域の計画当局に確認してください」と正直に表示します。

ツール

ツール

機能

assess_land

区画を小規模農場としての適性と住居の実現可能性の両面でスコアリングします。降水量、生育期間、水へのアクセス、農地の状況、土地タイプ、樹木被覆、隣接地・プライバシー、土壌(肥沃度、pH、テクスチャー → 井戸の涵養)、アクセス、洪水リスクゾーン。エビデンスに基づく promising / requires_look / likely_mismatch の判定を返します。

find_land

無料ソースから実際の売り土地を価格・面積・写真・説明・場所付きで検索します。さらに country/state フィルターも備えています。

zone

計画ゾーンコードと、農地に住居を建てられるかどうかを説明します。フランス(A/U/AU/N + STECAL/拡張ルール、「logement de fonction」の条件)、キプロス(Γη3/ΚΑ6/H2)、米国(農業地区)に対応。

land_sources

使用している無料の公的データソースとライセンスを一覧表示します(透明性と帰属表示のため)。

about_microfarm

土地に何を求めるべきかを平易な言葉で説明します。

すべてがエビデンスに基づいています。各シグナルはそのソースを明示し、欠落データは欠落として報告され、「良好」として扱われることはありません。

クイックスタート

git clone https://github.com/omardaaboul/microfarm-mcp.git
cd microfarm-mcp
python3 -m venv .venv
.venv/bin/pip install -e ".[test]"
.venv/bin/microfarm-mcp            # start the server (stdio)

Claude / Cursor / OpenCode / Gemini / その他の MCP クライアントに接続する

Microfarm は標準的な MCP サーバーなので、MCP に対応したツールならどれでも利用できます。具体的な設定方法はクライアントによって異なります:

Claude Desktop — claude_desktop_config.json:

{
  "mcpServers": {
    "microfarm-mcp": {
      "command": "python3",
      "args": ["-m", "microfarm.server"],
      "env": { "PYTHONPATH": "/absolute/path/to/microfarm-mcp" }
    }
  }
}

Claude Code — claude mcp add:

claude mcp add microfarm-mcp -- python3 -m microfarm.server

Cursor — .cursor/mcp.json:

{
  "mcpServers": {
    "microfarm-mcp": {
      "command": "python3",
      "args": ["-m", "microfarm.server"],
      "env": { "PYTHONPATH": "/absolute/path/to/microfarm-mcp" }
    }
  }
}

OpenCode — opencode.json(リポジトリ)または ~/.config/opencode/config.json:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "microfarm-mcp": {
      "type": "local",
      "command": ["python3", "-m", "microfarm.server"],
      "cwd": "/absolute/path/to/microfarm-mcp",
      "enabled": true,
      "timeout": 10000
    }
  }
}

Gemini CLI — ~/.gemini/settings.json:

{
  "mcpServers": {
    "microfarm-mcp": {
      "command": ["python3", "-m", "microfarm.server"],
      "env": { "PYTHONPATH": "/absolute/path/to/microfarm-mcp" }
    }
  }
}

VS Code(組み込み Copilot MCP / 拡張機能)— .vscode/mcp.json:

{
  "servers": {
    "microfarm-mcp": {
      "type": "stdio",
      "command": "python3",
      "args": ["-m", "microfarm.server"],
      "env": { "PYTHONPATH": "/absolute/path/to/microfarm-mcp" }
    }
  }
}

ChatGPT に関する注意。 ChatGPT が MCP に対応しているのはリモート HTTPS サーバーとしてのみで、その機能は現在 Business/Enterprise プランに限定されています。ローカルの stdio サーバー(このリポジトリがデフォルトで実行するもの)は ChatGPT に直接接続できません。ChatGPT で使うにはサーバーをリモートでホストし、その HTTPS URL を ChatGPT に渡す必要があります。これは設定の微調整ではなく、実際の作業です。ローカル利用には、Claude、Cursor、OpenCode、Gemini CLI が簡単な方法です。

あとはアシスタントにこう尋ねるだけです:

「ドルドーニュのこの区画は小規模農場に適していますか? そして、ここに家を建てられますか?」

「パフォス地区で 15 万ユーロ以下の土地を探して、どれが訪れる価値がありそうか教えてください。」

結果の見た目

assess_land("Polemi, Paphos, Cyprus")
→ promising | 75
  [positive] adequate_precipitation: ~426 mm/yr
  [positive] long_season:            ~363 growing days/yr
  [positive] water_access:           5 water feature(s) nearby
  [positive] farmland:               27 farm land tag(s) nearby
  [caution]  land_type:              built-up
  [caution]  tree_cover:             little/no mapped tree cover
  [caution]  privacy:                23 structures nearby
  [positive] soil_fertility:         ~42 g/kg organic carbon
  [caution]  soil_ph:                pH ~7.8
  [caution]  well_recharge:          ~33% clay / ~23% sand
  [positive] access:                 158 road segment(s) nearby

zone("A", "France")   → explains agricultural zone + when a dwelling is allowed
zone("Γη3", "Cyprus") → agricultural zone, min ~4,000m² for one rural dwelling

データソースと帰属表示

これらは、すべての回答の背後にある無料・API キー不要の公的ソースです。このプロジェクトやそのデータを自身の作品で使用する際は、以下のソースをクレジットしてください。いくつかはライセンスにより帰属表示が求められます。

ソース

提供内容

ライセンス / 帰属表示

Open-Meteo Geocoding

地名 → 緯度/経度、標高

CC BY 4.0

Open-Meteo Historical Climate

降水量、気温、生育日数

CC BY 4.0

Open-Meteo Elevation

地表標高

CC BY 4.0

ISRIC SoilGrids

表土:有機炭素、pH、粘土/砂/シルトのテクスチャー、CEC

CC BY 4.0

OpenStreetMap via Overpass API

水域・水辺、建物、道路、農地、樹木

ODbL

FEMA National Flood Hazard Layer

地点の洪水リスクゾーン(米国のみ)

米国連邦政府、パブリックドメイン(データ)、FEMA による ArcGIS サービス

farms.com

米国の農地・土地物件(find_land)

サイトのコンテンツは各サイトに帰属。当方は物件ページへのリンクを提供

Craigslist

米国の個人売主による土地物件(find_land)

サイトのコンテンツは各サイトに帰属。当方は物件ページへのリンクを提供

index.cy

キプロスの区画・土地物件(find_land)

サイトのコンテンツは各サイトに帰属。当方は物件ページへのリンクを提供

Open-Meteo は各国の気象サービスのデータを集約しており、その API は CC BY 4.0 でライセンスされています。感謝して利用しています。OpenStreetMap のデータは Open Database License に基づく © OpenStreetMap contributors です。物件情報のコンテンツは各マーケットプレイスに帰属します。当方はそれらのページを紹介してリンクするだけで、画像を再ホストすることはありません。

土地タイプ、ゾーン、そして「ここに住居を建てられるか?」という問い

  • 土地タイプ(農地 / 牧草地 / 森林 / 低木地 / 市街地 / 水辺)と樹木被覆は OpenStreetMap から検出され、すべての評価で報告されます。

  • 公式ゾーニング — 土地に法的に何を建てたり行ったりできるか — は、無料の国レベルのデータでは入手できません。これは地方の計画当局(米国のカウンティ(郡)、Cyprus Planning Authority、フランスの mairie/DDT)が定めるもので、権利証書 / 地籍 / PLU 文書に記録されていますが、これらは自由に機械照会できるものではありません。zone ツールはコード(フランス A/U/N、キプロス Γη/ΚΑ、米国の農業地区)と、その通常の建築ルールを説明します。農場住居 / logement de fonction の具体的な条件も含み、地元当局に確認すべき点を正確に示します。これはガイドであり、公式記録の代わりには決してなりません。

正直な限界

  • ゾーニング/住居法は地域ごとに異なります。 このツールは公開データ(洪水+農地の状況)に基づく初期スクリーニングであり、公式の条例に代わるものではありません。必ず現地と自治体の担当者で確認してください。

  • 洪水データは米国のみです(FEMA)。米国以外では正直に「利用不可」と報告され、「危険なし」と誤って表示されることはありません。

  • 一部の掲載サイトはブラウザ限定です(landbanksearch、govdeals、farmflip、Bazaraki、land.cy、offer.com.cy、leboncoin.fr)。登録はされていますが、まだスクレイピングされていません。land_sources は、アクセス可能な範囲とブラウザ限定の範囲の境界を示します。

  • 「Limousin」(2016年に廃止)のような地理的地域名はジオコーディングされない場合があります — 現在の市町村または地区を使用してください。

  • ギリシャの掲載タイトルは基本的な単語レベルの翻訳が行われます。あまり知られていない地名はギリシャ語のままになる場合があります。

開発

.venv/bin/ruff check microfarm tests   # lint
.venv/bin/ruff format --check microfarm tests
.venv/bin/mypy microfarm               # type-check
.venv/bin/pytest tests/ -q             # 43 tests (mocked providers, deterministic)

CIはPython 3.10 / 3.11 / 3.12でlint、フォーマット、型チェック、テスト、パッケージビルドを実行します。

プロジェクト構成

microfarm-mcp/
├── microfarm/
│   ├── server.py       ← FastMCP server (5 tools)
│   ├── engine.py       ← orchestration + cache + find_land
│   ├── providers.py    ← free data providers (Open-Meteo, SoilGrids, OSM, FEMA)
│   ├── listings.py     ← land-listing collectors (farms.com, Craigslist, index.cy)
│   ├── scorer.py       ← evidence-backed viability + dwelling scoring
│   ├── zones.py        ← planning-zone explainer (France, Cyprus, US)
│   └── models.py       ← typed pydantic models
├── tests/              ← 43 tests
├── configs/            ← ready-to-use MCP client configs (Claude, Cursor,
│                         OpenCode, Gemini CLI, VS Code, generic)
├── .github/workflows/ci.yml
└── pyproject.toml

ライセンスと免責事項

MITライセンスです。自由に使用、変更、共有できます。

これは財務、法律、不動産に関するアドバイスではありません。 物件に依存する前に、必ず現地と地元の計画当局で確認してください。データは上記の無料の公開情報源から取得されており、不完全または不正確な場合があります。

Available Tools

5 tools
about_microfarmA

Plain-language explanation of what a micro-farm is and what to look for in land.

NameRequiredDescriptionDefault
textYes

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must carry the full burden of behavioral disclosure. It accurately conveys that this is a read-only, non-destructive information tool with no stated side effects. The description honestly represents the tool's output as an explanation. However, it could be more explicit that this likely returns static textual content and doesn't query external data.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, well-structured sentence that front-loads the core purpose ('plain-language explanation') and immediately specifies the two topical areas. No wasted words; every element contributes to the definition. It is concise without being under-specified.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple informational nature of the tool, the description is nearly complete for an agent to understand its purpose and content. While it could benefit from mentioning the expected format of the response (e.g., 'returns a paragraph'), the description covers the essential 'what' and 'why' sufficiently. The main gap is the undocumented parameter, which is already penalized in the parameter semantics dimension.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema defines a single required 'text' parameter with zero description coverage. The tool description provides absolutely no guidance on what this parameter means, what format it should be in, or how it should be populated. For a required parameter, this is a critical gap that forces the agent to guess.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states this tool provides a 'plain-language explanation' of micro-farms and what to look for in land. This distinguishes it from the action-oriented sibling tools (find_land, assess_land) by being informational rather than transactional, though it doesn't explicitly name the siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this tool is for learning foundational context before using other tools, but it never explicitly states when to choose this over alternatives like 'zone' or 'land_sources'. It lacks a clear when-to-use and when-not-to-use directive, leaving the agent to infer the intended use case from the phrase 'plain-language explanation'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

assess_landA

Assess a US parcel for small-scale (micro) farming viability AND whether a dwelling is likely feasible there.

Provide a place name/address like 'Petaluma, California' or 'Lamoille County, VT', OR explicit lat/lon. Uses free public data (Open-Meteo climate + geocoding + elevation, OpenStreetMap land/water/roads/farmland, FEMA flood zones) to score precipitation, growing season, water access, farmland context, access, and dwelling feasibility. Every signal lists its source; missing data is flagged.

NameRequiredDescriptionDefault
latNo
lonNo
placeNo

Output Schema

NameRequiredDescription
dataNo
scoreNo
stateYes
signalsNo
summaryYes
next_actionNo
missing_dataNo
dwelling_feasibilityNo

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full disclosure burden. It enumerates the data sources (Open-Meteo, OpenStreetMap, FEMA), lists the scored dimensions (precipitation, growing season, water access, etc.), and explicitly notes that sources are listed and missing data is flagged. This goes beyond a simple summary and gives an agent reliable expectations about behavior and limitations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is moderately long but each sentence earns its place: purpose, input format, data sources and scoring criteria, and data transparency. It is well front-loaded with the core purpose and avoids redundancy or off-topic filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the existence of an output schema, the description does not need to describe the return structure. It covers all essential operational aspects: how to specify the target location, what data sources are used, what criteria are scored, and how missing data is handled. No critical gaps remain for an agent to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides no descriptions for lat, lon, or place (0% coverage), so the description must compensate. It clarifies that either place or lat/lon can be used, gives concrete examples ('Petaluma, California' or 'Lamoille County, VT'), and implies that lat/lon are alternatives to place. This adds genuine meaning beyond the raw schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb 'Assess' and a resource 'US parcel', then explicitly names the two evaluation outcomes: micro-farming viability and dwelling feasibility. This makes it unmistakable how it differs from sibling tools like 'find_land' (searching for parcels) and 'zone' (zoning rules), which the description naturally distinguishes by focusing on assessment rather than discovery or zoning.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explains how to supply input (place name/address or lat/lon) with examples, which is useful, but does not state when to prefer this tool over siblings or when not to use it. The intended use case (assess a specific parcel) is implied rather than explicitly contrasted with alternatives, so guidance is partial.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

find_landA

Find real land for sale from free, accessible online sources (farms.com, Craigslist, and index.cy for Cyprus), optionally filtered by country/state/price/acreage. Each listing includes price, land size, location, and photo URLs where available.

Examples: find_land(country="CY") → Cyprus plots from index.cy (Greek & English listings, titles translated). find_land(state="OH") → US farms. Free, no key. Browser-only sources are listed in browser_only_sources.

NameRequiredDescriptionDefault
limitNo
stateNo
countyNo
countryNo
max_acresNo
min_acresNo
max_price_usdNo

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It does note that sources are 'free, accessible online' and 'browser-only', and that titles are translated for Cyprus, which is useful. However, it does not disclose potential delays, rate limits, or that results may be incomplete or inconsistent across sources. The mention of 'browser-only sources' hints at limitations but could be more explicit about the need for browser automation or potential unreliability.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is relatively concise, with a clear first sentence and a paragraph of examples. It front-loads the core purpose and then gives illustrative cases. However, the line 'Browser-only sources are listed in browser_only_sources' is a bit cryptic and could be clearer. Overall, it is structured well, but there is some repetition of the source list that could be trimmed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations and output schema, the description does a decent job of covering the basics: what it does, sources, filters, and output fields. However, it leaves out important context like the nature of the 'browser-only_sources' (is it a parameter? a tool?), and it does not mention potential errors, rate limits, or how to handle results. For a tool with 7 parameters, this is incomplete but not severely so.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 7 parameters with 0% description coverage, so the description must compensate. It does not describe each parameter individually, but the examples illustrate how to use 'country' and 'state', and the description mentions filters for price and acreage. Since all parameters are optional and have defaults, this is adequate, but a bit more per-parameter detail would be helpful, especially for 'county' which is not mentioned.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: finding land for sale from specific online sources, with optional filters. It also gives examples and mentions the output fields (price, size, location, photos), which helps the agent understand the tool's purpose. It doesn't explicitly contrast with siblings like land_sources, but the verb 'find' and the detail about filtering distinguish it somewhat.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides usage examples (e.g., find_land(country='CY')) and states the sources, but it does not explicitly say when to use this tool versus alternatives like land_sources or assess_land. The guidance is implied through the examples, but there is no clear 'when not to use' or alternative routing. Given the sibling names, an agent might not know whether to use find_land or land_sources without further context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

land_sourcesA

List the free, keyless public data sources this server uses (transparency).

NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden and does well by consistently describing the tool as read-only ('List') and disclosing the nature of the data (free, keyless, public). This implies no authentication or side effects, though it doesn't explicitly state the response format or that no state changes occur, which is a minor gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence that front-loads the action, specifies the resource with qualifying attributes, and states the purpose. Every word earns its place with zero redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless, output-schema-less informational tool, the description is complete. It tells the agent exactly what information is provided (list of sources), their properties (free, keyless, public), and the rationale (transparency), leaving no obvious gap for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the schema trivially covers 100% and the baseline is 4. The description adds no parameter-specific information, but none is needed—there is nothing to explain.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (List), the resource (free, keyless public data sources), and the purpose (transparency). This distinguishes it from siblings like assess_land and find_land, which are operational land tools, making the tool's role obvious.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Although it doesn't explicitly contrast with sibling tools, the description makes it clear this is for transparency about data sources, which is distinct from the land-focused actions. The 'transparency' purpose implies usage when a user inquires about data provenance, making the intended context clear without ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

zoneA

Explain a planning-zone code and what it means for building a dwelling on farmland, for Cyprus (e.g. 'Γη3', 'ΚΑ6', 'H2'), France ('A', 'U', 'AU', 'N'), or the US ('A' agricultural district). Includes the specific conditions for a 'farm dwelling' / logement de fonction.

Planning law is local: exact density, min size and build conditions come from the Local Plan / zoning ordinance and title deed. This is a guide that tells you the general logic and exactly what to confirm — never a substitute for the official source.

NameRequiredDescriptionDefault
codeYes
countryNoFrance

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It clearly sets expectations: this is a general guide, not an official source, and it tells the user exactly what to confirm. This is strong transparency about limitations and output nature.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose and uses a second paragraph for an important caveat. It is compact and every sentence adds value, though slightly longer than strictly necessary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple explainer tool with no output schema and no annotations, the description covers scope, examples, limitations, and what to confirm. It is complete enough for an agent to invoke it correctly and set user expectations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate. It explains the 'code' parameter via examples and implies the 'country' parameter by listing jurisdictions. However, it does not explicitly define parameter names or the default country, leaving some burden on the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb ('Explain') and resource ('planning-zone code') with concrete examples for multiple countries. It does not explicitly name sibling tools, but its scope is distinct enough that an agent can tell it apart from land search/assessment tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool: when someone needs to understand a zoning code or farm-dwelling conditions. It does not explicitly mention alternatives or when not to use it, though the caveat about not substituting official sources gives some context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 5 tool updatesv0.3.0
    • First observedabout_microfarm
    • First observedassess_land
    • First observedfind_land
    • First observedland_sources
    • First observedzone

TDQS

A3.9/5.0

Scored across 5 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: assessing viability, finding listings, explaining zoning codes, listing data sources, and providing background education. There is no practical overlap that would confuse an agent.

Naming Consistency3/5

The naming is readable and uniform in style with underscores, but it mixes conventions: assess_land and find_land follow verb_noun, while zone, land_sources, and about_microfarm are noun or prepositional style. The inconsistency is noticeable but not chaotic.

Tool Count5/5

Five tools is a well-scoped set for a specialized micro-farm research server. Each tool addresses a distinct part of the domain without redundancy or bloat.

Completeness5/5

The tool set covers the full user journey: learning about micro-farming, seeing available land, assessing a specific parcel, and understanding zoning implications. It also includes transparency about data sources, leaving no obvious dead ends.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Instant U.S. property intelligence for AI agents. Zoning, Buildability™ Score, ADU eligibility, flood risk, and more from 20+ government sources. Pay-as-you-go: $5 per analysis (prepaid credits). Free Score available at buildability.us. Get a key at buildability.us/api.
    5
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to access free, open agronomic data for field briefings, spray windows, water balance, pest pressure, and more, using only public data sources without API keys.
    1
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides free property and parcel intelligence using official US government data APIs, county assessor records, and live listings, with tools for hazard risk checks, affordability calculations, and parcel ranking.
    -