프로토타입 · 미리 보기: 공식 레지스트리의 모든 서버를 담고 있으며 30분마다 동기화해요. 리뷰와 계정 기능은 다음 단계에서 열려요.
PopNx MCPAI를 쓰는 사람을 위한 MCP 서버 · 쉬운 말로 설명해요

Postproxy

제작자: postproxy버전 1.10.0i★ –i클라우드에서 실행
레지스트리 이름dev.postproxy/postproxy

설치

개요

제작자가 쓴 설명(영어 원문)

Publish, schedule, and manage social media posts across major platforms via the Postproxy API.

PopNx MCP의 세 기둥

이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.

할 수 있는 일

이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.

  • 연결 방식: 클라우드에서 실행
  • 전송 방식: Streamable HTTP
  • 카테고리: 마케팅 및 소셜 미디어
  • 입력해야 할 값: X-PostProxy-API-Key

설치

쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.

설치하기 전에

  • 기본 점검: 1개 중 1개 통과
  • 제작자의 서버에서 실행돼요. 내가 요청한 내용은 제작자의 서버를 거쳐요.
  • 직접 입력할 값: X-PostProxy-API-Key

비밀로 표시된 값은 내 계정의 열쇠예요. 절대 다른 사람과 공유하거나 채팅에 붙여 넣지 마세요.

필요한 것

어떤 앱을 쓰세요?

위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.

이 주소는 요청 header에 키가 필요한데, 커넥터 추가 메뉴에서는 넣을 수 없어요. 대신 Claude Code, Cursor, VS Code를 쓰세요.

터미널에서 이 명령어를 실행하세요

claude mcp add --transport http postproxy https://mcp.postproxy.dev/mcp --header 'X-PostProxy-API-Key: your-value'

실행하기 전에 빈 값을 채워 주세요.

Cursor에서 열기

또는 설정을 직접 복사하기

프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요

{
  "mcpServers": {
    "postproxy": {
      "url": "https://mcp.postproxy.dev/mcp",
      "headers": {
        "X-PostProxy-API-Key": "your-value"
      }
    }
  }
}

브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.

VS Code에서 열기

또는 설정을 직접 복사하기

프로젝트의 .vscode/mcp.json에 붙여 넣으세요

{
  "servers": {
    "postproxy": {
      "type": "http",
      "url": "https://mcp.postproxy.dev/mcp",
      "headers": {
        "X-PostProxy-API-Key": "your-value"
      }
    }
  }
}

브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.

이 주소는 요청 header에 키가 필요한데, 커넥터 추가 메뉴에서는 넣을 수 없어요. 대신 Claude Code, Cursor, VS Code를 쓰세요.

선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.

직접 입력할 값

  • X-PostProxy-API-Key 비밀 HTTP header
    Your Postproxy API key (from the Postproxy dashboard). Optional: leave blank to authenticate via OAuth (the server supports dynamic client registration) instead.

이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.

할 수 있는 일

아직 이 서버의 도구 목록을 읽지 않았어요. 엔드포인트는 차례대로 돌아가며 점검해요.

기본 점검i

누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 7일 점검

  • ✓ 통과

    제작자와 저장소 일치

    레지스트리 이름이 도메인 postproxy.dev 기준으로 확인되었어요(레지스트리가 도메인 소유를 확인해요)

  • … 아직 점검 안 함

    계속 관리되고 있음

    아직 GitHub에서 이 저장소를 읽어 오지 않았어요

  • … 아직 점검 안 함

    라이선스 있음

    아직 GitHub에서 이 저장소를 읽어 오지 않았어요

  • … 아직 점검 안 함

    엔드포인트 응답

    아직 점검하지 않았어요. 엔드포인트는 차례대로 돌아가며 점검해요

  • … 아직 점검 안 함

    OAuth로 로그인

    아직 점검하지 않았어요. 엔드포인트는 차례대로 돌아가며 점검해요

  • … 아직 점검 안 함

    도구 설명에 숨겨진 지시 없음

    아직 점검하지 않았어요. 엔드포인트를 점검할 때 도구 목록을 읽어요

