nishati-mcp
This server provides five Kenya energy information tools to help users understand electricity connections, costs, solar alternatives, subsidies, and consumer rights (all responses are labelled DEMO).
kplc_connection_guide: Get guidance on new KPLC electricity connections by county and connection type.
tariff_calculator: Estimate monthly KPLC electricity costs based on monthly units used and customer type.
solar_options_guide: Explore off-grid solar options filtered by budget and use case.
energy_subsidy_programs: Look up Kenya energy subsidy and access programs, optionally filtered by county.
energy_rights_query: Ask about consumer rights for electricity in Kenya by topic.
Every tool response includes a source field, and demo data is labelled clearly for reference only.
nishati-mcp
Why This Exists
Getting connected to power in Kenya — or deciding between grid and off-grid solar — depends on tariff bands, connection procedures and subsidy programmes that are difficult to compare side by side. Energy access decisions are long-lived and expensive to reverse, so the comparison matters more than the brochure.
Related MCP server: mazingira-mcp
Install
pip install nishati-mcpTools (5)
kplc_connection_guide—
args: county, connection_typetariff_calculator—
args: monthly_units_kwh, customer_typesolar_options_guide—
args: budget_kes, use_caseenergy_subsidy_programs—
args: countyenergy_rights_query—
args: topic
Example
from nishati_mcp.server import tariff_calculator
result = tariff_calculator(units_kwh=150)
# band breakdown, levies, estimated billClaude Desktop Integration
Add to claude_desktop_config.json:
{
"mcpServers": {
"nishati-mcp": {
"command": "python",
"args": ["-m", "nishati_mcp.server"]
}
}
}Data & Disclaimers
Tariffs are set by EPRA and revised periodically. Treat calculations as indicative and confirm current rates with KPLC or epra.go.ke before relying on them.
Every tool response carries a source field. Responses labelled DEMO are
illustrative reference data, not a live feed — verify against the authority
named in the response before acting on it.
Part of the East Africa Coordination Stack
This MCP server is one of 32 tools in the Kenya coordination infrastructure.
Connect it to africa-coord-bus —
the coordination event bus that routes signals between domains automatically.
pip install africa-coord-busAll 32 servers: pypi.org/user/gmahia Live demo: coord-cascade-demo
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
Install & run:
pip install reli-cli && reli list— 33 MCP servers on the official MCP Registry underio.github.gabrielmahiaEvaluate any model on Swahili agent tasks: kipimo · dataset · leaderboard
Coordinate across servers: africa-coord-bus — offline-first event bus with a built-in Kenya routing table
Datasets: huggingface.co/gmahia · Docs hub: nairobi-stack
Model-agnostic by design: closed APIs, open-weight models, and small distilled models are all first-class citizens.
Available Tools
5 toolsenergy_rights_queryC
Consumer rights for electricity in Kenya. DEMO.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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 fails to mention any behavioral traits such as output format, side effects, or required permissions. The 'DEMO' label hints at limited functionality but is ambiguous.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (one sentence) but under-specified. The word 'DEMO' appears unnecessary and adds noise. Conciseness should not come at the expense of completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter) and existence of an output schema, the description could be brief but still should explain the parameter and usage. It fails to be complete even for this minimal case.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain the sole parameter 'topic'. The schema only specifies its type as string; no meaning or expected values are provided, leaving the agent without guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Consumer rights for electricity in Kenya,' which clearly identifies the tool's domain and purpose. However, the addition of 'DEMO' introduces ambiguity about whether this is a production-grade tool, slightly reducing clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 sibling tools like 'energy_subsidy_programs' or 'kplc_connection_guide'. The description does not offer any context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
energy_subsidy_programsC
Kenya energy subsidy and access programs. DEMO.
| Name | Required | Description | Default |
|---|---|---|---|
| county | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only mentions subject matter and 'DEMO', omitting any details about what the tool does, side effects, or requirements. This is insufficient for an agent to understand behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise but lacks structure. While it is short, it fails to convey essential information, making brevity detrimental rather than helpful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema and a simple input schema, the description provides almost no context. It does not explain what the tool returns or how to use it, leaving the agent underinformed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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. The sole parameter 'county' is not described at all in either the schema or the tool description, leaving its semantics unknown.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Kenya energy subsidy and access programs. DEMO.' is vague about what the tool does. It does not specify the action (e.g., list, query, apply) and does not distinguish it from sibling tools like 'energy_rights_query' which also deals with energy topics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 its siblings. The word 'DEMO' might imply demonstration purposes but is not explicit, leaving the agent without clear usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kplc_connection_guideC
Guide to new KPLC electricity connection in Kenya. DEMO.
| Name | Required | Description | Default |
|---|---|---|---|
| county | No | ||
| connection_type | No | residential |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description includes 'DEMO', which suggests non-production behavior but is vague. No other behavioral traits like safety, side effects, or limitations are disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise, but it lacks structure and omits essential details. It achieves conciseness at the expense of completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given two parameters, no schema descriptions, no annotations, and an output schema, the description is grossly incomplete. It fails to explain how to use the tool or what results to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description does not mention any parameters, and the input schema has no descriptions (0% coverage). It adds no meaning beyond the property names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as a guide for new KPLC electricity connections in Kenya. This is a specific verb-resource combination that distinguishes it from sibling tools like energy_rights_query or tariff_calculator.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. There is no indication of prerequisites or context of use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
solar_options_guideD
Off-grid solar options for Kenya households. DEMO.
| Name | Required | Description | Default |
|---|---|---|---|
| use_case | No | basic_lighting | |
| budget_kes | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavior. It only states the domain and 'DEMO', with no info on side effects, data sources, or limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short (5 words), which is concise, but fails to provide essential information. Conciseness without substance is not valuable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite low complexity and an output schema, the description is severely incomplete. It does not cover overview, usage context, parameter details, or return value expectations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the description adds no meaning to the parameters. It does not explain what 'use_case' or 'budget_kes' are or how they affect the output.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description mentions the domain (solar options, Kenya households) but lacks a specific verb or action (e.g., 'recommends', 'lists', 'compares'). It does not distinguish from sibling tools like energy_rights_query or tariff_calculator.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. No context about prerequisites or typical scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tariff_calculatorC
Estimate monthly KPLC electricity cost for Kenya household. DEMO.
| Name | Required | Description | Default |
|---|---|---|---|
| customer_type | No | residential | |
| monthly_units_kwh | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the full burden. It states 'Estimate' implying a calculation, but provides no details on behavioral traits like data sources, accuracy, or that it's a demo version. The 'DEMO' tag suggests limited functionality but isn't explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise, one sentence front-loading the purpose. The 'DEMO' could be made more informative while maintaining brevity, but overall it is efficient and not verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool is a calculator with two parameters and an output schema, the description lacks details about return value format, units, or how the estimate is computed. It provides minimal context for correct invocation, especially considering the 'DEMO' nature.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description should explain parameters. It does not mention 'monthly_units_kwh' or 'customer_type', leaving the agent to infer meaning solely from the schema. No added value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool estimates monthly KPLC electricity cost for a Kenya household, with a specific verb and resource. It distinguishes from sibling tools (energy rights, subsidies, connection guides, solar options). However, the 'DEMO' tag introduces some ambiguity about reliability.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. The description does not mention any prerequisites, limitations, or situations where other tools might be more appropriate.
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.
5 tool updates
v0.1.1- First observed
energy_rights_query - First observed
energy_subsidy_programs - First observed
kplc_connection_guide - First observed
solar_options_guide - First observed
tariff_calculator
TDQS
Scored across 5 tools
Each tool targets a distinct aspect of Kenya household energy: rights, subsidies, connection, solar options, and tariff calculation. There is no overlap in purposes.
All tool names follow a clear noun_phrase pattern with underscores (e.g., energy_rights_query, tariff_calculator), providing consistent, descriptive naming.
With 5 tools covering the key areas of Kenya household energy, the set is well-scoped and not overly large or small for an informational server.
The server covers consumer rights, subsidies, connection guide, solar options, and tariff calculation. Minor gaps exist (e.g., outage reporting, applicable for demo use).
Maintenance
Related MCP Connectors
Florida Solar Cost Calculator: the site's own MCP server — calculator, enquiry (enquiry = a...
South African MCP server for airtime, data, SMS, VAS, electricity, balance, and network lookup.
Arizona Solar Cost Calculator: the site's own MCP server — calculator, enquiry (enquiry = a...
California Solar Cost Calculator: the site's own MCP server — calculator, enquiry (enquiry = a...
Related MCP Servers
- AlicenseCqualityAmaintenanceMCP server for Kenya civic information — Kenya Gazette, government tenders, open data, parliament tracker, citizen feedback.5MIT
- AlicenseCqualityAmaintenanceMCP server for Kenya environment — NEMA permits, climate data, conservation areas, environmental rights, climate adaptation.5MIT
- AlicenseAqualityAmaintenanceMCP server for Kenya education — school registry, KCSE/KCPE results, HELB student loans, TVET programs, literacy resources.5MIT
- AlicenseCqualityAmaintenanceMCP server for Kenya community finance — SACCO finder, chama formation, cooperative benefits, loan guides, member rights.5MIT