Skip to main content
Glama
gxjansen
by gxjansen

트랜지스터 MCP 서버

대장간 배지

이 MCP 서버는 Transistor.fm API와 상호 작용할 수 있는 도구를 제공하여 팟캐스트, 에피소드를 관리하고 분석을 볼 수 있습니다.

구성

Transistor API 키를 사용하여 MCP 설정 구성 파일에 서버를 추가합니다.

지엑스피1

Related MCP server: MCP Spotify Server

사용 가능한 도구

인증된 사용자 가져오기

인증된 사용자 계정의 세부 정보를 가져옵니다.

{
  // No parameters needed
}

업로드 승인

오디오 파일을 업로드하기 위한 미리 서명된 URL을 받으세요. 로컬 오디오 파일로 에피소드를 만들기 전에 이 URL을 사용하세요.

{
  "filename": string  // Required: Name of the audio file to upload
}

응답에는 다음이 포함됩니다.

  • upload_url: 파일 업로드를 위한 미리 서명된 S3 URL

  • content_type: 업로드 시 사용할 콘텐츠 유형(예: "audio/mpeg")

  • expires_in: 업로드 URL이 만료될 때까지의 시간(초)

  • audio_url: 에피소드를 만들 때 사용할 최종 URL

리스트_쇼

Transistor.fm 계정에 있는 모든 프로그램을 업데이트 날짜순(최신순)으로 정렬하여 나열합니다. 페이지당 10개 항목으로 구성된 페이지별 목록을 반환합니다.

{
  "page": number,     // Optional, defaults to 0 (first page)
  "per": number,      // Optional, defaults to 10 items per page
  "private": boolean, // Optional: filter for private shows
  "query": string     // Optional: search query
}

참고: 모든 매개변수는 선택 사항입니다. 매개변수 없이 이 엔드포인트를 호출하면 첫 번째 쇼 페이지가 반환됩니다.

에피소드 목록

특정 쇼의 에피소드를 나열합니다.

{
  "show_id": string,  // Required
  "page": number,     // Optional, defaults to 0
  "per": number,      // Optional, defaults to 10
  "query": string,    // Optional: search query
  "status": string,   // Optional: "published", "draft", or "scheduled"
  "order": string     // Optional: "desc" (newest first) or "asc" (oldest first), defaults to "desc"
}

에피소드 받기

특정 에피소드에 대한 자세한 정보를 얻으세요.

{
  "episode_id": string,           // Required
  "include": string[],           // Optional: array of related resources to include
  "fields": {                    // Optional: sparse fieldsets
    "episode": string[],         // Fields to include for episode
    "show": string[]            // Fields to include for show
  }
}

get_analytics

특정 프로그램이나 에피소드에 대한 분석을 받아보세요. 날짜를 지정하지 않으면 기본적으로 지난 14일 동안의 분석이 제공됩니다.

{
  "show_id": string,            // Required
  "episode_id": string,         // Optional: include for episode-specific analytics
  "start_date": string,         // Optional: format "dd-mm-yyyy", required if end_date is provided
  "end_date": string           // Optional: format "dd-mm-yyyy", required if start_date is provided
}

에피소드 생성

새로운 에피소드를 만드세요.

{
  "show_id": string,               // Required
  "title": string,                 // Required
  "audio_url": string,             // Required
  "summary": string,               // Optional
  "description": string,           // Optional: may contain HTML
  "transcript_text": string,       // Optional: full episode transcript
  "author": string,               // Optional
  "explicit": boolean,            // Optional
  "image_url": string,            // Optional: episode artwork
  "keywords": string,             // Optional: comma-separated list
  "number": number,               // Optional: episode number
  "season_number": number,        // Optional
  "type": string,                // Optional: "full", "trailer", or "bonus"
  "alternate_url": string,       // Optional: override share_url
  "video_url": string,           // Optional: YouTube URL
  "email_notifications": boolean, // Optional: override show setting
  "increment_number": boolean     // Optional: auto-set next episode number
}

업데이트_에피소드

기존 에피소드를 업데이트합니다.

{
  "episode_id": string,           // Required
  "title": string,               // Optional
  "summary": string,             // Optional
  "description": string,         // Optional: may contain HTML
  "transcript_text": string,     // Optional: full episode transcript
  "author": string,             // Optional
  "explicit": boolean,          // Optional
  "image_url": string,          // Optional: episode artwork
  "keywords": string,           // Optional: comma-separated list
  "number": number,             // Optional: episode number
  "season_number": number,      // Optional
  "type": string,              // Optional: "full", "trailer", or "bonus"
  "alternate_url": string,     // Optional: override share_url
  "video_url": string,         // Optional: YouTube URL
  "email_notifications": boolean // Optional: override show setting
}

모든 에피소드 분석 가져오기

프로그램의 모든 에피소드에 대한 분석을 받으세요. 날짜를 지정하지 않으면 기본적으로 지난 7일간의 분석이 제공됩니다.

{
  "show_id": string,            // Required
  "start_date": string,         // Optional: format "dd-mm-yyyy", required if end_date is provided
  "end_date": string           // Optional: format "dd-mm-yyyy", required if start_date is provided
}

웹훅 목록

쇼의 모든 웹훅을 나열합니다.

{
  "show_id": string            // Required
}

구독_웹훅

쇼를 보려면 웹훅을 구독하세요.

{
  "event_name": string,        // Required: e.g., "episode_created"
  "show_id": string,          // Required
  "url": string              // Required: URL to receive webhook events
}

구독 취소_웹훅

웹후크 구독을 취소합니다.

