Uganda Online Business Directory
Server Details
Search a Ugandan business directory for businesses and services by keyword, category, or district
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- domusdeiug/muyiribi
- GitHub Stars
- 0
TDQS
Scored across 3 tools
Each tool has a clearly distinct purpose: search_businesses finds listings, get_business retrieves one listing by id, and list_categories enumerates category options. There is no overlap or ambiguity between them.
All names follow a consistent snake_case verb_noun pattern: get_business, list_categories, search_businesses. The convention is predictable and readable.
Three tools are well-scoped for a read-only business directory: one for search, one for detail retrieval, and one for category enumeration. Each earns its place without redundancy.
The core read workflow is covered: discover categories, search listings, and fetch full details. Minor gaps exist, such as no explicit district list or pagination control, but agents can work around these from the existing tools.
Available Tools
3 toolsget_businessARead-onlyInspect
Fetch full public details for one business listing by id, including contact info (phone, WhatsApp, email, website). Use the id returned by search_businesses.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Listing id, as returned by search_businesses (accepts string or number) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds meaningful context beyond that: the data returned is 'public' details only and includes specific contact channels, setting expectations about field scope. It omits auth requirements, rate limits, or behavior for unknown/missing ids.
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?
Two sentences, zero waste, and the purpose with its payload is front-loaded before the sourcing instruction. Nothing could be removed without losing information.
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?
With no output schema, the description compensates by naming the return contents, and annotations carry the safety profile. For a simple single-id lookup it is nearly complete; only edge-case behavior (unknown id, partial data) is unaddressed.
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 100% and the single 'id' parameter is fully documented in the schema, including the string-or-number acceptance. The description's 'by id' and the search_businesses provenance note largely restate the schema, so the baseline of 3 applies.
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?
States a specific verb ('Fetch full public details') and resource ('one business listing by id') with the notable payload enumerated (phone, WhatsApp, email, website). It is immediately distinguishable from search_businesses (search) and list_categories without opening either schema.
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?
Explicitly ties invocation to the sibling: 'Use the id returned by search_businesses,' which tells the agent when this tool is the correct follow-up. It gives no when-not guidance (e.g., when a search result already contains the needed fields), so it stops short of 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_categoriesARead-onlyInspect
List every business category available in the directory, so a search can be narrowed to an exact category name.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so safety is covered. The description adds two behavioral facts beyond that: the list is exhaustive ('every category') and values must be used as exact names ('exact category name'), which signals exact-match semantics rather than fuzzy matching.
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?
One sentence, front-loaded with the operation and object, followed immediately by the reason to call it. Zero filler and nothing to trim.
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?
For a zero-parameter read-only enumeration tool, the description covers what it returns (all categories) and why an agent would call it. Safety is handled by annotations and no output schema is needed for a flat list of names.
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?
There are zero parameters, so the schema places no burden on the description and the baseline is 4. The description correctly does not invent arguments or filters.
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?
States a specific verb and resource: 'List every business category available in the directory.' A reader immediately knows this returns the category vocabulary. It does not name a sibling tool outright, but the phrase 'so a search can be narrowed to an exact category name' effectively positions it against search_businesses.
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?
Gives clear when-to-use context: call this to obtain valid category names before narrowing a search. It does not state when NOT to use it or name search_businesses explicitly, so it stops short of the 5-level explicit routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_businessesARead-onlyInspect
Search the Muyiribi Uganda business directory by keyword, category, and/or district, and show the matches as a card list.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of results, 1 to 5 | |
| keyword | No | Several plain words describing what is needed, e.g. 'tv lcd repair'. Any word can match; listings matching more words rank higher. Not a phrase. | |
| category | No | Exact category name from list_categories. Use it when the request fits a category. Optional. | |
| district | No | District name, e.g. Kampala |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true and destructiveHint=false, so the safety profile is covered. The description adds only the output presentation ('card list'); it says nothing about result limits, ranking behavior, or empty-result handling beyond what the schema states.
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?
A single sentence, front-loaded with the action and resource, with no filler or repetition.
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?
For a read-only search with fully documented parameters and annotations covering the safety profile, the description supplies enough to invoke the tool correctly. It is slightly thin on how the filters combine and how results are ranked, but nothing critical is missing.
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 100%, so the schema already explains keyword matching, category source, district, and the 1-5 limit. The description merely restates the three filter dimensions and adds no syntax or format detail 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?
States a specific verb (Search) and resource (Muyiribi Uganda business directory) plus the filter dimensions (keyword, category, district) and the output form (card list). It separates itself from the siblings in practice, though it never names get_business or list_categories explicitly.
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?
The description implies usage by listing the filter axes and noting 'category' should come from list_categories, but it never says when to choose this tool over get_business or list_categories, nor when it is inappropriate (e.g. exact single-business lookup).
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.
1 tool update
- Changed
get_business4 fields changed- changed
Input schema / properties / id / descriptionPrevious value: -"Listing id"New value: +"Listing id, as returned by search_businesses (accepts string or number)" - removed
Input schema / properties / id / maximumRemoved value: -9007199254740991 - removed
Input schema / properties / id / minimumRemoved value: --9007199254740991 - changed
Input schema / properties / id / typePrevious value: -"integer"New value: +[ + "string", + "number" +]
3 tool updates
- First observed
get_business - First observed
list_categories - First observed
search_businesses
Related MCP Connectors
Uganda URSB company search by name and BRN, with director, secretary and shareholder lookup.
Search and discover local businesses. 30+ categories with verified contact info, hours, and reviews.
Search a directory of real, owner-confirmed small businesses. Read-only; attribution required.
Search 7,000+ local service businesses across America by category, location, or keyword.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables agents to search, retrieve, and contribute business data from a directory of 11M+ businesses across 195 countries, returning markdown prose by default.22115 npm3MIT
- AlicenseNot gradedqualityCmaintenanceSearch, verify and screen over 1 million African companies across 18 official government registries, along with the public contracts they have won and OFAC/UN sanctions screening. Every result carries its registry source, date and a confidence signal, and the server returns nulls rather than fabricating data.MIT
- AlicenseAqualityCmaintenanceSearch for local businesses worldwide. Structured data optimized for AI agents. • Search Millions of businesses over 49 countries (Europe, Northamerica, Southamerica, Asia, Oceania) • Quality & demand scoring for every business • Ranking based on real user click-through data • No API key needed, free access • Rate limit: 500 requests/hour per IP61MIT
- AlicenseAqualityDmaintenanceProvides AI agents with access to real, verifiable businesses with provenance and source URLs, enabling natural-language business search and profile retrieval.2MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.