MCP YouTube Transcript
An MCP server retrieving transcripts of YouTube videos
作者による説明(英語の原文)
Public Instagram profiles and post feeds by handle, with hashtags and mentions parsed.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
HASDATA_API_KEY, x-api-key「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
このアドレスはリクエストの header にキーが必要ですが、コネクタを追加するメニューでは設定できません。代わりにClaude Code、Cursor、VS Codeを使ってください。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"instagram": {
"command": "npx",
"args": [
"-y",
"@hasdata/instagram-mcp"
],
"env": {
"HASDATA_API_KEY": "your-value"
}
}
}
}ターミナルでこれを実行します
claude mcp add --transport http instagram 'https://mcp.hasdata.com/mcp?apis=instagram' --header 'x-api-key: your-value'claude mcp add instagram --env HASDATA_API_KEY=your-value -- npx -y @hasdata/instagram-mcp動かす前に、空欄の値を入力してください。
プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"instagram": {
"url": "https://mcp.hasdata.com/mcp?apis=instagram",
"headers": {
"x-api-key": "your-value"
}
}
}
}プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"instagram": {
"command": "npx",
"args": [
"-y",
"@hasdata/instagram-mcp"
],
"env": {
"HASDATA_API_KEY": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"instagram": {
"type": "http",
"url": "https://mcp.hasdata.com/mcp?apis=instagram",
"headers": {
"x-api-key": "your-value"
}
}
}
}プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"instagram": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@hasdata/instagram-mcp"
],
"env": {
"HASDATA_API_KEY": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
このアドレスはリクエストの header にキーが必要ですが、コネクタを追加するメニューでは設定できません。代わりにClaude Code、Cursor、VS Codeを使ってください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
x-api-key 秘密 必須 HTTP headerこの設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
このサーバーのツール一覧はまだ読み取っていません。エンドポイントは順番にチェックしています。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月6日にチェック
レジストリ名はドメイン hasdata.com で確認済みです(レジストリがドメインの所有を確認しています)
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
まだチェックしていません。エンドポイントは順番にチェックしています
まだチェックしていません。エンドポイントは順番にチェックしています
まだチェックしていません。エンドポイントをチェックするときにツール一覧を読み取ります
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
入力が必要なもの:HASDATA_API_KEY, x-api-key
どちらでも使えます。パソコンにインストールしても、クラウド版につないでもかまいません。
GitHubリポジトリの最終更新は–、最新バージョン(1.0.8)がレジストリに届いたのは43 日前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。URLでつながるので、リモートMCPサーバーに対応したアプリ(開発者モードのChatGPTなど)でも使えます。
同じカテゴリには:MCP YouTube Transcript, Google Analytics MCP, BibiGPT YouTube Video Summarizer
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
An MCP server retrieving transcripts of YouTube videos
GA4 MCP server for AI agents: schema discovery, server-side aggregation, analysis-ready defaults.
AI video summarizer: summarize and transcribe YouTube, Bilibili, TikTok and podcast videos.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
A hosted Instagram MCP server that gives Claude, Cursor, Windsurf and any other MCP client read-only Instagram tools. Look up a public profile by handle, walk its public post feed and read the comments on a public post or reel, as structured JSON.
It reads public data about accounts. It does not act as an account. There is nothing to connect and no account of yours involved anywhere in the flow.
1,000 free credits every month, no card required, which is 100 Instagram calls.
https://mcp.hasdata.com/mcp?apis=instagram
An MCP client that speaks streamable HTTP with custom headers. A HasData API key from the dashboard, free to create with no card, and the free tier covers 100 calls a month. Nothing else. This is a remote server, so the simplest path is a URL and a header, with no container to run. A stdio-only client can use the @hasdata/instagram-mcp (npm) or hasdata-instagram-mcp (PyPI) launcher instead.
| URL | https://mcp.hasdata.com/mcp?apis=instagram |
| Transport | HTTP, streamable |
| Auth header | x-api-key: HASDATA_API_KEY |
The server URL is the same for every client. We run it hands-on in Claude Code and Claude Desktop. The other blocks follow each client's own documented format for a remote server.
Clients with OAuth support can add the same URL as a connector and sign in without putting a key in a config file.
Claude Code
claude mcp add --transport http instagram "https://mcp.hasdata.com/mcp?apis=instagram" \
--header "x-api-key: HASDATA_API_KEY"
Claude Desktop
Claude Desktop loads only local (stdio) servers from its config file, so it reaches a remote server through a stdio launcher. The @hasdata/instagram-mcp package is that launcher, and it reads the key from the environment.
claude_desktop_config.json:
{
"mcpServers": { "instagram": { "command": "npx", "args": ["-y", "@hasdata/instagram-mcp"], "env": { "HASDATA_API_KEY": "YOUR_KEY" } } } }
Python instead of Node? Swap the launcher for the PyPI package, which uvx runs without a manual install:
{
"mcpServers": { "instagram": { "command": "uvx", "args": ["hasdata-instagram-mcp"], "env": { "HASDATA_API_KEY": "YOUR_KEY" } } } }
A client with OAuth support can instead add the URL as a custom connector and skip the launcher.
Cursor
.cursor/mcp.json:
{
"mcpServers": { "instagram": { "url": "https://mcp.hasdata.com/mcp?apis=instagram", "headers": { "x-api-key": "HASDATA_API_KEY" } } } }
Windsurf
~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": { "instagram": { "serverUrl": "https://mcp.hasdata.com/mcp?apis=instagram", "headers": { "x-api-key": "HASDATA_API_KEY" } } } }
Cline
{
"mcpServers": { "instagram": { "url": "https://mcp.hasdata.com/mcp?apis=instagram", "type": "streamableHttp", "headers": { "x-api-key": "HASDATA_API_KEY" }, "disabled": false } } }
VS Code
.vscode/mcp.json:
{
"servers": { "instagram": { "type": "http", "url": "https://mcp.hasdata.com/mcp?apis=instagram", "headers": { "x-api-key": "HASDATA_API_KEY" } } } }
Gemini CLI
~/.gemini/settings.json:
{
"mcpServers": { "instagram": { "httpUrl": "https://mcp.hasdata.com/mcp?apis=instagram", "headers": { "x-api-key": "HASDATA_API_KEY" } } } }
Each of these is one tool call unless the count says otherwise.
Pull the profile for
@nasaand tell me the follower count, whether it is verified, and every link in the bio.
*One call, 10 credits. For a public account the profile response already carries the twelve most recent posts, so a follow-up about recent activity needs no second call.*
Compare
@nasa,@natgeoand@bbcearthon followers, accounts followed and whether each is verified.
*Three calls, 30 credits. One per handle.*
Walk the last fifty posts from
@nasaand list every hashtag with how often it appears.
*Five calls, 50 credits. Twelve posts arrive per call, and fifty takes five pages.*
For the last twelve posts on
@natgeo, list the accounts mentioned in each caption and the type of each post.
*One call, 10 credits. Mentions and hashtags arrive parsed out of the caption in the post objects.*
Two things make these work. Hashtags and mentions arrive as arrays parsed out of the caption, and an agent counts them instead of running a regex over prose. And a profile lookup returns the recent feed in the same response. That is why so many research questions land in a single call.
| Tool | What it returns |
|---|---|
hasdata_instagram_comments_getInstagramComments | Fetches the comments on a public post or reel by its URL and returns the post itself with its caption, media, likesCount, commentsCount and timestamp, then each comment with its text, like count, timestamp and author. 10 credits a call |
hasdata_instagram_posts_getInstagramPosts | Fetches the latest posts of a public Instagram account by username (handle) and returns each post with its id, shortcode, caption, type, productType, permalink, media URLs and pixel size, like and comment counts, the posting time, plus hashtags, mentions, tagged users and carousel members. 10 credits a call |
hasdata_instagram_profile_getInstagramProfile | Fetches a public Instagram profile by username (handle) and returns id, full name, biography, bio links, profile picture URL, followers and following counts, the verified flag and the twelve most recent posts. 10 credits a call |
Three tools, all read-only. Two are keyed on a public account handle, the third on the URL of a single post. Samples below are trimmed from real calls, and the numbers in them move as accounts post. Read them as shapes. Each tool name links to its endpoint reference.
The samples are the payload, not the whole response. A tools/call result carries one text block, and that text is itself JSON holding url, status, text and json, with the scraped data under json. From a raw JSON-RPC response the path is result.content[0].text, parsed, then .json. A chat client unwraps that for you and code talking to the endpoint directly does not.
hasdata_instagram_profile_getInstagramProfile
One public profile by handle.
| Parameter | Type | Required | Notes |
|---|---|---|---|
handle | string | yes | Username without the @, as it appears in the profile URL |
Returns id, username, fullName, biography, verified, the counters followersCount and followsCount, profilePicUrl, the internal fbid, the bioLinks array and latestPosts.
What is guaranteed and what is not, measured across twenty accounts: id, username, followersCount, followsCount, profilePicUrl and fbid came back every time. fullName, biography, verified, bioLinks and latestPosts came back for every public account and are the ones to read with a default.
A private account answers with
private: trueand little else. No bio, no counters beyond the follower numbers, no posts. Branch on that flag before you touch the rest of the payload.
bioLinksis an array of objects, not strings. Each entry carriesurl,title, Instagram's ownredirectUrlwrapper andlinkType. Read.urlwhen you want the destination.
{
"id": "528817151", "username": "nasa", "fullName": "NASA", "biography": "Making the seemingly impossible, possible. ✨", "verified": true, "followersCount": 104345698, "followsCount": 91, "profilePicUrl": "https://scontent.cdninstagram.com/v/t51.2885-19/…", "fbid": "17841401474538262", "bioLinks": [ { "url": "https://www.nasa.gov", "title": "NASA.gov Homepage", "redirectUrl": "https://l.instagram.com/?u=https%3A%2F%2Fwww.nasa.gov%2F&e=…", "linkType": "external" } ], "latestPosts": [ "…the most recent posts, same shape as the posts tool…" ] }
hasdata_instagram_posts_getInstagramPosts
The public post feed for one handle, page by page.
| Parameter | Type | Required | Notes |
|---|---|---|---|
handle | string | yes | Username without the @ |
limit | number | Approximate ceiling on posts in one response. Twelve is the real maximum, and larger values do not fetch more | |
nextPageToken | string | The pagination.nextPageToken from the previous response |
limitis a rough cap rather than an exact count. Twelve posts is one Instagram page and the hard ceiling for a single call, andlimit: 50returns twelve. Below the ceiling the count lands near the number you asked for without always matching it, and how near depends on the account. Measured on@nasa, a limit of 2 returned 4 posts, 6 returned 6, 11 returned 10 and 13 returned 12. Treat it as "no more than roughly this many" and read the array length rather than assuming it.
The response carries posts and pagination, and nothing else. Earlier versions repeated the account's identity fields alongside the feed, so code written against that shape needs a profile call for the name and avatar.
Each post carries id, shortcode, caption, type, productType, url, ownerUsername, ownerId, displayUrl and images, the pixel size as dimensionsWidth and dimensionsHeight, and hasdataLink, a ready-made link to the comments endpoint for that post. hashtags and mentions appear only when the captio
冒頭だけを表示しています。続きはリポジトリで読めます