mcp-server-youtube-info 0.1.3__tar.gz → 0.1.5__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,134 @@
1
+ Metadata-Version: 2.4
2
+ Name: mcp-server-youtube-info
3
+ Version: 0.1.5
4
+ Summary: A YouTube information retrieval server implementation for Model Context Protocol (MCP)
5
+ Project-URL: Homepage, https://github.com/yareyaredesuyo/mcp-servers
6
+ Project-URL: Repository, https://github.com/yareyaredesuyo/mcp-servers.git
7
+ Project-URL: Documentation, https://github.com/yareyaredesuyo/mcp-servers#readme
8
+ Project-URL: Bug Tracker, https://github.com/yareyaredesuyo/mcp-servers/issues
9
+ Author-email: yareyaredesuyo <yareyaredesuyo@gmail.com>
10
+ License-Expression: MIT
11
+ Keywords: automation,llm,mcp,model-context-protocol,youtube
12
+ Classifier: Development Status :: 4 - Beta
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: License :: OSI Approved :: MIT License
15
+ Classifier: Programming Language :: Python :: 3
16
+ Classifier: Programming Language :: Python :: 3.10
17
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
18
+ Requires-Python: >=3.10
19
+ Requires-Dist: argparse>=1.4.0
20
+ Requires-Dist: fastmcp>=2.5.2
21
+ Requires-Dist: httpx>=0.28.1
22
+ Requires-Dist: pillow>=11.2.1
23
+ Requires-Dist: yt-dlp>=2025.5.22
24
+ Description-Content-Type: text/markdown
25
+
26
+ # MCP YouTube Info Server
27
+
28
+ This project is a server implementation that retrieves YouTube video information using the Model Context Protocol (MCP). It utilizes the FastMCP framework to provide functionality for fetching YouTube video data.
29
+
30
+ ## Available Tools
31
+
32
+ ### youtube_metainfo
33
+
34
+ Retrieves metadata for a YouTube video.
35
+
36
+ - `video_id` (string, required): YouTube video ID
37
+
38
+ - Returns: JSON containing metadata such as title, description, view count, publication date, etc.
39
+
40
+ ### youtube_thumbnail_url
41
+
42
+ Retrieves the URL of a YouTube video's thumbnail image.
43
+
44
+ - `video_id` (string, required): YouTube video ID
45
+
46
+ - Returns: URL of the thumbnail image
47
+
48
+ ### youtube_thumbnail_image
49
+
50
+ Retrieves the image data from a YouTube video.
51
+
52
+ - `video_id` (string, required): YouTube video ID
53
+
54
+ - Returns: Thumbnail image
55
+
56
+ ## Installation
57
+
58
+ ### Using `uv` (recommended)
59
+
60
+ No special installation is needed when using `uv`. You can run `mcp-server-youtube-info` directly with `uvx`.
61
+
62
+ ### Using PIP
63
+
64
+ Alternatively, you can install `mcp-server-youtube-info` using pip:
65
+
66
+ ```
67
+ pip install mcp-server-youtube-info
68
+ ```
69
+
70
+ After installation, you can run it as a script like this:
71
+
72
+ ```
73
+ mcp-server-youtube-info
74
+ ```
75
+
76
+ ## Configuration
77
+
78
+ ### Configure for Claude.app
79
+
80
+ Add to your Claude settings:
81
+
82
+ <details>
83
+ <summary>Using uvx</summary>
84
+
85
+ ```json
86
+ {
87
+ "mcpServers": {
88
+ "testing": {
89
+ "command": "uvx",
90
+ "args": ["mcp-server-youtube-info"]
91
+ }
92
+ }
93
+ }
94
+ ```
95
+
96
+ </details>
97
+
98
+ ### Configure for VS Code
99
+
100
+ For quick installation, use one of the one-click install buttons below...
101
+
102
+ [![Install with UV in VS Code](https://img.shields.io/badge/VS_Code-UV-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect/mcp/install?name=youtube-info&config=%7B%22command%22%3A%22uvx%22%2C%22args%22%3A%5B%22mcp-server-youtube-info%22%5D%7D)
103
+
104
+ ### Command-Line Options
105
+
106
+ You can specify the following options when running the server:
107
+
108
+ - `--sse`: Enable SSE transport
109
+
110
+ - Choices: `on`, `off`
111
+ - Default: `off`
112
+ - Description: Enables SSE transport when set to "on"
113
+
114
+ - `--host`: Host to bind the server to
115
+
116
+ - Default: `localhost`
117
+ - Description: Specifies the host address the server will bind to
118
+
119
+ - `--port`: Port to bind the server to
120
+
121
+ - Type: Integer
122
+ - Default: `8000`
123
+ - Description: Specifies the port number the server will bind to
124
+
125
+ - `--log-level`: Set the log level
126
+
127
+ - Choices: `debug`, `info`, `warning`, `error`
128
+ - Default: `info`
129
+ - Description:
130
+
131
+ - debug: Detailed debug information
132
+ - info: General runtime information (default)
133
+ - warning: Potential issues that do not affect execution
134
+ - error: Errors encountered during execution
@@ -0,0 +1,109 @@
1
+ # MCP YouTube Info Server
2
+
3
+ This project is a server implementation that retrieves YouTube video information using the Model Context Protocol (MCP). It utilizes the FastMCP framework to provide functionality for fetching YouTube video data.
4
+
5
+ ## Available Tools
6
+
7
+ ### youtube_metainfo
8
+
9
+ Retrieves metadata for a YouTube video.
10
+
11
+ - `video_id` (string, required): YouTube video ID
12
+
13
+ - Returns: JSON containing metadata such as title, description, view count, publication date, etc.
14
+
15
+ ### youtube_thumbnail_url
16
+
17
+ Retrieves the URL of a YouTube video's thumbnail image.
18
+
19
+ - `video_id` (string, required): YouTube video ID
20
+
21
+ - Returns: URL of the thumbnail image
22
+
23
+ ### youtube_thumbnail_image
24
+
25
+ Retrieves the image data from a YouTube video.
26
+
27
+ - `video_id` (string, required): YouTube video ID
28
+
29
+ - Returns: Thumbnail image
30
+
31
+ ## Installation
32
+
33
+ ### Using `uv` (recommended)
34
+
35
+ No special installation is needed when using `uv`. You can run `mcp-server-youtube-info` directly with `uvx`.
36
+
37
+ ### Using PIP
38
+
39
+ Alternatively, you can install `mcp-server-youtube-info` using pip:
40
+
41
+ ```
42
+ pip install mcp-server-youtube-info
43
+ ```
44
+
45
+ After installation, you can run it as a script like this:
46
+
47
+ ```
48
+ mcp-server-youtube-info
49
+ ```
50
+
51
+ ## Configuration
52
+
53
+ ### Configure for Claude.app
54
+
55
+ Add to your Claude settings:
56
+
57
+ <details>
58
+ <summary>Using uvx</summary>
59
+
60
+ ```json
61
+ {
62
+ "mcpServers": {
63
+ "testing": {
64
+ "command": "uvx",
65
+ "args": ["mcp-server-youtube-info"]
66
+ }
67
+ }
68
+ }
69
+ ```
70
+
71
+ </details>
72
+
73
+ ### Configure for VS Code
74
+
75
+ For quick installation, use one of the one-click install buttons below...
76
+
77
+ [![Install with UV in VS Code](https://img.shields.io/badge/VS_Code-UV-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect/mcp/install?name=youtube-info&config=%7B%22command%22%3A%22uvx%22%2C%22args%22%3A%5B%22mcp-server-youtube-info%22%5D%7D)
78
+
79
+ ### Command-Line Options
80
+
81
+ You can specify the following options when running the server:
82
+
83
+ - `--sse`: Enable SSE transport
84
+
85
+ - Choices: `on`, `off`
86
+ - Default: `off`
87
+ - Description: Enables SSE transport when set to "on"
88
+
89
+ - `--host`: Host to bind the server to
90
+
91
+ - Default: `localhost`
92
+ - Description: Specifies the host address the server will bind to
93
+
94
+ - `--port`: Port to bind the server to
95
+
96
+ - Type: Integer
97
+ - Default: `8000`
98
+ - Description: Specifies the port number the server will bind to
99
+
100
+ - `--log-level`: Set the log level
101
+
102
+ - Choices: `debug`, `info`, `warning`, `error`
103
+ - Default: `info`
104
+ - Description:
105
+
106
+ - debug: Detailed debug information
107
+ - info: General runtime information (default)
108
+ - warning: Potential issues that do not affect execution
109
+ - error: Errors encountered during execution
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "mcp-server-youtube-info"
3
- version = "0.1.3"
3
+ version = "0.1.5"
4
4
  description = "A YouTube information retrieval server implementation for Model Context Protocol (MCP)"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.10"
@@ -1,7 +1,7 @@
1
1
  from mcp_server_youtube_info.server import mcp
2
2
 
3
3
  def main():
4
- """MCP YouTube Info Server - YouTube情報取得サーバー実装"""
4
+ """MCP YouTube Info Server"""
5
5
  import os
6
6
  import argparse
7
7
 
@@ -7,13 +7,13 @@ from PIL import Image as PILImage
7
7
  mcp = FastMCP("MCP YouTube Info Server", dependencies=["httpx", "Pillow"])
8
8
 
9
9
  def _extract_info(video_id: str) -> dict:
10
- """YouTubeの動画情報を取得します。
10
+ """Retrieve meta info of YouTube video using yt-dlp.
11
11
 
12
12
  Args:
13
- video_id (str): YouTube動画ID
13
+ video_id (str): YouTube video ID
14
14
 
15
15
  Returns:
16
- dict: 動画情報
16
+ dict: Video meta information
17
17
  """
18
18
  ydl_opts = {
19
19
  'quiet': True,
@@ -27,74 +27,73 @@ def _extract_info(video_id: str) -> dict:
27
27
  info = ydl.extract_info(url, download=False)
28
28
  return info
29
29
  except Exception as e:
30
- raise Exception(f"動画情報の取得に失敗しました: {str(e)}")
30
+ raise Exception(f"Failed to retrieve video information: {str(e)}")
31
31
 
32
32
  @mcp.tool()
33
33
  def youtube_metainfo(video_id: str) -> dict:
34
- """YouTube動画のメタ情報を取得します。
34
+ """Retrieve meta info of YouTube video。
35
35
 
36
36
  Args:
37
- video_id (str): YouTube動画ID
37
+ video_id (str): YouTube video ID
38
38
 
39
39
  Returns:
40
- dict: yt-dlpから取得した生のメタ情報
40
+ dict: Video meta information
41
41
  """
42
42
  try:
43
43
  return _extract_info(video_id)
44
44
  except Exception as e:
45
- raise Exception(f"メタ情報の取得に失敗しました: {str(e)}")
45
+ raise Exception(f"Failed to retrieve metadata: {str(e)}")
46
46
 
47
47
  @mcp.tool()
48
48
  def youtube_thumbnail_url(video_id: str) -> str:
49
- """YouTubeのサムネイルURLを取得します。
49
+ """Retrieve the thumbnail URL of a YouTube video.
50
50
 
51
51
  Args:
52
- video_id (str): YouTube動画ID
52
+ video_id (str): YouTube Video ID
53
53
 
54
54
  Returns:
55
- str: サムネイル画像のURL
55
+ str: Thumbnail URL
56
56
  """
57
57
  try:
58
58
  info = _extract_info(video_id)
59
59
  thumbnail_url = info.get('thumbnail')
60
60
  if not thumbnail_url:
61
- raise Exception("サムネイルURLが見つかりません")
61
+ raise Exception("Cannot find thumbnail URL")
62
62
  return thumbnail_url
63
63
  except Exception as e:
64
- raise Exception(f"サムネイルの取得に失敗しました: {str(e)}")
64
+ raise Exception(f"Failed to get thumbnail URL: {str(e)}")
65
+
65
66
  @mcp.tool()
66
67
  def youtube_thumbnail_image(video_id: str) -> Image:
67
68
  """
68
- 指定されたYouTube動画のサムネイルをダウンロードし、Imageとして返す。
69
+ Retrieve and download the thumbnail of a YouTube video as an Image.
69
70
 
70
71
  Args:
71
- video_id: ダウンロードするyoutubeサムネイルのvideo_id
72
+ video_id: YouTube Video ID
72
73
  Returns:
73
- Image: ダウンロードした画像データ
74
+ Image: Image object containing the thumbnail data
74
75
  """
75
76
  try:
76
77
  info = _extract_info(video_id)
77
78
  thumbnail_url = info.get('thumbnail')
78
79
  if not thumbnail_url:
79
- raise Exception("サムネイルURLが見つかりません")
80
+ raise Exception("Cannot find thumbnail URL")
80
81
  except Exception as e:
81
- raise Exception(f"サムネイルの取得に失敗しました: {str(e)}")
82
+ raise Exception(f"Failed to get thumbnail URL: {str(e)}")
82
83
 
83
84
  try:
84
85
  with httpx.Client() as client:
85
86
  response = client.get(thumbnail_url)
86
87
  response.raise_for_status()
87
88
 
88
- # 画像を読み込んで圧縮
89
89
  image = PILImage.open(io.BytesIO(response.content)).convert('RGB')
90
90
  buffer = io.BytesIO()
91
- # image.save(buffer, format="JPEG", quality=60, optimize=True)
92
- image.save(buffer, format="JPEG", quality=60)
91
+ image.save(buffer, format="JPEG", quality=60, optimize=True)
93
92
 
94
93
  return Image(data=buffer.getvalue(), format="jpeg")
95
94
  except httpx.HTTPStatusError as e:
96
- raise Exception(f"HTTPエラー: {e.response.status_code}")
95
+ raise Exception(f"HTTP Error: {e.response.status_code}")
97
96
  except PILImage.UnidentifiedImageError:
98
- raise Exception("有効な画像ファイルではありません")
97
+ raise Exception("Not a valid image format")
99
98
  except Exception as e:
100
- raise Exception(f"画像のダウンロードに失敗しました: {str(e)}")
99
+ raise Exception(f"Failed to download image: {str(e)}")
@@ -1,105 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: mcp-server-youtube-info
3
- Version: 0.1.3
4
- Summary: A YouTube information retrieval server implementation for Model Context Protocol (MCP)
5
- Project-URL: Homepage, https://github.com/yareyaredesuyo/mcp-servers
6
- Project-URL: Repository, https://github.com/yareyaredesuyo/mcp-servers.git
7
- Project-URL: Documentation, https://github.com/yareyaredesuyo/mcp-servers#readme
8
- Project-URL: Bug Tracker, https://github.com/yareyaredesuyo/mcp-servers/issues
9
- Author-email: yareyaredesuyo <yareyaredesuyo@gmail.com>
10
- License-Expression: MIT
11
- Keywords: automation,llm,mcp,model-context-protocol,youtube
12
- Classifier: Development Status :: 4 - Beta
13
- Classifier: Intended Audience :: Developers
14
- Classifier: License :: OSI Approved :: MIT License
15
- Classifier: Programming Language :: Python :: 3
16
- Classifier: Programming Language :: Python :: 3.10
17
- Classifier: Topic :: Software Development :: Libraries :: Python Modules
18
- Requires-Python: >=3.10
19
- Requires-Dist: argparse>=1.4.0
20
- Requires-Dist: fastmcp>=2.5.2
21
- Requires-Dist: httpx>=0.28.1
22
- Requires-Dist: pillow>=11.2.1
23
- Requires-Dist: yt-dlp>=2025.5.22
24
- Description-Content-Type: text/markdown
25
-
26
- # MCP YouTube Info Server
27
-
28
- このプロジェクトは、Model Context Protocol (MCP) を使用して YouTube 動画の情報を取得するサーバー実装です。FastMCP フレームワークを使用して、YouTube の動画情報を取得する機能を提供します。
29
-
30
- ## Available Tools
31
-
32
- ### thumbnail
33
-
34
- YouTube 動画のサムネイル画像の URL を取得します。
35
-
36
- - video_id (string, required): YouTube 動画 ID
37
- - 戻り値: サムネイル画像の URL
38
-
39
- ### metainfo
40
-
41
- YouTube 動画のメタ情報を取得します。
42
-
43
- - video_id (string, required): YouTube 動画 ID
44
- - 戻り値: タイトル、説明、視聴回数、投稿日時などのメタ情報を含む JSON
45
-
46
- ## インストール
47
-
48
- ### uv の使用(推奨)
49
-
50
- uv を使用する場合、特別なインストールは必要ありません。`uvx` を使用して直接 `mcp-server-youtube-info` を実行できます。
51
-
52
- ### PIP の使用
53
-
54
- または、pip を使用して `mcp-server-youtube-info` をインストールすることもできます:
55
-
56
- ```
57
- pip install mcp-server-youtube-info
58
- ```
59
-
60
- インストール後、以下のようにスクリプトとして実行できます:
61
-
62
- ```
63
- mcp-server-youtube-info
64
- ```
65
-
66
- ### コマンドラインオプション
67
-
68
- サーバーの実行時に以下のオプションを指定できます:
69
-
70
- - `--sse`: SSE トランスポートの有効化
71
-
72
- - 選択肢: `on`, `off`
73
- - デフォルト: `off`
74
- - 説明: "on"に設定すると SSE トランスポートが有効になります
75
-
76
- - `--host`: サーバーをバインドするホスト
77
-
78
- - デフォルト: `localhost`
79
- - 説明: サーバーをバインドするホストアドレスを指定します
80
-
81
- - `--port`: サーバーをバインドするポート
82
-
83
- - タイプ: 整数
84
- - デフォルト: `8000`
85
- - 説明: サーバーをバインドするポート番号を指定します
86
-
87
- - `--log-level`: ログレベルの設定
88
- - 選択肢: `debug`, `info`, `warning`, `error`
89
- - デフォルト: `info`
90
- - 説明:
91
- - debug: 詳細なデバッグ情報
92
- - info: 一般的な実行情報(デフォルト)
93
- - warning: 実行に影響しない潜在的な問題
94
- - error: 実行中に発生したエラー
95
-
96
- ## 開発
97
-
98
- このプロジェクトは、YouTube の動画情報を取得するための MCP サーバーを提供します。新しい機能を追加する場合は、`server.py` に実装を追加してください。
99
-
100
- 開発時には、以下のコマンドを実行することで、開発中のスクリプトの動作を検証できます。
101
-
102
- ```
103
- pip install -e .
104
- mcp-server-youtube-info
105
- ```
@@ -1,80 +0,0 @@
1
- # MCP YouTube Info Server
2
-
3
- このプロジェクトは、Model Context Protocol (MCP) を使用して YouTube 動画の情報を取得するサーバー実装です。FastMCP フレームワークを使用して、YouTube の動画情報を取得する機能を提供します。
4
-
5
- ## Available Tools
6
-
7
- ### thumbnail
8
-
9
- YouTube 動画のサムネイル画像の URL を取得します。
10
-
11
- - video_id (string, required): YouTube 動画 ID
12
- - 戻り値: サムネイル画像の URL
13
-
14
- ### metainfo
15
-
16
- YouTube 動画のメタ情報を取得します。
17
-
18
- - video_id (string, required): YouTube 動画 ID
19
- - 戻り値: タイトル、説明、視聴回数、投稿日時などのメタ情報を含む JSON
20
-
21
- ## インストール
22
-
23
- ### uv の使用(推奨)
24
-
25
- uv を使用する場合、特別なインストールは必要ありません。`uvx` を使用して直接 `mcp-server-youtube-info` を実行できます。
26
-
27
- ### PIP の使用
28
-
29
- または、pip を使用して `mcp-server-youtube-info` をインストールすることもできます:
30
-
31
- ```
32
- pip install mcp-server-youtube-info
33
- ```
34
-
35
- インストール後、以下のようにスクリプトとして実行できます:
36
-
37
- ```
38
- mcp-server-youtube-info
39
- ```
40
-
41
- ### コマンドラインオプション
42
-
43
- サーバーの実行時に以下のオプションを指定できます:
44
-
45
- - `--sse`: SSE トランスポートの有効化
46
-
47
- - 選択肢: `on`, `off`
48
- - デフォルト: `off`
49
- - 説明: "on"に設定すると SSE トランスポートが有効になります
50
-
51
- - `--host`: サーバーをバインドするホスト
52
-
53
- - デフォルト: `localhost`
54
- - 説明: サーバーをバインドするホストアドレスを指定します
55
-
56
- - `--port`: サーバーをバインドするポート
57
-
58
- - タイプ: 整数
59
- - デフォルト: `8000`
60
- - 説明: サーバーをバインドするポート番号を指定します
61
-
62
- - `--log-level`: ログレベルの設定
63
- - 選択肢: `debug`, `info`, `warning`, `error`
64
- - デフォルト: `info`
65
- - 説明:
66
- - debug: 詳細なデバッグ情報
67
- - info: 一般的な実行情報(デフォルト)
68
- - warning: 実行に影響しない潜在的な問題
69
- - error: 実行中に発生したエラー
70
-
71
- ## 開発
72
-
73
- このプロジェクトは、YouTube の動画情報を取得するための MCP サーバーを提供します。新しい機能を追加する場合は、`server.py` に実装を追加してください。
74
-
75
- 開発時には、以下のコマンドを実行することで、開発中のスクリプトの動作を検証できます。
76
-
77
- ```
78
- pip install -e .
79
- mcp-server-youtube-info
80
- ```