# MCPサーバーの接続設定

> ClaudeやChatGPTから文字起こしするためのMCP接続を設定します。Cursor、VS Code、Claude Codeなど、クライアントごとの手順を説明します。

Canonical: https://transcript1.com/ja/docs/mcp
Language: ja
Last updated: 2026-10-15

MCPで接続すると、AIアシスタントに文字起こしを依頼し、そのままテキストを読ませることができます。transcript1のリモート[Model Context Protocol](https://modelcontextprotocol.io/)サーバーは、YouTube、X、TikTok、Instagram、Facebook、Blueskyのリンクや、アップロードした音声・動画ファイルに対応しています。ほかに対応する公開動画や利用条件は[対応ソースとオプション](https://transcript1.com/ja/docs/sources-and-options)を参照してください。

SNSのリンクには公開投稿のURLを使ってください。動画が複数ある投稿では、最初の動画だけを処理します。`auto`では、YouTube、X、TikTok、Bluesky、Dailymotion、LinkedInの元の言語の字幕を優先し、使えなければAI文字起こしに切り替えます。1分あたりの料金はどちらも同じです。YouTube以外の字幕は、自動生成字幕でもセグメント単位のタイムスタンプのみです（`words: null`）。`captions`（字幕のみ）は音声をダウンロードせず、STTも使いません。話者分離を有効にするか`source=stt`を指定すると、字幕を使わず音声を処理します。詳しくは[対応ソースとオプション](https://transcript1.com/ja/docs/sources-and-options)を確認してください。

- **接続先：** `https://api.transcript1.com/mcp`（streamable HTTP）です。
- **認証方法：** ClaudeとChatGPTではOAuth 2.1を使い、transcript1へのログイン後にアクセスを承認します。Cursor、VS Code、Claude Code、エージェントではAPIキーを使います。「[API keys](https://transcript1.com/dashboard/account/tokens)」で作成し、`Authorization: Bearer t1_...`ヘッダーで送信してください。

MCPツールは、接続時の認証情報で`/v1`の[REST API](https://transcript1.com/ja/docs/api-reference)を呼び出します。入力チェック、課金、エラーコードはREST APIと同じです。分数とレート制限も、同じアカウントのほかのリクエストと共有します。

## 利用できるツール

| ツール | 用途と引数 |
|---|---|
| `transcribe` | 動画リンクの文字起こしを開始して待ちます。完了すれば本文の最初のページ、まだ処理中なら`id`を返します。必須は`url`です。`platform`、`source`、`language`、`diarize`、`format`、`wait_seconds`も指定できます。プラットフォームはリンクから自動判定します。 |
| `get_transcription` | `id`で処理状況や本文を取得します。`wait_seconds`、`format`、`from_seconds`、`max_chars`は任意です。 |
| `list_transcriptions` | 最近のジョブを新しい順に取得します。本文は含みません。`status`、`platform`、`limit`、`cursor`を任意で指定できます。 |
| `create_upload` | ローカルファイルを分割して送るためのアップロード枠を作成します。`filename`、`size`、`request_id`が必須です。`request_id`には呼び出し側で生成したUUIDを使います。`mime_type`、`language`、`diarize`も指定できます。 |
| `get_upload_status` | 到着済みのチャンクを確認します。中断したアップロードの再開に使います。 |
| `complete_upload` | チャンクがそろっているか検証し、文字起こしをキューに登録します。 |
| `delete_transcription` | 処理中ならキャンセルして分数を戻します。終了済みならジョブと本文を削除します。 |
| `get_account` | 残りの分数、加入プラン、更新日を取得します。 |

### 初期値とレスポンスの読み方

- `format`のデフォルトは`text`です。セグメントごとに1行で、タイムスタンプを付けます。話者分離を使った場合は、`[00:01:02] Speaker 1: Good morning.`のように話者も示します。`srt`、`vtt`、`json`にも変更できます。
- `wait_seconds`は完了を待つ秒数です。デフォルトは50で、0〜55を指定できます。時間内に終わらなければ、処理中であることと`id`を返します。その`id`で`get_transcription`を呼ぶと、再び完了を待てます。
- 長い本文はページに分けて返します。`max_chars`はデフォルト60,000で、1,000〜100,000を指定できます。区切りはセグメントの境界です。続きがある場合は、返された`next_from_seconds`を次の呼び出しの`from_seconds`に渡してください。
- `transcript_source`で、テキストの取得元を確認できます。値は`youtube_captions`、`x_captions`、`tiktok_captions`、`bluesky_captions`、`dailymotion_captions`、`linkedin_captions`、`speech_to_text`です。`caption_kind: null`は字幕の作成元が不明という意味です。投稿者がアップロードした字幕とは限りません。

### 再送信する前にジョブを確認する

`transcribe`は常に`reuse_recent`を指定します。短縮されていない動画リンクなら、同じ動画・同じオプションで24時間以内に呼び直しても、以前の文字起こしを返すため追加の課金はありません。再利用したこともレスポンスに示します。短縮リンクでは、この再利用はできません。処理状況を確認したいだけなら再送信せず、`get_transcription`や`list_transcriptions`を使ってください。

### ローカルファイルを送る

MCP自体ではファイルのバイト列を送れません。まず`create_upload`で、文字起こしの`id`、チャンク送信先のURLテンプレート、`X-Upload-Token`、チャンク一覧を取得します。アシスタントがMCPの外からHTTPの`PUT`でチャンクを送り、最後に`complete_upload`を呼び出します。別の方法として、レスポンスにはダッシュボードのアップロードページも含めます。手順の詳細は[アップロード](https://transcript1.com/ja/docs/uploads)を参照してください。

### Webhookを使う場合

MCPツールにはWebhookの指定項目がありません。[Webhook](https://transcript1.com/ja/docs/webhooks)が必要な場合は、REST APIを使ってください。

## Claude

Claudeでは、カスタムコネクターを追加して接続します。

1. Claudeのコネクター設定を開き、カスタムコネクターを追加します。
2. 名前を`transcript1`、サーバーURLを`https://api.transcript1.com/mcp`にします。
3. ログイン画面が開いたらtranscript1にログインし、アクセスを承認します。必要なスコープは`transcriptions:read`と`transcriptions:write`です。

接続後は、たとえば「`https://www.youtube.com/watch?v=dQw4w9WgXcQ`を文字起こしして」と依頼できます。カスタムコネクターを利用できるかどうかは、Claudeのプランによって異なります。

## ChatGPT

ChatGPTでもカスタムコネクターを追加します。

1. ChatGPTのコネクター設定から、MCPサーバー用のカスタムコネクターを追加します。
2. サーバーURLに`https://api.transcript1.com/mcp`を入力します。
3. transcript1にログインしてアクセスを承認します。

利用できるかどうかは、ChatGPTのプランとワークスペース設定によって異なります。開発者モードが必要な場合もあります。

## CursorでMCPを設定する

接続先は[Cursorにtranscript1を追加](cursor://anysphere.cursor-deeplink/mcp/install?name=transcript1&config=eyJ1cmwiOiJodHRwczovL2FwaS50cmFuc2NyaXB0MS5jb20vbWNwIn0=)からワンクリックで登録できます。

手動で設定する場合は、`.cursor/mcp.json`に次を追加します。`Authorization`ヘッダーにAPIキーを指定してください。

```json
{
  "mcpServers": {
    "transcript1": {
      "url": "https://api.transcript1.com/mcp",
      "headers": {
        "Authorization": "Bearer t1_YOURKEY"
      }
    }
  }
}
```

## VS Code

接続先は[VS Codeにtranscript1を追加](vscode:mcp/install?%7B%22name%22%3A%22transcript1%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fapi.transcript1.com%2Fmcp%22%7D)からワンクリックで登録できます。

手動で設定する場合は、ワークスペースの`.vscode/mcp.json`に次を追加します。

```json
{
  "servers": {
    "transcript1": {
      "type": "http",
      "url": "https://api.transcript1.com/mcp",
      "headers": {
        "Authorization": "Bearer t1_YOURKEY"
      }
    }
  }
}
```

## Claude CodeでMCPを設定する

次の`t1_YOURKEY`を自分のAPIキーに置き換えて実行してください。

```bash
claude mcp add --transport http transcript1 https://api.transcript1.com/mcp --header "Authorization: Bearer t1_YOURKEY"
```

## ほかのMCPクライアントで接続する

リモートMCPサーバーに対応したクライアントなら接続できます。URLに`https://api.transcript1.com/mcp`を指定し、`Authorization: Bearer t1_...`ヘッダーでAPIキーを送信します。

## Claude Desktopなどでコマンドを指定する

MCPサーバーをコマンドで起動するクライアントでは、`npx -y @transcript1/mcp`を使います。環境変数`TRANSCRIPT1_API_KEY`にAPIキーを設定してください。このパッケージがtranscript1のリモートサーバーに接続します。Node.js 18以降が必要です。

Claude Desktopの設定例です。`claude_desktop_config.json`に追加し、`t1_YOURKEY`を「[API keys](https://transcript1.com/dashboard/account/tokens)」で作成したキーに置き換えます。

```json
{
  "mcpServers": {
    "transcript1": {
      "command": "npx",
      "args": ["-y", "@transcript1/mcp"],
      "env": { "TRANSCRIPT1_API_KEY": "t1_YOURKEY" }
    }
  }
}
```

## Agent Skill

Agent Skillは、transcript1の使い方をエージェントに教える短い`SKILL.md`ファイルです。スキルに対応したエージェントに、[このファイル](https://transcript1.com/.well-known/agent-skills/transcript1/SKILL.md)を追加してください。

スキルの自動検出に対応したエージェントは、`https://transcript1.com/.well-known/agent-skills/index.json`から見つけることもできます。

## ツールでエラーが返ったとき

ツールのエラーには、REST APIと同じ`code`、説明、アシスタントが取るべき次の操作を含めます。形式は`<code>: <message>. <next step>`です。分数不足の場合は、次のように返します。

```text
insufficient_minutes: 20 minutes needed, 3 remaining. Top up at https://transcript1.com/dashboard/billing
```

文字起こし自体に失敗した場合も同じ形式で、`media_private`や`no_captions`などのコードを返します。コードごとの意味は[エラー](https://transcript1.com/ja/docs/errors)で確認できます。
