mcpField
N
NYT MCP Server

NYT MCP Server

ローカル
github.com/aovabo検索086 週間前に更新

NYT MCP Server について

NYT MCP Serverは、ニュースや書籍のデータを必要とするアプリ向けに、New York Times APIへの統一インターフェースを提供します。検索、ニュース、アーカイブ、書籍の照会に対応し、整形済みの応答とヘルスチェックを備えています。

主な機能

  1. 016種類のNYT APIへの統一アクセス
  2. 02記事検索、並べ替え、ページ指定
  3. 03トップ記事とTimes Wireの取得
  4. 04人気記事、アーカイブ、書籍の照会
  5. 05整形済み応答とヘルスチェック

活用シーン

  1. 01トピック別にNYT記事を検索
  2. 02最新記事や特定セクションの記事を取得
  3. 03人気記事や過去のアーカイブを確認
  4. 04NYTの書籍リストを照会

MCP 対応

統一されたメッセージエンドポイントを通じて、New York Times APIの操作をMCPクライアントに提供します。利用にはNYT APIキーが必要です。

設定

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

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

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

リポジトリ

ツール

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

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

詳細

NYT MCP サーバー

New York Times API への統一されたシンプルなインターフェースを提供する、Message Concentrator Protocol(MCP)サーバーです。このサーバーを使うと、単一のエンドポイントから複数の NYT API を簡単に利用できます。

概要

この MCP サーバーは、以下を含むさまざまな New York Times API への統一ゲートウェイとして機能します。

  • 記事検索
  • トップ記事
  • Times Wire(リアルタイムニュース)
  • 最も人気のある記事
  • アーカイブ
  • 書籍 API

特長

  • 単一エンドポイント:一貫したインターフェースからすべての NYT API にアクセスできます
  • すっきりとしたレスポンス:書式を整え、簡潔にした API レスポンス
  • リアルタイム更新:Times Wire によるライブニュースフィード
  • 柔軟な検索:包括的な記事検索機能
  • エラー処理:堅牢なエラー管理
  • ヘルスモニタリング:ヘルスチェックエンドポイントを内蔵
  • 簡単な統合:あらゆるアプリケーションに簡単に統合できます

要件

  • Python 3.8+
  • NYT API キー(NYT Developer Portal で取得してください)
  • 必要な Python パッケージ(requirements.txt を参照)

クイックスタート

  1. リポジトリをクローンします:
git clone https://github.com/your-username/nyt-mcp-server.git
cd nyt-mcp-server
  1. 仮想環境を作成して有効化します:
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
  1. 依存関係をインストールします:
pip install -r requirements.txt
  1. .env ファイルを作成します:
NYT_API_KEY=your_api_key_here
MCP_PORT=8000
MCP_HOST=0.0.0.0
  1. サーバーを起動します:
python src/server.py

プロジェクト構成

nyt-mcp-server/
├── src/
│   ├── __init__.py
│   ├── server.py
│   └── config.py
├── .env
├── .gitignore
├── requirements.txt
└── README.md

API ドキュメント

ベース URL
http://localhost:8000
エンドポイント
POST /mcp/message

すべての NYT API とのやり取りに使用するメインエンドポイントです。

GET /health

ヘルスチェックエンドポイントです。

使用例
import httpx
import asyncio

async def get_news():
    async with httpx.AsyncClient() as client:
        response = await client.post(
            "http://localhost:8000/mcp/message",
            json={
                "message_type": "times_wire",
                "content": {"limit": 5},
                "timestamp": "2025-03-05T21:00:00Z"
            }
        )
        return response.json()

# Run the async function
asyncio.run(get_news())

メッセージの種類

1. 記事検索
{
    "message_type": "article_search",
    "content": {
        "query": "technology",
        "sort": "newest",
        "page": 0
    },
    "timestamp": "2025-03-05T21:00:00Z"
}
2. トップ記事
{
    "message_type": "top_stories",
    "content": {
        "section": "technology"
    },
    "timestamp": "2025-03-05T21:00:00Z"
}
3. Times Wire
{
    "message_type": "times_wire",
    "content": {
        "limit": 5,
        "source": "nyt"
    },
    "timestamp": "2025-03-05T21:00:00Z"
}
4. 最も人気のある記事
{
    "message_type": "most_popular",
    "content": {
        "type": "viewed",
        "time_period": "7"
    },
    "timestamp": "2025-03-05T21:00:00Z"
}
5. アーカイブ
{
    "message_type": "archive",
    "content": {
        "year": 2025,
        "month": 3
    },
    "timestamp": "2025-03-05T21:00:00Z"
}
6. 書籍
{
    "message_type": "books",
    "content": {
        "list": "hardcover-fiction"
    },
    "timestamp": "2025-03-05T21:00:00Z"
}

コントリビューション

  1. リポジトリをフォークします
  2. 機能ブランチを作成します(git checkout -b feature/AmazingFeature)
  3. 変更をコミットします(git commit -m 'Add some AmazingFeature')
  4. ブランチにプッシュします(git push origin feature/AmazingFeature)
  5. プルリクエストを作成します

ライセンス

MIT ライセンス

セキュリティに関する注意

  • .env ファイルをコミットしないでください
  • NYT API キーは非公開にしてください
  • 機密データには環境変数を使用してください

お問い合わせ

バグ報告や機能リクエストは、イシューを作成してください。

コメント

MCP は初めてですか?

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

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