Kenya civic data tools. Access county drought data, budget allocations, parliament bills, SACCO registry, and constitutional rights. All tools support English and Kiswahili output.
Civic-agent-kit provides 6 well-named, read-only tools for Kenya civic data. All tools have descriptions (avg 180 chars, within baseline 194) and input schemas with types. However, output schemas are not documented in the source code, LLMs cannot see what fields to expect from responses. Parameter descriptions are present but generic (e.g., 'en or sw' lacks context on when to use each). No error handling guidance, no recovery paths, and no pagination despite tools returning lists (parliament_bills, sacco_lookup). Tool names follow verb_noun pattern well (kenya_county_drought, kenya_budget_summary), but descriptions lack actionable context on when to call each tool vs. alternatives. All tools are READ_ONLY (safe), but this is not surfaced via toolAnnotations in the schema.
Get county budget allocation, development vs recurrent split, and absorption rate. FY 2022/23 data from Kenya Controller of Budget. DEMO data — real data: opendata.go.ke and cob.go.ke.
Get list of all 47 Kenya counties with metadata (region, population estimate, capital). Useful for validating county names in other tools.
Get current NDMA drought phase for any of Kenya's 47 counties. Phase 1=Minimal, 2=Stressed, 3=Crisis, 4=Emergency, 5=Famine. Data source: Kenya National Drought Management Authority (NDMA). DEMO data — for real-time data see ndma.go.ke.
Search Kenya Parliament bills by status, type, or keyword. Returns bill ID, title, status (First Reading, Second Reading, Committee Stage, Assented), type (Government/Private Member), and summary. Data from Kenya 13th Parliament (2022–2027).
Query Kenya Constitution 2010 for rights by topic. Supports English and Kiswahili. Topics: land, water, health, education, labour, housing, food. Returns article text and citation.
Output schemas not documented. LLMs cannot see what fields responses contain (e.g., does kenya_county_drought return population_affected? Does kenya_parliament_bills return bill_id or id?). This forces agents to guess field names for downstream processing.
No pagination or result limits documented. kenya_parliament_bills and kenya_sacco_lookup return lists but lack limit/offset parameters or total_count fields. If parliament has 500+ bills, returning all wastes context and risks timeout.
Parameter descriptions lack actionable context. 'language: en or sw' does not explain when to use Swahili vs. English or what the LLM should do if the user's language is not supported. Descriptions should guide tool selection.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
Look up SACCO (Savings and Credit Cooperative) registry data by name or county. Returns SACCO type (Deposit-Taking, Front-Office Service), membership, assets, and sector focus. Data from SASRA (SACCO Societies Regulatory Authority).
No error handling or recovery guidance. If a county name is misspelled (e.g., 'Turkanna' instead of 'Turkana'), the tool will fail silently or return null. Descriptions should hint at calling kenya_counties_list first to validate input.
READ_ONLY risk classification not surfaced in schema. All tools are safe (read-only), but fastmcp does not expose readOnlyHint in the tool definition. This prevents clients from optimizing caching or parallelization.