menjometre
Menjometre is an independent observatory of Catalan public spending.
What it can do
- Search: Search across entities, politicians, contracts, grants, organs, and persons. Returns top matches with type, name, slug/id, and a short context line.
- List Filter Options: Enumerate all valid filter values the other tools accept: departments, organs, finalitats, parties, comarques, vegueríes, beneficiary types, procedure types.
- Get Dataset Stats: Global counts, EUR totals, and last-sync metadata across grants, contracts, entities, and persons.
What data it sees
Do you need an account
No: the server works without sign-in
Menjometre is an independent observatory of Catalan public spending. This MCP server gives any LLM client read-only access to the full dataset and the statistical scoring layer built on top of it.
Coverage
- ~19.5 M grant records from the Registre d'Ajuts i Subvencions de Catalunya
(RAISC), 2016–present - ~1.7 M public procurement contracts from Dades Obertes de Catalunya
- ~496 K beneficiary entities with normalised identities
- A public-figure graph linking Parlament deputies, Generalitat officials, and the boards of publicly-funded entities
- The Menjometre score — a statistical indicator flagging concentration and
recurrence patterns in public spending
What the 48 tools cover
| Domain | What you can ask |
|---|---|
entities |
Search, profile, network, activity timeline for any funded |
| organisation | |
grants |
RAISC lookups, concentration analysis, purpose trees, year-over-year |
| trends | |
contractes |
Procurement lookups, sole-source detection, fragmentation patterns |
organs |
Granting-body rankings and profiles |
xarxa |
Public-figure graph, shortest path between two people, cluster |
| investigation | |
pressupostos |
Generalitat budget surface |
meta |
Methodology, scoring explanation, upstream attribution manifest |
Example prompts
- "Which ten Catalan entities received the most RAISC funds in 2024?"
- "Show me the concentration profile of the entity with CIF A08000143."
- "Which grant-giving bodies award the largest share of their budget to a single
beneficiary?" - "What percentage of Ajuntament de Girona's contracts are sole-source?"
- "Explain how the Menjometre score is computed."
Response envelope
Every tool response ships with four things:
- Attribution — a
sourcesarray citing the upstream dataset, licence
(CC-BY-4.0 / Llei 37/2007), and publisher - Scope predicate — personal-data filters enforced at the database query, not
client-side - Framing — scored responses embed a
score_metablock with a
not_an_accusationdisclaimer and a link to the methodology page - Neutral statistical language — the server returns "top decile", "around the
median", never accusatory framing
Safe for journalism, academic research, and civic-tech tooling.
Install via npm
{
"mcpServers": {
"menjometre": {
"command": "npx",
"args": ["-y", "menjometre-mcp"]
}
}
}
Also reachable directly over Streamable HTTP at https://www.menjometre.cat/mcp.
How to connect
How to connect menjometre to Claude
The server address to paste into Claude settings:
https://menjometre--segellfosc-dev-ayfx.run.tools
- Open Claude (claude.ai or the desktop app).
- Go to Settings → Connectors.
- Click Add custom connector.
- Paste the server address copied below into Remote MCP server URL and click Add.
- In a chat, click + → Connectors and switch the new connector on.
Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.
Authorization
After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.
How to connect menjometre to ChatGPT
The server address to paste into ChatGPT settings:
https://menjometre--segellfosc-dev-ayfx.run.tools
- Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
- Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
- Open Settings → Connectors and click Create.
- Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
- Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
- In a new chat open + → Apps/Connectors and enable the connector.
OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.
Authorization
On first use ChatGPT opens the service's sign-in window. Sign in and approve access.
How to connect menjometre to Cursor
The server address to paste into Cursor settings:
https://menjometre--segellfosc-dev-ayfx.run.tools
Fastest: click Open in Cursor below and confirm the prompt.
Manually:
- In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
- Paste the JSON copied below into
~/.cursor/mcp.json(per project:.cursor/mcp.jsonin the repo root). - Save the file. The server appears in the MCP list; authorize it there if asked.
Authorization
If the service needs sign-in, an authorize button appears next to the server in the MCP list.
Server tool list (48)
Raw names from tools/list. Only developers need these.
| search | Search across entities, politicians, contracts, grants, organs, and persons. Returns top matches with type, name, slug/id, and a short context line. |
| list_filter_options | Enumerate all valid filter values the other tools accept: departments, organs, finalitats, parties, comarques, vegueríes, beneficiary types, procedure types. |
| get_dataset_stats | Global counts, EUR totals, and last-sync metadata across grants, contracts, entities, and persons. |
| get_entity | Full entity profile plus Menjometre scores with natural-language explanations. Accepts slug or CIF. Returns null if entity is anonymised or missing. |
| get_entity_grants | Grants awarded to the entity with filters (year range, min amount, department) and cursor pagination. |
| get_entity_contracts | Contracts awarded to the entity with filters (year, min amount, organ, sole-source flag). |
| get_entity_financials | Yearly financial timeline filed with the Generalitat registry of entities. |
| get_entity_risk_analysis | Aggregated risk dossier: concentration, recurrence, sole-source, fragmentation, dependency, accountability — with textual interpretation per axis. |
| get_rankings | Parameterised top-N ranking across entities. `metric` ∈ total_public_funds | menjometre_score | total_grants | total_contracts | sole_source_pct | grant_dependency_pct. Filters: comarca, beneficiary_type, org_type, min_funds. |
| compare_entities | Side-by-side comparison of 2–5 entities (slug or CIF). |
| get_politician | Profile, accumulated years, party, institution, salary, BORME vincles count. |
| get_politician_salary_history | Detailed salary time-series across positions. |
| list_carrecs | Positions filtered by institution, party, active status. |
| get_party | Party aggregates: member count, total accumulated years, average salary. |
| get_politica_hub | Global political dashboard: counts by institution, top earners, data coverage, last sync. |
| get_porta_giratoria | Revolving door catalog. Filters: party, institution, min years of political service before pivot, sector. |
| get_politician_conflicts | Declared + detected conflicts for one politician. |
| get_entity_conflicts | Entity-side mirror of conflict detection — politicians linked to the entity. |
| analyze_conflict_of_interest | Given a person name and an entity identifier, return every known link (BORME role, political position, declarations, grants received while in office, contracts, lobby meetings). |
| detect_undisclosed_conflicts | Proactive scan: politicians with BORME roles in entities receiving grants/contracts during their term but with no matching declaration. |
| get_lobby_meetings | Lobby meetings from the Generalitat transparency portal. Filters: official name, interest group, date range. |
| get_organ | Single contracting body profile: total contracts, total amount, % sole-source, % menor, % competitive, top-5 suppliers share. |
| list_organs | Contracting bodies catalog with filters (semaphore, search) and pagination. |
| get_ens_public | Instrumental/public body profile including type (consorci, empresa pública, fundació) and parent administration. |
| list_ens_publics | Instrumental public entities catalog filtered by type/comarca. |
| get_pressupostos_hub | Generalitat budget dashboard for a single fiscal year: total, by department, execution rate if available. |
| get_budget_by_department | Budget series by department with nominal or CPI-deflated (real) values. |
| get_budget_partides | Line items within a department + year. |
| get_efficiency_analysis | Cost-per-outcome analysis for selected programmes (EUR spent ÷ outputs where available). |
| get_fiscal_deficit | Catalonia → Spain fiscal deficit for a year range using one of three academic methods: cash_flow | burden_benefit | contribution_cost. |
| get_budget_transfers | Admin → entity transfer flows with filters. |
| get_yearly_trends_budget | Generic time-series of a budget dimension/metric (deflated or nominal). |
| get_xarxa_stats | Global network metrics: node counts, edge counts, connectivity, top hubs. |
| get_xarxa_by_comarca | Geographic breakdown of network density (edges per comarca). |
| get_person_network | BFS from a single person up to a max depth (hard-capped at 3). |
| get_entity_network | BFS from a single entity up to a max depth (hard-capped at 3). |
| find_shortest_path | Bounded BFS shortest path between two graph nodes. Max depth hard-capped at 5 in the RPC. |
| get_network_hubs | Highest-degree nodes filtered by type + metric. |
| detect_clusters | Louvain communities computed nightly. Returns the top clusters by size. |
| investigate_cluster | Full member list of a Louvain cluster with entity + person joins. |
| analyze_contract_network | Contract graph for an organ or entity: sole-source patterns, repeat suppliers, fragmentation signals. |
| get_equivalencies | Translate a EUR amount into public-service equivalents (teachers, nurses, daycare places, etc.). |
| get_yearly_trends | Generic yearly time-series by dimension/metric (grants, contracts, entities). |
| export_data | Bulk JSON export of grants/contracts/entities with filters. CSV is emitted as plain text for LLM consumption. |
| get_methodology | Scoring methodology, data sources, last-sync timestamps, definitions. Citable for LLM outputs. |
| get_source_documents | Enumerate every source URL attached to a single record. record_type ∈ grant | contract | conveni | politician_position | porta_giratoria_case | personal_eventual_appointment | official_appointment | entity. |
| list_documents_for_entity | Every source document linked to any record touching the given entity. |
| fetch_source_document | Server-side retrieval of an allowlisted source URL. Extracts plain text (first 64 kB) via pdf-parse/readability. SSRF-hardened. 24h cached. URL MUST exist in the DB allowlist. |