NYT MCP Server について
NYT MCP Serverは、ニュースや書籍のデータを必要とするアプリ向けに、New York Times APIへの統一インターフェースを提供します。検索、ニュース、アーカイブ、書籍の照会に対応し、整形済みの応答とヘルスチェックを備えています。
主な機能
- 016種類のNYT APIへの統一アクセス
- 02記事検索、並べ替え、ページ指定
- 03トップ記事とTimes Wireの取得
- 04人気記事、アーカイブ、書籍の照会
- 05整形済み応答とヘルスチェック
活用シーン
- 01トピック別にNYT記事を検索
- 02最新記事や特定セクションの記事を取得
- 03人気記事や過去のアーカイブを確認
- 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 を参照)
クイックスタート
- リポジトリをクローンします:
git clone https://github.com/your-username/nyt-mcp-server.git
cd nyt-mcp-server
- 仮想環境を作成して有効化します:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
- 依存関係をインストールします:
pip install -r requirements.txt
.envファイルを作成します:
NYT_API_KEY=your_api_key_here
MCP_PORT=8000
MCP_HOST=0.0.0.0
- サーバーを起動します:
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"
}
コントリビューション
- リポジトリをフォークします
- 機能ブランチを作成します(
git checkout -b feature/AmazingFeature) - 変更をコミットします(
git commit -m 'Add some AmazingFeature') - ブランチにプッシュします(
git push origin feature/AmazingFeature) - プルリクエストを作成します
ライセンス
MIT ライセンス
セキュリティに関する注意
.envファイルをコミットしないでください- NYT API キーは非公開にしてください
- 機密データには環境変数を使用してください
お問い合わせ
バグ報告や機能リクエストは、イシューを作成してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。