KenyaMCPServer
The KenyaMCPServer provides access to Kenya's public civic datasets, enabling queries on government data across six tools:
kenya_county_drought: Get the current NDMA drought phase (1=Minimal to 5=Famine) for any of Kenya's 47 counties, in English or Swahili.kenya_budget_summary: Retrieve county budget allocations, development vs. recurrent spending splits, and absorption rates (FY 2022/23) for a specific county or all 47 at once.kenya_parliament_bills: Query Kenya Parliament bills (13th Parliament), filtering by legislative status (e.g., Assented, Second Reading, Committee Stage) or by keyword in titles/summaries.kenya_sacco_lookup: Search the SASRA SACCO registry by name or county, returning details like SACCO type, membership size, total assets, and focus sector.kenya_rights_query: Query constitutional rights from Chapter 4 of the Constitution of Kenya 2010 (e.g., land, water, health, education) in English or Kiswahili, returning the relevant article and provisions.kenya_counties_list: List all 47 Kenyan counties, useful as inputs to other tools.
Provides BudgetAgent for county budget analysis using CrewAI framework, enabling AI agents to analyze Kenya's county budget data programmatically.
Integrates with DOI system for dataset citation, providing access to Kenya civic datasets with proper academic attribution through DOI identifiers.
Integrates with Kaggle datasets, providing access to Kenya civic data including parliament records, county budgets, and SACCO registry information.
Distributed as a Python package on PyPI, enabling easy installation and integration of Kenya civic AI tools into Python-based AI agent systems.
Built as a Python SDK, providing programmatic access to Kenya civic data and AI tools through Python interfaces for integration with AI agent systems.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@KenyaMCPServershow me the drought phases for Turkana county"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
π οΈ CivicAgentKit β East African Civic AI SDK
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 civic-agent-kit Β· Use with any MCP client.
The unified Python toolkit for building civic AI tools in East Africa. One install gives you access to Kenya's parliament records, county budgets, NDMA drought data, M-Pesa payments, and both MCP and A2A protocol integrations.
Install
pip install civic-agent-kitRelated MCP server: bima-mcp
What's included
from civic_agent_kit import (
# Data loaders β Kenya's public civic datasets
KenyaBudgetData, # Controller of Budget β 47 counties
KenyaParliamentData, # MPs, bills, CDF β 13th Parliament
KenyaSACCOData, # SASRA SACCO registry
KenyaDroughtData, # NDMA drought phases
# Agents
BudgetAgent, # County budget analysis (CrewAI)
RightsAgent, # Constitutional rights Q&A (EN/SW)
DroughtAgent, # Drought + SMS alert agent
# Protocols
KenyaMCPServer, # MCP server β wraps all Kenya data as MCP tools
KenyaA2AServer, # A2A server β Kenya civic skills for agent-to-agent
# Utils
KenyaCounties, # All 47 county codes + names
KiswahiliTranslator, # Simple civic term translations ENβSW
)Quick examples
Load county budget data:
from civic_agent_kit import KenyaBudgetData
budgets = KenyaBudgetData.load()
low_absorption = budgets[budgets['absorption_rate'] < 0.5]
print(low_absorption[['county', 'allocation_kes_m', 'absorption_rate']])Serve Kenya civic data as an A2A agent:
from civic_agent_kit import KenyaA2AServer
server = KenyaA2AServer(host="http://localhost:8000")
server.run() # exposes /.well-known/agent.json + JSON-RPC endpointServe as an MCP server:
from civic_agent_kit import KenyaMCPServer
# Run alongside mpesa-mcp for full East African AI stack
server = KenyaMCPServer()
server.run()Ask a rights question in Kiswahili:
from civic_agent_kit import RightsAgent
agent = RightsAgent(language="sw")
answer = agent.ask("Haki yangu ya ardhi ni nini?")
print(answer)
# β "Kifungu 40: Kila mtu ana haki ya kupata na kumiliki mali..."The East African AI Stack
βββββββββββββββββββββββββββββββββββββββ
β Your AI Agent β
βββββββββββββββ¬ββββββββββββββββββββββββ
β
ββββββββββββββββββββ΄βββββββββββββββββββββββ
β β
ββββββββΌβββββββ βββββββββΌβββββββ
β MCP Layer β β A2A Layer β
β (tools) β β (agents) β
ββββββββ¬ββββββββ βββββββββ¬βββββββ
β β
βββββββββββ΄βββββββββββ ββββββββββββ΄ββββββββββ
β β β β
ββββββΌβββββ ββββββββΌββββββ βββββββββΌβββββ ββββββββΌβββββββ
βmpesa-mcpβ βKenyaMCP β βkenya-a2a β βCivicAgent β
βpayments β βcivic data β βparliament β βKit agents β
βSMS β βbudgets β βbudgets β βbudget/rightsβ
βairtime β βparliament β βdrought β βdrought β
βββββββββββ ββββββββββββββ βrights EN/SWβ βββββββββββββββ
ββββββββββββββData
All data from the Kenya Civic Datasets (CC BY-SA 4.0):
Kaggle: gmahia/kenya-civic-data β DOI:
10.34740/kaggle/dsv/15473045HuggingFace: gmahia/kenya-civic-data β DOI:
10.57967/hf/8223
Related packages
Package | Description | PyPI |
| M-Pesa + Africa's Talking MCP server | |
| This package |
Full portfolio
13 deployed civic apps: gabrielmahia.github.io
IP & Collaboration
Β© 2026 Gabriel Mahia Β· contact@aikungfu.dev License: MIT
Protocol Coverage β Complete Stack
civic-agent-kit now supports all four major AI agent protocols for East Africa:
Protocol | What it does | Implementation |
MCP | Agent β Tool | |
A2A | Agent β Agent | |
Google ADK | Agent orchestration | |
AG-UI | Agent β Frontend |
Each protocol layer above was implemented within weeks of its global release β because the coordination gaps these tools address don't wait for tooling maturity.
from civic_agent_kit import CivicAgentKit
# Full protocol stack
kit = CivicAgentKit(
mcp_servers=["mpesa-mcp", "wapimaji-mcp"], # MCP
a2a_registry="kenya-a2a", # A2A
agui_server="kenya-agui", # AG-UI
adk_config="kenya-adk", # Google ADK
)Maintenance
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/civic-agent-kit'
If you have feedback or need assistance with the MCP directory API, please join our Discord server