MCP server for Rwanda's national soil information system (RwaSIS). Query soil data, fertilizer recommendations, and parcel information via AI assistants.
# rwasis-mcp
MCP server for RwaSIS — Rwanda's national soil information system, operated by the Rwanda Agriculture Board (RAB).
Part of the Inzira project — Layer 2.
## Installation
```bash
pip install rwasis-mcp
```
## Usage
### With Claude Desktop
Add to your `claude_desktop_config.json`:
```json
{
"mcpServers": {
"rwasis": {
"command": "rwasis-mcp"
}
}
}
```
### With `mcp` CLI
```bash
mcp run rwasis-mcp
```
## Tools
### `get_crops`
Returns all crops registered in the RwaSIS system.
**Returns:** List of crops — Bean, Cassava, Rice, Potato, Maize, Wheat.
> Note: only Potato and Rice currently have fertilizer recommendations.
---
### `get_soil_by_location`
Returns soil data and fertilizer recommendations for a Rwanda location.
**Parameters:**
| Name | Type | Description |
|------|------|-------------|
| `name` | string | Village, cell, sector, or district name (e.g. `Gasabo`, `Kigali`) |
**Returns:** `carbon`, `calcium`, `potassium`, `phValues`, `erosionRisk`, `erosionRecommendation`, `potatoFertilizerRecommendation`, `riceFertilizerRecommendation`, `boundary`.
> Note: the `/boundaries?name=` endpoint currently returns empty arrays for all locations — the soil data tables appear not yet populated on the RAB side. This is a known issue raised with RAB.
---
### `get_soil_by_upi`
Returns parcel location and soil data for a Rwanda UPI (parcel identifier).
**Parameters:**
| Name | Type | Description |
|------|------|-------------|
| `upi` | string | Rwanda parcel UPI, e.g. `1/03/08/04/2148` |
**UPI format:** `Province / District / Sector / Cell / Parcel`
| Part | Format |
|------|--------|
| Province | single digit (1–5) |
| District | two digits |
| Sector | two digits |
| Cell | two digits |
| Parcel | four digits |
**Returns:** resolved location (province, district, sector, cell, village), parcel boundary polygon, and fertilizer recommendations for Potato and Rice where available.
**Example response for `1/03/08/04/2148`:**
- Location: K …