mcpField
D
DevTo Agent

DevTo Agent

ローカル
github.com/HeetVekariyaAI・エージェント774 週間前に更新

DevTo Agent について

DevTo Agentは、Dev.toのユーザー向けに記事やアカウント操作を自動化するマルチエージェントシステムです。Google ADKのエージェントとDev.to APIを組み合わせ、A2AとMCPのインターフェースを提供します。

主な機能

  1. 01ページ、タグ、作者別の記事取得
  2. 02Markdown記事の生成と公開
  3. 03プロフィールと読書リストの取得
  4. 04コメントとフォロワーの管理
  5. 05SSEとSTDIOによる通信

活用シーン

  1. 01タグに合うDev.to記事の検索
  2. 02Markdown記事の作成と公開
  3. 03アカウント情報と保存済み記事の取得

MCP 対応

MCPサーバーは、Dev.toの記事、投稿、プロフィール、読書リストを操作するツールをMCPクライアントに公開します。SSEとSTDIOのインターフェースに対応します。

設定

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

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

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

リポジトリ

ツール

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

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

詳細

DevTo エージェント

Google ADK(Agent Development Kit)と Model Context Protocol(MCP)を使用して構築された、Dev.to(DevTo)プラットフォームとやり取りするための包括的なマルチエージェントシステムです。このプロジェクトでは、エージェント間(A2A)通信と MCP サーバーの実装を通じて、DevTo のコンテンツ作成、記事管理、ユーザープロフィールとのやり取りを自動化できます。

解説ブログはこちらをご覧ください:こちら

プロジェクトの概要

このプロジェクトでは、次の機能を備えた高度なエージェントアーキテクチャを実装しています。

  • タグまたは著者で DevTo の記事を取得、管理する
  • DevTo 向けの Markdown コンテンツを生成して投稿する
  • ユーザープロフィールと読書リストを取得する
  • 記事へのコメントとフォロワーを管理する
  • さまざまな統合ニーズに対応する SSE(Server-Sent Events)と STDIO の両インターフェースを提供する

目次

アーキテクチャの概要

このプロジェクトは、次の3つの主要な通信パターンを持つモジュール式アーキテクチャを採用しています。

┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐
│   Client App    │───▶│  A2A Server     │───▶│   DevTo API     │
│   (main.py)     │    │ (devto_agent)   │    │                 │
└─────────────────┘    └─────────────────┘    └─────────────────┘
         │                       │                       ▲
         │                       ▼                       │
         │              ┌─────────────────┐              │
         └─────────────▶│   MCP Server    │──────────────┘
                        │ (SSE/STDIO)     │
                        └─────────────────┘
主なコンポーネント:
  1. A2A エージェントサーバー:Google ADK を使用した高レベルのエージェントインターフェース
  2. MCP サーバー:Model Context Protocol を使用した低レベルのツールインターフェース
  3. DevTo サービス:Dev.to との直接 API 統合
  4. ツールコネクター:エージェントと MCP サーバー間のブリッジ

プロジェクト構成

devto-agent/
├── a2a_servers/              # Agent-to-Agent server implementations
│   ├── agent_server/         # Individual agent definitions
│   │   ├── devto_agent.py   # Main DevTo agent server
│   │   ├── host_agent.py    # Host agent coordinator
│   │   └── utils.py         # Agent utilities
│   ├── agents/              # Agent base classes and implementations
│   │   ├── adk_agent.py     # Google ADK agent wrapper
│   │   └── utils/           # Agent utilities
│   └── common/              # Shared components
│       ├── client/          # A2A client implementations
│       ├── server/          # A2A server implementations
│       └── types.py         # Common type definitions
├── connector/               # Tool connectors
│   └── tools/
│       └── devto_tools.py   # DevTo MCP tool connector
├── mcp_servers/             # Model Context Protocol servers
│   ├── sse/                 # Server-Sent Events implementation
│   │   └── devto_server.py  # SSE-based MCP server
│   └── stdio/               # Standard I/O implementation
│       └── devto_server.py  # STDIO-based MCP server
├── services/                # Core business logic
│   └── devto_service.py     # DevTo API service wrapper
├── test/                    # Test files
├── main.py                  # Main client application
└── pyproject.toml          # Project dependencies

コンポーネントの詳細

1. A2A サーバー(a2a_servers/)

目的:Google ADK フレームワークを使用して、高レベルのエージェントインターフェースを実装します。

