MCP server for working with AWS Blog and News articles について
api.aws-news.comからAWSブログやニュースを取得するMCPサーバーです。AWSコンテンツを検索・絞り込みたい人向けで、日付、カテゴリ、記事種別によるフィルターと、AWSサイトの記事全文取得に対応します。
主な機能
- 01日付による記事の絞り込み
- 02カテゴリと種別による絞り込み
- 03タイトルやURL情報の検索
- 04AWS記事全文の取得
- 05記事一覧を5分間キャッシュ
活用シーン
- 01当日公開されたAWSニュースの確認
- 02カテゴリ別に最近のブログを抽出
- 03AWS記事のトピック検索
- 04後続処理向けの記事全文取得
MCP 対応
MCPサーバーはSSE経由で、日付・カテゴリによる絞り込み、検索、カテゴリ一覧、全文取得のツールを公開します。公開APIからデータを取得し、全文ダウンロードはaws.amazon.com上の記事に限られます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
docker run -i --rm ghcr.io/mirecekd/awsblogs-mcpローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ghcr.io/mirecekd/awsblogs-mcpstdioツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
AWS Blogs MCP サーバー
api.aws-news.com の AWS ブログ記事やニュースを扱うための MCP サーバーです。
説明
この MCP サーバーは、すべての AWS カテゴリの AWS ブログ記事やニュースを取得、絞り込むためのツールを提供します。サーバーは FastMCP フレームワークを使用して構築されており、完全に非同期(async/await)で、ポート 8807 での SSE トランスポートをサポートしています。データは公開 API から取得され、aiohttp と BeautifulSoup を使用して処理されます。
アーキテクチャ
- エントリーポイント:
main_sse.py– 環境を設定し、サーバーを起動します。 - サーバー:
src/awsblogs_mcp_server/server_sse.py– すべての MCP ツールを定義し、引数の解析を処理して、FastMCP サーバーを実行します。 - データプロセッサー:
src/awsblogs_mcp_server/data_processor.py– API 通信、絞り込み、キャッシュ、HTML 解析を処理します。 - キャッシュ: 記事リストをメモリー内に 5 分間キャッシュします(常に最新データを取得する検索クエリを除く)。
- 検証: 入力パラメーターの型、存在、(該当する場合は)形式を検証します。全文のダウンロードに対応しているのは AWS の記事(aws.amazon.com)のみです。
利用可能な MCP ツール
1. get_todays_posts
本日公開された記事を取得します。
パラメーター:
post_type:「News」、「Blog」、「Both」(デフォルト)limit:記事の最大数(デフォルト 20)
2. get_posts_by_date
指定した期間の記事を取得します。
パラメーター:
from_date:開始日(YYYY-MM-DD 形式、省略可)to_date:終了日(YYYY-MM-DD 形式、省略可)days_back:本日から遡る日数(from_date の代替)post_type:「News」、「Blog」、「Both」(デフォルト)limit:記事の最大数(デフォルト 50)
3. get_posts_by_category
指定したカテゴリの記事を取得します。
パラメーター:
category:カテゴリ名(例:「Big Data」、「Machine Learning」、「Industries」)post_type:「News」、「Blog」、「Both」(デフォルト)days_back:本日から遡る日数(デフォルト 30)limit:記事の最大数(デフォルト 30)
4. search_posts
API の検索機能を使って、テキストクエリで記事を検索します(タイトル、URL、スラッグを検索します)。
パラメーター:
query:検索クエリ(タイトル、URL、スラッグを検索します)post_type:「News」、「Blog」、「Both」(デフォルト)days_back:本日から遡る日数(デフォルト 90)limit:記事の最大数(デフォルト 25)
注: 検索クエリでは常に最新データを取得し、キャッシュを使用しません。
5. get_categories
利用可能なすべての記事カテゴリの一覧を取得します。
6. get_latest_posts
最新の記事を取得します。
パラメーター:
post_type:「News」、「Blog」、「Both」(デフォルト)limit:記事の最大数(デフォルト 20)days_back:本日から遡る日数(デフォルト 7)
7. get_popular_posts
人気の記事(popular=true としてマークされた記事)を取得します。
パラメーター:
post_type:「News」、「Blog」、「Both」(デフォルト)days_back:本日から遡る日数(デフォルト 30)limit:記事の最大数(デフォルト 15)
8. get_article_content
指定した URL から記事の全文をダウンロードします。
パラメーター:
url:記事の URL(aws.amazon.com のものに限ります)
戻り値:
title:記事のタイトルcontent:記事の全文description:メタディスクリプションauthor:著者(利用可能な場合)published_date:公開日content_length:文字数word_count:単語数
注: 全文のダウンロードに対応しているのは AWS の記事(aws.amazon.com)のみです。
利用可能なカテゴリー
サーバーは、次のカテゴリーによる絞り込みに対応しています。
- アーキテクチャ
- AWS クラウド運用
- AWS ゲーム向け
- AWS インサイト
- AWS Marketplace
- AWS ニュース
- AWS パートナーネットワーク
- AWS スマートビジネス
- ビッグデータ
- ビジネスインテリジェンス
- ビジネス生産性
- クラウドエンタープライズ戦略
- クラウド財務管理
- コンピューティング
- コンタクトセンター
- コンテナ
- データベース
- デスクトップおよびアプリケーションストリーミング
- 開発者ツール
- DevOps および開発者の生産性
- フロントエンドウェブおよびモバイル
- HPC
- IBM および Red Hat
- 業界
- 統合および自動化
- モノのインターネット
- 機械学習
- メディア
- メッセージングおよびターゲティング
- AWS 上の Microsoft ワークロード
- 移行とモダナイゼーション
- AWS 上の .NET
- ネットワーキングおよびコンテンツ配信
- オープンソース
- 公共部門
- 量子コンピューティング
- SAP
- セキュリティ
- 空間コンピューティング
- スタートアップ
- ストレージ
- サプライチェーンおよび物流
- トレーニングおよび認定
キャッシュ
- 記事リストはメモリ内に5分間キャッシュされます(検索クエリを除く)。
- 検索クエリでは常にAPIから最新データを取得します。
- キャッシュはタイムアウト後、またはパラメーターの変更時に自動的に無効化されます。
インストールと実行
Docker(推奨)
-
GitHub Container Registryから実行:
docker run -p 8807:8807 ghcr.io/mirecekd/awsblogs-mcp -
Dockerイメージをローカルでビルド:
chmod +x build.sh ./build.sh -
docker-composeを使用して実行:
docker-compose up awsblogs-mcp-sse -
または、ローカルでDockerをビルド:
docker run -p 8807:8807 awsblogs-mcp-server:sse
ローカル開発
-
依存関係をインストール:
pip install -e . -
サーバーを実行:
python main_sse.py --host 0.0.0.0 --port 8807
MCP クライアントの設定
MCP クライアント(例:Cline)で使用するには、設定に追加します。
{
"mcpServers": {
"awsblogs": {
"type": "sse",
"url": "http://localhost:8807/sse/"
}
}
}
API エンドポイント
サーバーは公開API https://api.aws-news.com/articles を使用します。
機能
- ✅ ポート8807でのSSEトランスポート
- ✅ 記事の種類による絞り込み(ニュース/ブログ)
- ✅ カテゴリーによる絞り込み
- ✅ 日付による絞り込み(日付範囲、遡る日数)
- ✅ テキスト検索(APIを利用)
- ✅ キャッシュ機構(検索を除き5分間)
- ✅ 構造化されたレスポンス
- ✅ Docker対応
- ✅ 非同期アーキテクチャ(aiohttp、FastMCP)
- ✅ BeautifulSoupによるHTML解析
プロジェクト構成
awsblogs-mcp/
├── src/awsblogs_mcp_server/
│ ├── __init__.py
│ ├── server_sse.py # SSE MCP server (tools, server logic)
│ └── data_processor.py # API client, filtering, caching, HTML parsing
├── main_sse.py # SSE entry point
├── Dockerfile.sse # Docker image for SSE
├── docker-compose.yml # Docker Compose configuration
├── build.sh # Build script
├── pyproject.toml # Python project configuration
├── README.md # This file
└── assets/
├── aws_blogs.png
└── n8n-workflow.json
開発
開発にあたっては、次の手順をおすすめします。
- リポジトリをフォークする
- 機能用の新しいブランチを作成する
python main_sse.pyを使用してローカルでテストする./build.shを使用してDockerのビルドをテストする- プルリクエストを作成する
ライセンス
MIT License - LICENSEファイルを参照してください。
作者
Miroslav Dvořák ([email protected])
使用例
N8Nワークフローとの連携
このMCPサーバーは、AWSニュースの処理と通知を自動化するために、N8Nワークフローと簡単に連携できます。

