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

X (Twitter)

제작자: Role1776버전 0.1.1i★ –i내 컴퓨터에서 실행
레지스트리 이름io.github.Role1776/mcp-x

설치

개요

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

Search, read and publish X posts and manage users, lists and media via the X API v2.

PopNx MCP의 세 기둥

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

할 수 있는 일

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

  • 연결 방식: 내 컴퓨터에서 실행
  • 전송 방식: stdio
  • 카테고리: 마케팅 및 소셜 미디어
  • 입력해야 할 값: X_API_KEY, X_API_KEY_SECRET, X_ACCESS_TOKEN, X_ACCESS_TOKEN_SECRET, MEDIA_ROOT

설치

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

설치하기 전에

  • 기본 점검: 1개 중 1개 통과
  • 내 컴퓨터에서 내 사용자 계정의 권한(파일, 네트워크, 앱)으로 실행돼요.
  • 직접 입력할 값: X_API_KEY, X_API_KEY_SECRET, X_ACCESS_TOKEN, X_ACCESS_TOKEN_SECRET, MEDIA_ROOT, MCP_TRANSPORT, MCP_NAME, MCP_PATH, SERVER_PORT, SERVER_READ_TIMEOUT, SERVER_WRITE_TIMEOUT, LOG_MODE, MAX_IDLE_CONNS_PER_HOST, X_DEBUG, POSTS_MAX_QUERIES, POSTS_MAX_USERNAMES, POSTS_MAX_IDS, POSTS_DEFAULT_RESULTS, POSTS_MAX_RESULTS, POSTS_DEFAULT_DAYS, POSTS_MAX_DAYS, POSTS_DEFAULT_TIMEOUT_MS, POSTS_MIN_TIMEOUT_MS, POSTS_MAX_TIMEOUT_MS, USERS_MAX_USERNAMES, USERS_MAX_IDS, USERS_DEFAULT_RESULTS, USERS_MAX_RESULTS, USERS_DEFAULT_TIMEOUT_MS, USERS_MIN_TIMEOUT_MS, USERS_MAX_TIMEOUT_MS, LISTS_DEFAULT_RESULTS, LISTS_MAX_RESULTS, LISTS_DEFAULT_TIMEOUT_MS, LISTS_MIN_TIMEOUT_MS, LISTS_MAX_TIMEOUT_MS, MEDIA_CHUNK_BYTES, MEDIA_POLL_INTERVAL_MS, MEDIA_DEFAULT_TIMEOUT_MS, MEDIA_MIN_TIMEOUT_MS, MEDIA_MAX_TIMEOUT_MS

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

필요한 것

어떤 앱을 쓰세요?

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

제작자의 .mcpb 파일 다운로드

링크는 제작자의 파일로 바로 연결돼요. 우리가 보관하거나 다시 패키징하지 않아요. 파일을 열면 Claude Desktop이 설치해요.

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

