Skip to main content
Glama
poisonstefani-dev

Threads MCP Server

Threads MCP 서버

threads-mcp는 공식 Threads API를 위한 stdio MCP 서버입니다. 이 서버는 공개된 Meta Threads 문서를 준수하면서 인증, 게시, 읽기, 중재, 인사이트, 검색, 위치 및 설정 진단을 위한 실용적인 MCP 도구 인터페이스를 제공하도록 설계되었습니다.

현재 빌드는 공식적으로 문서화된 Threads 기능과 공식 Postman 컬렉션으로 제한되어 있습니다. 공개 패키지에서 유지 관리가 어려운 비공식 대체 엔드포인트나 편의용 래퍼에 의존하지 않습니다.

주요 특징

  • 공식 Threads API 범위만 지원

  • 인증, 프로필 조회, 게시, 읽기, 답글, 인사이트, 검색, 위치, oEmbed 및 진단을 위한 MCP 도구

  • camelCase로 모델링된 게시 입력값을 Threads에서 요구하는 snake_case 매개변수로 내부 직렬화

  • 다단계 캐러셀 게시 지원

  • 재시도, 폴링, 페이지네이션 및 정규화된 Meta API 오류 처리를 위한 공유 클라이언트 계층

빠른 시작

  1. 의존성 설치:

npm install
  1. 서버 빌드:

npm run build
  1. 로컬 환경 파일을 생성하고 최소한 THREADS_ACCESS_TOKEN을 설정합니다.

  2. 토큰이 아직 필요한 경우, 로컬 OAuth 도우미를 실행합니다:

npm run auth:token
  1. 서버 시작:

node dist/index.js
  1. 실제 계정을 대상으로 게시 또는 중재 흐름을 사용하기 전에 validate_setup을 호출합니다.

도구 카탈로그

인증

  • exchange_code_for_token

  • get_long_lived_access_token

  • refresh_access_token

  • get_app_access_token

프로필 및 검색

  • get_me

  • get_profile

  • get_profile_threads

게시 및 수명 주기

  • get_publishing_limit

  • create_thread_container

  • publish_thread

  • create_and_publish_thread

  • repost_thread

  • delete_thread

읽기 및 답글

  • get_threads

  • get_thread

  • get_replies

  • get_thread_conversation

  • get_pending_replies

  • manage_reply

  • manage_pending_reply

인사이트, 검색 및 임베드

  • get_user_insights

  • get_thread_insights

  • search_threads

  • get_mentions

  • get_oembed

위치 및 진단

  • search_locations

  • get_location

  • validate_setup

v1에서 명시적으로 제외된 범위

  • 웹훅

  • 임베디드 OAuth 콜백 호스팅

  • 공식 문서나 공식 Postman 컬렉션에서 다루지 않는 비공식 대체 엔드포인트나 편의 기능

아키텍처

서버는 몇 가지 명확한 계층으로 나뉩니다:

  • src/index.ts: MCP stdio 전송을 부트스트랩합니다.

  • src/threads/client.ts: 인증된 HTTP 호출, 재시도, 페이지네이션, 폴링 및 정규화된 Meta API 오류를 담당합니다.

  • src/tools/: 도구 제품군별 모듈과 공유 스키마를 포함합니다.

게시 입력 모델은 text, image, video, carousel, reply를 포함하는 단일 공개 판별 유니온으로 노출됩니다.

사전 요구 사항

서버가 라이브 API 호출을 수행하려면 다음이 모두 필요합니다:

  • Threads 사용 사례에 맞게 구성된 Meta 앱

  • 운영하려는 계정에 대한 Threads 사용자 액세스 토큰

  • 통합에 필요한 고급 액세스 및 앱 검토

  • 서버가 실행될 머신에 Node.js 20+ 설치

환경 변수

대부분의 사용자 토큰 도구에 필요:

  • THREADS_ACCESS_TOKEN

