🚀 Supadata MCP Server
Supadataと統合された、ビデオおよびウェブスクレイピング機能を備えた、Model Context Protocol (MCP)サーバーの実装です。
🚀 クイックスタート
このセクションでは、Supadata MCP Serverの基本的な使い方や初期設定について説明します。
✨ 主な機能
- YouTube、TikTok、TwitterなどのサポートされているビデオプラットフォームやファイルURLから、ビデオの文字起こしを抽出します。
- ウェブスクレイピング、クローリング、URLの発見機能を提供します。
- 自動リトライ機能とレート制限機能が搭載されています。
SmitheryまたはMCP.soのプレイグラウンドで、Supadata MCP Serverを試すことができます。
📦 インストール
npxでの実行
env SUPADATA_API_KEY=your-api-key npx -y supadata-mcp
手動インストール
npm install -g supadata-mcp
Cursorでの実行
Cursorの設定 🖥️
注意: Cursorバージョン0.45.6以上が必要です。
最新の設定手順については、Cursorの公式ドキュメント「MCPサーバーの設定」を参照してください。
Cursor MCP Server Configuration Guide
Cursor v0.48.6でのSupadata MCPの設定方法:
- Cursorの設定を開きます。
- 「Features」>「MCP Servers」に移動します。
- 「+ Add new global MCP server」をクリックします。
- 以下のコードを入力します。
{
"mcpServers": {
"supadata-mcp": {
"command": "npx",
"args": ["-y", "supadata-mcp"],
"env": {
"SUPADATA_API_KEY": "YOUR-API-KEY"
}
}
}
}
Cursor v0.45.6でのSupadata MCPの設定方法:
- Cursorの設定を開きます。
- 「Features」>「MCP Servers」に移動します。
- 「+ Add New MCP Server」をクリックします。
- 以下を入力します。
- 名前: "supadata-mcp" (または好きな名前)
- タイプ: "command"
- コマンド:
env SUPADATA_API_KEY=your-api-key npx -y supadata-mcp
Windowsを使用していて問題が発生する場合は、cmd /c "set SUPADATA_API_KEY=your-api-key && npx -y supadata-mcp"
を試してみてください。
your-api-key
を、あなたのSupadata APIキーに置き換えてください。まだAPIキーを持っていない場合は、https://www.supadata.dev/app/api-keys からアカウントを作成し、APIキーを取得できます。
追加後、MCPサーバーのリストを更新すると、新しいツールが表示されます。Composer Agentは適切な場合に自動的にSupadata MCPを使用しますが、ウェブスクレイピングのニーズを説明することで明示的に要求することもできます。Command+L (Mac)でComposerを開き、送信ボタンの横にある「Agent」を選択し、クエリを入力します。
Windsurfでの実行
./codeium/windsurf/model_config.json
に以下を追加します。
{
"mcpServers": {
"supadata-mcp": {
"command": "npx",
"args": ["-y", "supadata-mcp"],
"env": {
"SUPADATA_API_KEY": "YOUR_API_KEY"
}
}
}
}
Smitheryを通じたインストール
Smitheryを通じて、Claude Desktop用のSupadataを自動的にインストールするには、以下のコマンドを実行します。
npx -y @smithery/cli install @supadata-ai/mcp --client claude
VS Codeでの実行
ワンクリックでインストールするには、以下のインストールボタンのいずれかをクリックします。

