mcpField
M
MCP News API Server

MCP News API Server

ローカル
github.com/matteoantoci開発ツール377 週間前に更新

MCP News API Server について

MCP News API Serverは、2つのMCPツールを通じてNews APIの記事検索とトップニュース取得を提供します。記事データを扱うMCPクライアントやワークフロー向けで、複数の条件で絞り込めます。

主な機能

  1. 01キーワードと条件による記事検索
  2. 02カテゴリ別トップニュースの取得
  3. 03ソース、ドメイン、日付、言語による絞り込み
  4. 04記事結果の並べ替えとページ分割
  5. 05記事メタデータと本文の返却

活用シーン

  1. 01テーマと期間を指定した記事検索
  2. 02国やカテゴリ別のトップニュース取得
  3. 03ニュース記事データのMCPワークフローへの取り込み

MCP 対応

MCP サーバーとして `search_articles` と `get_top_headlines` を MCP クライアントに公開します。stdio で通信し、News API キーは `NEWSAPI_KEY` から読み込みます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

MCP News API サーバー

News API(https://newsapi.org)のエンドポイントを公開し、ニュース記事の検索と取得を行う Model Context Protocol(MCP)サーバーです。このサーバーを使うと、MCP プロトコル経由でニュースデータにプログラムからアクセスできます。

前提条件

  • Node.js(v18 以降を推奨)
  • npm(Node.js に付属)
  • News API キー(https://newsapi.org から取得してください)
  • (任意)MCP 対応のクライアントまたはランナー(例:VSCode 拡張機能、CLI)

セットアップ

  1. リポジトリをクローンするか、プロジェクトディレクトリにいることを確認してください。

  2. 依存関係をインストールします:

    npm install
    
  3. サーバーをビルドします:

    npm run build
    

    コンパイル済みの JavaScript コードを含む build ディレクトリが作成されます。

  4. News API キーを設定します: サーバーは NEWSAPI_KEY 環境変数から API キーを読み取ります。サーバーを実行する前に、この変数を環境に設定してください。 例(Bash/Zsh):

    export NEWSAPI_KEY="YOUR_API_KEY"
    

    "YOUR_API_KEY" を実際の News API キーに置き換えてください。

サーバーの実行

  • 直接実行: NEWSAPI_KEY 環境変数が設定されていることを確認してから、次を実行します:

    node build/index.js
    

    または、start スクリプトがある場合は、次を実行します:

    npm run start
    
  • MCP ランナー経由: stdio トランスポートを使用してサーバーを実行するように、MCP クライアントを設定してください。MCP ランナーの設定で、API キーの環境変数も設定する必要があります。 MCP 設定の例:

    "mcp-newsapi": {
      "transportType": "stdio",
      "command": "node",
      "args": [
        "/path/to/mcp-newsapi/build/index.js"
      ],
      "environment": {
        "NEWSAPI_KEY": "YOUR_API_KEY"
      }
      // ... other optional settings ...
    }
    

    "YOUR_API_KEY" を実際の News API キーに置き換えてください。

利用可能なツール

このサーバーは、News API のエンドポイントに対応する次のツールを MCP 経由で公開します:

search_articles
  • 説明: News API の「Everything」エンドポイントを使用してニュース記事を検索します。
  • 入力:
    • q(string、必須):記事のタイトルと本文を検索するキーワードまたはフレーズ。
    • sources(string、任意):見出しを取得するニュースソースまたはブログの識別子をカンマ区切りで指定します。
    • domains(string、任意):検索対象のドメイン(例:bbc.co.uk、techcrunch.com)をカンマ区切りで指定します。
    • excludeDomains(string、任意):検索対象から除外するドメイン(例:bbc.co.uk、techcrunch.com)をカンマ区切りで指定します。
    • from(string、任意):取得対象として許可する記事の最も古い日付と、任意の時刻です。形式:YYYY-MM-DD または YYYY-MM-DDTHH:MM:SS(例:2024-01-01 または 2024-01-01T10:00:00)。
    • to(string、任意):取得対象として許可する記事の最も新しい日付と、任意の時刻です。形式:YYYY-MM-DD または YYYY-MM-DDTHH:MM:SS。
    • language(string、任意):見出しを取得する言語の 2 文字の ISO 639-1 コードです。指定可能な値:ar、de、en、es、fr、he、it、nl、no、pt、ru、sv、ud、zh。デフォルト:すべての言語を返します。
    • sortBy(enum:'relevancy'、'popularity'、'publishedAt'、任意):記事の並び順です。指定可能な値:relevancy、popularity、publishedAt。デフォルト:relevancy。
    • pageSize(integer、任意、デフォルト 100):1 ページ(リクエスト)あたりに返す結果の数です。デフォルトは 20、最大は 100 です。
    • page(integer、任意、デフォルト 1):見つかった結果の合計が pageSize を超える場合に、結果のページを指定するために使用します。
  • 出力:
    • status、totalResults、およびソース、著者、タイトル、説明、URL、画像 URL、公開日、コンテンツなどの詳細を含む articles 配列を持つオブジェクト。
get_top_headlines
  • 説明: News API の「Top Headlines」エンドポイントを使用して、トップニュースの見出しを取得します。
  • 入力:
    • q(文字列、省略可):記事のタイトルと本文で検索するキーワードまたはフレーズです。
    • sources(文字列、省略可):見出しを取得するニュースソースまたはブログの識別子を、カンマ区切りで指定します。
    • category(列挙型:'business'、'entertainment'、'general'、'health'、'science'、'sports'、'technology'、省略可):見出しを取得するカテゴリです。選択肢:business、entertainment、general、health、science、sports、technology。
    • language(文字列、省略可):見出しを取得する言語の2文字の ISO 639-1 コードです。選択肢:ar、de、en、es、fr、he、it、nl、no、pt、ru、sv、ud、zh。デフォルト:すべての言語を返します。
    • country(文字列、省略可):見出しを取得する国の2文字の ISO 3166-1 国コードです。選択肢:ae、ar、at、au、be、bg、br、ca、ch、cn、co、cu、cz、de、eg、fr、gb、gr、hk、hu、id、ie、il、in、it、jp、kr、lt、lv、ma、mx、my、ng、nl、no、nz、ph、pl、pt、ro、rs、ru、sa、se、sg、si、sk、th、tr、tw、ua、us、ve、za。デフォルト:すべての国を返します。
    • pageSize(整数、省略可、デフォルト 100):1ページ(リクエスト)あたりに返す結果数です。デフォルトは20、最大は100です。
    • page(整数、省略可、デフォルト 1):見つかった結果の総数が pageSize を超える場合に、結果のページを切り替えるために使用します。
  • 出力:
    • status、totalResults、およびソース、著者、タイトル、説明、URL、画像 URL、公開日、コンテンツなどの詳細を含む articles 配列を格納したオブジェクトです。

エラー処理

このサーバーは、News API の応答に基づいて、わかりやすいエラーメッセージを提供するよう努めます。API 呼び出しが失敗すると、ツールは失敗の詳細を含むエラーをスローします。利用可能な場合は、News API のエラーメッセージとコードも含まれます。

拡張

News API のエンドポイントをツールとして追加するには、src/tools/ に新しい TypeScript ファイルを作成し、Zod を使用して入力スキーマを定義し、News API SDK を呼び出すハンドラー関数を実装して、ツール定義をエクスポートします。その後、src/tools/index.ts で新しいツールをインポートして登録します。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。