上のスクリーンショットは、AWS Blogs MCPサーバーをAIエージェント内のツールとして使用する、実際のN8Nワークフローを示しています。ワークフローは次の要素で構成されています。
- チャットトリガー - ユーザーのメッセージを受信します
- AIエージェント - Azure OpenAIを使用してリクエストを処理します
- AWS Blogs MCPツール - ユーザーのクエリに基づいてAWSの記事を取得します
- メモリバッファー - 会話のコンテキストを保持します
N8Nワークフローの例: 完全なN8Nワークフロー設定は./assets/n8n-workflow.jsonにあります。
実際の動作:
- ユーザーが「機械学習に関する最新のAWS記事を見せて」と尋ねます
- AIエージェントがMCPサーバーを使用し、クエリ「Machine Learning」で
search_postsを呼び出します - サーバーは、タイトル、URL、要約を含む関連性の高いAWSの機械学習記事を返します
- AIエージェントは、クリック可能なリンクを含めてユーザー向けにレスポンスを整えます
- 追加の質問にも対応できるよう、会話のコンテキストが保持されます
この連携により、AWSのコンテンツと自然言語でやり取りできるため、会話型AIを通じて最新のAWSの動向を簡単に把握できます。
インスピレーション
このプロジェクトは、jritsemaによるaws-news-mcp-serverに着想を得ています。
サポート
このツールがお役に立ちましたら、開発を支援していただけます。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。