선택 사항:

  • THREADS_APP_ID

  • THREADS_APP_SECRET

  • THREADS_REDIRECT_URI

  • THREADS_API_BASE_URL

  • THREADS_USER_ID

  • THREADS_MAX_RETRIES

  • THREADS_RETRY_BASE_DELAY_MS

  • THREADS_TIMEOUT_MS

  • THREADS_PUBLISH_STATUS_TIMEOUT_MS

  • THREADS_PUBLISH_STATUS_POLL_INTERVAL_MS

.env.example을 복사하고 최소한 액세스 토큰을 설정하세요. THREADS_APP_IDTHREADS_APP_SECRET은 인증 도우미 도구와 명시적인 앱 액세스 토큰을 전달하지 않을 때 get_oembed를 위해서도 필요합니다.

THREADS_APP_ID를 얻는 방법

  • Meta for Developers 대시보드에서 앱을 엽니다: https://developers.facebook.com/apps/

  • Threads 사용 사례로 생성된 앱을 엽니다.

  • Use Cases -> Threads -> Customize -> Settings로 이동합니다.

  • 해당 페이지에서 Threads App ID를 복사합니다.

  • 이 값을 THREADS_APP_ID로 사용합니다.

중요:

  • 최상위 앱 대시보드나 설정 페이지의 일반 Meta 앱 ID를 사용하지 마세요.

  • Use Cases -> Threads -> Customize -> Settings의 Threads 사용 사례별 자격 증명을 사용하세요.

THREADS_APP_SECRET은 동일한 Threads 사용 사례 설정 페이지에서 가져옵니다. 비공개로 유지하세요.

토큰 도우미 스크립트

저장소에는 Meta Threads 액세스 토큰 흐름을 따르는 로컬 OAuth 도우미가 포함되어 있습니다:

  1. Threads 인증 창을 엽니다.

  2. 로컬 콜백 URL에서 인증 코드를 받습니다.

  3. 이를 단기 토큰으로 교환합니다.

  4. 이를 장기 토큰으로 교환합니다.

  5. 결과를 .envTHREADS_ACCESS_TOKEN으로 저장합니다.

설정:

  • Meta 앱 자격 증명을 .env에 추가합니다.

  • 앱의 유효한 OAuth 리디렉션 URI가 THREADS_REDIRECT_URI와 일치하는지 확인합니다.

실행:

npm run auth:token

선택적 플래그:

  • --redirect-uri http://127.0.0.1:8788/callback

  • --env-file .env.local

  • --no-open

도구 제품군별 필수 범위

  • threads_basic get_me, get_profile, get_threads, get_thread 및 기본 설정 유효성 검사에서 사용됩니다.

  • threads_content_publish get_publishing_limit, create_thread_container, publish_thread, create_and_publish_thread에서 사용됩니다.

  • threads_read_replies get_repliesvalidate_setup의 안전한 답글 읽기 프로브에서 사용됩니다.

  • threads_manage_replies manage_reply에서 사용됩니다.

  • threads_manage_insights get_user_insightsget_thread_insights에서 사용됩니다.

  • threads_keyword_search search_threads에서 사용됩니다.

  • threads_profile_discovery 공개 계정 검색 시나리오를 위해 get_profileget_profile_threads에서 사용됩니다.

  • threads_location_tagging search_locations, get_locationlocationId를 설정하는 게시 흐름에서 사용됩니다.

  • threads_delete delete_thread에서 사용됩니다.

validate_setupthreads_basic, threads_content_publish, threads_read_replies, threads_manage_insights, threads_keyword_search, threads_profile_discovery, threads_location_tagging에 대한 액세스 권한을 추론하기 위해 안전한 프로브를 수행합니다. 의도적으로 threads_manage_repliesthreads_delete에 대한 파괴적인 프로브는 수행하지 않으므로, 해당 범위는 설정 시 활발하게 검증되지 않습니다.

게시 동작

서버는 공식 컨테이너 옵션을 camelCase로 모델링하고 내부적으로 Threads API에서 예상하는 snake_case 매개변수로 직렬화합니다.

지원되는 입력:

  • 공통 필드: text, replyControl, replyToId, quotePostId, topicTag, locationId, textEntities, allowlistedCountryCodes

  • 텍스트 전용 필드: linkAttachment, pollAttachment, textAttachment, gifAttachment, enableReplyApprovals, autoPublishText, isGhostPost

  • 이미지 또는 비디오 필드: imageUrl, videoUrl, altText, isSpoilerMedia

  • 캐러셀 항목: 항목별 미디어 필드가 있는 이미지 또는 비디오 항목의 검증된 배열