{
  "webhook_id": string        // Required
}

중요 참고 사항

  • API 요청은 10초당 10개의 요청으로 속도가 제한됩니다(( https://developers.transistor.fm/#:~:text=API%20requests%20are%20rate%2Dlimited,to%20use%20the%20API%20again.)\[Transistor%5C%5BTransistor) API 참조]에서 규정한 대로).

  • 날짜는 "dd-mm-yyyy" 형식이어야 합니다.

  • 페이지 번호는 0부터 시작합니다

  • 모든 엔드포인트는 다음을 지원합니다.

    • 스파스 필드셋: fields[resource_type][] 사용하여 반환할 필드를 지정합니다.

    • 관련 리소스 포함: include[] 사용하여 단일 요청에서 관련 리소스를 가져옵니다.

  • 배열을 포함하려면 ["resource_name"] 형식을 사용합니다.

  • 필드 객체는 각 리소스 유형에 대해 반환할 필드를 지정합니다.

  • 모든 도구는 적절한 관계 및 메타데이터를 포함하는 JSONAPI 형식으로 데이터를 반환합니다.

사용 예

목록에는 다음이 표시됩니다.

// List first page of shows (default behavior)
const result = await use_mcp_tool({
  server_name: "transistor",
  tool_name: "list_shows",
  arguments: {}
});

// List shows with pagination and filtering
const resultWithParams = await use_mcp_tool({
  server_name: "transistor",
  tool_name: "list_shows",
  arguments: {
    page: 1,
    per: 20,
    private: true,
    query: "podcast"
  }
});

에피소드 세부 정보 보기:

const result = await use_mcp_tool({
  server_name: "transistor",
  tool_name: "get_episode",
  arguments: {
    episode_id: "123456",
    include: ["show"],
    fields: {
      episode: ["title", "summary", "description"],
      show: ["title"]
    }
  }
});

쇼 분석 받기:

// Get analytics for the last 14 days (default behavior)
const result = await use_mcp_tool({
  server_name: "transistor",
  tool_name: "get_analytics",
  arguments: {
    show_id: "123456"
  }
});

// Get analytics for a specific date range
const resultWithDates = await use_mcp_tool({
  server_name: "transistor",
  tool_name: "get_analytics",
  arguments: {
    show_id: "123456",
    start_date: "01-01-2024",
    end_date: "31-01-2024"
  }
});

// Get analytics for a specific episode
const episodeAnalytics = await use_mcp_tool({
  server_name: "transistor",
  tool_name: "get_analytics",
  arguments: {
    show_id: "123456",
    episode_id: "789012",
    start_date: "01-01-2024",
    end_date: "31-01-2024"
  }
});

에피소드 업데이트:

const result = await use_mcp_tool({
  server_name: "transistor",
  tool_name: "update_episode",
  arguments: {
    episode_id: "123456",
    title: "Updated Episode Title",
    summary: "New episode summary",
    description: "New detailed description",
    season_number: 2,
    episode_number: 5
  }
});

모든 에피소드 분석을 받아보세요:

// Get analytics for all episodes for the last 7 days (default behavior)
const result = await use_mcp_tool({
  server_name: "transistor",
  tool_name: "get_all_episode_analytics",
  arguments: {
    show_id: "123456"
  }
});

// Get analytics for all episodes for a specific date range
const resultWithDates = await use_mcp_tool({
  server_name: "transistor",
  tool_name: "get_all_episode_analytics",
  arguments: {
    show_id: "123456",
    start_date: "01-01-2024",
    end_date: "31-01-2024"
  }
});

웹훅 관리:

// List webhooks
const webhooks = await use_mcp_tool({
  server_name: "transistor",
  tool_name: "list_webhooks",
  arguments: {
    show_id: "123456"
  }
});

// Subscribe to webhook
const subscription = await use_mcp_tool({
  server_name: "transistor",
  tool_name: "subscribe_webhook",
  arguments: {
    event_name: "episode_created",
    show_id: "123456",
    url: "https://your-webhook-endpoint.com/hook"
  }
});

// Unsubscribe from webhook
const unsubscribe = await use_mcp_tool({
  server_name: "transistor",
  tool_name: "unsubscribe_webhook",
  arguments: {
    webhook_id: "webhook123"
  }
});

인증된 사용자 가져오기:

const result = await use_mcp_tool({
  server_name: "transistor",
  tool_name: "get_authenticated_user",
  arguments: {}
});

오디오 파일 업로드 승인:

// First, get a pre-signed upload URL
const auth = await use_mcp_tool({
  server_name: "transistor",
  tool_name: "authorize_upload",
  arguments: {
    filename: "my-episode.mp3"
  }
});

// Then use the returned upload_url to upload your file via PUT request
// Finally, use the returned audio_url when creating your episode:
const episode = await use_mcp_tool({
  server_name: "transistor",
  tool_name: "create_episode",
  arguments: {
    show_id: "123456",
    title: "My New Episode",
    audio_url: auth.data.attributes.audio_url
  }
});

아직 구현되지 않음

다음 트랜지스터 API 기능은 아직 구현되지 않았습니다.

  • 개인 에피소드 기능(구독자 관리)

    • /v1/구독자를 가져오세요

    • GET /v1/subscribers/:id

    • POST /v1/구독자

    • POST /v1/subscribers/batch

    • 패치 /v1/subscribers/:id

    • /v1/subscribers 삭제

    • /v1/subscribers/:id를 삭제하세요

-
security - not tested
A
license - permissive license
-
quality - not tested

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/gxjansen/Transistor-MCP'

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