claude mcp add x --env X_API_KEY=your-value --env X_API_KEY_SECRET=your-value --env X_ACCESS_TOKEN=your-value --env X_ACCESS_TOKEN_SECRET=your-value --env MEDIA_ROOT=your-value --env MCP_TRANSPORT=your-value --env MCP_NAME=your-value --env MCP_PATH=your-value --env SERVER_PORT=your-value --env SERVER_READ_TIMEOUT=your-value --env SERVER_WRITE_TIMEOUT=your-value --env LOG_MODE=your-value --env MAX_IDLE_CONNS_PER_HOST=your-value --env X_DEBUG=your-value --env POSTS_MAX_QUERIES=your-value --env POSTS_MAX_USERNAMES=your-value --env POSTS_MAX_IDS=your-value --env POSTS_DEFAULT_RESULTS=your-value --env POSTS_MAX_RESULTS=your-value --env POSTS_DEFAULT_DAYS=your-value --env POSTS_MAX_DAYS=your-value --env POSTS_DEFAULT_TIMEOUT_MS=your-value --env POSTS_MIN_TIMEOUT_MS=your-value --env POSTS_MAX_TIMEOUT_MS=your-value --env USERS_MAX_USERNAMES=your-value --env USERS_MAX_IDS=your-value --env USERS_DEFAULT_RESULTS=your-value --env USERS_MAX_RESULTS=your-value --env USERS_DEFAULT_TIMEOUT_MS=your-value --env USERS_MIN_TIMEOUT_MS=your-value --env USERS_MAX_TIMEOUT_MS=your-value --env LISTS_DEFAULT_RESULTS=your-value --env LISTS_MAX_RESULTS=your-value --env LISTS_DEFAULT_TIMEOUT_MS=your-value --env LISTS_MIN_TIMEOUT_MS=your-value --env LISTS_MAX_TIMEOUT_MS=your-value --env MEDIA_CHUNK_BYTES=your-value --env MEDIA_POLL_INTERVAL_MS=your-value --env MEDIA_DEFAULT_TIMEOUT_MS=your-value --env MEDIA_MIN_TIMEOUT_MS=your-value --env MEDIA_MAX_TIMEOUT_MS=your-value -- docker run -i --rm -e X_API_KEY -e X_API_KEY_SECRET -e X_ACCESS_TOKEN -e X_ACCESS_TOKEN_SECRET -e MEDIA_ROOT -e MCP_TRANSPORT -e MCP_NAME -e MCP_PATH -e SERVER_PORT -e SERVER_READ_TIMEOUT -e SERVER_WRITE_TIMEOUT -e LOG_MODE -e MAX_IDLE_CONNS_PER_HOST -e X_DEBUG -e POSTS_MAX_QUERIES -e POSTS_MAX_USERNAMES -e POSTS_MAX_IDS -e POSTS_DEFAULT_RESULTS -e POSTS_MAX_RESULTS -e POSTS_DEFAULT_DAYS -e POSTS_MAX_DAYS -e POSTS_DEFAULT_TIMEOUT_MS -e POSTS_MIN_TIMEOUT_MS -e POSTS_MAX_TIMEOUT_MS -e USERS_MAX_USERNAMES -e USERS_MAX_IDS -e USERS_DEFAULT_RESULTS -e USERS_MAX_RESULTS -e USERS_DEFAULT_TIMEOUT_MS -e USERS_MIN_TIMEOUT_MS -e USERS_MAX_TIMEOUT_MS -e LISTS_DEFAULT_RESULTS -e LISTS_MAX_RESULTS -e LISTS_DEFAULT_TIMEOUT_MS -e LISTS_MIN_TIMEOUT_MS -e LISTS_MAX_TIMEOUT_MS -e MEDIA_CHUNK_BYTES -e MEDIA_POLL_INTERVAL_MS -e MEDIA_DEFAULT_TIMEOUT_MS -e MEDIA_MIN_TIMEOUT_MS -e MEDIA_MAX_TIMEOUT_MS ghcr.io/role1776/mcp-x:0.1.1

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

Cursor에서 열기

또는 설정을 직접 복사하기

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