캐러셀 게시 흐름은 공식 다단계 흐름을 따릅니다:

  1. is_carousel_item=true를 사용하여 이미지 또는 비디오당 하나의 항목 컨테이너를 생성합니다.

  2. children=[...]을 사용하여 부모 캐러셀 컨테이너를 생성합니다.

  3. 부모 컨테이너를 게시합니다.

적용 범위 참고 사항

저장소는 현재 다음 공식 Threads API 제품군을 다룹니다:

  • 인증 도우미

  • 인용 게시물, 리포스트 게시 및 컨테이너 상태 폴링을 포함한 게시

  • 사용자 프로필 조회 및 공개 프로필 게시물 검색

  • Threads 미디어 검색

  • 답글 검색, 평탄화된 대화, 보류 중인 답글, 숨기기 및 숨기기 해제, 승인 및 무시 흐름

  • 사용자 및 게시물 인사이트

  • 키워드 검색 및 멘션

  • 위치 검색 및 위치 검색

  • oEmbed

  • 설정 진단

로컬 MCP 구성 예시

Claude Desktop 스타일 구성 예시:

{
  "mcpServers": {
    "threads": {
      "command": "node",
      "args": ["/absolute/path/to/threads-mcp/dist/index.js"],
      "env": {
        "THREADS_ACCESS_TOKEN": "thdt_your_user_access_token",
        "THREADS_APP_ID": "optional_app_id",
        "THREADS_APP_SECRET": "optional_app_secret"
      }
    }
  }
}

나중에 이 패키지를 CLI로 게시하면 commandthreads-mcp가 될 수 있습니다.

게시

패키지 메타데이터는 이미 공개 패키지로 npm 게시를 위해 구성되어 있습니다:

  • 패키지 이름: threads-mcp

  • 현재 버전: 0.0.0

  • CLI 진입점: threads-mcp

  • 게시 액세스: public

게시하기 전에 다음을 실행하세요:

npm run build
npm test
npm publish --access public

prepublishOnlynpm publish 중에 빌드 및 테스트 단계를 자동으로 실행하도록 구성되어 있습니다.

개발

Node.js를 사용할 수 있는 경우 의존성을 설치하세요:

npm install
npm run build
npm test

권장 수동 확인 사항:

  1. npm run build를 실행하여 TypeScript 컴파일을 확인합니다.

  2. npm test를 실행하여 스키마, 클라이언트 및 도구 등록 테스트를 실행합니다.

  3. node dist/index.js로 서버를 시작합니다.

  4. 실제 토큰으로 validate_setup을 먼저 호출합니다.

  5. 테스트 Threads 계정을 대상으로 create_thread_containerpublish_thread를 실행해 봅니다.

알려진 제한 사항

  • v1에서는 전송이 stdio 전용입니다.

  • 임베디드 OAuth 콜백 서버가 없습니다. 토큰 교환 도우미는 대신 MCP 도구로 노출됩니다.

  • validate_setup은 상태를 변경하는 중재 호출을 수행하지 않고는 threads_manage_replies를 안전하게 확인할 수 없습니다.

  • validate_setup은 상태를 변경하는 삭제 프로브도 수행하지 않습니다.

  • create_and_publish_thread는 해당 플래그가 도구의 명시적인 2단계 계약과 충돌하기 때문에 의도적으로 autoPublishText=true를 거부합니다.

  • 답글 게시물은 공식 reply_to_id 매개변수에 의해 지원되는 전용 reply 변형으로 모델링되며, 현재 공개 스키마에서 텍스트 답글을 대상으로 합니다.

  • 라이브 API 동작 검증은 여전히 유효한 앱 자격 증명, 승인된 범위 및 실제 Threads 계정에 의존합니다.

API 범위 및 엔드포인트 선택을 위해 사용된 소스

A
license - permissive license
-
quality - not tested
C
maintenance

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/poisonstefani-dev/threads-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server