主なファイル:
  • devto_agent.py:次の処理を担当するメインの DevTo エージェント:

    • DevTo 記事向けのコンテンツ生成
    • 記事の取得と管理
    • ユーザープロフィール操作
    • Markdown 対応の記事投稿
  • host_agent.py:複数のサブエージェントを管理できるコーディネーターエージェント

  • adk_agent.py:Google ADK と MCP ツールを統合するラッパークラス

2. MCP サーバー(mcp_servers/)

目的:Model Context Protocol を使用して、低レベルのツールインターフェースを提供します。

SSE 実装(sse/devto_server.py):
# Creates a Starlette web application with:
# - GET /sse: Server-Sent Events endpoint for real-time communication
# - POST /messages/: Message posting endpoint for client commands
3. DevTo サービス(services/devto_service.py)

目的:DevTo API と直接統合します。

主なメソッド:
class DevToService:
    def get_articles(page, per_page)           # Fetch paginated articles
    def get_articles_by_tag(tag)               # Filter by single tag
    def get_articles_by_tags(tags)             # Filter by multiple tags
    def get_article_content(article_id)        # Get full article content
    def post_article(title, body, tags)        # Create new article
    def get_user()                             # Current user info
    def get_user_articles()                    # User's articles
    def get_user_reading_list()                # User's saved articles
    def get_article_comments(article_id)       # Article comments
4. ツールコネクター(connector/tools/)

目的:A2A エージェントと MCP サーバー間のブリッジです。

DevTo ツールコネクター:
  • MCP サーバーへの接続を確立します
  • エージェント向けに非同期のツールインターフェースを提供します
  • 接続ライフサイクルの管理を行います

セットアップとインストール

前提条件
  • Python 3.10 以降
  • サーバーの実行に使用する Uvicorn
  • DevTo API キー
  • Google API キー(エージェント機能用)
インストール手順
  1. リポジトリをクローンします:

    git clone https://github.com/HeetVekariya/devto-agent.git
    cd devto-agent
    
  2. 環境を設定します: プロジェクトのルートに .env ファイルを作成します:

    DEVTO_API_KEY=your_devto_api_key_here
    DEVTO_BASE_URL=https://dev.to/api
    GOOGLE_API_KEY=your_google_api_key_here
    
  3. 依存関係をインストールします:

    uv pip install -e .
    
  4. Devto MCP サーバーを起動します

    uv run mcp_servers/sse/devto_server.py
    
  5. Devto エージェントを起動します

    uv run a2a_servers/agent_server/devto_agent.py
    
  6. ホストエージェントを起動します:

    uv run a2a_servers/agent_server/host_agent.py 
    
  7. クライアントアプリケーションを実行します:

    uv run main.py
    
対話例
ユーザープロフィールの取得:
# Request:
"Retrieve my profile details"

# The agent response:
Here are your profile details:
{
  "type_of": "user",
  "id": ...,
  "username": "heetvekariya",
  "name": "HeetVekariya",
  "twitter_username": "heet_2104",
  "github_username": "HeetVekariya",
  "summary": "A Tech person doing Non-Tech things.",
  "location": "",
  "website_url": "https://heet-vekariya.vercel.app/",
  "joined_at": "Oct 12, 2023",
  "profile_image": "....jpeg"
}
記事の取得:
# Request: 
"How many blogs I have published on devto ?"

# The agent response:
You have published 11 articles on Dev.to.

API リファレンス

A2A エージェントのスキル

DevTo エージェントは次のスキルを提供します。

  1. SKILL_DEVTO_CONTENT:DevTo 記事向けの Markdown コンテンツを生成する
  2. SKILL_DEVTO_ARTICLES:タグフィルターの有無を指定して記事を取得する
  3. SKILL_DEVTO_USER_INFO:ユーザープロフィールと統計情報を取得する
  4. SKILL_POST_DEVTO_ARTICLE:記事を作成して公開する
MCP ツール

MCP サーバーから次のツールを利用できます。

  • get_articles(page, per_page):ページ分割して記事を取得する
  • get_articles_by_tag(tag):タグで絞り込む
  • get_article_content(article_id):記事の全文を取得する
  • post_article(title, body, tags):記事を公開する
  • get_user():ユーザープロフィール情報を取得する
  • get_user_reading_list():保存済みの記事を取得する

コメント

MCP は初めてですか?

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

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