プロトタイプ · プレビュー版:公式レジストリのすべてのサーバーを掲載し、30分ごとに同期しています。Google でログインするとレビューを書けます。
PopNx MCPAIを使う人のためのMCPサーバー · やさしい言葉で解説

Postmcp MCP Server

作者:postmcpバージョン 1.0.1i★ 0iパソコンで動く
レジストリ名io.github.postmcp/postmcp-mcp-server

インストール方法

概要

作者による説明(英語の原文)

Publish and schedule posts to LinkedIn, X, Facebook, Instagram, Threads, Bluesky and YouTube Shorts.

できること

このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。

  • 接続方法: パソコンで動く
  • トランスポート: stdio
  • カテゴリ: マーケティング・SNS
  • 入力が必要なもの:POSTMCPAI_API_KEY

インストール

使っているAIアプリを選んで、設定をコピーしてください。

チェック 2/2 合格 · あなたのパソコンで動きます

まず:どの AI を使っていますか?

使っているアプリを選ぶと、下に手順が表示されます。

Claude につなげますが、先に準備が必要です

Postmcp MCP Server のキーが必要です(提供元のサイトで登録、費用がかかる場合あり) · 先にパソコンへ Node.js を入れてください(1 回だけ) · パソコン版 Claude アプリ(Windows または Mac)のみ。Web やスマホでは使えません

  1. Node.js を入れる

    1 回だけ。Node.js が必要なすべてのサーバーで使えます

    Node.js のダウンロードページを開く ↗

  2. Postmcp MCP Server に登録してキーを作る

    提供元のサイトで登録し、次の手順で使う API キーを作ります。費用がかかる場合があります。

    Postmcp MCP Server のサイトを開く ↗

  3. パソコン版 Claude アプリの設定ファイルを開く

    SettingsDeveloperEdit Config

  4. この設定を貼り付けて保存

    {
      "mcpServers": {
        "postmcp": {
          "command": "npx",
          "args": [
            "-y",
            "@postmcpai/server"
          ],
          "env": {
            "POSTMCPAI_API_KEY": "your-value",
            "POSTMCPAI_PROJECT_ID": "your-value"
          }
        }
      }
    }

    キーはアプリの入力欄にだけ貼り付け、チャットに貼ったり人に送ったりしないでください

  5. Claude を終了してもう一度開く

  6. 試してみる

    Postmcp MCP Server を使って、私に何ができるか教えて、1 つやってみせて

    ✓ Claude が Postmcp MCP Server を使っていると言うか、回答に Postmcp MCP Server のツール名が出れば接続成功です

メニュー名は 2026年11月11日 に Anthropic のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります

ChatGPT はまだ Postmcp MCP Server につなげません

Postmcp MCP Server はパソコンに入れて使うものですが、ChatGPT は Web 上で動くサーバーにしかつなげません

代わりにできること

A · Postmcp MCP Server につなげるアプリを使う

  • Postmcp MCP Server のキーが必要です(提供元のサイトで登録、費用がかかる場合あり) · 先にパソコンへ Node.js を入れてください(1 回だけ) · パソコン版 Claude アプリ(Windows または Mac)のみ。Web やスマホでは使えません
  • Postmcp MCP Server のキーが必要です(提供元のサイトで登録、費用がかかる場合あり) · 先にパソコンへ Node.js を入れてください(1 回だけ)
  • Postmcp MCP Server のキーが必要です(提供元のサイトで登録、費用がかかる場合あり) · 先にパソコンへ Node.js を入れてください(1 回だけ)
  • Postmcp MCP Server のキーが必要です(提供元のサイトで登録、費用がかかる場合あり) · 先にパソコンへ Node.js を入れてください(1 回だけ)

B · マーケティング・SNS の中で ChatGPT につなげる別のサーバー

同じカテゴリでよく使われているものから、キーなしでアドレスだけでつなげるものを選びました

Claude Code につなげますが、先に準備が必要です

