Koskamo

Agent Media Toolkit MCP

A hosted MCP server providing 15 media and data tools for AI agents, including web search, news, transcription, subtitles, voiceover, translation, summarization, moderation, and short-form video editing. It operates on a freemium model where lighter tools are free over MCP, while premium media tools are pay-per-call via x402.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

Agent Media Toolkit MCP logo, by The Solo StackCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-06Published by The Solo Stack
You need:No API key, no signup
MCP endpoint (Streamable HTTP)
https://podcast-shorts-a2a-production.up.railway.app/mcp/
Vendor documentation

What its tools do

15 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

15 of 15 have a description · 0 of 15 declare behavior hints · 0 of 15 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Perform live web search and retrieve recent news
  • Transcribe audio/video files and generate subtitles
  • Translate text into various languages
  • Generate voiceovers from text input

Source and maintenance

Community listingRegistry 1.0.0
Maintenance checked

Protocol and capabilities

Server
Agent Media Toolkit 1.28.1
MCP protocol negotiated in check
2025-11-25
Tools
15 advertised
Resources
0 advertised
Resource templates
0 advertised
Prompts
0 advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  },
  "prompts": {
    "listChanged": false
  },
  "resources": {
    "subscribe": false,
    "listChanged": false
  },
  "experimental": {}
}

Tools

15 advertised

search
Advertised by the server during the last successful anonymous check.

Live web search. Returns results with title, url, and snippet.

search input schema
{
  "type": "object",
  "title": "searchArguments",
  "required": [
    "query"
  ],
  "properties": {
    "query": {
      "type": "string",
      "title": "Query"
    },
    "max_results": {
      "type": "integer",
      "title": "Max Results",
      "default": 5
    }
  }
}
news
Advertised by the server during the last successful anonymous check.

Recent news for a query/niche. Returns items with title, url, snippet, date, source.

news input schema
{
  "type": "object",
  "title": "newsArguments",
  "required": [
    "query"
  ],
  "properties": {
    "query": {
      "type": "string",
      "title": "Query"
    },
    "max_results": {
      "type": "integer",
      "title": "Max Results",
      "default": 6
    }
  }
}
extract
Advertised by the server during the last successful anonymous check.

Fetch a web page and return clean main-content text (no nav/ads/boilerplate).

extract input schema
{
  "type": "object",
  "title": "extractArguments",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "title": "Url"
    },
    "max_chars": {
      "type": "integer",
      "title": "Max Chars",
      "default": 20000
    }
  }
}
summarize
Advertised by the server during the last successful anonymous check.

Summarize text OR a web page (give text or url). style: paragraph|bullets.

summarize input schema
{
  "type": "object",
  "title": "summarizeArguments",
  "properties": {
    "url": {
      "type": "string",
      "title": "Url",
      "default": ""
    },
    "text": {
      "type": "string",
      "title": "Text",
      "default": ""
    },
    "style": {
      "type": "string",
      "title": "Style",
      "default": "paragraph"
    },
    "max_words": {
      "type": "integer",
      "title": "Max Words",
      "default": 120
    }
  }
}
repurpose
Advertised by the server during the last successful anonymous check.

Turn text into social assets: thread, summary, titles, hashtags.

repurpose input schema
{
  "type": "object",
  "title": "repurposeArguments",
  "required": [
    "text"
  ],
  "properties": {
    "text": {
      "type": "string",
      "title": "Text"
    },
    "niche": {
      "type": "string",
      "title": "Niche",
      "default": ""
    },
    "formats": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "type": "null"
        }
      ],
      "title": "Formats",
      "default": null
    }
  }
}
translate
Advertised by the server during the last successful anonymous check.

Translate text into target_lang (e.g. 'Spanish', 'ja').

translate input schema
{
  "type": "object",
  "title": "translateArguments",
  "required": [
    "text",
    "target_lang"
  ],
  "properties": {
    "text": {
      "type": "string",
      "title": "Text"
    },
    "source_lang": {
      "type": "string",
      "title": "Source Lang",
      "default": ""
    },
    "target_lang": {
      "type": "string",
      "title": "Target Lang"
    }
  }
}
script
Advertised by the server during the last successful anonymous check.

Write a short-form video script (hook, beats, cta) for a topic.

script input schema
{
  "type": "object",
  "title": "scriptArguments",
  "required": [
    "topic"
  ],
  "properties": {
    "tone": {
      "type": "string",
      "title": "Tone",
      "default": ""
    },
    "topic": {
      "type": "string",
      "title": "Topic"
    },
    "platform": {
      "type": "string",
      "title": "Platform",
      "default": "shorts"
    },
    "duration_s": {
      "type": "integer",
      "title": "Duration S",
      "default": 45
    }
  }
}
moderate
Advertised by the server during the last successful anonymous check.

Content-safety classification: flagged?, categories, severity, reason.

moderate input schema
{
  "type": "object",
  "title": "moderateArguments",
  "required": [
    "text"
  ],
  "properties": {
    "text": {
      "type": "string",
      "title": "Text"
    }
  }
}
media_info
Advertised by the server during the last successful anonymous check.

