Mmcp.market

Is Idescat MCP Server safe?

Yes, with the usual care.

A91/100grade A

Passed every safety check we run. Maintained, authenticated, reachable, clean scan.

No critical or high findings in the latest scan.

Public scan report

scanner v0.1.9 · 2026-09-20 · same rubric, same numbers if you re-run it

1 low
  • Code scanremote-only server, no package to scann/a
  • Live reliabilityremote reachable in 1962ms20/20
  • Tool poisoning7 tool descriptions checked13/15
  • Auth qualityopen endpoint, read-only tools10/15
  • Maintenancelast push 11 days ago15/15
  • Maintainer identityregistry namespace matches repository owner; GitHub account older than a year; website matches verified namespace10/10

Findings (1)

  • lowUnusually long tool description (over 2,000 characters)poison.long-description
    tool get_table_data: …Retrieves the data (values) of an Idescat table in JSON-stat format for a territorial division. You can retrieve the ENTIRE table (without filters) or only a SUBSET by passing the OPTIONAL parameters 'filters' (specific categories per dimension) and/or 'last' (number of last time periods); filtering returns smaller responses and allows querying tables that as a whole would exceed the limit. The filters use the dimension identifiers and category codes (category.index) returned by get_table_metadata (with the same 'geo'). IMPORTANT: the 20,000 cell limit is checked AFTER applying the filters; if it exceeds it, it returns a 'Dataset too large' error and you must add more filters (filters, last). You can call get_table_metadata beforehand to know the dimensions, periods, and category codes. The result contains: 'id' (dimension names in order), 'size' (number of categories per dimension), 'value' (flat array of values), 'dimension' (details per dimension: codes in category.index, labels in category.label, units in category.unit), 'role' (which dimensions are time, geo, or metric), 'status' (marks special values). HOW TO READ 'value' (row-major order): the array is FLAT; the LAST dimension of 'id' varies fastest and the first slowest. To get the value of a combination of categories (one per dimension) follow these 4 steps: (1) for each dimension, look for the POSITION (0-based) of the chosen category in dimension.{nom}.category.index — this 'index' can be a code→position object or a list of codes (the position is the index within the list); ALWAYS use this index, DO NOT assume alphabetical order or by label; (2) the stride of each dimension = product of the 'size' of the SUBSEQUENT dimensions (the last dimension has stride 1); (3) offset = sum of (position × stride) of all dimensions; (4) the searched value is value[offset]. Use the order of the 'id' array in all steps (NOT the order of keys in 'dimension'). EXAMPLE: id=['territory','sex'], size=[3,2], territory.index={BCN:0,GIR:1,LLE:2}, sex.index={M:0,F:1} → strides=[2,1]; for Girona+Woman: offset = 1×2 + 1×1 = 3, i.e., value[3]. Canonical ordering sample: https://json-stat.org/samples/order.json. WARNINGS: 1) null values (data not available) OCCUPY their position within the order: they DO NOT shift the index. 2) 'Base 2024', 'Base 2024=100' or '2024 Statistical Revision' in the title DO NOT indicate estimates; they are only the year of methodological reference and the data are real and definitive unless 'status' indicates otherwise.…
Overall 91/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

Idescat MCP Server reviews, tools and install