mcpField
M
MCP server for working with AWS Blog and News articles

MCP server for working with AWS Blog and News articles

ローカル
github.com/mirecekdクラウド・インフラ05 週間前に更新

MCP server for working with AWS Blog and News articles について

api.aws-news.comからAWSブログやニュースを取得するMCPサーバーです。AWSコンテンツを検索・絞り込みたい人向けで、日付、カテゴリ、記事種別によるフィルターと、AWSサイトの記事全文取得に対応します。

主な機能

  1. 01日付による記事の絞り込み
  2. 02カテゴリと種別による絞り込み
  3. 03タイトルやURL情報の検索
  4. 04AWS記事全文の取得
  5. 05記事一覧を5分間キャッシュ

活用シーン

  1. 01当日公開されたAWSニュースの確認
  2. 02カテゴリ別に最近のブログを抽出
  3. 03AWS記事のトピック検索
  4. 04後続処理向けの記事全文取得

MCP 対応

MCPサーバーはSSE経由で、日付・カテゴリによる絞り込み、検索、カテゴリ一覧、全文取得のツールを公開します。公開APIからデータを取得し、全文ダウンロードはaws.amazon.com上の記事に限られます。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"awsblogs": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/mirecekd/awsblogs-mcp"
]
}
}
}
起動コマンドdocker run -i --rm ghcr.io/mirecekd/awsblogs-mcp

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
ocighcr.io/mirecekd/awsblogs-mcp

ツール

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

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

詳細

AWS Blogs MCP サーバー

api.aws-news.com の AWS ブログ記事やニュースを扱うための MCP サーバーです。

"Buy Me A Coffee" "PayPal.me"

説明

この 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(推奨)
  1. GitHub Container Registryから実行:

    docker run -p 8807:8807 ghcr.io/mirecekd/awsblogs-mcp
    
  2. Dockerイメージをローカルでビルド:

    chmod +x build.sh
    ./build.sh
    
  3. docker-composeを使用して実行:

    docker-compose up awsblogs-mcp-sse
    
  4. または、ローカルでDockerをビルド:

    docker run -p 8807:8807 awsblogs-mcp-server:sse
    
ローカル開発
  1. 依存関係をインストール:

    pip install -e .
    
  2. サーバーを実行:

    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

開発

開発にあたっては、次の手順をおすすめします。

  1. リポジトリをフォークする
  2. 機能用の新しいブランチを作成する
  3. python main_sse.py を使用してローカルでテストする
  4. ./build.sh を使用してDockerのビルドをテストする
  5. プルリクエストを作成する

ライセンス

MIT License - LICENSEファイルを参照してください。

作者

Miroslav Dvořák ([email protected])

使用例

N8Nワークフローとの連携

このMCPサーバーは、AWSニュースの処理と通知を自動化するために、N8Nワークフローと簡単に連携できます。

N8NのAWS Blogs MCP

上のスクリーンショットは、AWS Blogs MCPサーバーをAIエージェント内のツールとして使用する、実際のN8Nワークフローを示しています。ワークフローは次の要素で構成されています。

  1. チャットトリガー - ユーザーのメッセージを受信します
  2. AIエージェント - Azure OpenAIを使用してリクエストを処理します
  3. AWS Blogs MCPツール - ユーザーのクエリに基づいてAWSの記事を取得します
  4. メモリバッファー - 会話のコンテキストを保持します

N8Nワークフローの例: 完全なN8Nワークフロー設定は./assets/n8n-workflow.jsonにあります。

実際の動作:

  • ユーザーが「機械学習に関する最新のAWS記事を見せて」と尋ねます
  • AIエージェントがMCPサーバーを使用し、クエリ「Machine Learning」で search_posts を呼び出します
  • サーバーは、タイトル、URL、要約を含む関連性の高いAWSの機械学習記事を返します
  • AIエージェントは、クリック可能なリンクを含めてユーザー向けにレスポンスを整えます
  • 追加の質問にも対応できるよう、会話のコンテキストが保持されます

この連携により、AWSのコンテンツと自然言語でやり取りできるため、会話型AIを通じて最新のAWSの動向を簡単に把握できます。

インスピレーション

このプロジェクトは、jritsemaによるaws-news-mcp-serverに着想を得ています。

サポート

このツールがお役に立ちましたら、開発を支援していただけます。

"コーヒーをおごる" "PayPal.me"

コメント

MCP は初めてですか?

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

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