Postmcp MCP Server のキーが必要です(提供元のサイトで登録、費用がかかる場合あり) · 先にパソコンへ Node.js を入れてください(1 回だけ)

  1. Node.js を入れる

    1 回だけ。Node.js が必要なすべてのサーバーで使えます

    Node.js のダウンロードページを開く ↗

  2. Postmcp MCP Server に登録してキーを作る

    提供元のサイトで登録し、次の手順で使う API キーを作ります。費用がかかる場合があります。

    Postmcp MCP Server のサイトを開く ↗

  3. ターミナルを開く

    Mac:Command+スペースで Terminal と入力 · Windows:PowerShell を開く

  4. このコマンドを貼り付けて Enter

    claude mcp add postmcp --env POSTMCPAI_API_KEY=your-value --env POSTMCPAI_PROJECT_ID=your-value -- npx -y @postmcpai/server

    Enter の前に「your-value」を自分のキーに書き換えてください

    キーはアプリの入力欄にだけ貼り付け、チャットに貼ったり人に送ったりしないでください

  5. Claude Code で /mcp と入力

    Postmcp MCP Server が一覧にあり、接続済みと表示されれば OK です

  6. 試してみる

    Postmcp MCP Server を使って、私に何ができるか教えて、1 つやってみせて

    ✓ Claude Code が Postmcp MCP Server を使っていると言うか、回答に Postmcp MCP Server のツール名が出れば接続成功です

メニュー名は 2026年11月11日 に Anthropic のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります

Cursor につなげますが、先に準備が必要です

Postmcp MCP Server のキーが必要です(提供元のサイトで登録、費用がかかる場合あり) · 先にパソコンへ Node.js を入れてください(1 回だけ)

  1. Node.js を入れる

    1 回だけ。Node.js が必要なすべてのサーバーで使えます

    Node.js のダウンロードページを開く ↗

  2. Postmcp MCP Server に登録してキーを作る

    提供元のサイトで登録し、次の手順で使う API キーを作ります。費用がかかる場合があります。

    Postmcp MCP Server のサイトを開く ↗

  3. このボタンで Cursor を開く

    Cursor で開く

    Cursor がインストールの確認をするので Install を押します

  4. キーを入力

    Postmcp MCP Server の設定で POSTMCPAI_API_KEY, POSTMCPAI_PROJECT_ID が空です。自分のキーを入れて保存します

    キーはアプリの入力欄にだけ貼り付け、チャットに貼ったり人に送ったりしないでください

  5. Cursor の AI チャットを Agent モードで開く

  6. 試してみる

    Postmcp MCP Server を使って、私に何ができるか教えて、1 つやってみせて

    ✓ Cursor が Postmcp MCP Server を使っていると言うか、回答に Postmcp MCP Server のツール名が出れば接続成功です

メニュー名は 2026年11月11日 に Cursor のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります

VS Code につなげますが、先に準備が必要です

Postmcp MCP Server のキーが必要です(提供元のサイトで登録、費用がかかる場合あり) · 先にパソコンへ Node.js を入れてください(1 回だけ)

  1. Node.js を入れる

    1 回だけ。Node.js が必要なすべてのサーバーで使えます

    Node.js のダウンロードページを開く ↗

  2. Postmcp MCP Server に登録してキーを作る

    提供元のサイトで登録し、次の手順で使う API キーを作ります。費用がかかる場合があります。

    Postmcp MCP Server のサイトを開く ↗

  3. このボタンで VS Code を開く

    VS Code で開く

    VS Code がインストールの確認をするので Install を押します

  4. キーを入力

    Postmcp MCP Server の設定で POSTMCPAI_API_KEY, POSTMCPAI_PROJECT_ID が空です。自分のキーを入れて保存します

    キーはアプリの入力欄にだけ貼り付け、チャットに貼ったり人に送ったりしないでください

  5. VS Code の AI チャットを Agent モードで開く

  6. 試してみる

    Postmcp MCP Server を使って、私に何ができるか教えて、1 つやってみせて

    ✓ VS Code が Postmcp MCP Server を使っていると言うか、回答に Postmcp MCP Server のツール名が出れば接続成功です