手動でインストールするには、VS Codeのユーザー設定(JSON)ファイルに以下のJSONブロックを追加します。Ctrl + Shift + P
を押し、「Preferences: Open User Settings (JSON)」と入力することで、このファイルを開くことができます。
{
"mcp": {
"inputs": [
{
"type": "promptString",
"id": "apiKey",
"description": "Supadata API Key",
"password": true
}
],
"servers": {
"supadata": {
"command": "npx",
"args": ["-y", "supadata-mcp"],
"env": {
"SUPADATA_API_KEY": "${input:apiKey}"
}
}
}
}
}
オプションで、ワークスペース内の.vscode/mcp.json
ファイルに追加することもできます。これにより、他の人と設定を共有することができます。
{
"inputs": [
{
"type": "promptString",
"id": "apiKey",
"description": "Supadata API Key",
"password": true
}
],
"servers": {
"supadata": {
"command": "npx",
"args": ["-y", "supadata-mcp"],
"env": {
"SUPADATA_API_KEY": "${input:apiKey}"
}
}
}
}
📚 ドキュメント
環境変数
SUPADATA_API_KEY
: あなたのSupadata APIキー
Claude Desktopでの使用方法
claude_desktop_config.json
に以下を追加します。
{
"mcpServers": {
"supadata-mcp": {
"command": "npx",
"args": ["-y", "supadata-mcp"],
"env": {
"SUPADATA_API_KEY": "YOUR_API_KEY_HERE"
}
}
}
}
システム設定
サーバーには、いくつかの設定可能なパラメータが含まれており、環境変数を介して設定することができます。設定されていない場合のデフォルト値は以下の通りです。
const CONFIG = {
retry: {
maxAttempts: 3,
initialDelay: 1000,
maxDelay: 10000,
backoffFactor: 2,
},
};
レート制限とバッチ処理
サーバーは、Supadataの組み込みのレート制限とバッチ処理機能を利用しています。
- 指数バックオフによる自動レート制限の処理
- バッチ操作の効率的な並列処理
- スマートなリクエストキューイングとスロットリング
- 一時的なエラーの自動リトライ
ツールの選び方
このガイドを使用して、あなたのタスクに適したツールを選択しましょう。
- ビデオコンテンツの文字起こしが必要な場合: transcriptを使用します。
- 正確なURLがわかっている場合:
- 1つのURLの場合: scrapeを使用します。
- 複数のURLの場合: batch_scrapeを使用します。
- サイト上のURLを発見する必要がある場合: mapを使用します。
- サイト全体またはセクションを分析したい場合: crawlを使用します (制限あり!)
クイックリファレンステーブル
ツール |
最適な用途 |
返されるデータ |
transcript |
ビデオの文字起こし抽出 |
text/markdown |
scrape |
単一ページのコンテンツ |
markdown/html |
map |
サイト上のURLの発見 |
URL[] |
crawl |
複数ページの抽出 (制限あり) |
markdown/html[] |
利用可能なツール
1. 文字起こしツール (supadata_transcript
)
サポートされているビデオプラットフォームやファイルURLから文字起こしを抽出します。
- 最適な用途: YouTube、TikTok、Twitterなどのビデオコンテンツの分析と文字起こしの抽出。
- 推奨しない用途: 非ビデオコンテンツ (ウェブページの場合はscrapeを使用してください)
- 一般的な間違い: 通常のウェブページにtranscriptを使用する (代わりにscrapeを使用してください)
- プロンプトの例:
"このYouTubeビデオの文字起こしを取得してください: https://youtube.com/watch?v=example"
- 使用例:
{
"name": "supadata_transcript",
"arguments": {
"url": "https://youtube.com/watch?v=example",
"lang": "en",
"text": false,
"mode": "auto"
}
}
- 返されるデータ:
- テキストまたは整形された出力形式の文字起こしコンテンツ
- 非同期処理の場合: ステータス確認用のジョブID
2. 文字起こしステータスの確認 (supadata_check_transcript_status
)
文字起こしジョブのステータスを確認します。
{
"name": "supadata_check_transcript_status",
"arguments": {
"id": "550e8400-e29b-41d4-a716-446655440000"
}
}
- 返されるデータ: 文字起こしジョブのステータス、完了率、および結果の詳細が含まれたレスポンス
3. スクレイピングツール (supadata_scrape
)
単一のURLから高度なオプションでコンテンツをスクレイピングします。
- 最適な用途: 正確にどのページに情報が含まれているかがわかっている場合の単一ページのコンテンツ抽出。
- 推奨しない用途: 複数ページのコンテンツ抽出 (既知のURLの場合はbatch_scrape、URLを発見する場合はmap + batch_scrape、全ページのコンテンツを取得する場合はcrawlを使用してください)
- 一般的な間違い: 複数のURLにscrapeを使用する (代わりにbatch_scrapeを使用してください)
- プロンプトの例:
"https://example.com のページのコンテンツを取得してください。"
- 使用例:
{
"name": "supadata_scrape",
"arguments": {
"url": "https://example.com",
"formats": ["markdown"],
"onlyMainContent": true,
"waitFor": 1000,
"timeout": 30000,
"mobile": false,
"includeTags": ["article", "main"],
"excludeTags": ["nav", "footer"],
"skipTlsVerification": false
}
}
- 返されるデータ: 指定された形式 (Markdown、HTMLなど) のコンテンツ
4. マッピングツール (supadata_map
)
ウェブサイトをマッピングして、サイト上のすべてのインデックス付きURLを発見します。
- 最適な用途: スクレイピングする前にウェブサイト上のURLを発見する、ウェブサイトの特定のセクションを見つける。
- 推奨しない用途: すでに必要な特定のURLがわかっている場合 (scrapeまたはbatch_scrapeを使用してください)、ページのコンテンツが必要な場合 (マッピング後にscrapeを使用してください)
- 一般的な間違い: crawlを使用してURLを発見する代わりにmapを使用する
- プロンプトの例:
"example.com上のすべてのURLをリストアップしてください。"
- 使用例:
{
"name": "supadata_map",
"arguments": {
"url": "https://example.com"
}
}
- 返されるデータ: サイト上で見つかったURLの配列
5. クローリングツール (supadata_crawl
)
ウェブサイトで非同期クローリングジョブを開始し、すべてのページからコンテンツを抽出します。
- 最適な用途: 複数の関連ページからコンテンツを抽出する場合、包括的なカバレッジが必要な場合。
- 推奨しない用途: 単一ページのコンテンツ抽出 (scrapeを使用してください)、トークン制限が問題となる場合 (map + batch_scrapeを使用してください)、速い結果が必要な場合 (クローリングは時間がかかることがあります)
- 警告: クローリングのレスポンスは非常に大きくなる可能性があり、トークン制限を超えることがあります。クローリングの深さとページ数を制限するか、より細かい制御のためにmap + batch_scrapeを使用してください。
- 一般的な間違い: limitまたはmaxDepthを設定しすぎる (トークンオーバーフローを引き起こす)、単一ページにcrawlを使用する (代わりにscrapeを使用してください)
- プロンプトの例:
"example.com/blogの最初の2レベルからすべてのブログ記事を取得してください。"
- 使用例:
{
"name": "supadata_crawl",
"arguments": {
"url": "https://example.com/blog/*",
"maxDepth": 2,
"limit": 100,
"allowExternalLinks": false,
"deduplicateSimilarURLs": true
}
}
- 返されるデータ: ステータス確認用の操作IDが含まれたレスポンス
{
"content": [
{
"type": "text",
"text": "Started crawl for: https://example.com/* with job ID: 550e8400-e29b-41d4-a716-446655440000. Use supadata_check_crawl_status to check progress."
}
],
"isError": false
}
6. クローリングステータスの確認 (supadata_check_crawl_status
)
クローリングジョブのステータスを確認します。
{
"name": "supadata_check_crawl_status",
"arguments": {
"id": "550e8400-e29b-41d4-a716-446655440000"
}
}
- 返されるデータ: クローリングジョブのステータス、完了率、および結果の詳細が含まれたレスポンス
ロギングシステム
サーバーには包括的なロギング機能が備わっています。
- 操作のステータスと進捗状況
- パフォーマンスメトリクス
- クレジット使用量の監視
- レート制限の追跡
- エラー条件
ログメッセージの例:
[INFO] Supadata MCP Server initialized successfully
[INFO] Starting scrape for URL: https://example.com
[INFO] Batch operation queued with ID: batch_1
[WARNING] Credit usage has reached warning threshold
[ERROR] Rate limit exceeded, retrying in 2s...
エラー処理
サーバーは強力なエラー処理機能を提供します。
- 一時的なエラーの自動リトライ
- バックオフによるレート制限の処理
- 詳細なエラーメッセージ
- クレジット使用量の警告
- ネットワークの回復力
エラーレスポンスの例:
{
"content": [
{
"type": "text",
"text": "Error: Rate limit exceeded. Retrying in 2 seconds..."
}
],
"isError": true
}
開発
npm install
npm run build
npm test
コントリビュートの方法
- リポジトリをフォークします。
- 新しい機能ブランチを作成します。
- テストを実行します:
npm test
- プルリクエストを送信します。
📄 ライセンス
MITライセンス - 詳細についてはLICENSEファイルを参照してください。