agent-media-toolkit
15 media & data tools for AI agents: search, transcribe, subtitles, voiceover, translate & more.
Should I use this
Quality & Safety
Findings (4)
- LOWin moderate
- LOWin package_post
- LOWin transcribe
- LOWin subtitles
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"agent-media-toolkit": {
"url": "https://podcast-shorts-a2a-production.up.railway.app/mcp/"
}
}
}Remote endpoints
https://podcast-shorts-a2a-production.up.railway.app/mcp/streamable-httpWhat it can do
Tool inventory
Tools (15)
🟢search(query, max_results)
Live web search. Returns results with title, url, and snippet.
Input Schema
{
"type": "object",
"properties": {
"query": {
"title": "Query",
"type": "string"
},
"max_results": {
"default": 5,
"title": "Max Results",
"type": "integer"
}
},
"required": [
"query"
],
"title": "searchArguments"
}⚪news(query, max_results)
Recent news for a query/niche. Returns items with title, url, snippet, date, source.
Input Schema
{
"type": "object",
"properties": {
"query": {
"title": "Query",
"type": "string"
},
"max_results": {
"default": 6,
"title": "Max Results",
"type": "integer"
}
},
"required": [
"query"
],
"title": "newsArguments"
}🟢extract(url, max_chars)
Fetch a web page and return clean main-content text (no nav/ads/boilerplate).
Input Schema
{
"type": "object",
"properties": {
"url": {
"title": "Url",
"type": "string"
},
"max_chars": {
"default": 20000,
"title": "Max Chars",
"type": "integer"
}
},
"required": [
"url"
],
"title": "extractArguments"
}⚪summarize(text, url, style, max_words)
Summarize text OR a web page (give text or url). style: paragraph|bullets.
Input Schema
{
"type": "object",
"properties": {
"text": {
"default": "",
"title": "Text",
"type": "string"
},
"url": {
"default": "",
"title": "Url",
"type": "string"
},
"style": {
"default": "paragraph",
"title": "Style",
"type": "string"
},
"max_words": {
"default": 120,
"title": "Max Words",
"type": "integer"
}
},
"title": "summarizeArguments"
}⚪repurpose(text, formats, niche)
Turn text into social assets: thread, summary, titles, hashtags.
Input Schema
{
"type": "object",
"properties": {
"text": {
"title": "Text",
"type": "string"
},
"formats": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Formats"
},
"niche": {
"default": "",
"title": "Niche",
"type": "string"
}
},
"required": [
"text"
],
"title": "repurposeArguments"
}⚪translate(text, target_lang, source_lang)
Translate text into target_lang (e.g. 'Spanish', 'ja').
Input Schema
{
"type": "object",
"properties": {
"text": {
"title": "Text",
"type": "string"
},
"target_lang": {
"title": "Target Lang",
"type": "string"
},
"source_lang": {
"default": "",
"title": "Source Lang",
"type": "string"
}
},
"required": [
"text",
"target_lang"
],
"title": "translateArguments"
}🟡script(topic, platform, duration_s, tone)
Write a short-form video script (hook, beats, cta) for a topic.
Input Schema
{
"type": "object",
"properties": {
"topic": {
"title": "Topic",
"type": "string"
},
"platform": {
"default": "shorts",
"title": "Platform",
"type": "string"
},
"duration_s": {
"default": 45,
"title": "Duration S",
"type": "integer"
},
"tone": {
"default": "",
"title": "Tone",
"type": "string"
}
},
"required": [
"topic"
],
"title": "scriptArguments"
}⚪moderate(text)
Content-safety classification: flagged?, categories, severity, reason.
Input Schema
{
"type": "object",
"properties": {
"text": {
"title": "Text",
"type": "string"
}
},
"required": [
"text"
],
"title": "moderateArguments"
}⚪media_info(url)
Metadata (title, duration, uploader, views) for a media URL — no download.
Input Schema
{
"type": "object",
"properties": {
"url": {
"title": "Url",
"type": "string"
}
},
"required": [
"url"
],
"title": "media_infoArguments"
}🟢voiceover(text, voice, rate)
Text -> natural MP3 narration. Returns a download URL.
Input Schema
{
"type": "object",
"properties": {
"text": {
"title": "Text",
"type": "string"
},
"voice": {
"default": "en-US-ChristopherNeural",
"title": "Voice",
"type": "string"
},
"rate": {
"default": "+0%",
"title": "Rate",
"type": "string"
}
},
"required": [
"text"
],
"title": "voiceoverArguments"
}🟡package_post(transcript_excerpt, platforms, niche)
Platform-optimized title, description, and hashtags for a clip. Premium (via x402).
Input Schema
{
"type": "object",
"properties": {
"transcript_excerpt": {
"title": "Transcript Excerpt",
"type": "string"
},
"platforms": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Platforms"
},
"niche": {
"default": "",
"title": "Niche",
"type": "string"
}
},
"required": [
"transcript_excerpt"
],
"title": "package_postArguments"
}⚪transcribe(source_url)
Transcribe an audio/video URL to timestamped text. Premium (via x402).
Input Schema
{
"type": "object",
"properties": {
"source_url": {
"title": "Source Url",
"type": "string"
}
},
"required": [
"source_url"
],
"title": "transcribeArguments"
}⚪subtitles(source_url, format)
Audio/video URL -> .srt/.vtt subtitle file. Premium (via x402).
Input Schema
{
"type": "object",
"properties": {
"source_url": {
"title": "Source Url",
"type": "string"
},
"format": {
"default": "srt",
"title": "Format",
"type": "string"
}
},
"required": [
"source_url"
],
"title": "subtitlesArguments"
}🟢find_clips(source_url, max_clips, niche)
Find viral clip candidates in a long video with scores. Premium (via x402).
Input Schema
{
"type": "object",
"properties": {
"source_url": {
"title": "Source Url",
"type": "string"
},
"max_clips": {
"default": 5,
"title": "Max Clips",
"type": "integer"
},
"niche": {
"default": "",
"title": "Niche",
"type": "string"
}
},
"required": [
"source_url"
],
"title": "find_clipsArguments"
}🟡edit_clip(source_url, start_s, end_s, style)
Cut a time range into a finished 9:16 captioned short. Premium (via x402).
Input Schema
{
"type": "object",
"properties": {
"source_url": {
"title": "Source Url",
"type": "string"
},
"start_s": {
"title": "Start S",
"type": "number"
},
"end_s": {
"title": "End S",
"type": "number"
},
"style": {
"default": "bold-captions",
"title": "Style",
"type": "string"
}
},
"required": [
"source_url",
"start_s",
"end_s"
],
"title": "edit_clipArguments"
}Community
Evidence