メニュー名は 2026年11月11日 に VS Code のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります

Windsurf、Zed、Gemini CLI など MCP を使える他のアプリは追加方法がそれぞれ違います。アプリ一覧で確認してください

MCP を使えるアプリをすべて見る →

JSON 設定は下の「開発者向け」にあります

つまずいたら?Postmcp MCP Server を使っている人に聞いてみましょう💬 ディスカッション →
開発者向け:ターミナルのコマンドと JSON 設定

パソコンにインストール

Claude Code

claude mcp add postmcp --env POSTMCPAI_API_KEY=your-value --env POSTMCPAI_PROJECT_ID=your-value -- npx -y @postmcpai/server

Claude Desktop (claude_desktop_config.json)

{
  "mcpServers": {
    "postmcp": {
      "command": "npx",
      "args": [
        "-y",
        "@postmcpai/server"
      ],
      "env": {
        "POSTMCPAI_API_KEY": "your-value",
        "POSTMCPAI_PROJECT_ID": "your-value"
      }
    }
  }
}

Cursor (~/.cursor/mcp.json)

{
  "mcpServers": {
    "postmcp": {
      "command": "npx",
      "args": [
        "-y",
        "@postmcpai/server"
      ],
      "env": {
        "POSTMCPAI_API_KEY": "your-value",
        "POSTMCPAI_PROJECT_ID": "your-value"
      }
    }
  }
}

VS Code (mcp.json)

{
  "servers": {
    "postmcp": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@postmcpai/server"
      ],
      "env": {
        "POSTMCPAI_API_KEY": "your-value",
        "POSTMCPAI_PROJECT_ID": "your-value"
      }
    }
  }
}

自分で入力する値

  • POSTMCPAI_API_KEY 秘密 必須 env
    Secret API key from the PostMCP AI dashboard (Settings → API keys)
  • POSTMCPAI_PROJECT_ID env
    Optional workspace id to act on; defaults to the workspace the key was issued from

この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。

ひと目でわかる

週あたりのダウンロードi
42/週
ライセンスi
ライセンスの記載なし
接続方法
パソコンで動く
最新バージョンi
1.0.1
レジストリ公開日i
2026年9月2日
コードの最終更新i
2026年10月1日
作者
postmcp
パッケージ
npm: @postmcpai/server
ウェブサイト
postmcpai.com
レジストリでの状態
有効

使えるアプリ

このサーバーのつなぎ方と、各アプリの公式ドキュメントに基づきます。2026年11月10日に確認。

パソコン上で動かせるアプリ

ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast

すべてのアプリと長所・短所 →

できること

パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。

基本チェックi

誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月11日にチェック

  • ✓ 合格

    作者とリポジトリが一致

    レジストリ名は、リポジトリを所有するGitHubアカウント postmcp で確認済みです

  • ✓ 合格

    今もメンテナンスされている

    コードの最終更新:41 日前

  • … 未チェック

    ライセンスがある

    このリポジトリはまだGitHubから読み取っていません

  • – 対象外

    エンドポイントが応答する

    これはパソコンで動くため、インターネット上のエンドポイントはありません

  • – 対象外

    OAuthでサインイン

    パソコンで動き、代わりにローカルの設定を使います

  • … 未チェック

    ツールの説明に隠れた指示がない

    パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです

話し合い

質問、コツの共有、使えないことの報告ができます。「役に立った」の多い順です。

まだ投稿はありません。最初の質問や共有をどうぞ。

ここの投稿は利用者によるもので、PopNx チームのものではありません。

Google でログインして投稿

ユーザーレビュー

まだレビューはありません

Google でログインしてレビューを書く