{
  "mcpServers": {
    "x": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "X_API_KEY",
        "-e",
        "X_API_KEY_SECRET",
        "-e",
        "X_ACCESS_TOKEN",
        "-e",
        "X_ACCESS_TOKEN_SECRET",
        "-e",
        "MEDIA_ROOT",
        "-e",
        "MCP_TRANSPORT",
        "-e",
        "MCP_NAME",
        "-e",
        "MCP_PATH",
        "-e",
        "SERVER_PORT",
        "-e",
        "SERVER_READ_TIMEOUT",
        "-e",
        "SERVER_WRITE_TIMEOUT",
        "-e",
        "LOG_MODE",
        "-e",
        "MAX_IDLE_CONNS_PER_HOST",
        "-e",
        "X_DEBUG",
        "-e",
        "POSTS_MAX_QUERIES",
        "-e",
        "POSTS_MAX_USERNAMES",
        "-e",
        "POSTS_MAX_IDS",
        "-e",
        "POSTS_DEFAULT_RESULTS",
        "-e",
        "POSTS_MAX_RESULTS",
        "-e",
        "POSTS_DEFAULT_DAYS",
        "-e",
        "POSTS_MAX_DAYS",
        "-e",
        "POSTS_DEFAULT_TIMEOUT_MS",
        "-e",
        "POSTS_MIN_TIMEOUT_MS",
        "-e",
        "POSTS_MAX_TIMEOUT_MS",
        "-e",
        "USERS_MAX_USERNAMES",
        "-e",
        "USERS_MAX_IDS",
        "-e",
        "USERS_DEFAULT_RESULTS",
        "-e",
        "USERS_MAX_RESULTS",
        "-e",
        "USERS_DEFAULT_TIMEOUT_MS",
        "-e",
        "USERS_MIN_TIMEOUT_MS",
        "-e",
        "USERS_MAX_TIMEOUT_MS",
        "-e",
        "LISTS_DEFAULT_RESULTS",
        "-e",
        "LISTS_MAX_RESULTS",
        "-e",
        "LISTS_DEFAULT_TIMEOUT_MS",
        "-e",
        "LISTS_MIN_TIMEOUT_MS",
        "-e",
        "LISTS_MAX_TIMEOUT_MS",
        "-e",
        "MEDIA_CHUNK_BYTES",
        "-e",
        "MEDIA_POLL_INTERVAL_MS",
        "-e",
        "MEDIA_DEFAULT_TIMEOUT_MS",
        "-e",
        "MEDIA_MIN_TIMEOUT_MS",
        "-e",
        "MEDIA_MAX_TIMEOUT_MS",
        "ghcr.io/role1776/mcp-x:0.1.1"
      ],
      "env": {
        "X_API_KEY": "your-value",
        "X_API_KEY_SECRET": "your-value",
        "X_ACCESS_TOKEN": "your-value",
        "X_ACCESS_TOKEN_SECRET": "your-value",
        "MEDIA_ROOT": "your-value",
        "MCP_TRANSPORT": "your-value",
        "MCP_NAME": "your-value",
        "MCP_PATH": "your-value",
        "SERVER_PORT": "your-value",
        "SERVER_READ_TIMEOUT": "your-value",
        "SERVER_WRITE_TIMEOUT": "your-value",
        "LOG_MODE": "your-value",
        "MAX_IDLE_CONNS_PER_HOST": "your-value",
        "X_DEBUG": "your-value",
        "POSTS_MAX_QUERIES": "your-value",
        "POSTS_MAX_USERNAMES": "your-value",
        "POSTS_MAX_IDS": "your-value",
        "POSTS_DEFAULT_RESULTS": "your-value",
        "POSTS_MAX_RESULTS": "your-value",
        "POSTS_DEFAULT_DAYS": "your-value",
        "POSTS_MAX_DAYS": "your-value",
        "POSTS_DEFAULT_TIMEOUT_MS": "your-value",
        "POSTS_MIN_TIMEOUT_MS": "your-value",
        "POSTS_MAX_TIMEOUT_MS": "your-value",
        "USERS_MAX_USERNAMES": "your-value",
        "USERS_MAX_IDS": "your-value",
        "USERS_DEFAULT_RESULTS": "your-value",
        "USERS_MAX_RESULTS": "your-value",
        "USERS_DEFAULT_TIMEOUT_MS": "your-value",
        "USERS_MIN_TIMEOUT_MS": "your-value",
        "USERS_MAX_TIMEOUT_MS": "your-value",
        "LISTS_DEFAULT_RESULTS": "your-value",
        "LISTS_MAX_RESULTS": "your-value",
        "LISTS_DEFAULT_TIMEOUT_MS": "your-value",
        "LISTS_MIN_TIMEOUT_MS": "your-value",
        "LISTS_MAX_TIMEOUT_MS": "your-value",
        "MEDIA_CHUNK_BYTES": "your-value",
        "MEDIA_POLL_INTERVAL_MS": "your-value",
        "MEDIA_DEFAULT_TIMEOUT_MS": "your-value",
        "MEDIA_MIN_TIMEOUT_MS": "your-value",
        "MEDIA_MAX_TIMEOUT_MS": "your-value"
      }
    }
  }
}

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

