Skip to main content
Glama
gabrielmahia

kilimo-mcp

by gabrielmahia

kilimo-mcp

kilimo-mcp Glama score


Compatible with claude-sonnet-5 (released 2026-06-30) — Anthropic's most agentic Sonnet yet. Runs multi-step tool chains end-to-end without stopping short. Install: pip install kilimo-mcp · Use with any MCP client.


Kenya precision agriculture via MCP — crop calendar, fertilizer, pest alerts, KALRO varieties

PyPI License Layer

AI Architecture: Agricultural Domain RAG

Agricultural AI for East Africa requires domain-specific retrieval — generic models hallucinate crop varieties, soil types, and local market conditions.

Research basis:

  • AgriIR (Springer 2026): configurable RAG framework for agricultural knowledge retrieval — validates domain-specific retrieval over monolithic agricultural models. Key finding: low computational cost with high accuracy when knowledge base is curated.

  • RAG vs Fine-tuning on Agriculture (arXiv 2401.08406): RAG outperforms fine-tuning for dynamic agricultural knowledge (seasonal, location-specific, real-time market).

  • DPGA 2026 focus: Domain-specific DPGs in agriculture and climate are a 2026 strategic priority for Co-Develop and DPGA members.

Knowledge base pairing:

  • Kenya National Drought Management Authority (NDMA) data → drought → crop risk

  • Kenya Meteorological Department seasonal forecasts → planting calendar

  • East Africa agricultural historical data (1906-1925, HuggingFace: gmahia)

Coordination: Pairs with wapimaji-mcp (water), bima-mcp (insurance), soko-mcp (markets) via africa-coord-bus for full drought response cascade.

Related MCP server: wapimaji-mcp

Install

pip install kilimo-mcp

What it does

6 MCP tools covering Kenya precision agriculture. 1st world equivalent: Climate Corp / Granular.

Tool

Description

crop_calendar

Kenya crop planting and harvesting calendar by region

fertilizer_guide

Fertilizer recommendations by crop and soil type

pest_disease_alert

Crop pest and disease identification and management

market_timing_guide

Best timing to sell produce based on price cycles

kalro_varieties

KALRO improved crop variety recommendations

input_cost_calculator

Kenya farm input cost calculator and comparison

Usage

# Run as standalone MCP server
kilimo-mcp

# Or add to Claude Desktop / any MCP client
# Add to your MCP config: {"command": "kilimo-mcp"}

Part of the Kenya Coordination Infrastructure Stack

This is one of 23 MCP servers covering the full coordination infrastructure of East Africa:

Economic: mpesa · mkopo · bima · soko · sifa · remit · kra · faida
Physical: wapimaji · nishati · usafiri · ardhi
Social: afya · afya-ya-akili · elimu · kazi · haki-ya-kazi · kilimo · jumuia
Civic: nyumba · habari · mazingira · civic-agent-kit

The Nairobi Stack
Full Portfolio

Trust Integrity

All data in this server is clearly labeled DEMO where synthetic. Verify all operational data with the relevant Kenyan government authority before use.

License

MIT © Gabriel Mahia | AI-KungFU | contact@aikungfu.dev

Decision infrastructure for East Africa

Part of the East Africa Coordination Stack

This MCP server is one of 32 tools in the Kenya coordination infrastructure. It connects to africa-coord-bus — the coordination event bus that routes signals between domains automatically.

When this server detects a threshold condition, the bus notifies:

  • bima-mcp — parametric insurance evaluation

  • kilimo-mcp — agricultural advisory

  • afya-mcp — health surveillance activation

  • county-mcp — county office alert

pip install africa-coord-bus

All servers: pypi.org/user/gmahia

IP & Collaboration

MIT licensed. Feedback via GitHub Issues only — pull requests are not accepted. Demo data is labeled DEMO and is not suitable for operational decisions. Full policy: docs/architecture/IP_POLICY.md. Security reports: see SECURITY.md.

Part of the East Africa coordination stack

Model-agnostic by design: closed APIs, open-weight models, and small distilled models are all first-class citizens.

Available Tools

6 tools
crop_calendarC

Kenya crop planting and harvesting calendar by region. DEMO.

ParametersJSON Schema
NameRequiredDescriptionDefault
cropYes
regionNohighland

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It only adds 'DEMO' as a behavioral caveat, but does not describe what data is returned, how invalid crops are handled, or any limitations. The transparency burden is largely unmet.

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 a single sentence with the 'DEMO' marker, very efficient and front-loaded. It uses no unnecessary words, though the brevity sacrifices detail. For its length, it is concise and structurally clear.

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

Completeness2/5

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

Despite having an output schema, the description lacks contextual completeness. It does not specify typical use cases, input constraints, or behavioral expectations. With two parameters and no annotations, more context is needed to make the tool usable. The description is minimal and leaves the agent to guess at details.

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

Parameters2/5

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