マーケティング・SNSのほかのサーバーとの比較i

  • このカテゴリのほかの3779件のうち0%よりスターが多い
  • このカテゴリのほかの3779件のうち28%より最近レジストリに公開
  • 基本チェックの結果が、このカテゴリのほかの3779件のうち100%と同じかそれ以上

レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。

よくある質問

Postmcp MCP Serverは安全ですか?

当てはまる基本チェック2項目のうち2項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。

どんなキーやコードが必要ですか?

入力が必要なもの:POSTMCPAI_API_KEY

パソコンで動きますか、それともクラウドですか?

あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。

今もメンテナンスされていますか?

GitHubリポジトリの最終更新は41 日前、最新バージョン(1.0.1)がレジストリに届いたのは2 か月前です。

どのアプリで使えますか?

Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。

代わりに使えるものは?

同じカテゴリには:PostHog MCP Server, Openshorts, Google Ads + Meta Ads + SEO/GEO MCP

代わりの候補

同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。

カードの見方:↓ 週あたりのダウンロードi★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i

PostHog MCP Server

Official PostHog MCP Server for product analytics, feature flags, experiments, and more.

作者:PostHog広く使われている★ 4.1万10 か月前更新

クラウドで動く

Openshorts

Turn long videos into viral vertical shorts and publish them to TikTok, Instagram and YouTube.

作者:mutonby広く使われている★ 76243 か月前更新

クラウドで動く

作者のREADME

READMEを開く

作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。

PostMCP AI Model Context Protocol (MCP) Server

Official PostMCP AI Model Context Protocol (MCP) Server. Connect your social media publishing pipelines directly into AI assistants, desktop applications, IDE workflows, and web environments like Claude Desktop, Claude.ai, Cursor, and ChatGPT Custom GPTs.

Supported platforms include LinkedIn, X (Twitter), Facebook, Instagram, Threads, Bluesky, and YouTube Shorts.


🚀 Features & Capabilities

  • 🤖 20 Built-in Tools: Workspaces, connected accounts and their token health, the post queue, pre-flight checks, create/schedule/reschedule/publish/retry/delete, per-post and per-profile analytics, media uploads, image generation, and batching.
  • 🖼️ Carousels & galleries: Pass mediaUrls to publish a carousel on Instagram and Threads, a multi-photo post on Facebook and LinkedIn, or a four-image gallery on X and Bluesky - one call, every network's ceiling checked up front.
  • ⚡ Dual Transport Modes: Native Stdio mode (for local desktop apps & IDEs) and Streamable HTTP mode (for web services, Claude.ai, and remote connectors).
  • 🔑 Flexible Authentication: Auto-detects API key from environment variables (POSTMCPAI_API_KEY), URL query parameters (?apikey=YOUR_KEY), or HTTP authorization headers (x-api-key, Bearer token).
  • 🗂️ Multi-Workspace Aware: The API key carries its own workspace, so a bare key is enough. To act on another one, every tool takes an optional workspaceId, also settable per connection (?projectId=..., x-project-id) or per process (POSTMCPAI_PROJECT_ID).
  • 🤖 ChatGPT Actions Compatible: Includes built-in OpenAPI 3.0 specification generator (/openapi.json) and REST endpoints (/api/tools/:name) for ChatGPT Custom GPT integration.
  • 🔒 OAuth with PKCE and RFC 9728: Per-user consent, persistent encrypted grants, rotating tokens and DCR for ChatGPT/Codex. Requires the production settings in OAUTH.md; API-key clients remain supported.
  • 🧩 Installable plugin: Account onboarding, publishing, scheduling and analytics workflows. See PLUGIN.md and run npm run package:plugin.

📁 Repository Architecture

mcp-server/

