| 서버 | 기능 | URL |
|---|---|---|
| X MCP | X API 엔드포인트 호출 (게시물 검색, 사용자 조회, 북마크, 트렌드, 뉴스, Articles 등) | https://api.x.com/mcp (호스팅됨; xurl mcp를 통해 연결) |
| Docs MCP | X API 문서 검색 및 읽기 | https://docs.x.com/mcp (호스팅됨) |
X MCP — X API
MCP 호환 AI 도구(Grok Build, Cursor, Claude, VS Code 등)를 X API에 직접 연결하여 전체 아카이브 검색, 사용자 조회, 북마크 관리, 트렌드 및 뉴스 가져오기, Articles 초안 작성을 모두 본인의 X 계정 권한으로 수행할 수 있습니다. X API는 **https://api.x.com/mcp**에서 호스팅되는 Streamable HTTP MCP 서버를 노출합니다(프로토콜 2025-06-18, serverInfo: xmcp). 오픈 소스 xurl mcp 브리지를 통해 접근하며, 이 브리지가 OAuth를 처리하고 매 호출마다 최신 Bearer token을 주입합니다.
한눈에 보는 기능
| 카테고리 | 모델이 수행할 수 있는 작업 |
|---|---|
| Posts | 게시물 가져오기, 좋아요/리포스트/인용한 사용자 보기, 최근 카운트 |
| Search | 전체 아카이브 게시물 검색, 사용자 검색, 뉴스 검색 |
| Users | 현재 사용자 식별, ID/핸들로 조회, 사용자의 게시물·타임라인·멘션 읽기 |
| Bookmarks | 북마크 나열/추가/제거 및 북마크 폴더 관리 |
| News & Trends | 뉴스 기사 가져오기, 위치(WOEID)별 트렌드 가져오기 |
| Articles | Articles 초안 작성 및 게시 |
작동 방식
X의 OAuth는 본인 소유의 개발자 앱을 요구합니다(동적 클라이언트 등록이 없으며api.x.com/mcp는 네이티브 MCP OAuth 디스커버리를 광고하지 않습니다). 따라서 클라이언트를 URL로 직접 가리키는 대신, 앱 ID를 소유하고 1회 로그인을 수행하며 토큰을 항상 최신 상태로 유지하는 작은 로컬 브리지를 실행합니다.
- 브리지는 npm 런처(
npx)를 통해 실행되므로 별도의 설치 단계가 필요 없습니다. - 캐시된 토큰 없이 처음 실행할 때, 브라우저를 열어 1회 OAuth2 로그인을 수행한 후 토큰을 캐시하고 이후 자동 갱신합니다.
- 모든 진단 정보는 stderr로 출력되며, stdout은 깔끔한 JSON-RPC 채널로 유지됩니다.
시작하기
두 가지 경로 중 하나를 선택하세요:- 간단 경로 — App-only Bearer. 앱의 Bearer token을 MCP 클라이언트의
Authorization헤더에 붙여넣습니다. 브리지도, 브라우저 로그인도 필요 없습니다. 읽기 전용 엔드포인트이며 사용자 컨텍스트가 없습니다(사용자로서 행동할 수 없음). 사용자 정의 헤더가 있는 원격 MCP를 지원하는 클라이언트에서 동작합니다. - 풀 경로 —
xurl mcp브리지(OAuth 2.0 사용자 컨텍스트). 로컬 브리지가 OAuth 2.0 PKCE 로그인을 처리하고 토큰을 자동 갱신하므로, 모델이 사용자 계정의 스코프로 동작합니다. 쓰기 작업(북마크, Articles)이나 모든 사용자 컨텍스트 도구에 필수입니다.
간단 경로 (app-only Bearer)
- X 개발자 포털에서 X 앱을 생성합니다.
- 앱의 “Keys and tokens” 페이지에서 App-only Bearer token을 복사합니다.
- 토큰을
Authorization헤더로 사용하여 클라이언트를https://api.x.com/mcp에 연결하세요 — 아래 App 전용 (직접 URL, 브리지 없음) 스니펫을 참고하세요.
풀 경로 (xurl bridge)
- OAuth 2.0이 활성화된 X 앱을 생성합니다.
-
첫 실행 시 브라우저 로그인에 필요한 리다이렉트 URI
http://localhost:8080/callback을 앱에 등록합니다. 다른 URI를 사용하려면REDIRECT_URI를 설정하고 해당 URI를 등록하세요. -
CLIENT_ID와CLIENT_SECRET을 복사해 두세요 — 클라이언트 설정에 입력해야 합니다. -
Node.js를 설치해 두세요 (
npx에 필요). -
xurl 설치를 권장합니다:
첫 로그인에는 브라우저가 필요합니다. 헤드리스/원격 환경에서는 먼저
xurl auth oauth2 --headless(코드 붙여넣기 방식)로 별도 인증을 수행하면, 이후 브리지는 캐시된 토큰을 재사용합니다. Headless를 참고하세요.클라이언트 연결
1. Grok Build
-e 플래그는 서버의 환경 변수가 되고, -- 뒤의 인자는 npx로 전달됩니다):
doctor 실행 시) 브라우저가 열려 X 로그인을 진행합니다 — 1회 완료하면 됩니다.
2. Cursor
~/.cursor/mcp.json(전역, 모든 프로젝트) 또는 .cursor/mcp.json(이 프로젝트만)을 생성하세요:
3. Claude Desktop
claude_desktop_config.json을 편집하세요(macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\):
4. VS Code (GitHub Copilot / Agent mode)
.vscode/mcp.json에 추가하세요:
5. 모든 MCP 클라이언트
xurl 브리지 (stdio):| 필드 | 값 |
|---|---|
command | npx |
args | ["-y", "@xdevplatform/xurl", "mcp", "https://api.x.com/mcp"] |
env | CLIENT_ID, CLIENT_SECRET |
| 시작 타임아웃 | ≥ 300초 (첫 실행 로그인이 완료될 수 있도록) |
xurl을 네이티브로 설치했다면 command/args를 "command": "xurl", "args": ["mcp", "https://api.x.com/mcp"]로 교체하세요.
App-only Bearer (원격 HTTP):
| 필드 | 값 |
|---|---|
url | https://api.x.com/mcp |
headers.Authorization | Bearer YOUR_APP_ONLY_BEARER_TOKEN |
인증
OAuth 2.0 사용자 컨텍스트 (기본)
브리지는 사용자 본인으로 인증되며(PKCE 흐름), 도구는 사용자 계정의 스코프로 동작합니다. 자격 증명 해석 순서:CLIENT_ID/CLIENT_SECRET 환경 변수 → ~/.xurl에 있는 활성 앱. 토큰은 ~/.xurl에 캐시되고 자동으로 갱신됩니다(401 발생 시 강제 갱신 포함).
첫 실행 브라우저 로그인
캐시된 토큰이 없으면 브리지는 stderr로 다음을 출력하고 브라우저를 엽니다:startup_timeout_sec이 필요합니다.
헤드리스 / 원격 환경
접근 가능한 브라우저가 없나요? 한 번 별도로 인증한 후 클라이언트를 시작하세요:App 전용 (직접 URL, 브리지 없음)
읽기 엔드포인트의 경우 브리지를 건너뛰고 정적 App 전용 Bearer token으로 클라이언트를 URL에 직접 연결할 수 있습니다 — 사용자 정의 헤더가 있는 원격 MCP를 지원하는 클라이언트에 유용합니다:여러 앱과 계정
args에 "--app", "my-app" 또는 "-u", "alice"를 추가하세요.
설정 레퍼런스
| 설정 | 위치 | 비고 |
|---|---|---|
CLIENT_ID / CLIENT_SECRET | env | X 앱 자격 증명(또는 ~/.xurl의 등록된 앱에 의존) |
REDIRECT_URI | env | 콜백을 재정의; 앱에 등록되어 있어야 함. 기본값 http://localhost:8080/callback |
startup_timeout_sec | 클라이언트 설정 | 첫 실행 로그인이 완료되도록 ≥ 300으로 설정 |
[URL] 위치 인자 | args | 기본값 https://api.x.com/mcp |
--app NAME | args | 특정 등록된 앱 사용 |
-u, --username | args | 특정 OAuth2 사용자로 동작 |
AUTH_URL, TOKEN_URL, API_BASE_URL, INFO_URL.
검증 및 문제 해결
| 증상 | 원인 / 해결 |
|---|---|
| 시작 시 클라이언트 타임아웃 | startup_timeout_sec를 300 이상으로 올리세요; 브리지가 브라우저 로그인을 대기 중입니다 |
| 브라우저가 열리지 않음 | 디스플레이 없음(헤드리스) → 먼저 xurl auth oauth2 --headless를 실행; npx가 해석되는지 확인 |
401 / token refresh failed | 앱 자격 증명이 잘못되었거나 리프레시 토큰이 폐기됨 → 다시 로그인(xurl auth oauth2 [--app NAME]) |
| 브라우저에서 리다이렉트/콜백 오류 | http://localhost:8080/callback이 앱에 등록되지 않음(또는 REDIRECT_URI 불일치) |
로그인 후 client-not-enrolled | 앱이 올바른 X 패키지/환경에 없음 → 포털에서 Pay-per-use + Production으로 이동 |
npx가 오래된 버전을 가져옴 | 프라이빗 레지스트리 미러가 기본값 → args에 --registry=https://registry.npmjs.org/ 고정 |
| 비어 있거나 깨진 도구 출력 | 클라이언트를 --verbose로 실행하지 마세요; stdout은 깔끔한 JSON-RPC 채널로 유지되어야 합니다 |
보안 및 모범 사례
~/.xurl과 액세스 토큰을 비밀로 취급하세요 — 채팅, 로그, 공유 설정에 붙여넣지 마세요. 원시 비밀을 커밋하는 대신 환경 변수를 참조하는 프로젝트별.mcp.json/.grok/config.toml을 선호하세요.- MCP에는 필요한 스코프만 가진 전용 앱을 사용하세요.
- 쓰기는 속도 제한에 포함되며(북마크,
article_publish) 읽기보다 더 엄격합니다; 가끔429가 발생할 수 있으니 백오프하세요. - 브리지는 로컬에서 실행됩니다 — 자격 증명은 TLS를 통해
api.x.com에 전송되는 Bearer token을 제외하고 컴퓨터를 떠나지 않습니다.
Docs MCP — 문서 검색
X API 문서를 위한 MCP 서버가https://docs.x.com/mcp에 호스팅되어 있습니다. AI 도구에 연결하여 워크플로우를 벗어나지 않고 문서 페이지를 검색하고 읽을 수 있습니다.
사용 가능한 도구
| 도구 | 설명 |
|---|---|
search_x | X 문서 전반에서 관련 정보, 코드 예제, API 레퍼런스, 가이드 검색 |
get_page_x | 경로로 특정 문서 페이지의 전체 내용 조회 |
설정
MCP 클라이언트 설정에 docs MCP 서버를 추가하세요:두 서버를 함께 사용하기
두 MCP 서버를 동시에 연결할 수 있습니다. 이를 통해 AI 어시스턴트가 문서를 조회하는 동시에 API를 호출할 수 있습니다. Grok Build (~/.grok/config.toml):
mcp.json):
OpenAPI 사양
모든 X API v2 엔드포인트에 대한 머신 판독 가능한 API 사양입니다.| 리소스 | URL |
|---|---|
| OpenAPI Spec (JSON) | https://api.x.com/2/openapi.json |