Schema description coverage is 0%, so the description should compensate for parameter meaning. It mentions 'by region' which maps to the region parameter, but fails to explain the required 'crop' parameter or provide allowed values/examples. The description adds minimal value beyond the schema itself.

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 tool provides a Kenya crop planting and harvesting calendar by region, which distinguishes it from sibling tools like fertilizer_guide or pest_disease_alert. Although no explicit verb is used, the resource and scope are specific and unambiguous.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool versus alternatives. There is no mention of suitable scenarios, exclusions, or why it should be chosen over fertilizer_guide, market_timing_guide, etc. The purpose implies use for calendar data, but no explicit direction is provided.

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

fertilizer_guideB

Fertilizer recommendations by Kenya crop and soil type. DEMO.

ParametersJSON Schema
NameRequiredDescriptionDefault
cropYes
soil_typeNomedium

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the burden. It only discloses that it is a 'DEMO', which hints at limited functionality, but offers no information about read-only behavior, data sources, or any side effects. This minimal disclosure leaves many behavioral aspects unknown.

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 a single concise phrase with no wasted words. It is front-loaded and easy to skim. However, it is so brief that it sacrifices useful detail, though this is more a completeness concern than a conciseness flaw.

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?

The tool is simple with only 2 parameters and an output schema, which mitigates the need for extensive return-value documentation. Still, the description gives only a high-level purpose and does not explain how to use the parameters or any limitations beyond 'DEMO'. It is minimally sufficient but leaves gaps.

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

Parameters2/5

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

The schema has 0% description coverage, so the description must compensate. It mentions 'crop' and 'soil type', matching the two parameters, but provides no details about accepted values, defaults, or the meaning of the 'medium' default for soil_type. This is inadequate for guiding an agent on what to pass.

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: providing fertilizer recommendations based on Kenya crop and soil type. It distinguishes itself from siblings like crop_calendar or input_cost_calculator by focusing on fertilizer recommendations. However, it lacks an explicit verb like 'provides' or 'recommends', making it slightly less direct.

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?

Usage is implied: if you need fertilizer recommendations for Kenyan crops, this is the tool. There is no explicit guidance on when not to use it or alternatives, but the sibling tools cover different areas (pests, market timing, costs), so the differentiation is clear enough.

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

input_cost_calculatorC

Kenya farm input cost calculator and comparison. DEMO.

ParametersJSON Schema
NameRequiredDescriptionDefault
cropYes
acreageNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries full responsibility for disclosing behavior. It states the tool calculates and compares costs, but does not clarify whether it is a read-only operation, what inputs are needed, or any limitations of the DEMO version.

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 very short and front-loaded with the primary purpose, but the trailing 'DEMO' adds unnecessary noise without explanation. It is concise but lacks detail.

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

Completeness2/5

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

The tool is a simple calculator with two parameters and an output schema, yet the description omits any operational context, such as how to interpret results, what crops are supported, or how acreage affects the calculation. This is inadequate for an agent to use it correctly without additional inference.

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

Parameters2/5

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

The description adds minimal meaning: it indicates the domain (Kenya farm inputs) but does not elaborate on the 'crop' or 'acreage' parameters. Since schema description coverage is 0%, this is insufficient for an agent to know what values to provide.

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 identifies the tool as a cost calculator and comparison for Kenya farm inputs, using a specific verb and resource that distinguishes it from sibling tools focused on calendars, guides, and alerts.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus the siblings. The description does not mention alternatives or exclusion criteria, leaving the agent to infer usage from the name alone.

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

kalro_varietiesC

KALRO improved crop variety recommendations for Kenya. DEMO.

ParametersJSON Schema
NameRequiredDescriptionDefault
cropYes
conditionNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It only mentions 'DEMO', which signals a demo environment, but does not state whether the operation is read-only, what the output format is, or any 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 a single sentence, very brief and front-loaded. The phrase 'KALRO improved crop variety recommendations for Kenya' is informative, and the trailing 'DEMO' adds minor context. It is concise but not over-verbose.

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

Completeness2/5

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

For a tool with two parameters and an output schema, the description is too sparse. It doesn't explain how parameters influence the recommendation output, nor does it provide enough context for an agent to know when to invoke it among the sibling tools. The output schema exists but the description adds little value.

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 input schema has two parameters with 0% description coverage. The description does not explain what 'crop' or 'condition' mean, how they relate to variety recommendations, or provide any examples. It completely fails to compensate for the schema's lack of descriptions.

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 identifies the tool as providing KALRO improved crop variety recommendations for Kenya. This distinguishes it from sibling tools like crop_calendar and fertilizer_guide. However, it lacks an explicit action verb (e.g., 'get', 'list'), so it's slightly less than a 5.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus the sibling tools. It implies use for variety recommendations but does not specify context, prerequisites, or exclusions.

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

market_timing_guideC

Best timing to sell Kenya produce based on price cycles. DEMO.