├── bin/ │ └── cli.js # Executable CLI entry point (Stdio / HTTP mode runner) ├── src/ │ ├── config.js # Centralized configuration & environment loader │ ├── client.js # Backend API client, API key & workspace extraction │ ├── platforms.js # Platform limits, credit pricing & post cost helper │ ├── tools/ │ │ ├── definitions.js# MCP tool JSON schemas & parameter specifications │ │ ├── handlers.js # MCP tool execution handlers │ │ └── index.js # Tool definitions aggregator │ ├── server.js # MCP Server instance factory │ ├── routes/ │ │ ├── oauth.js # OAuth 2.0 & RFC 9728 discovery endpoints │ │ ├── openapi.js # OpenAPI 3.0 schema & ChatGPT REST endpoints │ │ ├── mcpHttp.js # MCP Streamable HTTP transport (/mcp) │ │ └── health.js # Health check & system metadata endpoints │ ├── app.js # Express application factory │ └── index.js # Main library entry point ├── index.js # Executable wrapper script ├── package.json └── README.md


⚙️ Environment Configuration

Environment VariableDescriptionDefault Value
POSTMCPAI_API_KEYRequired. Your secret API key from the PostMCP AI dashboard.None
POSTMCPAI_API_URLBackend API root. Only set for a self-hosted or local backend.https://api.postmcpai.com
POSTMCPAI_PROJECT_IDOptional. Overrides the workspace the API key is bound to. Overridden in turn by a call's workspaceId.The workspace the API key was issued from
PORTSetting this launches the server in Remote Streamable HTTP Mode.None (Defaults to Stdio Mode)

🛠️ MCP Tools Reference

Every tool below also accepts an optional workspaceId (from list_workspaces) to act on a specific workspace.

Reading
Tool NameDescriptionRequiredOptional
get_user_infoAuthenticated user: plan, credit balance, active workspace and role.—workspaceId
list_workspacesEvery workspace the user belongs to, with ids, roles, and connected platforms.——
get_connected_accountsConnected social profiles with the profileId needed to target them.—workspaceId
get_account_healthConnections whose token expired or is close to it and need reconnecting.—workspaceId
get_profile_analyticsA connected profile's followers, following, post count and views from its network. Stored reading is free; refresh reads the network now for 1 credit.platform, profileIdrefresh
list_postsPost queue, newest first, with per-profile delivery status, pagination and counts.—status, page, limit, all
get_postOne post in full: which profiles received it, live URLs, and per-profile errors.id—
get_post_analyticsViews, likes, comments, shares, saves and clicks per profile, plus the raw platform metrics. Stored reading is free; refresh reads the networks now for 1 credit.idrefresh
Writing
Tool NameDescriptionRequiredOptional
preflight_postDry run: character limits, unconnected profiles, missing media, carousel ceilings, credit cost. Publishes nothing.contenttargetAccounts, platforms, mediaUrl, mediaUrls
create_postDraft, schedule, or immediately publish a post to named profiles. Each profile becomes its own post with its own id. Several mediaUrls publish as a carousel.contenttargetAccounts, variants, platforms, publishImmediately, scheduleDate, scheduleTime, timezone, mediaUrl, mediaUrls, youtube
publish_post_nowPublish an existing post immediately; also retries a failed post, skipping delivered profiles.id—
update_postUpdate content, target profiles, schedule, media, or status. mediaUrls replaces the whole attachment set.idcontent, targetAccounts, platforms, scheduleDate, scheduleTime, timezone, mediaUrl, mediaUrls, youtube, status
reschedule_postMove a post to a new slot, keeping copy and targets. Re-arms failed and draft posts.id, scheduleDate, scheduleTimetimezone
reset_stuck_postRelease a post stuck mid-publish so it can be retried. Delivered profiles keep their state.idforce
delete_postCancel and delete a scheduled or failed post.id—
generate_imageGenerate a post image and return its hosted URL for mediaUrl. Costs 20 credits; paid plans only.promptstyleImageUrl
create_media_upload_urlAuthorize a direct image/video upload; returns a signed PUT URL and the future public URL.fileName, contentType, fileSizeworkspaceId
complete_media_uploadRegister a successfully uploaded file in the media library and return mediaUrl.url, key, fileName, contentType, fileSizeworkspaceId
import_media_from_urlCopy a public image/video into storage and the media library; returns mediaUrl.urlworkspaceId
Media uploads

