UwaziUwazi

Evidence-first tender review
for African procurement teams.

Uwazi turns tender and bid documents into a cited review pack designed for a roughly 20-minute committee review. The AI proposes; the procurement committee decides. Enforced at the SQL layer.

Architectural rule: The agent may propose scores, risk flags, and recommendations. The agent may never record a decision. Enforced at three layers — SQL CHECK + trigger, the MCP tool refuses agent principals, and focused tests cover both layers.
10
MCP tools
5
LangGraph nodes
42
Tests passing
26d → ~20m
Target review time
MIT
License

🛠️ Your own MCP server

Ten tools — ingest, evaluate, decide. Every tool is independently reusable; a stranger can call list_tenders from any MCP client without invoking the rest.

🔌 One MCP server you didn't write

The official mcp-server-fetch handles HTTP redirects, gzip, charset, robots.txt, SSRF protection. ~500 LOC saved; any upstream improvement lands without our PR.

🧭 Open-source orchestration

LangGraph StateGraph with 5 nodes + 1 conditional edge. The agent plans, calls tools, recovers from failure. Not a one-model-call loop.

🦙 Open-weights model

Default: Qwen2.5-72B-Instruct via ModelScope. Also supports local Llama via Ollama for fully on-prem — procurement data often cannot leave the country.

🔍 Sourced findings

Every score, every risk flag, every recommendation cites a specific paragraph in the source documents. The citation validator performs 5 checks and fails closed.

📜 Defensible audit trail

Every AI proposal and every human decision is timestamped, attributed, and stampedactor_kind=human or agent, and available through the audit API and UI.

Run it in one command

git clone https://github.com/Roy-Wanyoike/uwazi.git
cd uwazi
./run-demo.sh    # venv + install + seed + evaluate + UI

Or read the README for the long version.