Design pattern: modular plugins¶
Scope plugins by domain, not by portal.
Plugins must be scoped to a single specific dataset or domain, for example Uruguay's National Energy Balance repo, mcp-datos-uruguay-ben, rather than attempting to cover an entire government open data portal in one repository.
We learned this the hard way. The original mcp-datos-uruguay repo was
meant to cover Uruguay's whole open data portal, and it grew too
general: a single repo trying to speak for every dataset in a portal
ends up shallow everywhere and authoritative nowhere. It was retired in
favour of the focused energy-balance repo.
Rationale¶
Portal-wide plugins become shallow generalists. Narrowing plugin boundaries to a single domain provides key technical advantages:
- Sharper tool descriptions. Prompts and tool parameters are written specifically for the dataset's actual query patterns, by someone who knows what people actually ask.
- Manageable glossaries. Domain terminology and data dictionaries remain precise and feasible to maintain when they cover one field, not a whole portal.
- Independent lifecycle. Repositories stay small, clean and able to evolve at their own pace without breaking unrelated dataset tools.
The rule of thumb¶
Prefer a domain expert over an open-data-portal generalist. A plugin is far better when the person behind it deeply understands one subject area - the energy data, its terms, its quirks - than when someone knows a little about every dataset a portal happens to publish.
When in doubt, split by domain, not by portal or by country.