Skip to main content
Glama

πŸ› οΈ CivicAgentKit β€” East African Civic AI SDK

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.

PyPI License: MIT MCP A2A

Install

pip install civic-agent-kit

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 endpoint

Serve 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):

Package

Description

PyPI

mpesa-mcp

M-Pesa + Africa's Talking MCP server

PyPI

civic-agent-kit

This package

PyPI

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

mpesa-mcp, wapimaji-mcp

A2A

Agent β†’ Agent

kenya-a2a

Google ADK

Agent orchestration

kenya-adk

AG-UI

Agent β†’ Frontend

kenya-agui

This makes Gabriel Mahia the first engineer to implement all four protocols for East Africa.

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
)
A
license - permissive license
-
quality - not tested
C
maintenance

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/civic-agent-kit'

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