마케팅 및 소셜 미디어 카테고리의 다른 서버와 비교i

  • 이 카테고리의 다른 서버 2974개 중 0%보다 스타가 많아요
  • 이 카테고리의 다른 서버 2974개 중 14%보다 최근에 레지스트리에 공개됐어요
  • 기본 점검 결과가 이 카테고리의 다른 서버 2974개 중 100%와 같거나 더 좋아요

레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.

자주 묻는 질문

Postproxy, 안전한가요?

해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.

어떤 키나 코드가 필요한가요?

입력해야 할 값: X-PostProxy-API-Key

내 컴퓨터에서 실행되나요, 클라우드에서 실행되나요?

제작자의 클라우드에서 실행돼요. 설치 없이 인터넷으로 연결하지만, 보내는 내용은 제작자의 서버를 거쳐요.

아직 관리되고 있나요?

GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(1.10.0)은 4개월 전 레지스트리에 올라왔어요.

어떤 앱에서 쓸 수 있나요?

Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. URL로 연결되기 때문에, 원격 MCP 서버를 지원하는 앱(예: 개발자 모드의 ChatGPT)에서도 쓸 수 있어요.

대신 쓸 수 있는 건 뭐가 있나요?

같은 카테고리에는: MCP YouTube Transcript, Google Analytics MCP, BibiGPT YouTube Video Summarizer

대안

같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.

카드 보는 법:★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i

MCP YouTube Transcript

제작자: jkawamoto

An MCP server retrieving transcripts of YouTube videos

내 컴퓨터에서 실행★ 495MIT10일 전 업데이트
설치

Google Analytics MCP

제작자: surendranb

GA4 MCP server for AI agents: schema discovery, server-side aggregation, analysis-ready defaults.

내 컴퓨터에서 실행★ 244MIT9일 전 업데이트
설치

AI video summarizer: summarize and transcribe YouTube, Bilibili, TikTok and podcast videos.

클라우드에서 실행★ 137MIT10일 전 업데이트
설치

제작자의 README

README 열기

제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.

Postproxy MCP Server

MCP (Model Context Protocol) server for integrating Postproxy API with Claude Code. This server provides tools for publishing posts, checking statuses, and managing social media profiles through Claude Code.

Installation

Global Installation
npm install -g postproxy-mcp
Local Installation
npm install postproxy-mcp

Claude Code stores MCP server configuration under ~/.claude/plugins/. After installing postproxy-mcp, Claude will automatically detect the server on restart.

Configuration

Register MCP Server

After installing postproxy-mcp, register it with Claude Code using the claude mcp add command:

claude mcp add --transport stdio postproxy-mcp --env POSTPROXY_API_KEY=your-api-key --env POSTPROXY_BASE_URL=https://api.postproxy.dev/api -- postproxy-mcp

Replace your-api-key with your actual Postproxy API key.

The configuration will be automatically saved to ~/.claude/plugins/. After running this command:

  1. Restart your Claude Code session
  2. Test the connection by asking Claude: "Check my Postproxy authentication status"
  3. If tools are available, Claude will be able to use them automatically
Alternative: Interactive Setup

For non-technical users, you can use the interactive setup command:

postproxy-mcp setup

or

postproxy-mcp-setup

This will guide you through the setup process step by step and register the server using claude mcp add automatically.

Available Tools

Authentication Tools
auth_status

Check authentication status, API configuration, and workspace information.

Parameters: None

Returns:

{

"authenticated": true, "base_url": "https://api.postproxy.dev/api", "profile_groups_count": 2 }

Account Overview
summary_get

Answer "what's the status?" in one call — an activity snapshot for a time window instead of separate history_list / comments_list / dm_chats_list round trips.

Parameters:

  • window (string, optional): 24h (default), 7d, or 30d
  • from (string, optional): ISO 8601 timestamp or bare date starting an explicit range. Overrides window, and the *_previous counts come back null
  • to (string, optional): End of the explicit range. Defaults to now when only from is given
  • profile_group_id (string, optional): Report on a single group. Omit to cover every group the key can reach

Returns:

{

"window": { "label": "24h", "from": "2026-08-17T09:00:00Z", "to": "2026-08-18T09:00:00Z", "previous_from": "2026-08-16T09:00:00Z", "backlog_from": "2026-07-19T09:00:00Z" }, "posts": { "published": 4, "published_previous": 3, "failed": 1, "scheduled_ahead": 6, "next_scheduled_at": "2026-08-18T14:00:00Z", "by_platform": { "instagram": { "published": 4, "failed": 0 } } }, "engagement": { "total": { "impressions": 48210, "likes": 1204 }, "by_platform": { "instagram": { "impressions": 31002, "likes": 900 } }, "posts_with_insights": 14 }, "comments": { "received": 96, "received_previous": 71, "awaiting_reply": 12, "by_platform": { "instagram": 61 } }, "reviews": { "received": 7, "received_previous": 4, "awaiting_reply": 3 }, "dms": { "inbound": 41, "outbound": 33, "chats_awaiting_reply": 5, "reply_window_closing": 2 }, "api": { "calls": 812, "calls_previous": 640 } }

Notes:

  • Post counts are posts, so a post sent to three networks counts once and a thread counts once. by_platform counts per-network deliveries, so a 3-item X thread is 3 under twitter.
  • `engagement` is lifetime-to-date for posts published in the window, not engagement earned during it — it sums each post's newest stats snapshot. A post published minutes ago may have no snapshot yet and won't be in posts_with_insights. Keys are the normalized metrics listed in Stats Fields by Platform.
  • The `awaiting_reply` counts describe current state, not the window — they don't change when you change window. They look back 30 days, returned as window.backlog_from. A comment counts as replied only when the reply came from you (via Postproxy or the profile itself); chats_awaiting_reply is derived from message timestamps, since Postproxy has no read/unread state.
  • reply_window_closing counts chats with under 6 hours of their 24h messaging window left. Networks without a window (Telegram, Bluesky) are excluded.
  • engagement is null when insights are off for the account; dms is null when DMs are off.
  • Scoped like every other tool: a group-scoped key reports only its group.
Profile Management
profile_groups_list

List all profile groups accessible with your API key. Profile groups are organizational containers (e.g. per brand or client) that hold related profiles. Use a group's id to filter profiles_list by profile_group_id.

Parameters: None

Returns:

{

"profile_groups": [ { "id": "grp123abc", "name": "Main Brand", "profiles_count": 4 } ] }

profile_groups_initialize_connection

Generate a connect URL for a new profile in a profile group. The user opens the URL to finish the OAuth flow.

Parameters:

  • profile_group_id (string, required): Profile group ID
  • platform (string, required): Platform to connect (e.g. instagram, linkedin, whatsapp)
  • onboarding (string, optional): Instagram and WhatsApp only. Instagram: instagram (default) uses Instagram Login; facebook uses Facebook Login, for an Instagram professional account linked to a Facebook Page you manage. The profile is platform: "instagram" either way, and reconnecting with the other method updates the existing profile in place. WhatsApp: api or business_app (see WhatsApp Business Management).
  • identifier + app_password (Bluesky) / bot_token (Telegram): credentials, local server only
profiles_list

List all available social media profiles for posting.

Parameters:

  • profile_group_id (string, optional): If provided, only profiles in this group are returned (use profile_groups_list to find group IDs)

Returns:

{

"profiles": [ { "id": "profile-123", "name": "My Twitter Account", "platform": "twitter", "profile_group_id": "group-abc" } ] }

profiles_placements

List available placements for a profile. For Facebook profiles, placements are business pages. For LinkedIn profiles, placements include the personal profile and organizations. For Pinterest profiles, placements are boards. For Telegram profiles, placements are channels the bot can post to. For Google Business profiles, placements are locations, returned as full resource paths (accounts/X/locations/Y) to pass as location_id. For WhatsApp profiles, placements are the phone numbers on the Business Account — the placement id is the phone_number_id every whatsapp_* tool and dm_chat_create take. Available for facebook, linkedin, pinterest, telegram, google_business, and whatsapp profiles.

