gdelt-mcp-server
このMCPでできること
Searches and analyzes global news articles and US television transcripts, including coverage volume, tone, trends, source geography, and topic context.
ツール
入力スキーマ
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['query', 'breakdownBy'], 'properties': {'query': {'type': 'string', 'minLength': 1, 'description': 'Search query using GDELT syntax. Same operators as gdelt_search_articles: phrases, boolean OR, sourcecountry:, sourcelang:, domain:, theme: (GKG theme identifiers come from gdelt_search_themes).'}, 'series': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Exact series labels to additionally return in full, e.g. ["Portuguese", "Vietnamese"]. Take them verbatim from otherSeriesLabels (the series folded into "Other") or topSeries[].label in a response, or from the label list an unknown_series error prints. Each one comes back complete under selectedSeries, on top of the usual top-10 overview; a label that matches nothing is rejected rather than silently skipped. Omit to get the overview alone.'}, 'timespan': {'type': 'string', 'description': 'Time window relative to now, minimum "15min"; other examples: "24h", "7d", "1m". Ignored when startDatetime/endDatetime are set. Maximum 3 months.'}, 'breakdownBy': {'enum': ['language', 'country'], 'type': 'string', 'description': 'Breakdown dimension: "language" for source language time series, "country" for source country time series.'}, 'endDatetime': {'type': 'string', 'pattern': '^\\d{14}$', 'description': 'End datetime in GDELT format YYYYMMDDHHMMSS â\x80\x94 exactly 14 digits, no separators (e.g. 20240131235959). Must pair with startDatetime; supplying only one of the two is rejected.'}, 'startDatetime': {'type': 'string', 'pattern': '^\\d{14}$', 'description': 'Start datetime in GDELT format YYYYMMDDHHMMSS â\x80\x94 exactly 14 digits, no separators (e.g. 20240101000000). Must pair with endDatetime; supplying only one of the two is rejected.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'anyOf': [{'not': {'required': ['error']}, 'required': ['topSeries', 'effectiveQuery', 'breakdownBy', 'totalCount']}, {'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': ['unknown_series', 'invalid_date_range', 'invalid_query', 'gdelt_rate_limited', 'gdelt_unavailable'], 'description': 'Machine-readable failure mode. Declared by this tool: `unknown_series`: A label passed in the series input matches no series in a non-empty breakdown. `invalid_date_range`: Only one of startDatetime / endDatetime was supplied, one of them is not a real UTC calendar timestamp, or startDatetime is not earlier than endDatetime. `invalid_query`: GDELT rejected the query string as malformed â\x80\x94 bad keyword length, unbalanced parentheses, or an illegal character. `gdelt_rate_limited`: GDELT rejected the request for its one-request-per-five-seconds limit, or too many requests were already queued for this one to start in time. `gdelt_unavailable`: GDELT DOC API is unreachable or temporarily returned no usable data. 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': 'Guidance when the query matched no coverage in the window â\x80\x94 how to broaden the query or extend the window. Absent when breakdown data was returned.'}, 'topSeries': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'data'], 'properties': {'data': {'type': 'array', 'items': {'type': 'object', 'required': ['date', 'value'], 'properties': {'date': {'type': 'string', 'description': 'Timestep in ISO 8601 format.'}, 'value': {'type': 'number', 'description': "Normalized coverage volume at this timestep â\x80\x94 the topic's share of this source's media output, not an absolute article count."}}, 'description': 'A single data point for this series.', 'additionalProperties': False}, 'description': 'Time-ordered data points for this series.'}, 'label': {'type': 'string', 'description': 'Series label (language name or country name).'}}, 'description': 'A single language or country coverage series.', 'additionalProperties': False}, 'description': 'Top 10 series by total coverage volume.'}, 'totalCount': {'type': 'number', 'description': 'Total number of series returned before truncation to top 10.'}, 'breakdownBy': {'enum': ['language', 'country'], 'type': 'string', 'description': 'Breakdown dimension used for this response.'}, 'endDatetime': {'type': 'string', 'description': 'Echoed end datetime when provided (YYYYMMDDHHMMSS).'}, 'startDatetime': {'type': 'string', 'description': 'Echoed start datetime when provided (YYYYMMDDHHMMSS).'}, 'dateResolution': {'enum': ['15min', 'hour', 'day'], 'type': 'string', 'description': 'Temporal resolution of data points â\x80\x94 15min, hour, or day â\x80\x94 inferred from the spacing of the returned timesteps. Omitted when fewer than two distinct timesteps came back.'}, 'effectiveQuery': {'type': 'string', 'description': 'Echoed query string for use in follow-up calls.'}, 'selectedSeries': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'data'], 'properties': {'data': {'type': 'array', 'items': {'type': 'object', 'required': ['date', 'value'], 'properties': {'date': {'type': 'string', 'description': 'Timestep in ISO 8601 format.'}, 'value': {'type': 'number', 'description': "Normalized coverage volume at this timestep â\x80\x94 the topic's share of this source's media output, not an absolute article count."}}, 'description': 'A single data point for this series.', 'additionalProperties': False}, 'description': 'Time-ordered data points for this series.'}, 'label': {'type': 'string', 'description': 'Series label (language name or country name).'}}, 'description': 'A single language or country coverage series.', 'additionalProperties': False}, 'description': 'Complete, untruncated time series for each label requested via the series input, in the order requested. Omitted when series was not supplied.'}, 'otherAggregated': {'type': 'array', 'items': {'type': 'object', 'required': ['date', 'value'], 'properties': {'date': {'type': 'string', 'description': 'Timestep in ISO 8601 format.'}, 'value': {'type': 'number', 'description': 'Aggregated normalized coverage volume for all remaining series â\x80\x94 a share of media output, not an absolute article count.'}}, 'description': 'A single aggregated data point for the "Other" bucket.', 'additionalProperties': False}, 'description': 'Combined time series for all series beyond the top 10. Omitted when all series fit.'}, 'otherSeriesLabels': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Label of every series folded into otherAggregated, ranked by total volume â\x80\x94 the identities the "Other" bucket would otherwise dissolve. Pass any of them to the series input to retrieve that series\' complete data. Omitted when all series fit in the top 10.'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['query'], 'properties': {'mode': {'enum': ['volume', 'volume_with_articles', 'tone'], 'type': 'string', 'default': 'volume', 'description': 'Timeline mode: "volume" returns normalized coverage % per timestep, "volume_with_articles" returns volume plus top articles per spike (best for signal detection), "tone" returns average sentiment score per timestep.'}, 'query': {'type': 'string', 'minLength': 1, 'description': 'Search query using GDELT syntax. Same operators as gdelt_search_articles: phrases, boolean OR, sourcecountry:, sourcelang:, domain:, theme: (GKG theme identifiers come from gdelt_search_themes), tone<.'}, 'points': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Timestep dates whose complete article list should be rendered in the text surface, e.g. ["2024-01-05T12:00:00Z"]. Take them verbatim from series[].data[].date in a prior response, or from the list an unknown_point error prints. Only affects volume_with_articles rendering â\x80\x94 every timestep already carries its full article list in structuredContent regardless. Timesteps not named here show their first 3 links; a date matching no timestep is rejected rather than silently ignored.'}, 'timespan': {'type': 'string', 'description': 'Time window relative to now, minimum "15min"; other examples: "24h", "7d", "1m". Ignored when startDatetime/endDatetime are set. Maximum 3 months.'}, 'smoothing': {'type': 'integer', 'maximum': 5, 'minimum': 0, 'description': 'Smoothing window in timesteps (0 = none, 1â\x80\x935 = moving average width). Reduces noise for spotty topics.'}, 'endDatetime': {'type': 'string', 'pattern': '^\\d{14}$', 'description': 'End datetime in GDELT format YYYYMMDDHHMMSS â\x80\x94 exactly 14 digits, no separators (e.g. 20240131235959). Must pair with startDatetime; supplying only one of the two is rejected.'}, 'startDatetime': {'type': 'string', 'pattern': '^\\d{14}$', 'description': 'Start datetime in GDELT format YYYYMMDDHHMMSS â\x80\x94 exactly 14 digits, no separators (e.g. 20240101000000). Must pair with endDatetime; supplying only one of the two is rejected.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'anyOf': [{'not': {'required': ['error']}, 'required': ['series', 'effectiveQuery', 'mode', 'totalCount']}, {'required': ['error']}], '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'mode': {'enum': ['volume', 'volume_with_articles', 'tone'], 'type': 'string', 'description': 'Timeline mode used for this response.'}, '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': ['unknown_point', 'invalid_date_range', 'invalid_query', 'gdelt_rate_limited', 'gdelt_unavailable'], 'description': 'Machine-readable failure mode. Declared by this tool: `unknown_point`: A date passed in the points input matches no timestep in a non-empty timeline. `invalid_date_range`: Only one of startDatetime / endDatetime was supplied, one of them is not a real UTC calendar timestamp, or startDatetime is not earlier than endDatetime. `invalid_query`: GDELT rejected the query string as malformed â\x80\x94 bad keyword length, unbalanced parentheses, or an illegal character. `gdelt_rate_limited`: GDELT rejected the request for its one-request-per-five-seconds limit, or too many requests were already queued for this one to start in time. `gdelt_unavailable`: GDELT DOC API is unreachable or temporarily returned no usable data. 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': 'Guidance when the query matched no coverage in the window â\x80\x94 how to broaden the query or extend the window. Absent when timeline data was returned.'}, 'series': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'data'], 'properties': {'data': {'type': 'array', 'items': {'type': 'object', 'required': ['date', 'value'], 'properties': {'date': {'type': 'string', 'description': 'Timestep in ISO 8601 format.'}, 'value': {'type': 'number', 'description': 'Normalized coverage % (volume mode) or average tone score (tone mode). Tone range is approximately -100 to +100.'}, 'articles': {'type': 'array', 'items': {'type': 'object', 'required': ['url', 'title'], 'properties': {'url': {'type': 'string', 'description': 'Article URL.'}, 'title': {'type': 'string', 'description': 'Article title.'}}, 'description': 'An article linked to this spike.', 'additionalProperties': False}, 'description': 'Top articles driving coverage at this timestep. Present only in volume_with_articles mode.'}}, 'description': 'A single time-series data point.', 'additionalProperties': False}, 'description': 'Time-ordered data points for this series.'}, 'label': {'type': 'string', 'description': 'Series label (e.g. "Volume Intensity" or "Average Tone").'}}, 'description': 'A single time series with a label and data points.', 'additionalProperties': False}, 'description': 'One or more time series (typically one for volume/tone, one per label for breakdowns).'}, 'totalCount': {'type': 'number', 'description': 'Total number of data points across all series.'}, 'endDatetime': {'type': 'string', 'description': 'Echoed end datetime when provided (YYYYMMDDHHMMSS).'}, 'startDatetime': {'type': 'string', 'description': 'Echoed start datetime when provided (YYYYMMDDHHMMSS).'}, 'dateResolution': {'enum': ['15min', 'hour', 'day'], 'type': 'string', 'description': 'Temporal resolution of the data points â\x80\x94 15min, hour, or day â\x80\x94 inferred from the spacing of the returned timesteps. Omitted when fewer than two distinct timesteps came back.'}, 'effectiveQuery': {'type': 'string', 'description': 'Echoed query string for use in follow-up calls.'}, 'expandedPoints': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Timestep dates whose full article list is rendered in the text surface instead of the first 3, echoing the points input. Omitted when points was not supplied. Purely a rendering concern â\x80\x94 structuredContent carries every article for every timestep either way.'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['query'], 'properties': {'query': {'type': 'string', 'minLength': 1, 'description': 'Search query using GDELT syntax. Same operators as gdelt_search_articles: phrases, boolean OR, sourcecountry:, sourcelang:, domain:, theme: (GKG theme identifiers come from gdelt_search_themes).'}, 'timespan': {'type': 'string', 'description': 'Time window relative to now, minimum "15min"; other examples: "24h", "7d", "1m". Ignored when startDatetime/endDatetime are set. Maximum 3 months.'}, 'endDatetime': {'type': 'string', 'pattern': '^\\d{14}$', 'description': 'End datetime in GDELT format YYYYMMDDHHMMSS â\x80\x94 exactly 14 digits, no separators (e.g. 20240131235959). Must pair with startDatetime; supplying only one of the two is rejected.'}, 'startDatetime': {'type': 'string', 'pattern': '^\\d{14}$', 'description': 'Start datetime in GDELT format YYYYMMDDHHMMSS â\x80\x94 exactly 14 digits, no separators (e.g. 20240101000000). Must pair with endDatetime; supplying only one of the two is rejected.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'anyOf': [{'not': {'required': ['error']}, 'required': ['histogram', 'summary', 'effectiveQuery', 'totalCount']}, {'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_date_range', 'invalid_query', 'gdelt_rate_limited', 'gdelt_unavailable'], 'description': 'Machine-readable failure mode. Declared by this tool: `invalid_date_range`: Only one of startDatetime / endDatetime was supplied, one of them is not a real UTC calendar timestamp, or startDatetime is not earlier than endDatetime. `invalid_query`: GDELT rejected the query string as malformed â\x80\x94 bad keyword length, unbalanced parentheses, or an illegal character. `gdelt_rate_limited`: GDELT rejected the request for its one-request-per-five-seconds limit, or too many requests were already queued for this one to start in time. `gdelt_unavailable`: GDELT DOC API is unreachable or temporarily returned no usable data. 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': 'Guidance when no articles matched in the window â\x80\x94 how to broaden the query or extend the window. Absent when tone data was returned.'}, 'summary': {'type': 'object', 'properties': {'neutralPct': {'type': 'number', 'description': 'Percentage of articles in the near-neutral range (bins -2 to +2). Omitted when the histogram counts no articles.'}, 'peakNegativeBin': {'type': 'number', 'description': 'Tone bin with the highest count among negative bins (bin < 0). Omitted when no negative bin was returned.'}, 'peakPositiveBin': {'type': 'number', 'description': 'Tone bin with the highest count among positive bins (bin > 0). Omitted when no positive bin was returned.'}}, 'description': 'Summary statistics derived from the histogram. Each value is omitted when the histogram cannot support it â\x80\x94 all of them on an empty result.', 'additionalProperties': False}, 'histogram': {'type': 'array', 'items': {'type': 'object', 'required': ['bin', 'count', 'articles'], 'properties': {'bin': {'type': 'number', 'description': 'Tone bin integer (typically -30 to +30; 0 is neutral).'}, 'count': {'type': 'number', 'description': 'Number of articles in this bin.'}, 'articles': {'type': 'array', 'items': {'type': 'object', 'required': ['url', 'title'], 'properties': {'url': {'type': 'string', 'description': 'Article URL.'}, 'title': {'type': 'string', 'description': 'Article title.'}}, 'description': 'A representative article for this tone bin.', 'additionalProperties': False}, 'description': 'Representative articles in this tone bin.'}}, 'description': 'A single tone histogram bin with article count and representative articles.', 'additionalProperties': False}, 'description': 'Tone histogram sorted from most negative to most positive bin.'}, 'totalCount': {'type': 'number', 'description': 'Total number of articles across all histogram bins.'}, 'endDatetime': {'type': 'string', 'description': 'Echoed end datetime when provided (YYYYMMDDHHMMSS).'}, 'startDatetime': {'type': 'string', 'description': 'Echoed start datetime when provided (YYYYMMDDHHMMSS).'}, 'effectiveQuery': {'type': 'string', 'description': 'Echoed query string for use in follow-up calls.'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['query'], 'properties': {'sort': {'enum': ['relevance', 'dateDesc', 'dateAsc'], 'type': 'string', 'default': 'relevance', 'description': 'Sort order: relevance (default), dateDesc (newest first), dateAsc (oldest first).'}, 'query': {'type': 'string', 'minLength': 1, 'description': 'Search query for TV transcript content. Same TV operators as gdelt_search_tv: station:CNN, network:CBS, market:"National", show:"Anderson Cooper", context:"vaccine".'}, 'stations': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Station IDs to filter to (e.g. ["CNN", "FOXNEWS"]). The GDELT TV API requires at least one station â\x80\x94 supply it here, or embed a station: selector directly in query. Omitting both is rejected; it does not fall back to all stations. Use gdelt_list_tv_stations to see valid IDs.'}, 'timespan': {'type': 'string', 'description': 'Time window, e.g. "1m", "6m". Ignored when startDatetime/endDatetime are set. TV data spans 2009â\x80\x93October 2024.'}, 'maxRecords': {'type': 'integer', 'default': 50, 'maximum': 3000, 'minimum': 1, 'description': "Maximum number of clips to fetch (1â\x80\x933000); the response carries as many of them as fit its 48,000-byte budget. 3000 is GDELT's hard per-call ceiling, not a page size â\x80\x94 there is no cursor past it, so a query that fills 3000 must be split into narrower startDatetime/endDatetime windows instead."}, 'endDatetime': {'type': 'string', 'pattern': '^\\d{14}$', 'description': 'End datetime in GDELT format YYYYMMDDHHMMSS â\x80\x94 exactly 14 digits, no separators (e.g. 20200131235959). Must pair with startDatetime; supplying only one of the two is rejected.'}, 'startDatetime': {'type': 'string', 'pattern': '^\\d{14}$', 'description': 'Start datetime in GDELT format YYYYMMDDHHMMSS â\x80\x94 exactly 14 digits, no separators (e.g. 20200101000000). Must pair with endDatetime; supplying only one of the two is rejected.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'anyOf': [{'not': {'required': ['error']}, 'required': ['clips', 'effectiveQuery', 'totalCount']}, {'required': ['error']}], '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'clips': {'type': 'array', 'items': {'type': 'object', 'required': ['show', 'station', 'date', 'snippet', 'archiveUrl'], 'properties': {'date': {'type': 'string', 'description': 'Air datetime in ISO 8601 format.'}, 'show': {'type': 'string', 'description': 'Show name (e.g. "Anderson Cooper 360").'}, 'snippet': {'type': 'string', 'description': '15-second transcript excerpt surrounding the match.'}, 'station': {'type': 'string', 'description': 'Station ID (e.g. "CNN").'}, 'thumbnail': {'type': 'string', 'description': 'Clip thumbnail URL when provided by the archive.'}, 'archiveUrl': {'type': 'string', 'description': 'Internet Archive URL to view the full 1-minute clip.'}}, 'description': 'A single TV news clip with transcript excerpt and archive link.', 'additionalProperties': False}, 'description': 'Matching TV clips sorted per the sort parameter.'}, '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_date_range', 'invalid_query', 'gdelt_rate_limited', 'gdelt_unavailable'], 'description': 'Machine-readable failure mode. Declared by this tool: `invalid_date_range`: Only one of startDatetime / endDatetime was supplied, one of them is not a real UTC calendar timestamp, or startDatetime is not earlier than endDatetime. `invalid_query`: GDELT rejected the query â\x80\x94 no station was selected, or the query string is malformed. `gdelt_rate_limited`: GDELT rejected the request for its one-request-per-five-seconds limit, or too many requests were already queued for this one to start in time. `gdelt_unavailable`: GDELT TV API is unreachable or temporarily returned no usable data. 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': 'Guidance on an incomplete or empty result. When no clips matched, the resolved timespan window and how to target the 2009â\x80\x93October 2024 archive or verify station IDs. When GDELT returned clips aired outside the requested window (it answers whole clock hours), how many were dropped. When the response was cut to its 48,000-byte budget, how many clips it withheld and the route to them. When the maxRecords cap was reached on an uncut response, that more clips may exist â\x80\x94 a higher maxRecords below the 3000 ceiling, or a narrower date window at it. Absent when a non-empty result set fit under both the cap and the budget.'}, 'totalCount': {'type': 'number', 'description': 'Number of clips returned.'}, 'withheldCount': {'type': 'number', 'description': 'In-window clips GDELT returned that this response withheld to stay within its 48,000-byte budget â\x80\x94 fetched minus returned, not counting clips dropped for falling outside the window. Absent when every in-window clip fit.'}, 'effectiveQuery': {'type': 'string', 'description': 'Echoed query string for use in follow-up calls.'}, 'continuationWindows': {'type': 'array', 'items': {'type': 'object', 'required': ['startDatetime', 'endDatetime'], 'properties': {'endDatetime': {'type': 'string', 'description': 'End of this window in GDELT format YYYYMMDDHHMMSS.'}, 'startDatetime': {'type': 'string', 'description': 'Start of this window in GDELT format YYYYMMDDHHMMSS.'}}, 'description': 'One window to re-query with the same query string.', 'additionalProperties': False}, 'description': 'Windows to re-run this query against, one at a time, when more clips are out of reach of this response. For a response cut to its budget under dateDesc or dateAsc: one window resuming from the last returned clip, reaching back to the second it aired, so clips from that second come back again â\x80\x94 de-duplicate by archiveUrl â\x80\x94 or, when resuming there cannot reach a new clip, one window skipping past that second. Otherwise â\x80\x94 maxRecords at its 3000 ceiling, or a relevance cut â\x80\x94 the queried window split in two, on a clock hour when one falls inside it; the halves share no second. Absent when no window is known, or none would reach further.'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['query'], 'properties': {'query': {'type': 'string', 'minLength': 1, 'description': 'Search query for TV transcript content. Same TV operators as gdelt_search_tv: station:CNN, network:CBS, market:"National", show:"Anderson Cooper", context:"vaccine".'}, 'stations': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Station IDs to filter to (e.g. ["CNN", "FOXNEWS"]). The GDELT TV API requires at least one station â\x80\x94 supply it here, or embed a station: selector directly in query. Omitting both is rejected; it does not fall back to all stations. Use gdelt_list_tv_stations to see valid IDs.'}, 'timespan': {'type': 'string', 'description': 'Time window, e.g. "1m", "6m". Ignored when startDatetime/endDatetime are set. TV data spans 2009â\x80\x93October 2024.'}, 'endDatetime': {'type': 'string', 'pattern': '^\\d{14}$', 'description': 'End datetime in GDELT format YYYYMMDDHHMMSS â\x80\x94 exactly 14 digits, no separators (e.g. 20200131235959). Must pair with startDatetime; supplying only one of the two is rejected.'}, 'startDatetime': {'type': 'string', 'pattern': '^\\d{14}$', 'description': 'Start datetime in GDELT format YYYYMMDDHHMMSS â\x80\x94 exactly 14 digits, no separators (e.g. 20200101000000). Must pair with endDatetime; supplying only one of the two is rejected. TV data spans 2009â\x80\x93October 2024.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'anyOf': [{'not': {'required': ['error']}, 'required': ['words', 'effectiveQuery']}, {'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_date_range', 'invalid_query', 'gdelt_rate_limited', 'gdelt_unavailable'], 'description': 'Machine-readable failure mode. Declared by this tool: `invalid_date_range`: Only one of startDatetime / endDatetime was supplied, one of them is not a real UTC calendar timestamp, or startDatetime is not earlier than endDatetime. `invalid_query`: GDELT rejected the query â\x80\x94 no station was selected, or the query string is malformed. `gdelt_rate_limited`: GDELT rejected the request for its one-request-per-five-seconds limit, or too many requests were already queued for this one to start in time. `gdelt_unavailable`: GDELT TV API is unreachable or temporarily returned no usable data. 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': {}}, 'words': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'score'], 'properties': {'label': {'type': 'string', 'description': 'Co-occurring word or phrase.'}, 'score': {'type': 'number', 'description': 'Relative frequency score (0â\x80\x93100). The query term itself scores 100; other terms are proportional to their co-occurrence frequency.'}}, 'description': 'A co-occurring term with its relative frequency score.', 'additionalProperties': False}, 'description': 'Co-occurring terms sorted by score descending.'}, 'notice': {'type': 'string', 'description': 'Guidance when no clips matched, so there is no vocabulary to report â\x80\x94 the resolved timespan window, the October 2024 archive cutoff, and how to broaden the query or check station coverage. Absent when terms were returned.'}, 'totalCount': {'type': 'number', 'description': 'Number of clips from which co-occurrences were computed. Absent when the upstream API does not return a clip count.'}, 'effectiveQuery': {'type': 'string', 'description': 'Echoed query string for use in follow-up calls.'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'market': {'type': 'string', 'description': 'Market to narrow to (e.g. "National", "San Francisco"), matched as a whole value case-insensitively after trimming â\x80\x94 "National" does not match "NationalSpecialty". Values come from the market field of the unfiltered list. Blank is ignored.'}, 'network': {'type': 'string', 'description': 'Network to narrow to (e.g. "CNN", "ABC"), matched as a whole value case-insensitively after trimming â\x80\x94 "FOX" does not match "FOXNEWS". Values come from the network field of the unfiltered list. Blank is ignored.'}, 'stations': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Station IDs to return (e.g. ["CNN", "FOXNEWS", "MSNBC"]) â\x80\x94 the IDs the stations parameter of the other TV tools takes. Matches any listed ID, exactly and case-insensitively after trimming; IDs that match no station are named in the notice. Blank entries are ignored; omit it or pass [] to include every station.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'anyOf': [{'not': {'required': ['error']}, 'required': ['stations', 'activeCount', 'totalCount']}, {'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': ['gdelt_rate_limited', 'gdelt_unavailable'], 'description': 'Machine-readable failure mode. Declared by this tool: `gdelt_rate_limited`: GDELT rejected the request for its one-request-per-five-seconds limit, or too many requests were already queued for this one to start in time. `gdelt_unavailable`: GDELT TV API is unreachable or temporarily returned no usable data, including an empty station catalog. 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': 'Filter outcome: names the filters when no station matched, and names requested station IDs that are not in the catalog or that another filter excluded. Absent when every requested ID was returned and the result is not empty.'}, 'stations': {'type': 'array', 'items': {'type': 'object', 'required': ['stationId', 'description', 'market', 'network', 'startDate', 'endDate', 'isActive'], 'properties': {'market': {'type': 'string', 'description': 'Market (e.g. "National", "San Francisco").'}, 'endDate': {'type': 'string', 'description': 'Monitoring end date in ISO 8601 format.'}, 'network': {'type': 'string', 'description': 'Network affiliation (e.g. "CNN", "NBC").'}, 'isActive': {'type': 'boolean', 'description': 'True when the end date is within the last 24 hours (recently updated feed). False for discontinued stations.'}, 'startDate': {'type': 'string', 'description': 'Monitoring start date in ISO 8601 format.'}, 'stationId': {'type': 'string', 'description': 'Station ID used in TV query operators (e.g. "CNN").'}, 'description': {'type': 'string', 'description': 'Human-readable station description.'}}, 'description': 'A single TV station with monitoring metadata.', 'additionalProperties': False}, 'description': 'Stations matching every supplied filter â\x80\x94 all stations when none is given â\x80\x94 sorted by station ID.'}, 'totalCount': {'type': 'number', 'description': 'Number of stations returned â\x80\x94 the whole catalog when no filter is given.'}, 'activeCount': {'type': 'number', 'description': 'Number of returned stations currently flagged as active.'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['query'], 'properties': {'sort': {'enum': ['relevance', 'dateDesc', 'dateAsc', 'toneDesc', 'toneAsc', 'hybridRel'], 'type': 'string', 'default': 'relevance', 'description': 'Sort order: relevance (default), dateDesc/dateAsc, toneDesc/toneAsc, or hybridRel (GDELT hybrid relevance and recency).'}, 'query': {'type': 'string', 'minLength': 1, 'description': 'Search query. Supports GDELT operators: phrases ("bird flu"), boolean OR ((flu OR pandemic)), sourcecountry:china, sourcelang:spanish, domain:who.int, theme:TAX_DISEASE_OUTBREAK (GKG theme identifiers come from gdelt_search_themes), tone<-5, near20:"flu virus", repeat3:"outbreak".'}, 'timespan': {'type': 'string', 'description': 'Time window relative to now, minimum "15min"; other examples: "24h", "7d", "1m". Ignored when startDatetime/endDatetime are set. Maximum is 3 months (the full DOC API window). Defaults to the full 3-month window.'}, 'maxRecords': {'type': 'integer', 'default': 75, 'maximum': 250, 'minimum': 1, 'description': "Maximum number of articles to fetch (1â\x80\x93250); the response carries as many of them as fit its 48,000-byte budget. 250 is GDELT's hard per-call ceiling, not a page size â\x80\x94 there is no cursor past it, so a query that fills 250 must be split into narrower startDatetime/endDatetime windows instead."}, 'endDatetime': {'type': 'string', 'pattern': '^\\d{14}$', 'description': 'End of date range in GDELT format YYYYMMDDHHMMSS â\x80\x94 exactly 14 digits, no separators (e.g. 20240131235959). Must be supplied together with startDatetime; supplying only one of the two is rejected.'}, 'startDatetime': {'type': 'string', 'pattern': '^\\d{14}$', 'description': 'Start of date range in GDELT format YYYYMMDDHHMMSS â\x80\x94 exactly 14 digits, no separators (e.g. 20240101000000). Must be supplied together with endDatetime; supplying only one of the two is rejected.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'anyOf': [{'not': {'required': ['error']}, 'required': ['articles', 'effectiveQuery', 'totalCount']}, {'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_date_range', 'invalid_query', 'gdelt_rate_limited', 'gdelt_unavailable'], 'description': 'Machine-readable failure mode. Declared by this tool: `invalid_date_range`: Only one of startDatetime / endDatetime was supplied, one of them is not a real UTC calendar timestamp, or startDatetime is not earlier than endDatetime. `invalid_query`: GDELT rejected the query string as malformed â\x80\x94 bad keyword length, unbalanced parentheses, or an illegal character. `gdelt_rate_limited`: GDELT rejected the request for its one-request-per-five-seconds limit, or too many requests were already queued for this one to start in time. `gdelt_unavailable`: GDELT DOC API is unreachable or temporarily returned no usable data. 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': 'Guidance on an incomplete or empty result. When no articles matched, how to broaden the query or window. When GDELT returned articles dated outside an explicit startDatetime/endDatetime window, how many were dropped. When the response was cut to its 48,000-byte budget, how many articles it withheld and the route to them. When the maxRecords cap was reached on an uncut response, that more articles may exist â\x80\x94 a higher maxRecords below the 250 ceiling, or a narrower date window at it. Absent when a non-empty result set fit under both the cap and the budget.'}, 'articles': {'type': 'array', 'items': {'type': 'object', 'required': ['url', 'title', 'seendate', 'domain', 'language', 'sourcecountry'], 'properties': {'url': {'type': 'string', 'description': 'Article URL.'}, 'title': {'type': 'string', 'description': 'Article title.'}, 'domain': {'type': 'string', 'description': 'Source domain (e.g. "nytimes.com").'}, 'language': {'type': 'string', 'description': 'Article language (e.g. "English", "Spanish").'}, 'seendate': {'type': 'string', 'description': 'Publication datetime in GDELT format (YYYYMMDDTHHMMSSZ).'}, 'socialimage': {'type': 'string', 'description': 'Social sharing image URL when provided by the source.'}, 'sourcecountry': {'type': 'string', 'description': 'Country of the source outlet (e.g. "United States").'}}, 'description': 'A single news article with metadata.', 'additionalProperties': False}, 'description': 'Matching articles sorted per the sort parameter.'}, 'timespan': {'type': 'string', 'description': 'Echoed timespan parameter when provided.'}, 'totalCount': {'type': 'number', 'description': 'Number of articles returned in this response.'}, 'withheldCount': {'type': 'number', 'description': 'Articles GDELT returned inside the window that this response withheld to stay within its 48,000-byte budget â\x80\x94 fetched minus returned, not counting articles dropped for falling outside an explicit window. Absent when every in-window article fit.'}, 'effectiveQuery': {'type': 'string', 'description': 'Echoed query string for use in follow-up calls.'}, 'continuationWindows': {'type': 'array', 'items': {'type': 'object', 'required': ['startDatetime', 'endDatetime'], 'properties': {'endDatetime': {'type': 'string', 'description': 'End of this window in GDELT format YYYYMMDDHHMMSS.'}, 'startDatetime': {'type': 'string', 'description': 'Start of this window in GDELT format YYYYMMDDHHMMSS.'}}, 'description': 'One window to re-query with the same query string.', 'additionalProperties': False}, 'description': 'Windows to re-run this query against, one at a time, when more articles are out of reach of this response. For a response cut to its budget under dateDesc or dateAsc: one window resuming from the last returned article, reaching back to the second it was published, so articles from that second come back again â\x80\x94 or, when resuming there cannot reach a new article, one window skipping past that second. Otherwise â\x80\x94 maxRecords at its 250 ceiling, or a cut under any other sort â\x80\x94 the queried window halved, overlapping by one second so no article falls through the seam. Either way, de-duplicate by url. Absent when no window is known, or none would reach further.'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'default': 25, 'maximum': 100, 'minimum': 1, 'description': 'Maximum matches returned in this response (1â\x80\x93100).'}, 'query': {'type': 'string', 'description': 'Words to find in theme identifiers (e.g. "drought", "cyber attack", "refugee"), a family prefix with a word ("wb water", "crisislex"), or a whole identifier to confirm it is listed ("TAX_DISEASE_OUTBREAK"). Case-insensitive; a leading theme: is ignored; every word must match, or all the words joined must ("plant disease" matches TAX_PLANTDISEASE). Must contain at least one letter or digit.'}, 'offset': {'type': 'integer', 'default': 0, 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Zero-based offset into the ranked matches. Use nextOffset from the preceding response with the same query to retrieve the next page.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'anyOf': [{'not': {'required': ['error']}, 'required': ['matches', 'totalMatches', 'offset', 'limit', 'effectiveQuery', 'totalCount']}, {'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_query', 'offset_out_of_range', 'gdelt_unavailable'], 'description': 'Machine-readable failure mode. Declared by this tool: `invalid_query`: The query has no letter or digit to match â\x80\x94 blank, whitespace, or only punctuation such as "___". `offset_out_of_range`: The requested offset is at or beyond the end of a non-empty match list. `gdelt_unavailable`: The GDELT GKG theme lookup could not be downloaded, or came back empty or not as THEME<TAB>count lines. 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': {}}, 'limit': {'type': 'number', 'description': 'Maximum matches requested for this page.'}, 'notice': {'type': 'string', 'description': 'Search outcome: that the plural fallback supplied the matches and which words it tried, or, when nothing matched, how to retry. Absent when the query as given matched.'}, 'offset': {'type': 'number', 'description': 'Zero-based offset of this page.'}, 'matches': {'type': 'array', 'items': {'type': 'object', 'required': ['theme', 'count', 'operator'], 'properties': {'count': {'type': 'number', 'description': 'Count the GDELT theme lookup lists for this theme â\x80\x94 a static prevalence figure, not a live article total.'}, 'theme': {'type': 'string', 'description': 'GKG theme identifier (e.g. "NATURAL_DISASTER_DROUGHT").'}, 'operator': {'type': 'string', 'description': 'Paste-ready query operator for the DOC tools (e.g. "theme:NATURAL_DISASTER_DROUGHT").'}}, 'description': 'A matching GKG theme.', 'additionalProperties': False}, 'description': 'Matches on this page: an exact identifier match first, then by count descending, then by identifier.'}, 'nextOffset': {'type': 'number', 'description': 'Offset for the next page with the same query. Absent when this is the final page.'}, 'totalCount': {'type': 'number', 'description': 'Total themes matching the query â\x80\x94 the same figure as totalMatches.'}, 'totalMatches': {'type': 'number', 'description': 'Total themes matching the query, across all pages.'}, 'effectiveQuery': {'type': 'string', 'description': 'Echoed query string for use in follow-up calls.'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'default': 500, 'maximum': 500, 'minimum': 1, 'description': 'Maximum timeline points returned in this response (1â\x80\x93500).'}, 'query': {'type': 'string', 'minLength': 1, 'description': 'Search query for TV transcript content. Supports TV operators: station:CNN, network:CBS, market:"National", show:"Anderson Cooper", context:"vaccine". Boolean OR and phrase operators also work.'}, 'offset': {'type': 'integer', 'default': 0, 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Zero-based point offset into the deterministic date-then-station ordering. Use nextOffset from the preceding response with the same query inputs to retrieve the next page.'}, 'dateres': {'enum': ['hour', 'day', 'week', 'month', 'year'], 'type': 'string', 'description': 'Optional GDELT aggregation resolution. Omit to let GDELT choose from the query window; the effective recognized or inferred resolution is returned as dateResolution.'}, 'stations': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 10, 'description': 'Up to 10 station IDs to filter to (e.g. ["CNN", "FOXNEWS", "MSNBC"]). The GDELT TV API requires at least one station â\x80\x94 supply it here, or embed a station: selector directly in query. Omitting both is rejected; it does not fall back to all stations. Use gdelt_list_tv_stations to see valid station IDs.'}, 'timespan': {'type': 'string', 'description': 'Time window, e.g. "1m", "6m", "1y". Ignored when startDatetime/endDatetime are set. TV data spans 2009â\x80\x93October 2024.'}, 'normalize': {'type': 'boolean', 'default': True, 'description': 'When true (default), values are normalized as % of total airtime, enabling cross-station comparison. When false, returns raw matching 15-second clip counts.'}, 'smoothing': {'type': 'integer', 'maximum': 5, 'minimum': 0, 'description': 'Smoothing window in timesteps (0 = none). Reduces noise for sporadic topics.'}, 'endDatetime': {'type': 'string', 'pattern': '^\\d{14}$', 'description': 'End datetime in GDELT format YYYYMMDDHHMMSS â\x80\x94 exactly 14 digits, no separators (e.g. 20200131235959). Must pair with startDatetime; supplying only one of the two is rejected.'}, 'startDatetime': {'type': 'string', 'pattern': '^\\d{14}$', 'description': 'Start datetime in GDELT format YYYYMMDDHHMMSS â\x80\x94 exactly 14 digits, no separators (e.g. 20200101000000). Must pair with endDatetime; supplying only one of the two is rejected.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'anyOf': [{'not': {'required': ['error']}, 'required': ['series', 'normalized', 'totalPoints', 'offset', 'limit', 'effectiveQuery', 'totalCount']}, {'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_date_range', 'offset_out_of_range', 'invalid_query', 'gdelt_rate_limited', 'gdelt_unavailable'], 'description': 'Machine-readable failure mode. Declared by this tool: `invalid_date_range`: Only one of startDatetime / endDatetime was supplied, one of them is not a real UTC calendar timestamp, or startDatetime is not earlier than endDatetime. `offset_out_of_range`: The requested point offset is at or beyond the end of a non-empty timeline. `invalid_query`: GDELT rejected the query â\x80\x94 no station was selected, or the query string is malformed. `gdelt_rate_limited`: GDELT rejected the request for its one-request-per-five-seconds limit, or too many requests were already queued for this one to start in time. `gdelt_unavailable`: GDELT TV API is unreachable or temporarily returned no usable data. 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': {}}, 'limit': {'type': 'number', 'description': 'Maximum points requested for this page.'}, 'notice': {'type': 'string', 'description': 'Guidance when the query matched no TV coverage â\x80\x94 the resolved timespan window, the October 2024 archive cutoff, and how to check station coverage. Absent when coverage was returned.'}, 'offset': {'type': 'number', 'description': 'Zero-based offset of this point page.'}, 'series': {'type': 'array', 'items': {'type': 'object', 'required': ['station', 'data'], 'properties': {'data': {'type': 'array', 'items': {'type': 'object', 'required': ['date', 'value'], 'properties': {'date': {'type': 'string', 'description': 'Timestep in ISO 8601 format.'}, 'value': {'type': 'number', 'description': 'Coverage value (normalized % or raw matching 15-second clip count).'}}, 'description': 'A single coverage data point.', 'additionalProperties': False}, 'description': 'Time-ordered coverage data for this station.'}, 'station': {'type': 'string', 'description': 'Station ID (e.g. "CNN").'}}, 'description': 'Coverage time series for a single station.', 'additionalProperties': False}, 'description': 'Station series represented in this point page.'}, 'timeRange': {'type': 'object', 'required': ['start', 'end'], 'properties': {'end': {'type': 'string', 'description': 'Latest date in the returned data.'}, 'start': {'type': 'string', 'description': 'Earliest date in the returned data.'}}, 'description': 'Date range spanned by this returned point page. Omitted when the page is empty.', 'additionalProperties': False}, 'nextOffset': {'type': 'number', 'description': 'Offset for the next page using the same query inputs. Absent when this is the final page.'}, 'normalized': {'type': 'boolean', 'description': 'True when values are normalized coverage percentages.'}, 'totalCount': {'type': 'number', 'description': 'Number of station series returned.'}, 'totalPoints': {'type': 'number', 'description': 'Total points available across all matched station series before pagination.'}, 'dateResolution': {'enum': ['hour', 'day', 'week', 'month', 'year'], 'type': 'string', 'description': 'Temporal resolution of data points â\x80\x94 as GDELT reported it, as requested via dateres, or inferred from the returned intervals. Omitted when none of those can establish it.'}, 'effectiveQuery': {'type': 'string', 'description': 'Echoed query string for use in follow-up calls.'}}, 'additionalProperties': False}
最近のツール変更
類似のMCPサーバー
Gdelt
Provides access to GDELT global news and event data for researching events, media coverage, language, and tone.
Mukoko News
Searches and reads African news, provides regional briefings and source views, tracks stories, and analyzes coverage trends, cate…
Geotone — Global News Signals
Provides live global news rankings, story timelines, country and topic coverage statistics, tone analysis, and geopolitical trend…
newsflash
Queries a deduplicated, corroborated news-event graph and its underlying articles, sources, coverage, timestamps, and confidence …
web-data-toolkit
Retrieves YouTube transcripts, Google Trends data, and App Store and Google Play reviews.
typesearch
Searches recent worldwide news, retrieves short article excerpts, finds related coverage, and creates charts from news data.
Newsmind
Enables reading, searching, and monitoring RSS feeds with semantic search, story clustering, watches, and OPML import.
LiveDataLink
Exposes public-data tools covering economics, labor, banking, transport, books, legal opinions, carriers, environmental data, and…