ParametersJSON Schema
NameRequiredDescriptionDefault
countyNo
commodityYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description must carry the full burden of behavioral disclosure. It only adds the word 'DEMO', which vaguely suggests a non-production version, but fails to disclose data sources, limitations, or any operational side effects. This is insufficient for an agent to understand the tool's behavior.

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 a single, concise sentence that expresses the core purpose without waste. However, the abrupt 'DEMO' inclusion and lack of detail make it less effective as a structured, informative description, dropping it slightly from a perfect score.

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

Completeness2/5

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

While the tool has an output schema that covers return values, the description still lacks context about parameter usage, data sources, and the significance of 'DEMO'. It reads like a placeholder rather than a complete guide for an agent, especially compared to more detailed sibling descriptions.

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?

Schema description coverage is 0%, so the description must compensate by explaining parameters. However, it does not mention 'commodity' or 'county' at all, leaving the agent without any guidance on what values to supply or how they affect the timing advice.

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: providing optimal selling timing for Kenya produce based on price cycles. This differentiates it from sibling tools like crop_calendar and fertilizer_guide, though it lacks an explicit verb (e.g., 'provides' or 'calculates').

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus alternatives. The description does not mention scenarios, exclusions, or comparisons with sibling tools, leaving the agent to infer appropriate usage.

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

pest_disease_alertC

Kenya crop pest and disease management guide. DEMO.

ParametersJSON Schema
NameRequiredDescriptionDefault
cropYes
symptomNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.1/5.0
Behavior2/5

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

With no annotations, the description carries the burden of disclosing behavior. 'DEMO' hints at a non-production or sample nature, but the description does not explain what the tool actually returns, whether it is read-only, or any side effects. The lack of behavioral detail beyond the 'DEMO' flag leaves significant uncertainty.

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

Conciseness2/5

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

The description is extremely short, but this brevity is under-specification rather than efficiency. The sentence 'Kenya crop pest and disease management guide. DEMO.' is more like a title than a functional description, providing almost no actionable information. It does not earn its place given the tool's complexity.

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

Completeness2/5

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

Although an output schema exists (which reduces the need to explain return values), the description still lacks essential context. With two parameters, no annotations, and sibling tools that are similarly vague, the description does not provide enough information to select this tool over others or to understand expected inputs and behavior.

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 has 0% description coverage and the description does not mention the crop or symptom parameters. The required 'crop' parameter and optional 'symptom' are not given any semantic meaning, allowed values, or examples. The description adds negligible value over the raw schema.

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

Purpose3/5

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

The description identifies the topic area (Kenya crop pest and disease management) but lacks an explicit action verb or outcome. It is not a tautology, but does not clearly state whether the tool identifies pests, recommends treatments, or provides general guidance. This makes the purpose somewhat vague, especially compared to sibling tools that also appear to be guides.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as fertilizer_guide or crop_calendar. The description does not mention intended scenarios, prerequisites, or exclusions. A user would have to infer usage solely from the tool name and schema.

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. Dates show when Glama detected each change.

  1. 6 tool updatesv0.1.3
    • First observedcrop_calendar
    • First observedfertilizer_guide
    • First observedinput_cost_calculator
    • First observedkalro_varieties
    • First observedmarket_timing_guide
    • First observedpest_disease_alert

TDQS

B3.2/5.0
Disambiguation5/5

Each tool targets a distinct agricultural domain: planting schedule, fertilizer, pests, market timing, varieties, and input costs. No overlap in purpose, making tool selection unambiguous.

Naming Consistency5/5

All tool names use a consistent lowercase snake_case pattern with noun-noun combinations (e.g., crop_calendar, fertilizer_guide). The naming is uniform and descriptive, making it easy to predict tool functions.

Tool Count5/5

Six tools is a well-scoped set for an agricultural advisory server, covering key aspects without being overwhelming. Each tool has a clear purpose, and the count is within the ideal range.

Completeness4/5

The tools cover the core planting-to-selling lifecycle: planting calendar, fertilizer, pest/disease management, market timing, variety selection, and cost calculation. Minor gaps exist (e.g., weather or irrigation guidance), but the surface is largely complete for its stated purpose.

Maintenance

ActivityNo data
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Provides access to Kenya's civic datasets including parliament records, county budgets, SACCO registry, and drought data through MCP tools. Enables AI agents to analyze and query Kenyan public data for civic applications.
    6
    1
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    MCP server exposing Kenya NDMA drought phase classifications across all 47 counties, with tools for structured data access and SMS-based alerting via Africa’s Talking.
    3
    1
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    MCP server for Kenya insurance intelligence, providing tools to query insurance products, NHIF coverage, and parametric crop risk scoring.
    6
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    MCP server for East Africa commodity price intelligence — regional price comparison across 8 markets, trend analysis, and sell/hold decision support for smallholder farmers. 5 tools.
    5
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/gabrielmahia/kilimo-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server