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을 주입합니다.
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)이나 모든 사용자 컨텍스트 도구에 필수입니다.
첫 실행 시 브라우저 로그인에 필요한 리다이렉트 URIhttp://localhost:8080/callback을 앱에 등록합니다. 다른 URI를 사용하려면 REDIRECT_URI를 설정하고 해당 URI를 등록하세요.
CLIENT_ID와 CLIENT_SECRET을 복사하세요 — 클라이언트 설정에 입력해야 합니다. xurl auth oauth2를 수동으로 실행하는 경우(예: 아래의 헤드리스 흐름), 먼저 해당 셸에서 환경 변수로 export 하세요 — 이 값이 없으면 브라우저에서 로그인이 실패합니다.
브리지는 사용자 본인으로 인증되며(PKCE 흐름), 도구는 사용자 계정의 스코프로 동작합니다. 자격 증명 해석 순서: CLIENT_ID/CLIENT_SECRET 환경 변수 → ~/.xurl에 있는 활성 앱. 토큰은 ~/.xurl에 캐시되고 자동으로 갱신됩니다(401 발생 시 강제 갱신 포함).
[xurl mcp] no valid OAuth2 token; opening the browser to sign in -- complete the login to start the bridge...[xurl mcp] authentication complete; starting bridge
MCP 핸드셰이크는 로그인이 완료될 때까지 보류됩니다 — 그래서 클라이언트에 넉넉한 startup_timeout_sec이 필요합니다.
# Required: the env block in your client config only applies to the bridge,# not to manual xurl runs — export the credentials in this shell first.export CLIENT_ID="YOUR_X_APP_CLIENT_ID"export CLIENT_SECRET="YOUR_X_APP_CLIENT_SECRET"xurl auth oauth2 --headless # prints an auth URL; you paste back the redirect URL/codexurl auth oauth2 --app my-app --headless # for a specific app
OAuth 로그인은 브라우저가 열릴 때 로그인되어 있는 X 계정을 인증합니다 — 반드시 앱을 소유한 계정일 필요는 없습니다. 보조/봇 계정을 대신하여 게시하려는 경우, 로그인을 완료하기 전에 브라우저에서 해당 계정으로 전환하거나(또는 -u를 사용해 이전에 인증된 사용자를 선택하세요).
xurl --app my-app mcp # bridge using a specific registered appxurl mcp -u alice https://api.x.com/mcp # act as a specific OAuth2 user
클라이언트 설정에서는 args에 "--app", "my-app" 또는 "-u", "alice"를 추가하세요.