VS Code에서 열기

또는 설정을 직접 복사하기

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

{
  "servers": {
    "x": {
      "type": "stdio",
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "X_API_KEY",
        "-e",
        "X_API_KEY_SECRET",
        "-e",
        "X_ACCESS_TOKEN",
        "-e",
        "X_ACCESS_TOKEN_SECRET",
        "-e",
        "MEDIA_ROOT",
        "-e",
        "MCP_TRANSPORT",
        "-e",
        "MCP_NAME",
        "-e",
        "MCP_PATH",
        "-e",
        "SERVER_PORT",
        "-e",
        "SERVER_READ_TIMEOUT",
        "-e",
        "SERVER_WRITE_TIMEOUT",
        "-e",
        "LOG_MODE",
        "-e",
        "MAX_IDLE_CONNS_PER_HOST",
        "-e",
        "X_DEBUG",
        "-e",
        "POSTS_MAX_QUERIES",
        "-e",
        "POSTS_MAX_USERNAMES",
        "-e",
        "POSTS_MAX_IDS",
        "-e",
        "POSTS_DEFAULT_RESULTS",
        "-e",
        "POSTS_MAX_RESULTS",
        "-e",
        "POSTS_DEFAULT_DAYS",
        "-e",
        "POSTS_MAX_DAYS",
        "-e",
        "POSTS_DEFAULT_TIMEOUT_MS",
        "-e",
        "POSTS_MIN_TIMEOUT_MS",
        "-e",
        "POSTS_MAX_TIMEOUT_MS",
        "-e",
        "USERS_MAX_USERNAMES",
        "-e",
        "USERS_MAX_IDS",
        "-e",
        "USERS_DEFAULT_RESULTS",
        "-e",
        "USERS_MAX_RESULTS",
        "-e",
        "USERS_DEFAULT_TIMEOUT_MS",
        "-e",
        "USERS_MIN_TIMEOUT_MS",
        "-e",
        "USERS_MAX_TIMEOUT_MS",
        "-e",
        "LISTS_DEFAULT_RESULTS",
        "-e",
        "LISTS_MAX_RESULTS",
        "-e",
        "LISTS_DEFAULT_TIMEOUT_MS",
        "-e",
        "LISTS_MIN_TIMEOUT_MS",
        "-e",
        "LISTS_MAX_TIMEOUT_MS",
        "-e",
        "MEDIA_CHUNK_BYTES",
        "-e",
        "MEDIA_POLL_INTERVAL_MS",
        "-e",
        "MEDIA_DEFAULT_TIMEOUT_MS",
        "-e",
        "MEDIA_MIN_TIMEOUT_MS",
        "-e",
        "MEDIA_MAX_TIMEOUT_MS",
        "ghcr.io/role1776/mcp-x:0.1.1"
      ],
      "env": {
        "X_API_KEY": "your-value",
        "X_API_KEY_SECRET": "your-value",
        "X_ACCESS_TOKEN": "your-value",
        "X_ACCESS_TOKEN_SECRET": "your-value",
        "MEDIA_ROOT": "your-value",
        "MCP_TRANSPORT": "your-value",
        "MCP_NAME": "your-value",
        "MCP_PATH": "your-value",
        "SERVER_PORT": "your-value",
        "SERVER_READ_TIMEOUT": "your-value",
        "SERVER_WRITE_TIMEOUT": "your-value",
        "LOG_MODE": "your-value",
        "MAX_IDLE_CONNS_PER_HOST": "your-value",
        "X_DEBUG": "your-value",
        "POSTS_MAX_QUERIES": "your-value",
        "POSTS_MAX_USERNAMES": "your-value",
        "POSTS_MAX_IDS": "your-value",
        "POSTS_DEFAULT_RESULTS": "your-value",
        "POSTS_MAX_RESULTS": "your-value",
        "POSTS_DEFAULT_DAYS": "your-value",
        "POSTS_MAX_DAYS": "your-value",
        "POSTS_DEFAULT_TIMEOUT_MS": "your-value",
        "POSTS_MIN_TIMEOUT_MS": "your-value",
        "POSTS_MAX_TIMEOUT_MS": "your-value",
        "USERS_MAX_USERNAMES": "your-value",
        "USERS_MAX_IDS": "your-value",
        "USERS_DEFAULT_RESULTS": "your-value",
        "USERS_MAX_RESULTS": "your-value",
        "USERS_DEFAULT_TIMEOUT_MS": "your-value",
        "USERS_MIN_TIMEOUT_MS": "your-value",
        "USERS_MAX_TIMEOUT_MS": "your-value",
        "LISTS_DEFAULT_RESULTS": "your-value",
        "LISTS_MAX_RESULTS": "your-value",
        "LISTS_DEFAULT_TIMEOUT_MS": "your-value",
        "LISTS_MIN_TIMEOUT_MS": "your-value",
        "LISTS_MAX_TIMEOUT_MS": "your-value",
        "MEDIA_CHUNK_BYTES": "your-value",
        "MEDIA_POLL_INTERVAL_MS": "your-value",
        "MEDIA_DEFAULT_TIMEOUT_MS": "your-value",
        "MEDIA_MIN_TIMEOUT_MS": "your-value",
        "MEDIA_MAX_TIMEOUT_MS": "your-value"
      }
    }
  }
}

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

이 서버는 내 컴퓨터에서 실행되는데, ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요. 다른 앱을 고르세요.

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

직접 입력할 값

  • X_API_KEY 비밀 필수 env
    OAuth 1.0a consumer key. developer.x.com -> your project -> your app -> Keys and tokens.
  • X_API_KEY_SECRET 비밀 필수 env
    OAuth 1.0a consumer secret, issued together with X_API_KEY.
  • X_ACCESS_TOKEN 비밀 필수 env
    User access token. Set the app permissions to Read and Write BEFORE generating it: a token keeps the permissions it was created with, and a read-only one fails every write until it is regenerated.
  • X_ACCESS_TOKEN_SECRET 비밀 필수 env
    User access token secret, issued together with X_ACCESS_TOKEN.
  • MEDIA_ROOT 필수 env
    Absolute path to an existing directory - the only one x_media_upload may read files from. Anything outside it is refused, symlinks included. Checked at startup.
  • MCP_TRANSPORT env
    stdio (client spawns the process) or http (streamable HTTP listener).
  • MCP_NAME env
    Server name reported in the MCP initialize handshake.
  • MCP_PATH env
    HTTP path the MCP endpoint is served on. Used only when MCP_TRANSPORT=http.
  • SERVER_PORT env
    TCP port to listen on. Used only when MCP_TRANSPORT=http.
  • SERVER_READ_TIMEOUT env
    HTTP read timeout as a Go duration. Used only when MCP_TRANSPORT=http.
  • SERVER_WRITE_TIMEOUT env
    HTTP write timeout as a Go duration. Used only when MCP_TRANSPORT=http.
  • LOG_MODE env
    local (text, debug) or prod (JSON, info). Logs go to stderr.
  • MAX_IDLE_CONNS_PER_HOST env
    Idle connections the outbound HTTP client keeps per host.
  • X_DEBUG env
    Log the raw requests sent to the X API. Verbose; the output can contain request details, so keep it off outside debugging.
  • POSTS_MAX_QUERIES env
    Queries accepted in one x_posts_search or x_posts_count call.
  • POSTS_MAX_USERNAMES env
    Usernames accepted in one x_posts_by_user call.
  • POSTS_MAX_IDS env
    Post ids accepted in one x_posts_lookup call. The X API caps this at 100.
  • POSTS_DEFAULT_RESULTS env
    Posts returned per query when the call does not ask for a count. Every post returned is billed.
  • POSTS_MAX_RESULTS env
    Upper bound for posts per query. The X API caps this at 100.
  • POSTS_DEFAULT_DAYS env
    How far back post searches look when the call does not say, in days.
  • POSTS_MAX_DAYS env
    Furthest back a post search may look, in days. Recent search cannot exceed 7.
  • POSTS_DEFAULT_TIMEOUT_MS env
    Timeout for a posts call in milliseconds when the call does not request one.
  • POSTS_MIN_TIMEOUT_MS env
    Lowest timeout a posts call may request, in milliseconds.
  • POSTS_MAX_TIMEOUT_MS env
    Highest timeout a posts call may request, in milliseconds.
  • USERS_MAX_USERNAMES env
    Usernames accepted in one x_users_lookup call. The X API caps this at 100.
  • USERS_MAX_IDS env
    User ids accepted in one x_users_lookup call. The X API caps this at 100.
  • USERS_DEFAULT_RESULTS env
    Users returned per page when the call does not ask for a count.
  • USERS_MAX_RESULTS env
    Upper bound for users per page.
  • USERS_DEFAULT_TIMEOUT_MS env
    Timeout for a users call in milliseconds when the call does not request one.
  • USERS_MIN_TIMEOUT_MS env
    Lowest timeout a users call may request, in milliseconds.
  • USERS_MAX_TIMEOUT_MS env
    Highest timeout a users call may request, in milliseconds.
  • LISTS_DEFAULT_RESULTS env
    Items returned per list page when the call does not ask for a count.
  • LISTS_MAX_RESULTS env
    Upper bound for items per list page. The X API caps this at 100.
  • LISTS_DEFAULT_TIMEOUT_MS env
    Timeout for a lists call in milliseconds when the call does not request one.
  • LISTS_MIN_TIMEOUT_MS env
    Lowest timeout a lists call may request, in milliseconds.
  • LISTS_MAX_TIMEOUT_MS env
    Highest timeout a lists call may request, in milliseconds.
  • MEDIA_CHUNK_BYTES env
    Bytes per upload segment. The X APPEND endpoint caps a segment at 5 MB.
  • MEDIA_POLL_INTERVAL_MS env
    How often the upload status is polled while X transcodes a video, in milliseconds.
  • MEDIA_DEFAULT_TIMEOUT_MS env
    Timeout for a whole upload in milliseconds when the call does not request one.
  • MEDIA_MIN_TIMEOUT_MS env
    Lowest timeout an upload may request, in milliseconds.
  • MEDIA_MAX_TIMEOUT_MS env
    Highest timeout an upload may request, in milliseconds.

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

할 수 있는 일

내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.

기본 점검i

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

  • ✓ 통과

    제작자와 저장소 일치

    레지스트리 이름이 GitHub 계정 Role1776 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요

  • … 아직 점검 안 함

    계속 관리되고 있음

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

  • … 아직 점검 안 함

    라이선스 있음

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

  • – 해당 없음

    엔드포인트 응답

    내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요

  • – 해당 없음

    OAuth로 로그인

    내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요

  • … 아직 점검 안 함

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

    내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요

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

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

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

자주 묻는 질문

X (Twitter), 안전한가요?

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

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

입력해야 할 값: X_API_KEY, X_API_KEY_SECRET, X_ACCESS_TOKEN, X_ACCESS_TOKEN_SECRET, MEDIA_ROOT

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

내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).

아직 관리되고 있나요?

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

어떤 앱에서 쓸 수 있나요?

Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 Docker, MCPB도 있어야 해요.

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

같은 카테고리에는: 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.

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

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

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

제작자의 README

README 열기

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

mcp-x

An MCP server that gives an LLM the X (Twitter) API: read and search posts, manage users and lists, upload media, and publish — as the account whose keys it runs on.

Website · Costs · Credentials · Tools · Quick start · Configuration · Architecture · Contributing


What it is

mcp-x is a Model Context Protocol server written in Go. It exposes the X API v2 to any MCP-compatible client (Claude Desktop, IDE agents, custom LLM apps) as 42 tools covering posts, users, lists and media.

It authenticates with OAuth 1.0a user context, which means every call acts *as a real X account* — the one the four keys belong to. x_post_create publishes publicly. x_user_follow really follows. x_post_delete is irreversible. This is not a sandbox, and it is not free: see The X API costs money before you wire it into an agent.

Both transports the MCP SDK supports are available and expose the identical tool set:

  • stdio — the client launches the binary and talks over stdin/stdout (the default, ideal for desktop clients).
  • http — a long-running streamable HTTP server (useful for remote/shared deployments).

The X API costs money

[!WARNING]

There is no free tier any more. X retired the Free/Basic/Pro subscription tiers for new developers and moved to pay-per-use credits: you buy credits upfront in the Developer Console and every request deducts from the balance in real time. Legacy Basic ($200/mo) and Pro ($5,000/mo) subscriptions survive only for accounts that already had them; Enterprise starts around $42,000/mo. A new developer account today gets pay-per-use and nothing else.

Rates at the time of writing (official pricing — always re-check the Console, they have changed several times in 2026):

OperationPrice
Post read$0.005 per post returned
Owned read (your own posts, bookmarks, followers, likes, lists)$0.001 per resource
User read$0.010 per user returned
Likes / mutes / blocks read$0.001 per resource
Followers / following read$0.010 per resource
Publishing a post$0.015 per request
Publishing a post containing a URL$0.200 per request
Like / repost and other interactions$0.015 per request
List and bookmark writes$0.005–$0.010 per request

Two things follow from this, and both are baked into the server:

  • **Reads are charged per *resource returned*, not per request.** max_results: 100 on x_posts_search costs twenty times what max_results: 5 costs for the same query. Every read tool's description tells the model to ask for the smallest max_results that answers the question, and the batching tools (x_posts_lookup, x_users_lookup) tell it to batch rather than loop.
  • `x_posts_count` does not consume the post-read budget. It returns match counts bucketed by minute/hour/day for the same query syntax. Size a topic with x_posts_count first, then pay for x_posts_search.

X also deduplicates: the same resource fetched twice inside a 24-hour UTC window is billed once. And pay-per-use is capped at 3 million post reads per billing cycle — past that, only Enterprise.

When the money runs out the API answers with a distinct error, and the server maps it to a message that explicitly tells the model not to retry — see Errors.


Credentials

The server needs four OAuth 1.0a values, all from one X app:

X_API_KEY

X_API_KEY_SECRET X_ACCESS_TOKEN X_ACCESS_TOKEN_SECRET

The first pair identifies the *app*; the second pair identifies the *account acting through it*. mcp-x uses AuthenMethodOAuth1UserContext, not app-only bearer auth, because every write endpoint and every "me" endpoint (x_users_me, x_posts_home, x_bookmarks_list, mentions) requires a user context. There is no bearer-token mode.

Getting them — and the one step everybody gets wrong
  1. Go to developer.x.com → your project → your app.
  2. Open User authentication settings and set App permissions to Read and Write. Do this first.
  3. *Only then* go to Keys and tokens and generate the Access Token and Secret.

[!IMPORTANT]

An access token permanently keeps the permissions the app had at the moment it was generated. If you created the token while the app was Read-only and then flipped the app to Read and Write, the token is *still* read-only. Nothing about the app settings page will tell you this. Every write will fail with X's oauth1-permissions problem type, forever, until you go back to Keys and tokens and regenerate the Access Token and Secret.

This is the single most common setup failure with the X API, which is why the server checks for it at startup and refuses to start with:

`

the access token is read-only: set the app permissions to Read and Write

in the X Developer Console, then regenerate the Access Token and Secret

`

Regenerating the *API Key/Secret* is not the fix. Regenerate the Access Token and Secret.

Startup verification

Before registering a single tool, the server calls GET /2/users/me once (client.Bootstrap) with a 15-second deadline. This does three jobs:

  • proves the four keys are valid — bad keys fail the process, not the first tool call;
  • catches the read-only-token trap above;
  • caches the key owner's numeric user id, because every write endpoint is POST /2/users/:id/... and looking the id up per write would be another billed request.

A failure here is fatal by design. A server that starts and then fails every call is worse than one that does not start.

The cost of that choice is worth stating plainly: there is no way to try this server without a funded X developer account. No credentials means no startup, which means no tool list — /mcp and claude mcp list will show a failed connection and nothing else. To confirm an install short of that, run the binary with -version, and read the Tools section for what it would have exposed.

Keys are secrets

The four values are credentials for a live account with write access. Keep them in a file only you can read, pass it with -env, and never commit it — .env is gitignored, .env.example is the template. When running under an MCP client, the client's env block works too; it takes precedence over the .env file.


Tools

42 tools in four groups. Every tool carries MCP annotations: readOnlyHint on reads, destructiveHint on anything irreversible (x_post_delete, x_list_delete, unlike, unrepost, unfollow, member removal). Each returns a structured JSON payload matching its output schema; the SDK mirrors the same JSON into the text content block for clients that do not read structuredContent.

Every tool accepts an optional timeout_ms, clamped into the group's [MIN, MAX] window (see Limits).

Posts — reading
ToolDescription
`x_posts_search`Searches recent posts for several queries in parallel. Recent search reaches back 7 days only.
`x_posts_count`Counts matches per query bucketed by minute/hour/day. Does not spend post reads — use it to size a topic before searching.
`x_posts_lookup`Fetches up to 100 posts by id in one call.
`x_posts_by_user`Recent posts for several usernames, fetched in parallel.
`x_posts_mentions`Posts mentioning the key owner.
`x_posts_home`The key owner's home timeline.
`x_posts_quotes`Posts quoting a given post.
`x_posts_liked`Posts the key owner liked.
`x_bookmarks_list`The key owner's bookmarks.
`x_post_liked_by`Users who liked a given post.
`x_post_reposted_by`Users who reposted a given post.
x_posts_search
ParameterTypeDefaultNotes
queries[]string—Required. Run in parallel, capped at POSTS_MAX_QUERIES (5). ≤ 512 chars each.
max_resultsint10Posts per query, 1..100. Every one is billed.
sort_orderstring—recency (newest first) or relevancy (best match).
daysint7How far back, 1..7. The API cannot go further.
include_retweetsboolfalseWhen false the server appends -is:retweet to every query.
timeout_msint6415000Whole-call timeout, clamped to [2000, 60000].

Query operators go inside the query string:

OperatorMeaning
*space*AND
ORexplicit OR
-termNOT
( )grouping
from:user / to:userby author / by recipient
@user / #tagmentions / hashtags
"exact phrase"exact phrase
lang:enlanguage
is:retweet is:reply is:quote is:verifiedpost kind
has:media has:images has:videos has:linksattachments
url:example.comlinked domain
conversation_id:123one thread
x_posts_count
ParameterTypeDefaultNotes
queries[]string—Required. Same operators as x_posts_search.
granularitystringhourminute, hour or day.
daysint71..7, same window.
timeout_msint6415000Clamped to [2000, 60000].
x_posts_lookup
ParameterTypeDefaultNotes
ids[]string—Required. 1..100 post ids. Batch them; do not call once per id.
x_posts_by_user
ParameterTypeDefaultNotes
usernames[]string—Required. Without the @. Capped at POSTS_MAX_USERNAMES (5), fetched in parallel.
max_resultsint10Posts per user, 1..100.
exclude[]string—replies and/or retweets.
daysint71..7.
timeout_msint6415000Clamped to [2000, 60000].
Timeline tools

x_posts_mentions, x_posts_home, x_posts_liked and x_bookmarks_list share one shape: max_results (1..100), pagination_token, timeout_ms. x_posts_quotes, x_post_liked_by and x_post_reposted_by add a required id.

Pagination is explicit and manual: a response carries next_token, and you pass it back as pagination_token for the next page. The server never walks pages on its own — each page is billed, so that decision stays with the caller.

Posts — writing
ToolAnnotationDescription
`x_post_create`writePublishes a post. Public and billed ($0.015, or $0.20 with a link).

| `x_post_delete` | de

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

PopNx에게 묻기