このMCPでできること
Queries World Bank country metadata, development indicators, poverty and inequality statistics, data sources, topics, and lending projects.
ツール
入力スキーマ
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['country_code'], 'properties': {'country_code': {'type': 'string', 'pattern': '^[A-Za-z0-9]{2,3}$', 'description': 'One country code. Accepts ISO2 (US), ISO3 (USA), or aggregate code (EAS, HIC, WLD) â\x80\x94 not "all" or a list of codes. Use worldbank_list_countries to browse valid codes.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'anyOf': [{'not': {'required': ['error']}, 'required': ['id', 'iso2', 'name', 'region', 'incomeLevel', 'lendingType', 'capitalCity', 'longitude', 'latitude', 'isAggregate']}, {'required': ['error']}], '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'id': {'type': 'string', 'description': 'Country or aggregate ID.'}, 'iso2': {'type': 'string', 'description': 'ISO2 country code.'}, 'name': {'type': 'string', 'description': 'Country or aggregate name.'}, 'error': {'type': 'object', 'required': ['code', 'message'], 'properties': {'code': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'JSON-RPC error code for this failure.'}, 'data': {'type': 'object', 'properties': {'reason': {'type': 'string', 'examples': ['country_not_found', 'multiple_countries'], 'description': 'Machine-readable failure mode. Declared by this tool: `country_not_found`: The country code does not exist in the World Bank API. `multiple_countries`: The code is "all", or another selector the World Bank resolves to more than one country. Other values are possible when a failure originates below the handler.'}, 'recovery': {'type': 'object', 'required': ['hint'], 'properties': {'hint': {'type': 'string'}}, 'description': 'Actionable next step for the caller.', 'additionalProperties': {}}, 'retryable': {'type': 'boolean', 'description': 'Whether retrying may succeed.'}}, 'additionalProperties': {}}, 'message': {'type': 'string', 'description': 'Human-readable description of what went wrong.'}}, 'description': 'Present when the call failed. Absent on success.', 'additionalProperties': {}}, 'region': {'type': 'object', 'required': ['id', 'name'], 'properties': {'id': {'type': 'string', 'description': 'Region code.'}, 'name': {'type': 'string', 'description': 'Region name.'}}, 'description': 'World Bank region this country belongs to.', 'additionalProperties': False}, 'latitude': {'type': 'string', 'description': 'Capital latitude (empty for aggregates).'}, 'longitude': {'type': 'string', 'description': 'Capital longitude (empty for aggregates).'}, 'capitalCity': {'type': 'string', 'description': 'Capital city name (empty for aggregates).'}, 'incomeLevel': {'type': 'object', 'required': ['id', 'name'], 'properties': {'id': {'type': 'string', 'description': 'Income level code.'}, 'name': {'type': 'string', 'description': 'Income level name.'}}, 'description': 'World Bank income classification.', 'additionalProperties': False}, 'isAggregate': {'type': 'boolean', 'description': 'True when this entry is a regional or income-group aggregate.'}, 'lendingType': {'type': 'string', 'description': 'World Bank lending type classification.'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['indicator_id', 'countries'], 'properties': {'mrv': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': "Return the N most recent periods (1â\x80\x93100) holding a value for any requested country, clamped to the length of the series. Every requested country comes back at those periods, null where it has no value there rather than with its own older values; mrnev returns each country's own latest values instead. The periods are annual unless frequency names another form (a series with no annual periods keeps its own). Rows are mrv Ã\x97 countries, so page through them with per_page. Mutually exclusive with date_range and mrnev."}, 'page': {'type': 'integer', 'default': 1, 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Pagination page number (1-based).'}, 'mrnev': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': "Return each requested country's own N most recent periods (1â\x80\x93100) holding a value â\x80\x94 its latest non-null observations, however far back they sit. A country with fewer values in the series returns the ones it has, and a country with none returns no rows. The periods are annual unless frequency names another form (a series with no annual periods keeps its own). Mutually exclusive with date_range and mrv."}, 'per_page': {'type': 'integer', 'maximum': 1000, 'minimum': 1, 'description': 'Results per page (default: server default, max: 1000). One page holds at most 200 observations, which keeps a response within about 50 KB; a larger value is reduced to that cap and echoed as appliedFilters.perPage, and totalPages is counted at the reduced size, so page + 1 continues where a page ends; notice discloses the reduction whenever the result runs past one page.'}, 'countries': {'anyOf': [{'type': 'string', 'pattern': '[^\\s;,|]', 'description': 'A single country code, a list separated by commas, semicolons, or pipes, or "all".'}, {'type': 'array', 'items': {'type': 'string', 'description': 'A country code.'}, 'minItems': 1, 'description': 'An array of country codes; an element holding several codes separated by commas, semicolons, or pipes is split too.'}], 'description': 'Country codes. Accepts: ISO2 (US, CN), ISO3 (USA, CHN), regional aggregate codes (EAS, LCN, MEA, SAS, SSF, ECS, NAC), income group codes (HIC, UMC, LMC, LIC), world code (WLD), or "all" on its own for every entry (use pagination). Pass a single code, an array, or one string separated by commas, semicolons, or pipes (US,JP · US;JP · US|JP). At least one code is required â\x80\x94 an empty value, or one made only of separators, is rejected rather than treated as "all".'}, 'frequency': {'anyOf': [{'type': 'string', 'const': ''}, {'enum': ['annual', 'quarterly', 'monthly'], 'type': 'string', 'description': 'annual (2025), quarterly (2025Q4), or monthly (2025M12) periods.'}], 'description': 'The period form to return, for series such as Global Economic Monitor\'s that publish quarterly or monthly values beside annual ones: annual (the default), quarterly, or monthly. With mrv or mrnev it picks the form they select from â\x80\x94 frequency "monthly" with mrv 3 returns the three latest months, where mrv 3 alone returns the three latest years. With neither, it returns the whole series at that form. A series that does not publish the form returns an empty result with a notice saying so, except that with neither mrv nor mrnev a source that null-fills the form (Global Economic Monitor) returns null rows, and a page of them carries a notice. Mutually exclusive with date_range, whose own form (2024, 2024Q1, 2024M01) picks the periods of a window.'}, 'date_range': {'type': 'string', 'pattern': '^\\s*(?:\\d{4}(?::\\d{4})?|\\d{4}[Qq][1-4](?::\\d{4}[Qq][1-4])?|\\d{4}[Mm](?:0[1-9]|1[0-2])(?::\\d{4}[Mm](?:0[1-9]|1[0-2]))?)?\\s*$', 'description': "Time window to filter observations to. Accepts a whole year (`2020`), a quarter (`2020Q1`), or a month (`2020M03`), or a range of two periods of the same type separated by a colon, earliest first (`2010:2023`, `2020Q1:2021Q4`, `2020M01:2020M06`); a range running latest first is rejected. On a series publishing more than one period form, the window's form picks which: `2024` returns the annual value, `2024Q1:2024Q4` the quarters, `2024M01:2024M12` the months, and a quarter or month window is null-filled where the series has none (a notice then names the other forms). On a series with one form, a window at another form keeps the periods it overlaps (`2019:2021` on a quarterly series returns its twelve quarters). A window covering no part of the series returns zero observations rather than the full series. Mutually exclusive with mrv, mrnev, and frequency."}, 'indicator_id': {'type': 'string', 'pattern': '^[A-Za-z0-9._-]+$', 'description': 'One indicator code to query (e.g. NY.GDP.PCAP.CD, SP.POP.TOTL) â\x80\x94 not "all" or a list of codes. Use worldbank_search_indicators to find valid IDs.'}, 'dimension_value': {'type': 'string', 'description': 'For indicators answered from their own dataset (the response carries sourceScoped), the id of the value of that dataset\'s extra dimension to query, matched case-insensitively: a WDI Database Archives release ("202503"), an ICP or Food Prices for Nutrition classification ("PPPGlob", "FPN 5.0"), a GDLD sector ("WHT"), or an International Debt Statistics counterpart area ("265"). Omit it for the default, which sourceScoped.dimension reports: the only value when the dataset has one, "WLD" (World) for counterpart areas, the newest WDI Database Archives release holding data for the requested countries and periods (the newest release when none does), or otherwise every value with each row labelled. A value the dataset does not list is rejected with the valid ids, and a value for an indicator the standard data endpoint serves is rejected too.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'anyOf': [{'not': {'required': ['error']}, 'required': ['data', 'indicator', 'nullCount', 'appliedFilters', 'totalCount', 'currentPage', 'totalPages']}, {'required': ['error']}], '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'data': {'type': 'array', 'items': {'type': 'object', 'required': ['countryCode', 'countryIso3', 'countryName', 'date', 'value', 'obsStatus', 'isAggregate'], 'properties': {'date': {'type': 'string', 'description': 'Period of observation: a year (2020), quarter (2020Q1), or month (2020M03).'}, 'value': {'type': ['number', 'null'], 'description': 'Indicator value. Null when data is not available for this countryÃ\x97year cell.'}, 'dimension': {'type': 'object', 'required': ['id', 'label'], 'properties': {'id': {'type': 'string', 'description': 'Dimension value id, e.g. "202503".'}, 'label': {'type': 'string', 'description': 'Dimension value label, e.g. "2025 Mar".'}}, 'description': "The value of the dataset's extra dimension (sourceScoped.dimension.concept) this row belongs to. Present on source-scoped rows from a dataset that has one.", 'additionalProperties': False}, 'obsStatus': {'type': 'string', 'description': 'Observation status code (empty string when no special status; non-empty values signal data quality notes).'}, 'countryCode': {'type': 'string', 'description': 'ISO2 code of the country or aggregate (US, XD for High income).'}, 'countryIso3': {'type': 'string', 'description': 'Three-character code of the country or aggregate (USA, HIC) â\x80\x94 the form the countries input takes. Empty only for an entity the World Bank country listing does not carry.'}, 'countryName': {'type': 'string', 'description': 'Country or aggregate name.'}, 'isAggregate': {'type': 'boolean', 'description': 'True when this row is a regional or income-group aggregate rather than an individual country.'}}, 'description': 'A single countryÃ\x97period observation.', 'additionalProperties': False}, 'description': 'Indicator observations for this page. Null values are common for sparse series.'}, 'error': {'type': 'object', 'required': ['code', 'message'], 'properties': {'code': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'JSON-RPC error code for this failure.'}, 'data': {'type': 'object', 'properties': {'reason': {'type': 'string', 'examples': ['invalid_params', 'mixed_all_selector', 'reversed_date_range', 'multiple_indicators', 'indicator_not_found', 'indicator_not_queryable', 'unknown_dimension_value', 'dimension_not_applicable', 'source_scope_too_large', 'country_not_found', 'indicator_and_country_not_found', 'upstream_inconsistent'], 'description': 'Machine-readable failure mode. Declared by this tool: `invalid_params`: More than one of date_range, mrv, and mrnev is provided, or frequency is provided with date_range. `mixed_all_selector`: countries combines "all" with one or more country codes. `reversed_date_range`: date_range names a range whose first period comes after its second. `multiple_indicators`: The indicator ID is "all", which selects every indicator rather than one. `indicator_not_found`: The indicator ID does not exist. `indicator_not_queryable`: The standard data endpoint does not serve the indicator, and no catalog source can serve it through the source-scoped data API instead â\x80\x94 the catalog no longer lists the ID, the catalog lookup failed, or the source is not organized by country, series, and time plus at most one further dimension. `unknown_dimension_value`: dimension_value is not a value the indicator\'s dataset lists for its extra dimension. `dimension_not_applicable`: dimension_value is given for an indicator the standard data endpoint serves, or whose dataset has no dimension beyond country, series, and time. `source_scope_too_large`: A source-scoped query would read more rows (countries Ã\x97 periods Ã\x97 unpinned dimension values) than one request allows. `country_not_found`: One or more country codes are invalid. The message and countryCodes name the codes the World Bank country listing lacks, or every requested code when it lacks none. `indicator_and_country_not_found`: The indicator ID and the country codes are both invalid. The codes are named as on country_not_found. `upstream_inconsistent`: The World Bank API answered a data read, and its one re-read, with rows that do not fit the request â\x80\x94 its response cache served another query\'s result â\x80\x94 so nothing was served. Other values are possible when a failure originates below the handler.'}, 'recovery': {'type': 'object', 'required': ['hint'], 'properties': {'hint': {'type': 'string'}}, 'description': 'Actionable next step for the caller.', 'additionalProperties': {}}, 'retryable': {'type': 'boolean', 'description': 'Whether retrying may succeed.'}}, 'additionalProperties': {}}, 'message': {'type': 'string', 'description': 'Human-readable description of what went wrong.'}}, 'description': 'Present when the call failed. Absent on success.', 'additionalProperties': {}}, 'notice': {'type': 'string', 'description': 'Recovery hint for an empty result set â\x80\x94 how to broaden the query when nothing matched, whether the series publishes the requested frequency, or the page range that exists when the requested page is past the end â\x80\x94 a quarter or month date_range whose observations are all null, with the same span at the other period forms, a frequency page whose observations are all null, a page size reduced to the page cap, and, for source-scoped data, the requested country codes the serving dataset publishes nothing for.'}, 'indicator': {'type': 'object', 'required': ['id', 'name'], 'properties': {'id': {'type': 'string', 'description': 'Indicator ID echoed for chaining context.'}, 'name': {'type': 'string', 'description': 'Indicator name.'}}, 'description': 'Indicator metadata echoed from the response.', 'additionalProperties': False}, 'nullCount': {'type': 'number', 'description': 'Count of null values on this page â\x80\x94 indicates data sparsity for the requested filter.'}, 'totalCount': {'type': 'number', 'description': 'Total observations before pagination.'}, 'totalPages': {'type': 'number', 'description': 'Total number of pages.'}, 'currentPage': {'type': 'number', 'description': 'Page number requested â\x80\x94 past totalPages when the request ran off the end.'}, 'lastUpdated': {'type': 'string', 'description': 'Last update date of the World Bank source that served these values (YYYY-MM-DD) â\x80\x94 the data vintage to cite with them. Omitted when upstream reports none, as for an empty result.'}, 'sourceScoped': {'type': 'object', 'required': ['sourceId', 'sourceName', 'dimension', 'note'], 'properties': {'note': {'type': 'string', 'description': 'States that the values came from the source-scoped data API rather than the standard World Bank data endpoint, and may be archived or superseded figures.'}, 'sourceId': {'type': 'string', 'description': 'ID of the World Bank data source that served the values.'}, 'dimension': {'anyOf': [{'type': 'object', 'required': ['concept', 'selection', 'id', 'label'], 'properties': {'id': {'type': ['string', 'null'], 'description': 'Applied value id; null for every_value.'}, 'label': {'type': ['string', 'null'], 'description': 'Applied value label; null for every_value.'}, 'concept': {'type': 'string', 'description': 'The extra dimension: Version, Classification, Sector, or Counterpart-Area.'}, 'selection': {'enum': ['requested', 'only_value', 'world_total', 'newest_with_data', 'newest', 'every_value'], 'type': 'string', 'description': 'How the value was chosen: requested (dimension_value), only_value (the only one the dataset lists), world_total (WLD, all counterpart areas), newest_with_data (newest release holding a value for the requested countries and periods), newest (newest release; none holds a value in that scope), or every_value (no single value; each row carries its own).'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'The dimension value applied; null when the dataset has no extra dimension.'}, 'sourceName': {'type': 'string', 'description': 'Name of that data source, e.g. "WDI Database Archives".'}}, 'description': 'Present only when the standard data endpoint does not serve the indicator and its catalog source served the values instead. Absent for indicators the standard endpoint serves.', 'additionalProperties': False}, 'appliedFilters': {'type': 'object', 'required': ['indicatorId', 'countries', 'page', 'perPage'], 'properties': {'mrv': {'type': 'number', 'description': 'Most-recent-values count applied, omitted when none was requested.'}, 'page': {'type': 'number', 'description': 'Page number requested.'}, 'mrnev': {'type': 'number', 'description': 'Most-recent-non-empty-values count applied, omitted when none was requested.'}, 'perPage': {'type': 'number', 'description': 'Results per page actually served â\x80\x94 the requested size or server default, reduced to the page cap when larger. totalPages is counted at this size.'}, 'countries': {'type': 'string', 'description': 'Country codes as requested, normalized â\x80\x94 array elements and strings separated by commas, semicolons, or pipes are split and rejoined with semicolons, the separator the API takes.'}, 'dateRange': {'type': 'string', 'description': 'Date window applied, omitted when none was requested.'}, 'frequency': {'enum': ['annual', 'quarterly', 'monthly'], 'type': 'string', 'description': 'Period form applied (annual, quarterly, monthly), omitted when none was requested.'}, 'indicatorId': {'type': 'string', 'description': 'Indicator ID queried.'}, 'dimensionValue': {'type': 'string', 'description': 'dimension_value as requested, omitted when none was given.'}, 'requestedPerPage': {'type': 'number', 'description': 'Page size asked for, present only when it exceeded the page cap and perPage was reduced.'}}, 'description': 'The effective parameters sent to the World Bank API â\x80\x94 confirms country code normalization and which filters were in force for these observations.', 'additionalProperties': False}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['indicator_id'], 'properties': {'indicator_id': {'type': 'string', 'pattern': '^[A-Za-z0-9._-]+$', 'description': 'One indicator code (e.g. NY.GDP.PCAP.CD, SP.POP.TOTL) â\x80\x94 not "all" or a list of codes. Use worldbank_search_indicators to find valid IDs.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'anyOf': [{'not': {'required': ['error']}, 'required': ['id', 'name', 'unit', 'sourceId', 'sourceName', 'sourceNote', 'sourceOrganization', 'topics']}, {'required': ['error']}], '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'id': {'type': 'string', 'description': 'Indicator ID.'}, 'name': {'type': 'string', 'description': 'Indicator name.'}, 'unit': {'type': 'string', 'description': 'Unit of measurement (empty when not specified).'}, 'error': {'type': 'object', 'required': ['code', 'message'], 'properties': {'code': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'JSON-RPC error code for this failure.'}, 'data': {'type': 'object', 'properties': {'reason': {'type': 'string', 'examples': ['indicator_not_found', 'multiple_indicators'], 'description': 'Machine-readable failure mode. Declared by this tool: `indicator_not_found`: The indicator ID does not exist in the World Bank API. `multiple_indicators`: The ID is "all", or another selector the World Bank resolves to more than one indicator. Other values are possible when a failure originates below the handler.'}, 'recovery': {'type': 'object', 'required': ['hint'], 'properties': {'hint': {'type': 'string'}}, 'description': 'Actionable next step for the caller.', 'additionalProperties': {}}, 'retryable': {'type': 'boolean', 'description': 'Whether retrying may succeed.'}}, 'additionalProperties': {}}, 'message': {'type': 'string', 'description': 'Human-readable description of what went wrong.'}}, 'description': 'Present when the call failed. Absent on success.', 'additionalProperties': {}}, 'topics': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name'], 'properties': {'id': {'type': 'string', 'description': 'Topic ID.'}, 'name': {'type': 'string', 'description': 'Topic name.'}}, 'description': 'A thematic topic entry.', 'additionalProperties': False}, 'description': 'Thematic topics this indicator belongs to.'}, 'sourceId': {'type': 'string', 'description': 'Source dataset ID.'}, 'sourceName': {'type': 'string', 'description': 'Source dataset name.'}, 'sourceNote': {'type': 'string', 'description': 'Detailed indicator description from the source.'}, 'sourceOrganization': {'type': 'string', 'description': 'Organization that collects or publishes this data.'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['countries'], 'properties': {'page': {'type': 'integer', 'default': 1, 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Pagination page number (1-based).'}, 'year': {'type': 'string', 'pattern': '^\\s*(?:\\d{4}|all|MRV)?\\s*$', 'description': 'Reporting year to return. A four-digit year (2022), "all" for the full history, or "MRV" for the most recent year. Omitted behaves as "all". MRV follows fill_gaps: with fill_gaps true each economy resolves to PIP\'s latest estimate year, and with fill_gaps false to its latest survey year; an aggregate resolves to its newest reporting year. PIP coverage starts in 1963 and ends at the last year of the data release in use; a year outside that span fails with the span named.'}, 'per_page': {'type': 'integer', 'maximum': 1000, 'minimum': 1, 'description': 'Results per page (default: server default, max: 1000). "all" countries across "all" years runs to several thousand rows. One page holds at most 70 estimates, which keeps a response within about 50 KB; a larger value, the server default included, is reduced to that cap and echoed as appliedFilters.perPage, and totalPages is counted at the reduced size; notice discloses the reduction whenever the result runs past one page.'}, 'countries': {'anyOf': [{'type': 'string', 'pattern': '[^\\s;,|]', 'description': 'A single country code, a list separated by commas, semicolons, or pipes, or "all".'}, {'type': 'array', 'items': {'type': 'string', 'description': 'A country code.'}, 'minItems': 1, 'description': 'An array of country codes; an element holding several codes separated by commas, semicolons, or pipes is split too.'}], 'description': 'Country codes: a single code, an array, or one string separated by commas, semicolons, or pipes. Economies go by ISO3 (IND, USA) or ISO2 (IN, US) code, including those PIP publishes only as model estimates (AFG); "all" returns every economy. PIP\'s aggregates are served too: WLD; the World Bank regions AFE, AFW, EAS, ECS, LCN, MEA, NAC, SAS, SSF; the income groups HIC, LIC, LMIC (or LMC), UMIC (or UMC); and the lending groups IDX (IDA only), IDB or BLND (IDA blend), IBD or IBRD (IBRD only), and REST. Income groups follow the fiscal-year classification PIP\'s data release was built with â\x80\x94 FY2026 (July 2025) for release 20260922 â\x80\x94 applied to every year, so membership can differ from the current one worldbank_get_country reports. IDA (IDA total) is rejected because PIP computes no IDA total: ask for IDX and IDB together. Other aggregate codes (SSA, EAP, FCVY, MIC, LMY) are rejected, and welfare_type and reporting_level cannot be combined with an aggregate.'}, 'fill_gaps': {'type': 'boolean', 'default': True, 'description': 'When true (the default), any year the surveys do not cover falls back to PIP\'s own estimate for it instead of being left out â\x80\x94 so a single-year query still answers, and a full-history query returns a row per year rather than only the survey years. Those fallback rows carry no inequality data. Set false to return survey-derived rows only, accepting an empty result for years no survey covers and for economies PIP publishes only as model estimates. It also decides what "MRV" resolves to, and has no effect on aggregate rows.'}, 'ppp_version': {'anyOf': [{'type': 'string', 'const': ''}, {'type': 'string', 'pattern': '^\\d{4}$', 'description': 'A PPP vintage year.'}], 'description': 'PPP vintage to express every dollar figure in â\x80\x94 the poverty line, mean, and median â\x80\x94 as a four-digit year ("2021", "2017"). It must be one of the vintages PIP\'s current data release is published at; any other value fails with the available vintages named. Omitted uses the newest vintage of that release. The vintage and release applied are echoed as appliedFilters.pppVersion and appliedFilters.releaseVersion.'}, 'poverty_line': {'type': 'number', 'maximum': 2700, 'minimum': 0, 'description': 'Poverty line in PPP dollars per person per day, at the applied PPP vintage â\x80\x94 any threshold, not only the published ones. Omitted uses the international poverty line for that vintage, so the applied value is echoed back on every row as povertyLine rather than assumed here. The poverty line does not affect the inequality fields, which describe the whole distribution.'}, 'welfare_type': {'anyOf': [{'type': 'string', 'const': ''}, {'enum': ['income', 'consumption'], 'type': 'string', 'description': 'Restrict to surveys measuring income, or to those measuring consumption.'}], 'description': 'Restrict results to one welfare measure. Surveys measure either income or consumption and the two are not directly comparable, so a cross-country comparison is safer pinned to one. Omitted returns whichever each economy publishes, and both where an economy publishes both â\x80\x94 thirty-five do, and those return two rows per year.'}, 'reporting_level': {'anyOf': [{'type': 'string', 'const': ''}, {'enum': ['national', 'urban', 'rural'], 'type': 'string', 'description': 'Restrict to the national, urban, or rural estimate.'}], 'description': 'Restrict results to one reporting level. Most economies publish a national figure only; ten publish a split and return an extra row per year for it, China with all three levels and the rest pairing national with either urban or rural. Every row states its own reportingLevel.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'anyOf': [{'not': {'required': ['error']}, 'required': ['estimates', 'appliedFilters', 'totalCount', 'currentPage', 'totalPages']}, {'required': ['error']}], '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'error': {'type': 'object', 'required': ['code', 'message'], 'properties': {'code': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'JSON-RPC error code for this failure.'}, 'data': {'type': 'object', 'properties': {'reason': {'type': 'string', 'examples': ['country_not_found', 'ambiguous_aggregate', 'unserved_aggregate', 'aggregate_filter_conflict', 'invalid_parameter', 'ppp_version_unavailable', 'upstream_unavailable'], 'description': "Machine-readable failure mode. Declared by this tool: `country_not_found`: No economy or aggregate PIP publishes goes by one or more of the codes, including a two-character code the World Bank country listing does not carry. `ambiguous_aggregate`: IDA or its ISO2 code XG names WDI's IDA total, which PIP does not compute. `unserved_aggregate`: An aggregate code this tool does not serve: an FCV or PovcalNet grouping from PIP's regions table (FCVY, SSA, EAP), or a WDI income aggregate PIP computes none for (MIC, LMY). `aggregate_filter_conflict`: welfare_type or reporting_level was set alongside an aggregate code. `invalid_parameter`: PIP rejected the value supplied for a query parameter other than country. `ppp_version_unavailable`: ppp_version names a PPP vintage PIP's current data release is not published at. `upstream_unavailable`: PIP answered with a server error, or the World Bank Indicators API country listing that resolves an ISO2 code could not be loaded. Other values are possible when a failure originates below the handler."}, 'recovery': {'type': 'object', 'required': ['hint'], 'properties': {'hint': {'type': 'string'}}, 'description': 'Actionable next step for the caller.', 'additionalProperties': {}}, 'retryable': {'type': 'boolean', 'description': 'Whether retrying may succeed.'}}, 'additionalProperties': {}}, 'message': {'type': 'string', 'description': 'Human-readable description of what went wrong.'}}, 'description': 'Present when the call failed. Absent on success.', 'additionalProperties': {}}, 'notice': {'type': 'string', 'description': 'Context for an empty result set, for a page past the end of the results, for a page size reduced to the page cap, for a result carrying gap-filled or aggregate rows with no inequality data, and for economies fill_gaps false left out.'}, 'estimates': {'type': 'array', 'items': {'type': 'object', 'required': ['countryCode', 'countryName', 'regionCode', 'regionName', 'reportingYear', 'reportingLevel', 'welfareType', 'povertyLine', 'headcount', 'povertyGap', 'povertySeverity', 'watts', 'mean', 'median', 'gini', 'mld', 'polarization', 'decileShares', 'population', 'popInPoverty', 'surveyYear', 'surveyAcronym', 'surveyComparability', 'comparableSpell', 'estimationType', 'isInterpolated', 'isAggregate'], 'properties': {'mld': {'type': ['number', 'null'], 'description': 'Mean log deviation, an inequality measure. Null on gap-filled rows.'}, 'gini': {'type': ['number', 'null'], 'description': 'Gini coefficient of the welfare distribution, 0 (perfect equality) to 1. Null on gap-filled rows â\x80\x94 see estimationType.'}, 'mean': {'type': ['number', 'null'], 'description': 'Mean daily welfare per person in PPP dollars.'}, 'watts': {'type': ['number', 'null'], 'description': 'Watts index, a distribution-sensitive measure.'}, 'median': {'type': ['number', 'null'], 'description': 'Median daily welfare per person in PPP dollars. Null on aggregate rows, which PIP publishes without one.'}, 'headcount': {'type': ['number', 'null'], 'description': 'Share of the population below the poverty line, as a fraction (0.0814 = 8.14%).'}, 'population': {'type': ['number', 'null'], 'description': 'Population the estimate covers â\x80\x94 multiply by headcount for the number of people below the line.'}, 'povertyGap': {'type': ['number', 'null'], 'description': 'Mean shortfall below the poverty line across the whole population, as a fraction of the line â\x80\x94 depth of poverty, not just its incidence.'}, 'regionCode': {'type': ['string', 'null'], 'description': 'PIP region code of the economy (e.g. SAS, NAC, SSF); null on an aggregate row.'}, 'regionName': {'type': ['string', 'null'], 'description': 'PIP region name of the economy; null on an aggregate row.'}, 'surveyYear': {'type': ['number', 'null'], 'description': 'Year of the survey behind the estimate, fractional when the survey spans a fiscal year (2022.58). Null on gap-filled rows, which trace to no single survey.'}, 'countryCode': {'type': 'string', 'description': "ISO3 code of the economy, or the aggregate code (SSF, LIC, WLD) on an aggregate row â\x80\x94 IDX for PIP's IDA-only group. Accepted back as countries."}, 'countryName': {'type': 'string', 'description': 'Economy or aggregate name â\x80\x94 "IDA only" for IDX, as WDI names it.'}, 'isAggregate': {'type': 'boolean', 'description': 'True on a PIP aggregate â\x80\x94 World, a region, an income group, or a lending group â\x80\x94 whose median, distributional block, survey fields, welfareType, and reportingLevel are null.'}, 'povertyLine': {'type': 'number', 'description': 'Poverty line the poverty measures were computed at, in PPP dollars per person per day, as applied upstream.'}, 'welfareType': {'type': ['string', 'null'], 'description': 'Whether the underlying survey measures income or consumption. The two are not directly comparable across economies. Null on an aggregate row, which spans both.'}, 'decileShares': {'anyOf': [{'type': 'array', 'items': {'type': 'number'}, 'maxItems': 10, 'minItems': 10}, {'type': 'null'}], 'description': 'Share of total income or consumption held by each decile, poorest first, summing to 1. Null on gap-filled rows.'}, 'polarization': {'type': ['number', 'null'], 'description': 'Wolfson polarization index. Null on gap-filled rows.'}, 'popInPoverty': {'type': ['number', 'null'], 'description': 'Number of people below the poverty line, as PIP publishes it on aggregate rows. Null on economy rows, where population Ã\x97 headcount gives it.'}, 'reportingYear': {'type': 'number', 'description': 'Calendar year the estimate reports on.'}, 'surveyAcronym': {'type': 'string', 'description': 'Short name of the underlying survey (empty on gap-filled rows and where PIP publishes none).'}, 'estimationType': {'type': 'string', 'description': 'How the row was produced. On an economy: "survey" carries the full inequality block; "interpolation", "extrapolation", and "CMD estimation" are gap-filled and carry none, the last being what PIP publishes for economies it has no survey for at all. On an aggregate: "actual", "nowcast", or "projection".'}, 'isInterpolated': {'type': ['boolean', 'null'], 'description': 'True on the interpolated and extrapolated rows. Read estimationType instead of relying on this alone â\x80\x94 a "CMD estimation" row is also gap-filled but reports false here. Null on aggregate rows.'}, 'reportingLevel': {'type': ['string', 'null'], 'description': 'Coverage of this estimate: national, urban, or rural. Null on an aggregate row.'}, 'comparableSpell': {'type': ['string', 'null'], 'description': 'The span of years the comparable series behind this row covers, as PIP labels it ("2022", "2011 - 2022"). Null on gap-filled rows.'}, 'povertySeverity': {'type': ['number', 'null'], 'description': 'Squared poverty gap, weighting the poorest most heavily â\x80\x94 inequality among those below the line.'}, 'surveyComparability': {'type': ['number', 'null'], 'description': "PIP's series comparability code within the economy: 0 is its oldest comparable series and the code steps up each time comparability breaks, so two survey rows of one economy compare over time only when they share it. Null on gap-filled rows."}}, 'description': 'One economy Ã\x97 year Ã\x97 reporting-level Ã\x97 welfare-type estimate, or one aggregate Ã\x97 year.', 'additionalProperties': False}, 'description': 'Poverty and inequality estimates for this page â\x80\x94 economies and aggregates in one list, ordered by code, year, reporting level, then welfare type.'}, 'totalCount': {'type': 'number', 'description': 'Total estimates before pagination.'}, 'totalPages': {'type': 'number', 'description': 'Total number of pages.'}, 'currentPage': {'type': 'number', 'description': 'Page number requested â\x80\x94 past totalPages when the request ran off the end.'}, 'appliedFilters': {'type': 'object', 'required': ['countries', 'pppVersion', 'releaseVersion', 'fillGaps', 'page', 'perPage'], 'properties': {'page': {'type': 'number', 'description': 'Page number requested.'}, 'year': {'type': 'string', 'description': 'Year filter applied, omitted when none was requested.'}, 'perPage': {'type': 'number', 'description': 'Results per page actually served â\x80\x94 the requested size or server default, reduced to the page cap when larger. totalPages is counted at this size.'}, 'fillGaps': {'type': 'boolean', 'description': 'Whether gap-filling was permitted for this query, including the server default of true.'}, 'countries': {'type': 'string', 'description': "Codes as queried, comma-joined across economies and aggregates: uppercased and deduplicated, two-character codes resolved to their three-character form (NG â\x86\x92 NGA), and WDI group spellings read as PIP's (LMC â\x86\x92 LMIC, IDB â\x86\x92 BLND, IBD â\x86\x92 IBRD). PIP's IDA-only group stays IDX, since IDA means IDA total. Every code here can be sent back as countries and asks for the same economy or group."}, 'pppVersion': {'type': 'string', 'description': 'PPP vintage every dollar figure in these estimates is expressed in, whether requested or resolved as the newest vintage of the release.'}, 'povertyLine': {'type': 'number', 'description': 'Poverty line requested, omitted when the upstream default was used â\x80\x94 in which case the applied value is on every row as povertyLine.'}, 'welfareType': {'type': 'string', 'description': 'Welfare-type filter applied, omitted when none.'}, 'releaseVersion': {'type': 'string', 'description': 'PIP data release the estimates come from, as its YYYYMMDD stamp â\x80\x94 the newest release PIP lists. Survey and gap-filled rows share it.'}, 'reportingLevel': {'type': 'string', 'description': 'Reporting-level filter applied, omitted when none.'}, 'requestedPerPage': {'type': 'number', 'description': 'Page size asked for, requested or server default, present only when it exceeded the page cap and perPage was reduced.'}}, 'description': 'The effective parameters sent to PIP â\x80\x94 confirms country code normalization and which filters were in force for these estimates.', 'additionalProperties': False}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'page': {'type': 'integer', 'default': 1, 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Pagination page number (1-based).'}, 'region': {'type': 'string', 'description': "Filter by World Bank region code. A country's region.id is one of EAS (East Asia & Pacific), ECS (Europe & Central Asia), LCN (Latin America & Caribbean), MEA (Middle East, North Africa, Afghanistan & Pakistan), NAC (North America), SAS (South Asia), or SSF (Sub-Saharan Africa). Any other World Bank region or grouping code also filters, by membership: AFE (Africa Eastern and Southern), AFW (Africa Western and Central), ARB (Arab World), EUU (European Union), LDC (Least developed countries), and the rest of the codes the World Bank publishes for regions."}, 'per_page': {'type': 'integer', 'maximum': 300, 'minimum': 1, 'description': 'Results per page (default: server default, max: 300). One page holds at most 150 entries, which keeps a response within about 50 KB; a larger value is reduced to that cap and echoed as appliedFilters.perPage, and totalPages is counted at the reduced size, so page + 1 continues where a page ends; notice discloses the reduction whenever the result runs past one page.'}, 'income_level': {'type': 'string', 'description': 'Filter by income group code: LIC (Low income), LMC (Lower middle income), UMC (Upper middle income), HIC (High income).'}, 'lending_type': {'anyOf': [{'type': 'string', 'const': ''}, {'enum': ['IBD', 'IDB', 'IDX', 'LNX'], 'type': 'string', 'description': 'IDX (IDA), IBD (IBRD), IDB (Blend), or LNX (Not classified).'}], 'description': "Filter by World Bank lending type code: IDX (IDA), IBD (IBRD), IDB (Blend â\x80\x94 eligible for both), or LNX (Not classified). IDX, IBD, and IDB are also the codes worldbank_get_poverty takes for its lending groups; a country's lendingType field reports the name (IDA, IBRD, Blend, Not classified)."}, 'include_aggregates': {'type': 'boolean', 'default': False, 'description': 'When true, includes regional, income-group, and world aggregate entries alongside individual countries. Default false (individual countries only). No aggregate is returned under region or lending_type, whichever code is given, so this changes nothing when either is set.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'anyOf': [{'not': {'required': ['error']}, 'required': ['countries', 'appliedFilters', 'totalCount', 'currentPage', 'totalPages']}, {'required': ['error']}], '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'error': {'type': 'object', 'required': ['code', 'message'], 'properties': {'code': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'JSON-RPC error code for this failure.'}, 'data': {'type': 'object', 'properties': {'reason': {'type': 'string', 'examples': ['invalid_filter'], 'description': 'Machine-readable failure mode. Declared by this tool: `invalid_filter`: An invalid region or income_level code was provided. Other values are possible when a failure originates below the handler.'}, 'recovery': {'type': 'object', 'required': ['hint'], 'properties': {'hint': {'type': 'string'}}, 'description': 'Actionable next step for the caller.', 'additionalProperties': {}}, 'retryable': {'type': 'boolean', 'description': 'Whether retrying may succeed.'}}, 'additionalProperties': {}}, 'message': {'type': 'string', 'description': 'Human-readable description of what went wrong.'}}, 'description': 'Present when the call failed. Absent on success.', 'additionalProperties': {}}, 'notice': {'type': 'string', 'description': 'Context for an empty page â\x80\x94 which filters matched nothing, or the page range that exists when the requested page is past the end â\x80\x94 or for a page size reduced to the page cap.'}, 'countries': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'iso2', 'name', 'region', 'incomeLevel', 'lendingType', 'capitalCity', 'longitude', 'latitude', 'isAggregate'], 'properties': {'id': {'type': 'string', 'description': 'Country or aggregate ID (ISO2 or WB aggregate code).'}, 'iso2': {'type': 'string', 'description': 'ISO2 country code.'}, 'name': {'type': 'string', 'description': 'Country or aggregate name.'}, 'region': {'type': 'object', 'required': ['id', 'name'], 'properties': {'id': {'type': 'string', 'description': 'Region code.'}, 'name': {'type': 'string', 'description': 'Region name.'}}, 'description': 'World Bank region this country belongs to.', 'additionalProperties': False}, 'latitude': {'type': 'string', 'description': 'Capital latitude (empty for aggregates).'}, 'longitude': {'type': 'string', 'description': 'Capital longitude (empty for aggregates).'}, 'capitalCity': {'type': 'string', 'description': 'Capital city name (empty for aggregates).'}, 'incomeLevel': {'type': 'object', 'required': ['id', 'name'], 'properties': {'id': {'type': 'string', 'description': 'Income level code.'}, 'name': {'type': 'string', 'description': 'Income level name.'}}, 'description': 'World Bank income classification.', 'additionalProperties': False}, 'isAggregate': {'type': 'boolean', 'description': 'True when this entry is a regional or income-group aggregate rather than an individual country.'}, 'lendingType': {'type': 'string', 'description': 'World Bank lending type name: IDA, IBRD, Blend, or Not classified (lending_type filters by the codes IDX, IBD, IDB, LNX). Aggregates report Aggregates.'}}, 'description': 'A country or aggregate entry.', 'additionalProperties': False}, 'description': 'Countries (and optionally aggregates) matching the filters.'}, 'totalCount': {'type': 'number', 'description': 'Total matching entries before pagination (includes aggregates if include_aggregates=true).'}, 'totalPages': {'type': 'number', 'description': 'Total number of pages.'}, 'currentPage': {'type': 'number', 'description': 'Page number requested â\x80\x94 past totalPages when the request ran off the end.'}, 'appliedFilters': {'type': 'object', 'required': ['includeAggregates', 'page', 'perPage'], 'properties': {'page': {'type': 'number', 'description': 'Page number requested.'}, 'region': {'type': 'string', 'description': 'Region code applied, omitted when none.'}, 'perPage': {'type': 'number', 'description': 'Results per page actually served â\x80\x94 the requested size or server default, reduced to the page cap when larger. totalPages is counted at this size.'}, 'incomeLevel': {'type': 'string', 'description': 'Income level code applied, omitted when none.'}, 'lendingType': {'type': 'string', 'description': 'Lending type code applied, omitted when none.'}, 'requestedPerPage': {'type': 'number', 'description': 'Page size asked for, present only when it exceeded the page cap and perPage was reduced.'}, 'includeAggregates': {'type': 'boolean', 'description': 'Whether aggregates were requested, including the default of false.'}}, 'description': 'The effective listing parameters â\x80\x94 which filters were in force and the page size served.', 'additionalProperties': False}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'page': {'type': 'integer', 'default': 1, 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Pagination page number (1-based).'}, 'per_page': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Results per page (default: server default, max: 100).'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'anyOf': [{'not': {'required': ['error']}, 'required': ['sources', 'totalCount', 'currentPage', 'totalPages']}, {'required': ['error']}], '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'error': {'type': 'object', 'required': ['code', 'message'], 'properties': {'code': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'JSON-RPC error code for this failure.'}, 'data': {'type': 'object', 'properties': {'reason': {'type': 'string', 'description': 'Machine-readable failure mode.'}, 'recovery': {'type': 'object', 'required': ['hint'], 'properties': {'hint': {'type': 'string'}}, 'description': 'Actionable next step for the caller.', 'additionalProperties': {}}, 'retryable': {'type': 'boolean', 'description': 'Whether retrying may succeed.'}}, 'additionalProperties': {}}, 'message': {'type': 'string', 'description': 'Human-readable description of what went wrong.'}}, 'description': 'Present when the call failed. Absent on success.', 'additionalProperties': {}}, 'notice': {'type': 'string', 'description': 'Context for an empty page: the page range that exists when the requested page is past the end.'}, 'sources': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'code', 'lastUpdated', 'dataAvailability', 'metadataAvailability', 'concepts'], 'properties': {'id': {'type': 'string', 'description': 'Source ID for use in worldbank_search_indicators.'}, 'code': {'type': 'string', 'description': 'Short dataset code.'}, 'name': {'type': 'string', 'description': 'Dataset name.'}, 'concepts': {'type': 'string', 'description': 'Number of concepts (variables) in this source.'}, 'lastUpdated': {'type': 'string', 'description': 'Date of last data update (YYYY-MM-DD or empty).'}, 'dataAvailability': {'type': 'string', 'description': 'Data availability status.'}, 'metadataAvailability': {'type': 'string', 'description': 'Metadata availability status.'}}, 'description': 'A World Bank data source entry.', 'additionalProperties': False}, 'description': 'World Bank data sources for this page.'}, 'totalCount': {'type': 'number', 'description': 'Total number of sources.'}, 'totalPages': {'type': 'number', 'description': 'Total number of pages.'}, 'currentPage': {'type': 'number', 'description': 'Page number requested â\x80\x94 past totalPages when the request ran off the end.'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'anyOf': [{'not': {'required': ['error']}, 'required': ['topics']}, {'required': ['error']}], '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'error': {'type': 'object', 'required': ['code', 'message'], 'properties': {'code': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'JSON-RPC error code for this failure.'}, 'data': {'type': 'object', 'properties': {'reason': {'type': 'string', 'description': 'Machine-readable failure mode.'}, 'recovery': {'type': 'object', 'required': ['hint'], 'properties': {'hint': {'type': 'string'}}, 'description': 'Actionable next step for the caller.', 'additionalProperties': {}}, 'retryable': {'type': 'boolean', 'description': 'Whether retrying may succeed.'}}, 'additionalProperties': {}}, 'message': {'type': 'string', 'description': 'Human-readable description of what went wrong.'}}, 'description': 'Present when the call failed. Absent on success.', 'additionalProperties': {}}, 'topics': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'sourceNote'], 'properties': {'id': {'type': 'string', 'description': 'Topic ID for use in worldbank_search_indicators.'}, 'name': {'type': 'string', 'description': 'Topic name.'}, 'sourceNote': {'type': 'string', 'description': 'Brief description of the topic.'}}, 'description': 'A thematic topic entry.', 'additionalProperties': False}, 'description': 'All 21 World Bank thematic topics.'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'page': {'type': 'integer', 'default': 1, 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Pagination page number (1-based).'}, 'query': {'type': 'string', 'description': 'Keyword search terms â\x80\x94 an indicator name, ID, or any words from either (e.g. "GDP per capita", "NY.GDP.MKTP.CD", "CO2 emissions"). Every term must match; punctuation is ignored, so the query needs at least one letter or digit. At least one of query, topic_id, or source_id must be provided.'}, 'per_page': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Results per page (default: server default, max: 100).'}, 'topic_id': {'type': 'string', 'pattern': '^\\s*\\d*\\s*$', 'description': 'Filter by topic ID (e.g. "1" for Agriculture, "3" for Economy & Growth). Use worldbank_list_topics to browse valid IDs.'}, 'source_id': {'type': 'string', 'pattern': '^\\s*\\d*\\s*$', 'description': 'Filter by data source ID (e.g. "2" for World Development Indicators). Use worldbank_list_sources to browse valid IDs.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'anyOf': [{'not': {'required': ['error']}, 'required': ['indicators', 'appliedFilters', 'totalCount', 'currentPage', 'totalPages']}, {'required': ['error']}], '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'error': {'type': 'object', 'required': ['code', 'message'], 'properties': {'code': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'JSON-RPC error code for this failure.'}, 'data': {'type': 'object', 'properties': {'reason': {'type': 'string', 'examples': ['missing_filter', 'invalid_filter', 'empty_query'], 'description': 'Machine-readable failure mode. Declared by this tool: `missing_filter`: None of query, topic_id, or source_id were provided. `invalid_filter`: The topic_id or source_id does not exist upstream. `empty_query`: The query contains no letters or digits once punctuation is ignored. Other values are possible when a failure originates below the handler.'}, 'recovery': {'type': 'object', 'required': ['hint'], 'properties': {'hint': {'type': 'string'}}, 'description': 'Actionable next step for the caller.', 'additionalProperties': {}}, 'retryable': {'type': 'boolean', 'description': 'Whether retrying may succeed.'}}, 'additionalProperties': {}}, 'message': {'type': 'string', 'description': 'Human-readable description of what went wrong.'}}, 'description': 'Present when the call failed. Absent on success.', 'additionalProperties': {}}, 'notice': {'type': 'string', 'description': 'Recovery hint for an empty page â\x80\x94 how to broaden the search when no indicators matched, or the page range that exists when the requested page is past the end.'}, 'indicators': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'sourceId', 'sourceName', 'sourceNote', 'topics'], 'properties': {'id': {'type': 'string', 'description': 'Indicator ID (e.g. NY.GDP.PCAP.CD). Use as indicator_id in worldbank_get_data.'}, 'name': {'type': 'string', 'description': 'Indicator name.'}, 'topics': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name'], 'properties': {'id': {'type': 'string', 'description': 'Topic ID.'}, 'name': {'type': 'string', 'description': 'Topic name.'}}, 'description': 'A thematic topic entry.', 'additionalProperties': False}, 'description': 'Thematic topics this indicator belongs to.'}, 'sourceId': {'type': 'string', 'description': 'Source dataset ID.'}, 'sourceName': {'type': 'string', 'description': 'Source dataset name.'}, 'sourceNote': {'type': 'string', 'description': 'Indicator description, cut to its first 150 characters and marked with â\x80¦ when longer. worldbank_get_indicator returns it whole.'}}, 'description': 'A matching indicator with metadata.', 'additionalProperties': False}, 'description': 'Matching indicators for this page.'}, 'totalCount': {'type': 'number', 'description': 'Total matching indicators before pagination.'}, 'totalPages': {'type': 'number', 'description': 'Total number of pages.'}, 'currentPage': {'type': 'number', 'description': 'Current page number.'}, 'appliedFilters': {'type': 'object', 'properties': {'query': {'type': 'string', 'description': 'Trimmed keyword query sent to the search, omitted when none was given.'}, 'topicId': {'type': 'string', 'description': 'Topic ID the results were scoped to, omitted when none was given.'}, 'sourceId': {'type': 'string', 'description': 'Source ID the results were scoped to, omitted when none was given.'}}, 'description': 'The effective search parameters, field by field â\x80\x94 confirms which filter combination produced these results without parsing the effectiveQuery string.', 'additionalProperties': False}, 'effectiveQuery': {'type': 'string', 'description': 'Active filters echoed: keyword, topic ID, and/or source ID that were applied.'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'page': {'type': 'integer', 'default': 1, 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Pagination page number (1-based).'}, 'query': {'type': 'string', 'description': 'Free-text search across project names, abstracts, and objectives. Every word must appear, so extra words narrow the result. A balanced quoted phrase and AND or OR between words parse; brackets, braces, an unmatched double quote, a slash between words, a trailing backslash, an AND or OR at either end, a trailing NOT, and # are not. Omit to browse the portfolio by filter alone. Results come newest board approval first either way.'}, 'region': {'type': 'array', 'items': {'enum': ['East Asia and Pacific', 'Europe and Central Asia', 'Latin America and Caribbean', 'Middle East, North Africa, Afghanistan, and Pakistan', 'South Asia', 'Eastern and Southern Africa', 'Western and Central Africa', 'Africa', 'Other'], 'type': 'string'}, 'description': 'World Bank operational regions to include, combined as OR. These are the lending regions the portfolio is organized by, not the WDI aggregate codes worldbank_get_data accepts.'}, 'status': {'type': 'array', 'items': {'enum': ['Active', 'Closed', 'Dropped', 'Pipeline'], 'type': 'string'}, 'description': 'Lifecycle stages to include, combined as OR. "Active" is under implementation, "Pipeline" is approved but not yet effective, "Closed" has finished disbursing, and "Dropped" was abandoned before approval. Most of the portfolio is closed, so omitting this returns mostly historical operations.'}, 'per_page': {'type': 'integer', 'maximum': 1000, 'minimum': 1, 'description': 'Results per page (default: server default, max: 1000). One page holds at most 80 projects, or 8 with include_abstract, which keeps a response within about 50 KB; a larger value, the server default included, is reduced to that cap and echoed as appliedFilters.perPage, and totalPages is counted at the reduced size; notice discloses the reduction whenever the result runs past one page.'}, 'countries': {'anyOf': [{'type': 'string', 'description': 'A single country code, or a list of them separated by commas, semicolons, or pipes.'}, {'type': 'array', 'items': {'type': 'string', 'description': 'An ISO3, ISO2, or World Bank regional code.'}, 'description': 'An array of country codes; an element holding several codes separated by commas, semicolons, or pipes is split too.'}], 'description': 'Borrowing countries: an economy by ISO3 or ISO2 code (BRA or BR), or a World Bank regional code for a multi-country operation (3A for Africa, 4E for East Asia and Pacific). Several codes â\x80\x94 an array, or one string separated by commas, semicolons, or pipes â\x80\x94 are combined as OR: a project matching any of them is returned. A value made only of separators is rejected rather than read as every country. Yemen, DR Congo, West Bank and Gaza, and Timor-Leste are searched under the legacy codes the portfolio files them by (RY, ZR, GZ, TP), which are also accepted as sent. A WDI aggregate (SSF, WLD, SAS) is rejected; use region for a regional search. Omit for every country.'}, 'approved_to': {'anyOf': [{'type': 'string', 'const': ''}, {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Latest board approval date to include.'}], 'description': 'Latest board approval date, as YYYY-MM-DD and inclusive. It must be a real calendar day.'}, 'approved_from': {'anyOf': [{'type': 'string', 'const': ''}, {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Earliest board approval date to include.'}], 'description': 'Earliest board approval date, as YYYY-MM-DD and inclusive. It must be a real calendar day (2024-02-29, not 2023-02-29) and, when approved_to is also set, on or before it. Board approval is the date the Bank committed to the operation; pipeline projects carry a scheduled date in the future.'}, 'financial_type': {'type': 'array', 'items': {'enum': ['IBRD', 'IDA', 'Grants', 'Other'], 'type': 'string'}, 'description': 'Financing windows to include, combined as OR: a project matches when its financialTypes holds any of them. IBRD, IDA, Grants, Other are the complete set, case-sensitive. A project that publishes no financing window â\x80\x94 36% of the portfolio, older and dropped operations mostly â\x80\x94 never matches. The Grants window says how an operation is financed; it is not the grantAmount figure.'}, 'include_abstract': {'type': 'boolean', 'default': False, 'description': "Include each project's abstract. Abstracts run long â\x80\x94 a median of roughly 1,200 characters, up to 8,000 â\x80\x94 so a page carrying them holds at most 8 projects rather than 80, and an abstract longer than 5,000 characters (about 2% of them) is cut there and marked with â\x80¦, with notice naming the projects cut and each project's url leading to the full text; leave this off while narrowing a search and turn it on once the result set is small enough to read. Projects that publish no abstract report null either way, which appliedFilters.includeAbstract distinguishes."}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'anyOf': [{'not': {'required': ['error']}, 'required': ['projects', 'appliedFilters', 'totalCount', 'currentPage', 'totalPages']}, {'required': ['error']}], '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'error': {'type': 'object', 'required': ['code', 'message'], 'properties': {'code': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'JSON-RPC error code for this failure.'}, 'data': {'type': 'object', 'properties': {'reason': {'type': 'string', 'examples': ['invalid_country_code', 'invalid_date', 'reversed_date_range', 'invalid_query', 'page_out_of_range', 'upstream_unavailable'], 'description': 'Machine-readable failure mode. Declared by this tool: `invalid_country_code`: A countries entry resolves to no economy: it is not two or three letters or digits, no economy in the World Bank country index has that three-character code, or it is a WDI aggregate such as SSF or WLD, which the portfolio lists no operations under. Also when countries holds only separators and so names no code at all. `invalid_date`: approved_from or approved_to is shaped YYYY-MM-DD but names no real day â\x80\x94 a month outside 01â\x80\x9312, or a day outside its month. `reversed_date_range`: approved_from falls after approved_to, an interval no project can match. `invalid_query`: The Projects API could not parse query and answered HTTP 400, or query contains #, which the API answers with rows unrelated to the search. `page_out_of_range`: The requested page starts past the 100,000-result offset the Projects API serves. `upstream_unavailable`: The Projects API answered with a non-success status other than a query it could not parse â\x80\x94 a rate limit, a timeout, a 5xx â\x80\x94 or with an HTML error page, or the World Bank Indicators API country listing that resolves an ISO3 code could not be loaded. Other values are possible when a failure originates below the handler.'}, 'recovery': {'type': 'object', 'required': ['hint'], 'properties': {'hint': {'type': 'string'}}, 'description': 'Actionable next step for the caller.', 'additionalProperties': {}}, 'retryable': {'type': 'boolean', 'description': 'Whether retrying may succeed.'}}, 'additionalProperties': {}}, 'message': {'type': 'string', 'description': 'Human-readable description of what went wrong.'}}, 'description': 'Present when the call failed. Absent on success.', 'additionalProperties': {}}, 'notice': {'type': 'string', 'description': 'Context for an empty result set â\x80\x94 including whether the country filter matched anything on its own â\x80\x94 for a page past the end of the results, for a page size reduced to the page cap, or naming the projects whose abstracts were cut.'}, 'projects': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'status', 'countryCodes', 'countryName', 'regionName', 'boardApprovalDate', 'closingDate', 'totalCommitment', 'ibrdCommitment', 'idaCommitment', 'grantAmount', 'financialTypes', 'majorSectors', 'abstract', 'url'], 'properties': {'id': {'type': 'string', 'description': 'World Bank project ID, e.g. P513206.'}, 'url': {'type': 'string', 'description': 'Project page on projects.worldbank.org.'}, 'name': {'type': 'string', 'description': 'Project name.'}, 'status': {'type': 'string', 'description': 'Lifecycle stage: Active, Closed, Dropped, or Pipeline.'}, 'abstract': {'type': ['string', 'null'], 'description': 'Project abstract, cut at 5,000 characters and marked with â\x80¦ when longer. Null when include_abstract was not requested and when the project publishes none â\x80\x94 appliedFilters.includeAbstract separates the two.'}, 'regionName': {'type': 'string', 'description': 'World Bank operational region.'}, 'closingDate': {'type': ['string', 'null'], 'description': 'Scheduled or actual closing date, as YYYY-MM-DD. Null on roughly 44% of the portfolio, which publishes none â\x80\x94 almost all dropped operations among them.'}, 'countryName': {'type': 'string', 'description': 'Borrowing country, as the portfolio names it.'}, 'grantAmount': {'type': ['number', 'null'], 'description': "Grant amount in USD: trust-fund grants and, on some operations, other agencies' co-financing recorded on the project, so it is not all World Bank money. Counted in totalCommitment. It is its own figure, unrelated to which financialTypes the project lists."}, 'countryCodes': {'type': 'array', 'items': {'type': 'string'}, 'description': "Two-character code of the borrowing country â\x80\x94 the economy's ISO2 code, which chains into the other tools (YE for Yemen, though the portfolio files it under RY), or a World Bank regional code such as 3A for a multi-country operation. Upstream publishes it as a list, though every project in the portfolio carries exactly one."}, 'majorSectors': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Major sectors the operation is classified under, e.g. Health, Education, Transportation. Empty where the portfolio publishes no sector classification.'}, 'idaCommitment': {'type': ['number', 'null'], 'description': 'IDA commitment in USD, IDA grants included. Null when the project publishes no IBRD or IDA amount â\x80\x94 not a commitment of zero.'}, 'financialTypes': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Financing windows behind the operation: IBRD, IDA, Grants, Other â\x80\x94 the values financial_type filters on. A blended operation lists more than one; empty where the project publishes none.'}, 'ibrdCommitment': {'type': ['number', 'null'], 'description': 'IBRD commitment in USD. Null when the project publishes no IBRD or IDA amount, as on a grant-only operation â\x80\x94 not a commitment of zero.'}, 'totalCommitment': {'type': ['number', 'null'], 'description': "Commitment amount in USD as the project page reports it: ibrdCommitment + idaCommitment + grantAmount. Null on 35.8% of the portfolio (28,153 projects, 2026-09-25), which publishes no amount â\x80\x94 dropped and older operations mostly â\x80\x94 and that is not the same as a commitment of zero. It can include other agencies' co-financing through grantAmount; World Bank lending alone is ibrdCommitment + idaCommitment."}, 'boardApprovalDate': {'type': ['string', 'null'], 'description': 'Date the Board approved the operation, as YYYY-MM-DD. A future date belongs to a pipeline project with a scheduled board date.'}}, 'description': 'One World Bank lending operation.', 'additionalProperties': False}, 'description': 'Projects on this page, newest board approval date first with or without query, and projects with no board date last. Pagination walks the same order.'}, 'totalCount': {'type': 'number', 'description': 'Total projects matching the search, before pagination.'}, 'totalPages': {'type': 'number', 'description': 'Total number of pages.'}, 'currentPage': {'type': 'number', 'description': 'Page number requested â\x80\x94 past totalPages when the request ran off the end.'}, 'appliedFilters': {'type': 'object', 'required': ['includeAbstract', 'page', 'perPage'], 'properties': {'page': {'type': 'number', 'description': 'Page number requested.'}, 'query': {'type': 'string', 'description': 'Free-text query applied, omitted when none.'}, 'region': {'type': 'string', 'description': 'Regions applied, omitted when none.'}, 'status': {'type': 'string', 'description': 'Statuses applied, omitted when none.'}, 'perPage': {'type': 'number', 'description': 'Results per page actually served â\x80\x94 the requested size or server default, reduced to the page cap when larger. totalPages is counted at this size.'}, 'countries': {'type': 'string', 'description': 'Country codes as sent upstream â\x80\x94 each resolved to the code the portfolio keys on (BRA â\x86\x92 BR, YEM or YE â\x86\x92 RY), uppercased, deduplicated, and comma-joined here for readability, though the API itself takes them caret-separated. Omitted when no country filter was applied.'}, 'approvedTo': {'type': 'string', 'description': 'Latest board approval date applied, omitted when none.'}, 'approvedFrom': {'type': 'string', 'description': 'Earliest board approval date applied, omitted when none.'}, 'financialType': {'type': 'string', 'description': 'Financing windows applied, comma-joined, omitted when none.'}, 'includeAbstract': {'type': 'boolean', 'description': 'Whether abstracts were requested, including the server default of false. A null abstract means "not requested" when this is false and "none published" when it is true.'}, 'requestedPerPage': {'type': 'number', 'description': 'Page size asked for, requested or server default, present only when it exceeded the page cap and perPage was reduced.'}}, 'description': 'The effective search sent upstream â\x80\x94 confirms country-code normalization and which filters were in force for these results.', 'additionalProperties': False}}, 'additionalProperties': False}
最近のツール変更
類似のMCPサーバー
LiveDataLink
Exposes public-data tools covering economics, labor, banking, transport, books, legal opinions, carriers, environmental data, and…
Stratalize Healthcare
Retired Stratalize server exposing benchmark, market intelligence, compliance, financial, healthcare, legal, real estate, and eco…
Stratalize Governance
Retired Stratalize server exposing benchmark, market intelligence, compliance, financial, healthcare, legal, real estate, and eco…
Stratalize Oracle
Retired Stratalize server exposing benchmark, market intelligence, compliance, financial, healthcare, legal, real estate, and eco…
Stratalize Real Estate
Retired Stratalize server exposing benchmark, market intelligence, compliance, financial, healthcare, legal, real estate, and eco…
Stratalize Crypto & DeFi
Retired Stratalize server exposing benchmark, market intelligence, compliance, financial, healthcare, legal, real estate, and eco…
Valuein — SEC EDGAR Fundamentals & Smart-Money Data
Provides point-in-time SEC EDGAR fundamentals, filings, ownership signals, financial analysis, valuation models, research reports…
equibles
Provides equity and market research tools covering SEC filings, company financials, portfolios, prices, options, macroeconomic da…