Skip to content
DevelopmentFinanceObservatoryPublic

About

AI agent harness and MCP servers for the Development Finance Observatory's data assistant.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

DFO AI services

The AI layer of the Development Finance Observatory (DFO). It holds an agent harness that answers questions about development finance, and the MCP servers the harness calls to find data, run analysis, and draw charts and tables. The DFO is an initiative of ONE Data, built on Google Data Commons. The organisation profile has the full map of repositories.

This repository is under active development. Interfaces, schemas, and data may change without notice.

What's inside

A uv workspace monorepo. Each member has its own dependencies and tests, and all of them deploy together as one Cloud Run service.

packages/common/            Shared logging, telemetry, settings base, and materialisation store
services/harness/           Agent loop on Google ADK and FastAPI, streamed over SSE
services/data-mcp/          Data discovery, minting, materialisation, and graph entity description
services/analysis-mcp/      Deterministic computation across seven analytical verbs
services/presentation-mcp/  Canvas component authoring and frame view tools
evals/                      ADK eval sets, run by hand against a live model
docs/                       Architecture notes, the studio interface, and the MCP user guide
deploy/                     Dockerfile and deploy notes

The harness also holds the orchestrator, planner, compiler, translator, and executor modules under services/harness/src/. Each service uses a src layout, services/<name>/src/<package>/, with tests in services/<name>/tests/.

The servers query the knowledge graph through the Datasets and Search APIs in apis, and the public site in website talks to the harness.

Getting started

Running the whole stack needs access to ONE's Google Cloud project (dev-fin-observatory) for the Gemini and Langfuse keys, and a reachable apis deployment for data. Without that access you can read the code, run the lint, type checks, and tests, and read the docs.

Without cloud access you need just and uv:

uv sync --all-packages
just check        # lint, type check, and the full test suite

With access, authenticate and start the harness on localhost:8080, with the three MCP servers mounted in-process:

gcloud auth login
gcloud auth application-default login
just setup        # generates .env, syncs dependencies, installs pre-commit hooks
just dev

just lists every recipe, and just doctor checks the local environment.

Documentation

Contributing

Issues and pull requests are welcome. See CONTRIBUTING.md.

Licence

MIT. See LICENSE.

About

AI agent harness and MCP servers for the Development Finance Observatory's data assistant.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages