Hosted MCP server · #43 most used on Smithery
menjometre
segellfosc-dev-ayfx/menjometre
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: 1. **Attribution** — a `sources` array citing the upstream dataset, licence (CC-BY-4.0 / Llei 37/2007), and publisher 2. **Scope predicate** — personal-data filters enforced at the database query, not client-side 3. **Framing** — scored responses embed a `score_meta` block with a `not_an_accusation` disclaimer and a link to the methodology page 4. **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 ```json { "mcpServers": { "menjometre": { "command": "npx", "args": ["-y", "menjometre-mcp"] } } } Also reachable directly over Streamable HTTP at https://www.menjometre.cat/mcp.
- Uses
- 9.5k
- Tools
- 48
- Runs
- Hosted
- Listed
- 7mo ago
Get started
Add it to your agent
npx -y @smithery/cli@latest install segellfosc-dev-ayfx/menjometre --client claudeSwap --client claude for cursor, vscode, windsurf or another client. The CLI asks for any required settings.
claude mcp add --transport http menjometre https://server.smithery.ai/segellfosc-dev-ayfx/menjometre/mcpA hosted server: nothing to install. Run /mcp in Claude Code to sign in if it asks.
[mcp_servers.menjometre]
url = "https://server.smithery.ai/segellfosc-dev-ayfx/menjometre/mcp"Add to ~/.codex/config.toml.
{
"mcpServers": {
"menjometre": {
"url": "https://server.smithery.ai/segellfosc-dev-ayfx/menjometre/mcp"
}
}
}Add to ~/.cursor/mcp.json.
{
"servers": {
"menjometre": {
"type": "http",
"url": "https://server.smithery.ai/segellfosc-dev-ayfx/menjometre/mcp"
}
}
}Add to .vscode/mcp.json.
gemini mcp add --transport http menjometre https://server.smithery.ai/segellfosc-dev-ayfx/menjometre/mcpSaved to .gemini/settings.json.
What it can do
48 tools
search3 paramsSearch across entities, politicians, contracts, grants, organs, and persons. Returns top matches with type, name, slug/id, and a short co…
Search across entities, politicians, contracts, grants, organs, and persons. Returns top matches with type, name, slug/id, and a short context line.
| Parameter | Type | Description |
|---|---|---|
type | string | |
limit | integer | |
query | string |
list_filter_optionsEnumerate all valid filter values the other tools accept: departments, organs, finalitats, parties, comarques, vegueríes, beneficiary typ…
Enumerate all valid filter values the other tools accept: departments, organs, finalitats, parties, comarques, vegueríes, beneficiary types, procedure types.
get_dataset_statsGlobal counts, EUR totals, and last-sync metadata across grants, contracts, entities, and persons.
get_entity1 paramFull entity profile plus Menjometre scores with natural-language explanations. Accepts slug or CIF. Returns null if entity is anonymised …
Full entity profile plus Menjometre scores with natural-language explanations. Accepts slug or CIF. Returns null if entity is anonymised or missing.
| Parameter | Type | Description |
|---|---|---|
entity_id | string | Entity slug or CIF |
get_entity_grants7 paramsGrants awarded to the entity with filters (year range, min amount, department) and cursor pagination.
| Parameter | Type | Description |
|---|---|---|
limit | integer | |
offset | integer | |
year_to | integer | |
entity_id | string | Entity slug or CIF |
year_from | integer | |
department | string | |
min_amount | number |
get_entity_contracts7 paramsContracts awarded to the entity with filters (year, min amount, organ, sole-source flag).
| Parameter | Type | Description |
|---|---|---|
limit | integer | |
offset | integer | |
year_to | integer | |
entity_id | string | Entity slug or CIF |
year_from | integer | |
min_amount | number | |
sole_source | boolean |
get_entity_financials1 paramYearly financial timeline filed with the Generalitat registry of entities.
| Parameter | Type | Description |
|---|---|---|
entity_id | string | Entity slug or CIF |
get_entity_risk_analysis1 paramAggregated risk dossier: concentration, recurrence, sole-source, fragmentation, dependency, accountability — with textual interpretation …
Aggregated risk dossier: concentration, recurrence, sole-source, fragmentation, dependency, accountability — with textual interpretation per axis.
| Parameter | Type | Description |
|---|---|---|
entity_id | string | Entity slug or CIF |
get_rankings7 paramsParameterised top-N ranking across entities. `metric` ∈ total_public_funds | menjometre_score | total_grants | total_contracts | sole_sou…
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.
| Parameter | Type | Description |
|---|---|---|
limit | integer | |
metric | string | |
offset | integer | |
comarca | string | |
org_type | string | |
min_funds | number | |
beneficiary_type | string |
compare_entities1 paramSide-by-side comparison of 2–5 entities (slug or CIF).
| Parameter | Type | Description |
|---|---|---|
identifiers | array |
get_politician1 paramProfile, accumulated years, party, institution, salary, BORME vincles count.
| Parameter | Type | Description |
|---|---|---|
name | string |
get_politician_salary_history2 paramsDetailed salary time-series across positions.
| Parameter | Type | Description |
|---|---|---|
name | string | |
politician_id | string |
list_carrecs5 paramsPositions filtered by institution, party, active status.
| Parameter | Type | Description |
|---|---|---|
limit | integer | |
party | string | |
offset | integer | |
active_only | boolean | |
institution | string |
get_party1 paramParty aggregates: member count, total accumulated years, average salary.
| Parameter | Type | Description |
|---|---|---|
party | string |
get_politica_hubGlobal political dashboard: counts by institution, top earners, data coverage, last sync.
get_porta_giratoria5 paramsRevolving door catalog. Filters: party, institution, min years of political service before pivot, sector.
| Parameter | Type | Description |
|---|---|---|
limit | integer | |
party | string | |
offset | integer | |
min_years | number | |
institution | string |
get_politician_conflicts1 paramDeclared + detected conflicts for one politician.
| Parameter | Type | Description |
|---|---|---|
name | string |
get_entity_conflicts1 paramEntity-side mirror of conflict detection — politicians linked to the entity.
| Parameter | Type | Description |
|---|---|---|
entity_id | string | Entity slug or CIF |
analyze_conflict_of_interest2 paramsGiven a person name and an entity identifier, return every known link (BORME role, political position, declarations, grants received whil…
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).
| Parameter | Type | Description |
|---|---|---|
entity_id | string | Entity slug or CIF |
person_name | string |
detect_undisclosed_conflicts4 paramsProactive scan: politicians with BORME roles in entities receiving grants/contracts during their term but with no matching declaration.
| Parameter | Type | Description |
|---|---|---|
limit | integer | |
party | string | |
offset | integer | |
institution | string |
get_lobby_meetings6 paramsLobby meetings from the Generalitat transparency portal. Filters: official name, interest group, date range.
| Parameter | Type | Description |
|---|---|---|
limit | integer | |
offset | integer | |
date_to | string | |
date_from | string | |
official_name | string | |
interest_group | string |
get_organ1 paramSingle contracting body profile: total contracts, total amount, % sole-source, % menor, % competitive, top-5 suppliers share.
| Parameter | Type | Description |
|---|---|---|
slug | string |
list_organs5 paramsContracting bodies catalog with filters (semaphore, search) and pagination.
| Parameter | Type | Description |
|---|---|---|
sort | string | |
limit | integer | |
offset | integer | |
search | string | |
semaphore | string |
get_ens_public1 paramInstrumental/public body profile including type (consorci, empresa pública, fundació) and parent administration.
| Parameter | Type | Description |
|---|---|---|
slug | string |
list_ens_publics4 paramsInstrumental public entities catalog filtered by type/comarca.
| Parameter | Type | Description |
|---|---|---|
limit | integer | |
offset | integer | |
comarca | string | |
org_type | string |
get_pressupostos_hub1 paramGeneralitat budget dashboard for a single fiscal year: total, by department, execution rate if available.
| Parameter | Type | Description |
|---|---|---|
year | integer |
get_budget_by_department4 paramsBudget series by department with nominal or CPI-deflated (real) values.
| Parameter | Type | Description |
|---|---|---|
mode | string | |
year_to | ||
year_from | integer | |
department | string |
get_budget_partides2 paramsLine items within a department + year.
| Parameter | Type | Description |
|---|---|---|
year | integer | |
department | string |
get_efficiency_analysis1 paramCost-per-outcome analysis for selected programmes (EUR spent ÷ outputs where available).
| Parameter | Type | Description |
|---|---|---|
programme | string |
get_fiscal_deficit3 paramsCatalonia → Spain fiscal deficit for a year range using one of three academic methods: cash_flow | burden_benefit | contribution_cost.
| Parameter | Type | Description |
|---|---|---|
method | string | |
year_to | ||
year_from | integer |
get_budget_transfers3 paramsAdmin → entity transfer flows with filters.
| Parameter | Type | Description |
|---|---|---|
year | integer | |
to_entity | string | |
from_department | string |
get_yearly_trends_budget3 paramsGeneric time-series of a budget dimension/metric (deflated or nominal).
| Parameter | Type | Description |
|---|---|---|
mode | string | |
metric | string | |
dimension | string |
get_xarxa_statsGlobal network metrics: node counts, edge counts, connectivity, top hubs.
get_xarxa_by_comarcaGeographic breakdown of network density (edges per comarca).
get_person_network3 paramsBFS from a single person up to a max depth (hard-capped at 3).
| Parameter | Type | Description |
|---|---|---|
name | string | |
depth | integer | |
person_id | string |
get_entity_network2 paramsBFS from a single entity up to a max depth (hard-capped at 3).
| Parameter | Type | Description |
|---|---|---|
depth | integer | |
entity_id | string |
find_shortest_path5 paramsBounded BFS shortest path between two graph nodes. Max depth hard-capped at 5 in the RPC.
| Parameter | Type | Description |
|---|---|---|
to_id | string | |
from_id | string | |
to_type | ||
from_type | string | |
max_depth | integer |
get_network_hubs4 paramsHighest-degree nodes filtered by type + metric.
| Parameter | Type | Description |
|---|---|---|
limit | integer | |
metric | string | |
offset | integer | |
node_type | string |
detect_clusters3 paramsLouvain communities computed nightly. Returns the top clusters by size.
| Parameter | Type | Description |
|---|---|---|
limit | integer | |
offset | integer | |
min_size | integer |
investigate_cluster1 paramFull member list of a Louvain cluster with entity + person joins.
| Parameter | Type | Description |
|---|---|---|
cluster_id | integer |
analyze_contract_network1 paramContract graph for an organ or entity: sole-source patterns, repeat suppliers, fragmentation signals.
| Parameter | Type | Description |
|---|---|---|
organ_or_entity | string |
get_equivalencies1 paramTranslate a EUR amount into public-service equivalents (teachers, nurses, daycare places, etc.).
| Parameter | Type | Description |
|---|---|---|
amount | number |
get_yearly_trends4 paramsGeneric yearly time-series by dimension/metric (grants, contracts, entities).
| Parameter | Type | Description |
|---|---|---|
metric | string | |
year_to | integer | |
dimension | string | |
year_from | integer |
export_data3 paramsBulk JSON export of grants/contracts/entities with filters. CSV is emitted as plain text for LLM consumption.
| Parameter | Type | Description |
|---|---|---|
type | string | |
limit | integer | |
format | string |
get_methodologyScoring methodology, data sources, last-sync timestamps, definitions. Citable for LLM outputs.
get_source_documents2 paramsEnumerate every source URL attached to a single record. record_type ∈ grant | contract | conveni | politician_position | porta_giratoria_…
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.
| Parameter | Type | Description |
|---|---|---|
record_id | string | |
record_type | string |
list_documents_for_entity2 paramsEvery source document linked to any record touching the given entity.
| Parameter | Type | Description |
|---|---|---|
year | integer | |
entity_id | string |
fetch_source_document1 paramServer-side retrieval of an allowlisted source URL. Extracts plain text (first 64 kB) via pdf-parse/readability. SSRF-hardened. 24h cache…
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.
| Parameter | Type | Description |
|---|---|---|
url | string |