Metadata (title, duration, uploader, views) for a media URL — no download.

media_info input schema
{
  "type": "object",
  "title": "media_infoArguments",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "title": "Url"
    }
  }
}
voiceover
Advertised by the server during the last successful anonymous check.

Text -> natural MP3 narration. Returns a download URL.

voiceover input schema
{
  "type": "object",
  "title": "voiceoverArguments",
  "required": [
    "text"
  ],
  "properties": {
    "rate": {
      "type": "string",
      "title": "Rate",
      "default": "+0%"
    },
    "text": {
      "type": "string",
      "title": "Text"
    },
    "voice": {
      "type": "string",
      "title": "Voice",
      "default": "en-US-ChristopherNeural"
    }
  }
}
package_post
Advertised by the server during the last successful anonymous check.

Platform-optimized title, description, and hashtags for a clip. Premium (via x402).

package_post input schema
{
  "type": "object",
  "title": "package_postArguments",
  "required": [
    "transcript_excerpt"
  ],
  "properties": {
    "niche": {
      "type": "string",
      "title": "Niche",
      "default": ""
    },
    "platforms": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "type": "null"
        }
      ],
      "title": "Platforms",
      "default": null
    },
    "transcript_excerpt": {
      "type": "string",
      "title": "Transcript Excerpt"
    }
  }
}
transcribe
Advertised by the server during the last successful anonymous check.

Transcribe an audio/video URL to timestamped text. Premium (via x402).

transcribe input schema
{
  "type": "object",
  "title": "transcribeArguments",
  "required": [
    "source_url"
  ],
  "properties": {
    "source_url": {
      "type": "string",
      "title": "Source Url"
    }
  }
}
subtitles
Advertised by the server during the last successful anonymous check.

Audio/video URL -> .srt/.vtt subtitle file. Premium (via x402).

subtitles input schema
{
  "type": "object",
  "title": "subtitlesArguments",
  "required": [
    "source_url"
  ],
  "properties": {
    "format": {
      "type": "string",
      "title": "Format",
      "default": "srt"
    },
    "source_url": {
      "type": "string",
      "title": "Source Url"
    }
  }
}
find_clips
Advertised by the server during the last successful anonymous check.

Find viral clip candidates in a long video with scores. Premium (via x402).

find_clips input schema
{
  "type": "object",
  "title": "find_clipsArguments",
  "required": [
    "source_url"
  ],
  "properties": {
    "niche": {
      "type": "string",
      "title": "Niche",
      "default": ""
    },
    "max_clips": {
      "type": "integer",
      "title": "Max Clips",
      "default": 5
    },
    "source_url": {
      "type": "string",
      "title": "Source Url"
    }
  }
}
edit_clip
Advertised by the server during the last successful anonymous check.

Cut a time range into a finished 9:16 captioned short. Premium (via x402).

edit_clip input schema
{
  "type": "object",
  "title": "edit_clipArguments",
  "required": [
    "source_url",
    "start_s",
    "end_s"
  ],
  "properties": {
    "end_s": {
      "type": "number",
      "title": "End S"
    },
    "style": {
      "type": "string",
      "title": "Style",
      "default": "bold-captions"
    },
    "start_s": {
      "type": "number",
      "title": "Start S"
    },
    "source_url": {
      "type": "string",
      "title": "Source Url"
    }
  }
}

Prompts

0 advertised

No prompt definitions available.

Resources

0 advertised

No resource definitions available.

90-day uptime

A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.

Too few checks for a percentage yet (1 of 1 answered).

  1. 2026-11-06: 1 of 1 checks answered

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
1665 ms
95th percentile latency
1665 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 1665 ms · metadata changed · 15 tool(s), 0 resource(s), 0 resource template(s), 0 prompt(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http agent-media-toolkit-mcp https://podcast-shorts-a2a-production.up.railway.app/mcp/

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add agent-media-toolkit-mcp --url https://podcast-shorts-a2a-production.up.railway.app/mcp/

Cursor

Merge this server into .cursor/mcp.json in your project, then enable agent-media-toolkit-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "agent-media-toolkit-mcp": {
      "url": "https://podcast-shorts-a2a-production.up.railway.app/mcp/"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "agent-media-toolkit-mcp": {
      "type": "streamableHttp",
      "url": "https://podcast-shorts-a2a-production.up.railway.app/mcp/",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start agent-media-toolkit-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "agent-media-toolkit-mcp": {
      "type": "http",
      "url": "https://podcast-shorts-a2a-production.up.railway.app/mcp/"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http agent-media-toolkit-mcp https://podcast-shorts-a2a-production.up.railway.app/mcp/

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://podcast-shorts-a2a-production.up.railway.app/mcp/

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "agent-media-toolkit-mcp": {
      "serverUrl": "https://podcast-shorts-a2a-production.up.railway.app/mcp/"
    }
  }
}

Let your agent find its tools

Find servers like Agent Media Toolkit MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.