Uganda Online Business Directory
RemoteAbout Uganda Online Business Directory
Muyiribi is an online directory for Ugandan businesses, with public search and listing management. Its MCP endpoint lets AI tools query business information.
Key features
- 01Search businesses by keyword
- 02Filter by category and district
- 03Retrieve business details
- 04List directory categories
- 05Manage account listings
Use cases
- 01Find a service in a district
- 02Browse local businesses by category
- 03Query business records through MCP
MCP support
The `/mcp` endpoint exposes `search_businesses`, `get_business`, and `list_categories` to MCP clients for searching businesses and retrieving listings and categories.
Configuration
Remote servers need no local install. Pick your client, then copy the config or install in one click.
https://ug-online.domus-dei-tech.workers.dev/mcpclaude mcp add --transport http domusdeiug-muyiribi https://ug-online.domus-dei-tech.workers.dev/mcp{"mcpServers":{"domusdeiug-muyiribi":{"type":"http","url":"https://ug-online.domus-dei-tech.workers.dev/mcp"}}}Open in Cursor{"servers":{"domusdeiug-muyiribi":{"type":"http","url":"https://ug-online.domus-dei-tech.workers.dev/mcp"}}}Open in VS Code{"mcpServers":{"domusdeiug-muyiribi":{"type":"http","url":"https://ug-online.domus-dei-tech.workers.dev/mcp"}}}{"mcpServers":{"domusdeiug-muyiribi":{"serverUrl":"https://ug-online.domus-dei-tech.workers.dev/mcp"}}}Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.
Tools
4| Parameter | Type | Required | Description |
|---|---|---|---|
| limit | integer | No | Number of results, 1 to 5 |
| keyword | string | 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 | string | No | Exact category name from list_categories. Use it when the request fits a category. Optional. |
| district | string | No | District name, e.g. Kampala |
Details
From the project READMEMuyiribi
Business directory for Uganda. Cloudflare Worker + Neon Postgres, with a simple web UI and an MCP endpoint for AI tools.
Routes
/landing page/searchpublic business search by keyword, category, and district/signup,/login,/logoutphone + password accounts (password show/hide toggle)/dashboardmanage the signed-in account's business listings and plan capacity/addadd a business listing (creation limit depends on tier; description min 40 characters)/listings/:id/editsecurely edit a listing owned by the signed-in account/mcpMCP endpoint with tools:search_businesses,get_business,list_categories
Results are ranked by tier, highest first (black, green, blue, free).
Setup
- Run
schema.sqlonce in the Neon SQL console. - Install dependencies:
npm install - Set the database secret:
npx wrangler secret put DATABASE_URL(your Neon connection string) - Local dev:
npm run dev - Deploy:
npm run deploy
Your MCP URL is: https://ug-online.domus-dei-tech.workers.dev/mcp.
Notes
- Passwords are hashed with PBKDF2 (Web Crypto). Accounts lock for 15 minutes after 5 failed logins.
- Creation limit (how many listings an account can create): Free 3, Basic 5, Pro 7, Premium unlimited.
- Search limit (how many of an account's listings can appear in search): Free 1, Basic 3, Pro 5, Premium unlimited. Newest first.
- Results are ordered by tier, highest first.
- Paid tiers only count while an active subscription exists. No flow creates subscriptions yet; payments come later.
/pricingshows all tiers and sells them via PesaPal. Every paid tier (Basic UGX 5,000/yr, Pro UGX 12,000/yr, Premium UGX 25,000/yr) requires business contact phone verification by SMS OTP (sent via UgaText) before the tier is granted. Seemigrations/002_verification.sqlandmigrations/003_tier_names_and_pricing.sql, andmigrations/004_payment_phone_optional.sql.- Paid-tier flow is one page. "Get " creates a PesaPal order and shows its checkout in an
iframe on
/pricing/status. The page polls/pricing/checkuntil payment completes, then asks for the verification number (prefilled, editable) and sends the SMS code. Status is only trusted from PesaPal's GetTransactionStatus, never from the callback URL.
MCP Registry
-
step 0: update version in server.json
-
step 1: curl -L "https://github.com/modelcontextprotocol/registry/releases/latest/download/mcp-publisher_$(uname -s | tr '[:upper:]' '[:lower:]')_$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/').tar.gz" | tar xz mcp-publisher chmod +x mcp-publisher
-
step 2: ./mcp-publisher login github ./mcp-publisher validate server.json ./mcp-publisher publish server.json
MCP
- Do the first command from outside the folder you want to create.
- Change my-mcp-server to the name of your server
scaffold: npm create cloudflare@latest -- my-mcp-server --template=cloudflare/ai/demos/remote-mcp-authless
get token for workers from cloudflare cd my-mcp npm install npx wrangler dev # local dev npx wrangler deploy # deploy
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.