agent-media-toolkit

15 media & data tools for AI agents: search, transcribe, subtitles, voiceover, translate & more.

Should I use this

Quality & Safety

A
Description quality
89%
Schema completeness
78%
Naming quality
84%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (4)

  • LOWTool 'moderate' description lacks action verbin moderate
  • LOWTool 'package_post' description lacks action verbin package_post
  • LOWTool 'transcribe' description lacks action verbin transcribe
  • LOWTool 'subtitles' description lacks action verbin subtitles

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,291Tokens (tool definitions)
~689 BTypical response size
Moderate attention impact (1.01% of 128k context)

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-http

What it can do

Tool inventory

Tools (15)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢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

Rate this Server

Evidence

Recent observations

verifiedversion not recorded15 tools
verifiedversion not recorded15 tools
verifiedversion not recorded15 tools