Parameters:

  • profile_id (string, required): Profile hashid

Returns (LinkedIn example):

{

"placements": [ { "id": null, "name": "Personal Profile" }, { "id": "108520199", "name": "Acme Marketing" } ] }

Notes:

  • If no placement is specified when creating a post:
  • LinkedIn: defaults to the personal profile
  • Facebook: defaults to a random connected page (if only one page is connected, no need to set a placement ID)
  • Pinterest: it fails
  • Telegram: it fails — chat_id is required on every post
  • Google Business: it fails — location_id is required on every post and on every google_business_* tool
profiles_stats

Get the follower/engagement timeseries for a profile. Snapshots are captured roughly every 23 hours, so you can plot follower growth and other trends over time. The stats fields are platform-native (not normalized) — see Stats Fields by Platform in the post_stats section for shape and add-on profile-level keys (followers_count, followersCount, etc.) per network.

Parameters:

  • profile_id (string, required): Profile hashid
  • placement_id (string, conditional): Required for facebook, linkedin, telegram, and google_business profiles. Get it from profiles_placements. Omit for instagram, threads, youtube, twitter, tiktok, pinterest, and bluesky.
  • from (string, optional): ISO 8601 timestamp — only include snapshots recorded at or after this time
  • to (string, optional): ISO 8601 timestamp — only include snapshots recorded at or before this time

Returns (LinkedIn example):

{

"data": { "profile_id": "prof_li_001", "platform": "linkedin", "placement_id": "108520199", "records": [ { "stats": { "followerCount": 4500, "shareCount": 8, "likeCount": 80 }, "recorded_at": "2026-05-09T08:00:00Z" }, { "stats": { "followerCount": 4520, "shareCount": 9, "likeCount": 90 }, "recorded_at": "2026-05-10T08:00:00Z" } ] } }

For non-placement networks (e.g. Bluesky), omit placement_id:

{

"data": { "profile_id": "prof_bsky_001", "platform": "bluesky", "placement_id": null, "records": [ { "stats": { "followersCount": 8800, "postsCount": 40 }, "recorded_at": "2026-05-09T08:00:00Z" } ] } }

Post Management
post_publish

Publish a post to specified social media profiles.

Parameters:

  • content (string, required): Post content text
  • profiles (string[], required): Array of profile IDs (hashids) or platform names (e.g., "linkedin", "instagram", "twitter"). When using platform names, posts to the first connected profile for that platform.
  • schedule (string, optional): ISO 8601 scheduled time
  • media (string[], optional): Array of media URLs or local file paths
  • idempotency_key (string, optional): Idempotency key for deduplication
  • require_confirmation (boolean, optional): If true, return summary without publishing
  • draft (boolean, optional): If true, creates a draft post that won't publish automatically
  • queue_id (string, optional): Queue ID to add the post to. The queue will automatically assign a timeslot. Do not use together with schedule.
  • queue_priority (string, optional): Priority when adding to a queue: high, medium (default), or low
  • platforms (object, optional): Platform-specific parameters. Key is platform name (e.g., "instagram", "youtube", "tiktok"), value is object with platform-specific options. See Platform Parameters Reference for full documentation.

Example:

  {

"instagram": { "format": "reel", "collaborators": ["username1", "username2"], "first_comment": "Link in bio!" }, "youtube": { "title": "My Video Title", "privacy_status": "public" }, "tiktok": { "privacy_status": "PUBLIC_TO_EVERYONE", "auto_add_music": true } }

Returns:

{

"post_id": "job-123", "accepted_at": "2024-01-01T12:00:00Z", "status": "pending", "draft": true }

Note on draft posts: If you request a draft post (draft: true) but the API returns draft: false, a warning field will be included in the response indicating that the API may have ignored the draft parameter. This can happen if the API does not support drafts with certain parameters (e.g., media attachments) or under specific conditions. Check the warning field in the response for details.

post_status

Get status of a published post by job ID.

Parameters:

  • post_id (string, required): Post ID from post.publish response

Returns:

{

"post_id": "job-123

앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요

PopNx에게 묻기