트랜지스터 MCP 서버
이 MCP 서버는 Transistor.fm API와 상호 작용할 수 있는 도구를 제공하여 팟캐스트, 에피소드를 관리하고 분석을 볼 수 있습니다.
구성
Transistor API 키를 사용하여 MCP 설정 구성 파일에 서버를 추가합니다.
지엑스피1
사용 가능한 도구
인증된 사용자 가져오기
인증된 사용자 계정의 세부 정보를 가져옵니다.
{
// 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
}
중요 참고 사항
사용 예
목록에는 다음이 표시됩니다.
// 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를 삭제하세요