mcpField
D
devto

devto

github.com/acedatacloudマーケティング・グロース17205 回インストール今日更新
リポジトリ

devto について

curl と jq で Forem API を利用し、dev.to の記事を管理するスキルです。下書きの作成、公開、編集に加え、記事やエンゲージメント統計の確認にも対応します。

主な機能

  1. 01API 認証情報とアカウントを確認
  2. 02記事の下書き作成または公開
  3. 03記事の編集と下書きの公開
  4. 04記事一覧、本文、統計の確認
  5. 05クロスポスト用の canonical URL 設定

活用シーン

  1. 01Markdown 記事を下書きとして保存
  2. 02dev.to で記事を公開または更新
  3. 03記事の閲覧数、リアクション、コメントを確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/acedatacloud/skills --skill devto

インストール後、Claude Code で/devtoを入力して読み込まれたか確認します。

詳細

curl + jq を使って Forem API v1(dev.to)を呼び出します。ユーザーの API キーは $DEVTO_API_KEY にあります。すべての呼び出しで、ヘッダー api-key: $DEVTO_API_KEY と Accept: application/vnd.forem.api-v1+json が必要です。ベース URL は https://dev.to/api です。

エラーは error/status フィールドを含む JSON で返されます。そのまま表示してください。 401 は API キーが無効であることを意味します → ユーザーは DEV コネクターに再接続する必要があります。

必ず最初にキーを確認し、アカウント情報を取得してください。

curl -sS -H "api-key: $DEVTO_API_KEY" -H "Accept: application/vnd.forem.api-v1+json" \
  "https://dev.to/api/users/me" | jq '{username, name}'

記事を公開する

公開前にユーザーに確認してください。 明示的に公開/今すぐ公開すると言われない限り、下書き(published:false)をデフォルトにします。

TITLE="My title"
BODY_MD="$(cat article.md)"   # full Markdown body
jq -n --arg t "$TITLE" --arg b "$BODY_MD" \
  '{article:{title:$t, body_markdown:$b, published:false, tags:["ai","webdev"]}}' \
| curl -sS -X POST "https://dev.to/api/articles" \
    -H "api-key: $DEVTO_API_KEY" \
    -H "Accept: application/vnd.forem.api-v1+json" \
    -H "Content-Type: application/json" \
    -d @- \
| jq '{id, url, published}'

後から下書きを公開する(または編集する)には、同じ形式で PUT /api/articles/{id} を呼び出します(published:true を設定)。body_markdown 内のフロントマター(--- ブロック)にも、title、tags、series、canonical_url、cover_image を指定できます。

  • 正規 URL: クロスポストする場合は、 "canonical_url":"https://your-blog/original" を設定して、DEV の SEO 評価をソースに戻します。これは記事→動画/クロスパブリッシングのワークフローで重要です。

記事の一覧表示/確認

# My published + draft articles (paginated; per_page max 1000).
curl -sS -H "api-key: $DEVTO_API_KEY" -H "Accept: application/vnd.forem.api-v1+json" \
  "https://dev.to/api/articles/me/all?per_page=30" \
  | jq '.[] | {id, title, published, page_views_count, public_reactions_count, comments_count}'

# A single article's full content + stats.
curl -sS -H "api-key: $DEVTO_API_KEY" -H "Accept: application/vnd.forem.api-v1+json" \
  "https://dev.to/api/articles/ARTICLE_ID" | jq '{title, url, reactions: .public_reactions_count, views: .page_views_count}'

注意点

  • タグ: 最大 4 個、小文字、スペースなし(例:webdev、machinelearning)。
  • レート制限: 記事の作成/更新にはレート制限があります(30 秒あたり数件)。一括公開は間隔を空けないと 429 が返されます。
  • body_markdown が正となる情報源です。先頭に --- のフロントマターブロックを置くと、そのフィールドが JSON の article フィールドより優先されます。

出力を記録する

公開に成功し、公開結果の URL を取得したら、組み込みの publish_artifact ツールを 1 回呼び出して、ユーザーがこの成果物を マイ出力 で追跡できるようにします。

publish_artifact(kind="article", channel="devto", title="<title>", url="<the REAL returned URL>", status="delivered")

実際に返された URL を使用してください。決して捏造しないでください。公開されたアイテムごとに 1 回だけ呼び出し、配信が確認された後にのみ実行します。公開に失敗した場合はスキップするか、status="failed" を使用してください。 _shared/artifacts.md を参照してください。

コメント