For a local file, the MCP client needs an HTTP upload capability:

  1. Call create_media_upload_url with fileName, contentType (MIME type), and fileSize (bytes). For example: { "fileName": "launch.png", "contentType": "image/png", "fileSize": 245760 }.
  2. PUT the raw file bytes to the returned uploadUrl with the returned headers. Do not send your PostMCP API key to storage. The URL expires after expiresIn seconds (normally 900); request another if it expires. The file is not uploaded merely by creating the URL.
  3. After the PUT succeeds, call complete_media_upload with the returned publicUrl as url, the returned key, and the same file metadata. Use the same workspaceId on both tools. This registers the file; it does not transfer or verify the bytes.
  4. Use the returned mediaUrl in create_post or update_post, or collect several URLs in mediaUrls for a carousel.

For an existing public file, call import_media_from_url with { "url": "https://example.com/launch.png" }. The backend downloads it and returns the stored mediaUrl in one call. The URL must serve the file directly without authentication; private-network URLs are rejected by the backend.

Storage supports PNG, JPEG, GIF, WebP, AVIF, HEIC, MP4, MOV, WebM and M4V, with a 25 MiB image ceiling and a 512 MiB video ceiling. Individual social platforms have stricter publishing requirements; use preflight_post before publishing. File bytes and base64 never travel through the MCP JSON request. If library registration fails after storage succeeds, the result includes librarySaved: false and a warning while preserving the usable mediaUrl.

Batching
Tool NameDescriptionRequiredOptional
multicallRun up to 20 of the tools above in one request, in order. Tool names are validated before anything executes, so a typo cannot leave half a batch written. Cannot nest.callsstopOnError, workspaceId
{

"calls": [ { "id": "img", "tool": "generate_image", "arguments": { "prompt": "launch banner" } }, { "tool": "create_post", "arguments": { "content": "We shipped it 🚀", "targetAccounts": [ { "platform": "linkedin", "profileId": "lin_7741903" }, { "platform": "twitter", "profileId": "tw_1293847", "content": "We shipped it 🚀" } ], "scheduleDate": "2026-09-01", "scheduleTime": "10:00", "timezone": "Asia/Kolkata" } } ], "stopOnError": true }

The reply carries one entry per call — { id, tool, ok, result } or { id, tool, ok: false, error } — plus counts and, when a failure stopped the batch, the calls that were skipped.

Carousels

mediaUrls is the ordered attachment set. One URL is an ordinary media post; two or more publish as a multi-media post on every network but YouTube, with the first URL as the cover:

PlatformItems per postVideo in a set of several?Lands as
Instagram2–10yesCarousel
Threads2–20yesCarousel
Facebookup to 10noMulti-photo post
LinkedInup to 20noMulti-image post
X / Twitterup to 4noGallery on one tweet
Blueskyup to 4noGallery on one post
YouTube1—One video per upload
{

"content": "Five things we learned shipping v2 👉", "targetAccounts": [ { "platform": "instagram", "profileId": "17841400000000" }, { "platform": "threads", "profileId": "9988776655" }, { "platform": "twitter", "profileId": "tw_1293847", "mediaUrls": ["https://cdn.example.com/v2/1.png", "https://cdn.example.com/v2/2.png", "https://cdn.example.com/v2/3.png", "https://cdn.example.com/v2/4.png"] } ], "mediaUrls": [ "https://cdn.example.com/v2/1.png", "https://cdn.example.com/v2/2.png", "https://cdn.example.com/v2/3.png", "https://cdn.example.com/v2/4.png", "https://cdn.example.com/v2/5.png" ], "scheduleDate": "2026-09-01", "scheduleTime": "10:00", "timezone": "Asia/Kolkata" }

  • Only Instagram and Threads mix video into a carousel; everywhere else

冒頭だけを表示しています。続きはリポジトリで読めます