APITube News について
APITube Newsは、AIアシスタントからリアルタイムおよび過去のニュースに構造化データでアクセスする、ホスト型MCPサーバーです。検索と分類ツールでは、感情や固有表現を含む詳細な絞り込みができます。
主な機能
- 01リアルタイム・過去のニュース検索
- 02言語、情報源、日付、感情で絞り込み
- 03記事の固有表現とトピックを付与
- 04suggestによる分類IDの解決
- 05結果の並べ替え、ページ分割、集計、強調表示
活用シーン
- 01企業報道と感情のモニタリング
- 02最近のニュースによるエージェントの情報補強
- 03テーマ別の速報追跡
- 04報道量と感情の比較
MCP 対応
読み取り専用の `search_news` と `suggest` ツールに加え、企業の監視、トピックの感情分析、速報検索、報道比較用のプロンプトを提供します。MCPクライアントはホスト型のStreamable HTTPエンドポイントに接続します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mcp.apitube.io/claude mcp add --transport http io-apitube-news https://mcp.apitube.io/{"mcpServers":{"io-apitube-news":{"type":"http","url":"https://mcp.apitube.io/"}}}Cursor で開く{"servers":{"io-apitube-news":{"type":"http","url":"https://mcp.apitube.io/"}}}VS Code で開く{"mcpServers":{"io-apitube-news":{"type":"http","url":"https://mcp.apitube.io/"}}}{"mcpServers":{"io-apitube-news":{"serverUrl":"https://mcp.apitube.io/"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
https://mcp.apitube.io/認証が必要ツール
2| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| fl | string | いいえ | 返すフィールドをカンマ区切りで指定します(ドット記法に対応)。例:"id,title,source.name,sentiment.overall.score"。 |
| hl | boolean|object | いいえ | ハイライトを有効にする(true)か、オブジェクト形式を指定します。 |
| hl.fl | string | いいえ | ハイライトするフィールドをカンマ区切りで指定します。 |
| hl.tag | object | いいえ | |
| hl.tag.pre | string | いいえ | |
| hl.tag.post | string | いいえ | |
| hl.fragsize | integer | いいえ | |
| hl.snippets | integer | いいえ | |
| page | integer | いいえ | ページ番号(デフォルトは 1)。 |
| sort | object | いいえ | |
| sort.by | enum | いいえ | 並べ替えに使用するフィールド。published_at | created_at | id | source.rank.opr | read_time | sentiment.overall.score | sentiment.title.score | sentiment.body.score | media.images.count | media.videos.count | media.images.width.min | media.images.width.max | media.images.height.min | media.images.height.max | media_richness | shares.facebook.min | shares.facebook.max | shares.twitter.min | shares.twitter.max | shares.reddit.min | shares.reddit.max | relevance | engagement | quality | controversy | trust |
| sort.order | enum | いいえ | ソート方向。asc | desc |
| brand | object | いいえ | |
| brand.name | string | いいえ | ブランド名をカンマ区切りで指定します(最大 3 件)。 |
| event | object | いいえ | |
| event.name | string | いいえ | 名前付きイベントエンティティをカンマ区切りで指定します(最大 3 件)。ディレクトリはほぼ空です。type/category を優先してください。不明な名前は 400 ER0228 を返します。 |
| event.type | string | いいえ | イベントコードをカンマ区切りで指定します(最大 5 件)。/v1/news/event-types を参照してください。例:layoffs、ipo、recall、wildfire。 |
| event.category | enum | いいえ | イベント種別。business | society | environment |
| facet | boolean|object | いいえ | ファセットを有効にする(true)か、分析用にオブジェクト形式を指定します。 |
| facet.field | string | いいえ | ファセットフィールドをカンマ区切りで指定します。 |
| facet.limit | integer | いいえ | |
| facet.range | object | いいえ | 範囲ファセット → facet.range.* パラメーター。 |
| facet.range.end | string | いいえ | |
| facet.range.gap | string | いいえ | 例:日付には "1MONTH"、数値には "0.25"。 |
| facet.range.field | string | いいえ | バケット化する数値/日付フィールド。 |
| facet.range.start | string | いいえ | |
| facet.mincount | integer | いいえ | |
| media | object | いいえ | メディアコンテンツのフィルター。 |
| media.images | object | いいえ | |
| media.images.count | object | いいえ | |
| media.images.count.max | integer | いいえ | |
| media.images.count.min | integer | いいえ | |
| media.images.width | object | いいえ | |
| media.images.width.max | integer | いいえ | |
| media.images.width.min | integer | いいえ | |
| media.images.height | object | いいえ | |
| media.images.height.max | integer | いいえ | |
| media.images.height.min | integer | いいえ | |
| media.videos | object | いいえ | |
| media.videos.count | object | いいえ | |
| media.videos.count.max | integer | いいえ | |
| media.videos.count.min | integer | いいえ | |
| title | string | いいえ | 記事タイトルで検索します。キーワードは最大 3 個までカンマ区切りで指定します(OR)。完全一致にはフレーズを引用符で囲みます。 |
| topic | object | いいえ | |
| topic.id | string | いいえ | トピック ID をカンマ区切りで指定します(最大 3 件)。 |
| author | object | いいえ | |
| author.id | string | いいえ | 著者 ID をカンマ区切りで指定します(最大 3 件)。 |
| author.name | string | いいえ | 著者名をカンマ区切りで指定します(最大 3 件)。 |
| entity | object | いいえ | 名前付きエンティティのフィルター。 |
| entity.id | string | いいえ | 数値エンティティ ID をカンマ区切りで指定します(最大 3 件)。 |
| ignore | object | いいえ | 除外フィルター。これらに一致する記事を除外します。正のフィルターと同じ項目を指定してください。 |
| ignore.brand | object | いいえ | |
| ignore.brand.name | string | いいえ | |
| ignore.event | object | いいえ | |
| ignore.event.name | string | いいえ | 次の指定イベントを除外します(最大3件)。 |
| ignore.event.type | string | いいえ | 次のイベントコードを除外します(最大5件)。 |
| ignore.title | string | いいえ | 次のキーワードを含むタイトルを除外します。キーワードはカンマ区切りです。 |
| ignore.topic | object | いいえ | |
| ignore.topic.id | string | いいえ | |
| ignore.author | object | いいえ | |
| ignore.author.id | string | いいえ | |
| ignore.author.name | string | いいえ | |
| ignore.entity | object | いいえ | |
| ignore.entity.id | string | いいえ | |
| ignore.person | object | いいえ | |
| ignore.person.name | string | いいえ | |
| ignore.source | object | いいえ | |
| ignore.source.id | string | いいえ | |
| ignore.source.bias | string | いいえ | |
| ignore.source.domain | string | いいえ | |
| ignore.source.country | object | いいえ | |
| ignore.source.country.code | string | いいえ | |
| ignore.disease | object | いいえ | |
| ignore.disease.name | string | いいえ | |
| ignore.category | object | いいえ | |
| ignore.category.id | string | いいえ | |
| ignore.disaster | object | いいえ | |
| ignore.disaster.name | string | いいえ | |
| ignore.industry | object | いいえ | |
| ignore.industry.id | string | いいえ | |
| ignore.language | object | いいえ | |
| ignore.language.code | string | いいえ | |
| ignore.location | object | いいえ | |
| ignore.location.name | string | いいえ | |
| ignore.organization | object | いいえ | |
| ignore.organization.name | string | いいえ | |
| person | object | いいえ | |
| person.name | string | いいえ | 人物名をカンマ区切りで指定します(最大3名)。 |
| source | object | いいえ | ソースの絞り込み条件。 |
| source.id | string | いいえ | ソース IDをカンマ区切りで指定します(最大3件)。 |
| source.bias | enum | いいえ | メディアの政治的傾向(複数の場合はカンマ区切り)。left | center | right |
| source.rank | object | いいえ | |
| source.rank.opr | object | いいえ | OpenPageRank の範囲(0-7)。 |
| source.rank.opr.max | number | いいえ | |
| source.rank.opr.min | number | いいえ | |
| source.domain | string | いいえ | ドメイン(例:"cnn.com,bbc.com")。 |
| source.country | object | いいえ | |
| source.country.code | string | いいえ | 国コード(例:"us,uk,de")。 |
| disease | object | いいえ | |
| disease.name | string | いいえ | 疾病名をカンマ区切りで指定します(最大3件)。 |
| category | object | いいえ | IPTCカテゴリの絞り込み条件。 |
| category.id | string | いいえ | カテゴリ ID(例:"medtop:04000000")。カンマ区切りで最大3件。 |
| disaster | object | いいえ | |
| disaster.name | string | いいえ | 災害名をカンマ区切りで指定します(最大3件)。 |
| industry | object | いいえ | |
| industry.id | string | いいえ | 業種 IDをカンマ区切りで指定します(最大3件)。 |
| language | object | いいえ | 言語によるフィルター。 |
| language.code | string | いいえ | ISOコードをカンマ区切りで最大3件指定します(例:"en,ru,fr")。 |
| location | object | いいえ | |
| location.name | string | いいえ | 場所名をカンマ区切りで指定します(最大3件)。 |
| per_page | integer | いいえ | 1ページあたりの結果数(デフォルトは10)。1回のレスポンスに含まれる記事は最大25件です。 |
| has_image | enum | いいえ | 画像を1枚以上含む記事。0 | 1 |
| has_video | enum | いいえ | 動画を1本以上含む記事。0 | 1 |
| read_time | object | いいえ | 読了時間(分)。 |
| read_time.max | integer | いいえ | |
| read_time.min | integer | いいえ | |
| sentiment | object | いいえ | センチメントのフィルター。スコアの範囲は -1.0..1.0 です。 |
| sentiment.body | object | いいえ | |
| sentiment.body.score | object | いいえ | |
| sentiment.body.score.max | number | いいえ | |
| sentiment.body.score.min | number | いいえ | |
| sentiment.mixed | enum | いいえ | タイトルと本文のセンチメントが異なります。0 | 1 |
| sentiment.title | object | いいえ | |
| sentiment.title.score | object | いいえ | |
| sentiment.title.score.max | number | いいえ | |
| sentiment.title.score.min | number | いいえ | |
| sentiment.overall | object | いいえ | |
| sentiment.overall.score | object | いいえ | |
| sentiment.overall.score.max | number | いいえ | |
| sentiment.overall.score.min | number | いいえ | |
| sentiment.overall.polarity | enum | いいえ | 全体的なセンチメントの極性。positive | negative | neutral |
| sentiment.consistent | enum | いいえ | タイトルと本文のセンチメントが一致します。0 | 1 |
| has_author | enum | いいえ | 著者名が記載されています。0 | 1 |
| is_paywall | enum | いいえ | 0 に設定すると、ペイウォールのあるコンテンツを除外します。0 | 1 |
| is_breaking | enum | いいえ | 速報ニュースのみ。0 | 1 |
| is_duplicate | enum | いいえ | 0 に設定すると、重複コンテンツを除外します。0 | 1 |
| is_long_read | enum | いいえ | 読了時間 >= 5 分。0 | 1 |
| organization | object | いいえ | |
| organization.name | string | いいえ | 組織名(カンマ区切りで最大 3 件)。 |
| published_at | object | いいえ | 公開日の範囲(ISO 8601)。 |
| published_at.end | string | いいえ | YYYY-MM-DD または RFC3339。 |
| published_at.start | string | いいえ | YYYY-MM-DD または RFC3339。 |
| has_hq_images | enum | いいえ | 高品質な画像(幅 >= 1200px)。0 | 1 |
| is_media_rich | enum | いいえ | 画像と動画の両方を含みます。0 | 1 |
| is_short_read | enum | いいえ | 読了時間 < 3 分。0 | 1 |
| is_premium_source | enum | いいえ | プレミアムソース(OPR >= 6)。0 | 1 |
| is_verified_source | enum | いいえ | 検証済みソース(OPR >= 5)。0 | 1 |
詳細
APITube News MCP
Model Context Protocol を通じて、AI エージェント向けにリアルタイムニュースと過去のニュースを検索できます。
https://mcp.apitube.io/ でホストされています。インストールするパッケージはなく、ローカルプロセスを起動し続ける必要もありません。
クイックスタート • ツール • フィルター • プロンプト • 料金 • トラブルシューティング • ドキュメント • サポート
300,000 以上のソース · 177 か国 · 59 言語。すべての記事にセンチメントとエンティティ情報が付与されます。
概要
APITube MCP サーバーを使うと、アシスタントはスクレイピングした HTML ではなく、構造化データとして世界中のニュースにリアルタイムでアクセスできます。2 つのツールを提供します。
search_news— ニュース API のフィルターの大部分を 1 回の呼び出しで利用できます。キーワード、言語、国、ソースドメインと品質ランク、センチメント範囲、名前付きエンティティ、メディア、日付範囲、並べ替え、ファセット、ハイライトに対応しています。suggest— 「Tesla」のような名前を、精密なフィルターに必要なエンティティ、カテゴリ、トピック、業界の ID に変換します。
すべての記事には、その背後にあるパイプラインによって、センチメントスコア、抽出されたエンティティ(人物、組織、場所、ブランド、イベント)、IPTC カテゴリ、トピック、業界の情報が付加されます。
MCP client → mcp.apitube.io → api.apitube.io
(this server) (News API)
JSON-RPC over HTTP, Authorization: Bearer <API_KEY>
| プロパティ | 値 |
|---|---|
| エンドポイント | https://mcp.apitube.io/ |
| トランスポート | Streamable HTTP(POST /)、JSON-RPC 2.0 |
| プロトコル | 2025-11-25。クライアントのバージョンに合わせてネゴシエーションされます(2024-11-05 も使用できます) |
| サーバー | APITube News MCP-Server 1.0.0 |
| 認証 | Authorization: Bearer <API_KEY>、または X-API-Key: <API_KEY> |
| レジストリ | io.apitube/news(server.json) |
クイックスタート
- apitube.io で API キーを取得します。
- 以下のブロックを使ってサーバーをクライアントに追加します。各ブロックは
configs/にすぐ使えるファイルとしても用意されています。 - クライアントを再起動し、「先週の Tesla に関する英語の好意的なニュースを探して」のように質問します。
Claude Code
claude mcp add --transport http apitube-news https://mcp.apitube.io/ \
--header "Authorization: Bearer YOUR_API_KEY"
/mcp で確認します。代わりにサーバーをプロジェクトにコミットするには、
configs/claude-code.mcp.json をリポジトリのルートに .mcp.json として配置します。
Cline
MCP Servers → Configure、または CLI の場合は ~/.cline/mcp.json を使います。
{
"mcpServers": {
"apitube-news": {
"type": "streamableHttp",
"url": "https://mcp.apitube.io/",
"headers": { "Authorization": "Bearer YOUR_API_KEY" },
"disabled": false,
"autoApprove": []
}
}
}
type は明示的に設定する必要があります。設定しないと、Cline はこのサーバーが提供していない従来の SSE トランスポートにフォールバックします。どちらのツールも読み取り専用なので、毎回の呼び出しを確認したくない場合は autoApprove: ["search_news", "suggest"] を安全に設定できます。
Cursor
~/.cursor/mcp.json(グローバル)または .cursor/mcp.json(プロジェクトごと):
{
"mcpServers": {
"apitube-news": {
"url": "https://mcp.apitube.io/",
"headers": { "Authorization": "Bearer YOUR_API_KEY" }
}
}
}
Settings → MCP に、apitube-news が接続済みとして表示されます。
Claude Desktop
Claude Desktop はローカルプロセスのみを起動するため、
mcp-remote を使ってホストされたサーバーに接続します。claude_desktop_config.json を編集します(macOS では ~/Library/Application Support/Claude/、Windows では %APPDATA%\Claude\)。
{
"mcpServers": {
"apitube-news": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://mcp.apitube.io/",
"--header",
"Authorization: Bearer YOUR_API_KEY"
]
}
}
}
アプリを再起動すると、スライダーアイコンの下にツールが表示されます。
VS Code (GitHub Copilot)
キーを平文で保存せず、入力を求める形式の .vscode/mcp.json:
{
"inputs": [
{ "type": "promptString", "id": "apitube-key", "description": "APITube API Key", "password": true }
],
"servers": {
"apitube-news": {
"type": "http",
"url": "https://mcp.apitube.io/",
"headers": { "Authorization": "Bearer ${input:apitube-key}" }
}
}
}
Copilot Chat を Agent モードで開き、apitube-news ツールを有効にします。
Windsurf
~/.codeium/windsurf/mcp_config.json — url ではなく serverUrl である点に注意してください。
{
"mcpServers": {
"apitube-news": {
"serverUrl": "https://mcp.apitube.io/",
"headers": { "Authorization": "Bearer YOUR_API_KEY" }
}
}
}
Windsurf Settings → Cascade → MCP Servers → refresh の順に選択します。
その他のクライアント、または通常の curl
Streamable HTTP に対応するクライアントなら URL を直接指定できます。stdio のみ対応するクライアントでは、Claude Desktop のブロックと同様に mcp-remote を使います。ハンドシェイクにキーは必要ありません。
curl -s -X POST https://mcp.apitube.io/ \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"curl","version":"1.0.0"}},"id":1}'
{
"jsonrpc": "2.0",
"result": {
"protocolVersion": "2024-11-05",
"serverInfo": { "name": "APITube News MCP-Server", "version": "1.0.0" },
"capabilities": { "tools": { "listChanged": true }, "prompts": { "listChanged": true } }
}
}
実際の検索ではキーを追加します。
curl -s -X POST https://mcp.apitube.io/ \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"search_news","arguments":{"title":"Bitcoin","language":{"code":"en"},"per_page":5}},"id":1}'
ツール
| ツール | タイトル | 種類 | 機能 |
|---|---|---|---|
search_news | ニュース検索 | 読み取り専用 | News API のフィルターセットを使って記事を検索します |
suggest | 分類 ID の解決 | 読み取り専用 | 名前またはプレフィックスをエンティティ/カテゴリ/トピック/業界の ID に変換します |
search_news
引数はネストされたオブジェクトで指定します。ドット区切りの文字列は使えません。
{ "language": { "code": "en" } } // ✅
{ "language.code": "en" } // ❌ rejected
初回の呼び出し前に知っておくべき点は 3 つあります。
- 記事本文はデフォルトでは返されません。 デフォルトのフィールド一覧は
id,title,href,published_at,description,source.domainです。テキストを取得するには、fl: "title,href,body"のように明示的に指定します。 - 1 回のレスポンスで返される記事は最大 25 件です。
per_pageのデフォルトは 10 で、上限は 25 です。続きを取得するにはpageを使います。結果セットをさらに切り詰める必要がある場合(全文の記事 25 件でも大きくなることがあります)、レスポンスに省略された件数を示す_mcp_truncatedフィールドが追加されます。 - タイトル検索の対象期間は最大 31 日です。 日付を指定しない場合は直近 31 日が対象です。これより長い期間を明示的に指定すると
400 ER0110で失敗します。より長い期間を検索する場合は、1 か月単位の期間に分割してください。タイトルフィルターを使わない検索には期間の制限はありません。
誤った引数は黙って無視されるのではなく、候補とともに JSON-RPC -32602 で拒否されます。
Unknown parameter 'langauge.code'. Did you mean 'language.code'?
export、query、prompt は意図的に公開していません。
suggest
正確なフィルターには推測できない ID が必要なため、先に解決します。
suggest({ type: "entities", prefix: "Tesla" })
// → [{ id: 474, name: "Tesla Robotaxi", type: "brand", … }, …]
search_news({ entity: { id: "474" }, language: { code: "en" } })
type は entities、categories、topics、industries のいずれかです。prefix には名前またはその先頭部分を指定します。どちらも必須です。名前の先頭部分で照合されるため、最初に一致した結果で絞り込む前に名前を確認してください。
フィルター
以下はすべて search_news に適用されます。コンテンツ、分類、言語、著者、ソースの各フィルターには、除外用の ignore.* 対応フィルターがあります(ignore.title、ignore.entity.id、ignore.source.domain など)。感情、メディア、時間のフィルターにはありません。複数値を指定するフィルターでは、カンマ区切りで最大3つの値を指定できます。
has_* と is_* に指定できるのは 0 または 1 であり、true/false ではありません。
コンテンツと分類
| 引数 | 例 |
|---|---|
title | "Bitcoin" — カンマ区切りのキーワードを最大3つ指定できます。完全一致するフレーズには引用符を使います |
category.id | "medtop:04000000" — IPTC 分類 |
topic.id | "industry.crypto_news" — suggest から取得したスラッグ |
industry.id | "411" — 数値。suggest から取得します |
entity.id | "474" — suggest から取得します |
person.name · organization.name · location.name | "Elon Musk" · "Tesla,Apple" · "Tokyo" |
brand.name · event.name · disaster.name · disease.name | "Nike" · "Olympics" · "Earthquake" · "COVID-19" |
author.id · author.name · has_author | "123" · "Jane Smith" · 1 |
language.code | "en,de,fr" |
感情
| 引数 | 例 |
|---|---|
sentiment.overall.polarity | "positive" | "negative" | "neutral" |
sentiment.overall.score.{min,max} | -1.0 … 1.0 |
sentiment.title.score · sentiment.body.score | 同じ範囲。見出しまたは本文のみ |
sentiment.mixed · sentiment.consistent | 1 — タイトルと本文の感情が不一致/一致 |
ソースと品質
| 引数 | 例 |
|---|---|
source.domain · source.id | "cnn.com,bbc.com" · "314" |
source.country.code | "us,uk,de" |
source.bias | "left" | "center" | "right" |
source.rank.opr.{min,max} | OpenPageRank、0~7 |
is_premium_source · is_verified_source | OPR ≥ 6 · OPR ≥ 5 |
is_duplicate · is_paywall | 除外する場合は 0 |
メディア、形式、時間
| 引数 | 例 |
|---|---|
has_image · has_video · has_hq_images · is_media_rich | 1 |
media.images.count.{min,max} · media.images.{width,height} · media.videos.count | { "min": 2 } |
is_breaking · is_long_read · is_short_read | 1 — 読了時間が5分以上/3分未満 |
read_time.{min,max} | 分 |
published_at.{start,end} | "2026-01-01" … "2026-01-31"、ISO 8601 |
出力:並べ替え、ページ分割、ファセット、ハイライト
| 引数 | 例 |
|---|---|
sort.by | published_at、relevance、engagement、quality、controversy、trust、source.rank.opr、sentiment.*.score、media.*、read_time、… |
sort.order | "asc" | "desc" |
page · per_page | 1 · 10(最大25) |
fl | "id,title,source.name,sentiment.overall.score" — 入れ子フィールドにはドット記法を使います |
facet | true、または { "field": "source.id,language.id", "limit": 20, "mincount": 5 } |
facet.range | { "field": "published_at", "start": "2026-01-01", "end": "2026-12-31", "gap": "1MONTH" } |
hl | true、または { "fl": "title,body", "fragsize": 300, "tag": { "pre": "<mark>", "post": "</mark>" } } |
プロンプト
MCP プロンプトに対応するクライアントで使えるスラッシュコマンド:
| プロンプト | 引数 | 機能 |
|---|---|---|
monitor_company | company(必須)、days | 1社に関する最近の報道と感情 |
topic_sentiment | topic(必須)、language | トピックに関する報道の感情の内訳 |
breaking_news | subject、country | 最新の速報記事。必要に応じて対象を絞り込めます |
compare_coverage | subject_a、subject_b(両方必須) | 2つの対象の報道量と感情を並べて比較します |
ユースケース
| 目的 | 依頼する内容 | ツール |
|---|---|---|
| 複数の言語でブランドを監視する | 過去7日間の、センチメント付きの企業に関する言及 | suggest → search_news |
| 取引モデルやリスクモデルにデータを提供する | エンティティと業界で絞り込んだ、センチメントスコア付きのニュース | suggest → search_news |
| エージェントにリアルタイムのニュースを参照させる | RAG 用に fl: "title,href,body" を指定した最近の記事 | search_news |
| 継続中のニュースを追跡する | is_breaking: 1 を指定し、published_at で並べ替える | search_news |
| シェア・オブ・ボイスを測定する | 2つの対象を記事数とセンチメントで比較する | compare_coverage |
| アーカイブを調査する | タイトルで絞り込まずに日付範囲を指定する — 31日間の制限はありません | search_news |
料金
MCP サーバーは有料プランに含まれています。無料プランで利用できるのは REST API のみです。
| プラン | 料金 | リクエスト数 | MCP サーバー |
|---|---|---|---|
| Free | $0 | 100/day | — |
| Starter | $29/mo | 10,000/mo | ✅ |
| Basic | $99/mo | 50,000/mo | ✅ |
| Professional | $199/mo | 150,000/mo | ✅ |
年間契約では20%割引になります。最新の料金は常に apitube.io/pricing でご確認ください。
ページサイズには別途上限があります。MCP では、REST API で許可されている per_page の上限が大きくても、どのプランでも1回のレスポンスに含められる記事は最大25件です。
トラブルシューティング
認証とトランスポートのエラーは、メッセージに APITube のコードを含む JSON-RPC -32000 と、対応する HTTP ステータスで返されます。
| コード | HTTP | 意味 | 対処方法 |
|---|---|---|---|
ER0201 | 401 | API キーがサーバーに届いていません | ヘッダーがないか、クライアントがカスタムヘッダーを削除しています — mcp-remote ブリッジを使用してください |
ER0202 | 401 | キーが無効または失効しています | apitube.io からキーをコピーし直してください |
ER0230 | 401 | キーの有効期限が切れています | キーの設定で有効期限を延長してください |
ER0601 / ER0602 | 403 | このキーでは IP またはリファラーが許可されていません | キーの制限を調整してください |
ER0603 | 403 | このキーではこのツールの呼び出しが許可されていません | search_news / suggest へのアクセスを許可してください |
ER0429 | 429 | 1分あたりのリクエスト数が120件を超えています | リクエストを減らしてください — 上限はキーごとに適用されます |
ER0900 | 503 | キーの検証が一時的に利用できません | 再試行してください。キーに問題はないため、再発行しないでください |
その他の症状
| 症状 | 原因 |
|---|---|
| クライアントがループ状態で再接続する | GET SSE ストリームを開いています。想定される動作:サーバーはイベントストリームを持たないため 405 Allow: POST を返し、準拠クライアントは POST にフォールバックします |
提案された名前とともに -32602 が返る | 引数のスペルが間違っています — 引数はネストされたオブジェクトであり、ドット区切りのキーは使えません |
Python スクリプトから 403 が返る | デフォルトの Python-urllib/3.x ユーザーエージェントはエッジで拒否されます。正規の User-Agent を送信するか、requests を使用してください |
| 古いニュースが検索結果に表示されない | タイトル検索の対象期間は31日間のみです。published_at を追加し、月ごとに検索してください |
| 記事に本文が含まれていない | 本文はデフォルトで除外されます。fl: "title,href,body" を追加してください |
ドキュメント
| リソース | リンク |
|---|---|
| MCP サーバーのリファレンス | https://docs.apitube.io/platform/news-api/ai/mcp-server |
| エディターのセットアップ、ワンクリックインストールリンク | https://docs.apitube.io/platform/news-api/ai/code-editors |
| News API の全パラメーター | https://docs.apitube.io/platform/news-api/everything |
| 認証 | https://docs.apitube.io/platform/news-api/authentication |
| 機械可読なサーバーカード | https://docs.apitube.io/.well-known/mcp/server-card.json |
| エージェントスキル、SDK、移行キット | https://github.com/apitube |
| このサーバーをエージェントとしてインストールする | llms-install.md |
レジストリ
このリポジトリの server.json から、公式 MCP Registry に公開されています。
mcp-name: io.apitube/news
Claude Market の MCP ディレクトリで詳細をご覧ください。
サポート
| チャネル | 問い合わせ先 |
|---|---|
| バグと修正 | issue を作成 |
| アカウントと請求 | [email protected] |
| その他すべて | https://apitube.io/contact |
ここに記載されている内容と異なる動作をする引数が見つかりましたか?送信したリクエストと受け取ったレスポンスを添えて、issue を作成してください。こうした修正が、投稿していただける情報の中で最も役立ちます。
ライセンス
MIT — LICENSE をご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。