Skip to main content
Glama

icecast-mcp

MCP TypeScript License: MIT

MCP server for analyzing and optimizing Icecast streaming server configurations.

FeaturesInstallationUsageToolsDocker


Overview

A Model Context Protocol (MCP) server for analyzing Icecast streaming server configurations. Provides automated security audits, performance recommendations, and capacity planning for internet radio stations and streaming infrastructure.

Features:

  • Security auditing (authentication, credentials, access control)

  • Performance analysis (limits, buffers, threading)

  • Capacity planning based on listener counts

  • Best practice recommendations for different deployment sizes

Related MCP server: Kastell

Features

Configuration Analysis

  • Parse and validate Icecast XML configurations

  • Detect security issues (default credentials, missing authentication)

  • Identify performance bottlenecks (buffer sizes, thread pools, limits)

  • Check reliability settings (timeouts, fallback mounts)

  • Validate proxy configurations (X-Forwarded-For, hostname)

Best Practice Recommendations

  • Tailored advice for small, medium, and large deployments

  • Capacity planning based on expected listener counts

  • Security hardening guidelines

  • Performance tuning recommendations

What It Checks

Category

Checks

Security

Authentication config, default credentials, relay passwords, admin security

Performance

Client limits, buffer sizes (queue/burst), thread pools, log verbosity

Capacity

Listener count vs. limits, resource allocation, scaling recommendations

Reliability

Mount points, fallback configuration, timeout settings

Operations

Hostname setup, proxy config, logging, log rotation

Installation

From Source

git clone https://github.com/splinesreticulating/icecast-mcp.git
cd icecast-mcp
npm install
npm run build

Using Docker

docker build -t icecast-mcp .

Via npm (coming soon)

npm install -g icecast-mcp

Usage

With Claude Desktop

Add to your Claude Desktop configuration file:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%/Claude/claude_desktop_config.json

{
    "mcpServers": {
        "icecast": {
            "command": "node",
            "args": ["/absolute/path/to/icecast-mcp/build/index.js"]
        }
    }
}

Or using Docker:

{
    "mcpServers": {
        "icecast": {
            "command": "docker",
            "args": ["run", "-i", "--rm", "-v", "/path/to/your/configs:/configs:ro", "icecast-mcp"]
        }
    }
}

With MCP Inspector

Test the server locally:

npm run build
npm run inspector

With Other MCP Clients

The server communicates over stdio and follows the MCP specification. Compatible with any MCP client including Claude Desktop.

Tools

analyze_icecast_config

Analyze an Icecast XML configuration file and receive detailed recommendations.

Input Schema:

{
    "configPath": "/path/to/icecast.xml",
    "expectedListeners": 200
}

Parameter

Type

Required

Default

Description

configPath

string

Yes

-

Absolute path to Icecast XML config

expectedListeners

number

No

100

Expected concurrent listeners

Example Usage:

Ask Claude: "Analyze my Icecast config at /etc/icecast2/icecast.xml for 500 expected listeners"

Output Format:

# Icecast Configuration Analysis

Analyzing: /etc/icecast2/icecast.xml
Expected listeners: 500

## CRITICAL ISSUES

### Security: No authentication configured

Configure source-password and admin-password to secure your stream.

## WARNINGS

### Capacity: Client limit is quite low

Client limit is 50. This may cause connection rejections during peak times.
Current: 50
Recommended: 128

## INFORMATION

### Configuration: X-Forwarded-For is enabled

Good! This is correct when running behind a reverse proxy like Caddy.

get_icecast_best_practices

Get deployment-specific best practices and configuration recommendations.

Input Schema:

{
    "useCase": "medium"
}

Parameter

Type

Required

Options

Description

useCase

string

Yes

small, medium, large

Deployment size

Use Case Definitions:

  • small: < 50 concurrent listeners

  • medium: 50-500 concurrent listeners

  • large: 500+ concurrent listeners

Example Usage:

Ask Claude: "What are the best practices for a medium-sized Icecast deployment?"

Output: Comprehensive guide covering limits, security, mount points, performance, and reliability for your deployment size.

Docker

Building

docker build -t icecast-mcp .

Running with Volume Mounts

docker run -i --rm \
  -v /path/to/your/icecast/config:/config:ro \
  icecast-mcp

Docker Compose Example

version: '3.8'
services:
    icecast-mcp:
        build: .
        volumes:
            - ./ops/icecast:/config:ro
        stdin_open: true
        tty: true

Development

# Install dependencies
npm install

# Run in development mode (hot reload)
npm run dev

# Build TypeScript
npm run build

# Test with MCP Inspector
npm run inspector

# Run tests (if available)
npm test

Example Usage

A typical workflow:

  1. Install and configure icecast-mcp

  2. Ask Claude: "Analyze my Icecast config at /etc/icecast2/icecast.xml for 200 listeners"

  3. Get specific recommendations:

    • Optimize client limits for your traffic

    • Add relay password configuration

    • Configure fallback mount points

    • Enable log archiving

Architecture

┌─────────────────┐
│  MCP Client     │  (Claude Desktop, etc.)
│  (AI Assistant) │
└────────┬────────┘
         │ stdio
         │
┌────────▼────────┐
│  icecast-mcp    │
│  MCP Server     │
├─────────────────┤
│ • XML Parser    │
│ • Analyzer      │
│ • Validator     │
│ • Recommender   │
└────────┬────────┘
         │
         ▼
   icecast.xml

Contributing

Contributions welcome! Areas for improvement:

  • Additional analysis rules

  • Support for more Icecast features

  • Performance metrics integration

  • Live server monitoring

  • Configuration generation

License

MIT License - see LICENSE file for details.

Acknowledgments


Available Tools

2 tools
analyze_icecast_configA

Analyze an Icecast XML configuration file and provide recommendations for improvements. Checks security, performance, capacity, and reliability settings.

ParametersJSON Schema
NameRequiredDescriptionDefault
configPathYesPath to the Icecast XML configuration file
expectedListenersNoExpected number of concurrent listeners (optional, default: 100)

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool analyzes and provides recommendations, but does not mention that it is read-only, what permissions might be needed, or any potential side effects. The description is adequate but lacks detail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description consists of two concise sentences that immediately convey the primary action and scope. Every sentence adds value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (no output schema, two parameters) and lack of annotations, the description is fairly complete: it identifies the file type, the action, and the areas of analysis. However, it could be improved by specifying the output format or nature of recommendations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage for both parameters, so the schema already explains their meaning. The tool description itself does not elaborate on the parameters, but given the schema coverage, it does not need to. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Analyze' and the resource 'Icecast XML configuration file', and specifies the areas of improvement (security, performance, capacity, reliability). This distinguishes it from the sibling tool 'get_icecast_best_practices', which likely provides general best practices rather than analyzing a specific file.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies that the tool should be used when you have a specific Icecast configuration file to analyze, but it does not explicitly state when to use it versus the sibling tool 'get_icecast_best_practices'. No guidance on prerequisites or when not to use it is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_icecast_best_practicesB

Get general best practices and recommendations for Icecast configuration based on use case

ParametersJSON Schema
NameRequiredDescriptionDefault
useCaseYesUse case: 'small' (< 50 listeners), 'medium' (50-500 listeners), 'large' (500+ listeners)

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of disclosing behavioral traits. It only states the function is to 'get' recommendations, which implies a read-only operation, but does not detail any side effects, data source, or operational constraints. The description adds minimal value beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence with no redundancy. It is front-loaded but very brief. While efficient, it could benefit from a slight expansion to include behavioral or usage context without sacrificing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has one parameter, no output schema, and no annotations, the description provides the minimum viable information. It explains what the tool does but does not specify the format or structure of the returned recommendations, leaving gaps for an agent to interpret correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with a detailed description for the 'useCase' parameter including enum values and listener ranges. The tool description ('based on use case') does not add meaning beyond the schema, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Get'), the resource ('general best practices and recommendations for Icecast configuration'), and the condition ('based on use case'). It effectively distinguishes from the sibling tool 'analyze_icecast_config', which implies a focus on specific config analysis versus general recommendations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for obtaining best practices by use case but does not explicitly state when to use this tool versus its sibling or alternatives. No 'when not to use' guidance is provided, leaving the decision to the agent's inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 2 tool updates
    • First observedanalyze_icecast_config
    • First observedget_icecast_best_practices

TDQS

A3.6/5.0
Disambiguation5/5

The two tools have clearly distinct purposes: one analyzes a specific configuration file, while the other provides general best practices. There is no overlap or ambiguity.

Naming Consistency5/5

Both tool names follow the same verb_noun pattern with descriptive prefixes (analyze_icecast_config, get_icecast_best_practices), maintaining full consistency.

Tool Count3/5

With only 2 tools, the server feels thin for its stated purpose. While the tools are focused, a broader scope (e.g., validation, editing) would justify more tools, but it's borderline acceptable.

Completeness3/5

The tools cover analysis and best practices, but lack validation, comparison, or modification capabilities. This leaves notable gaps for a comprehensive configuration tool.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Professional security testing server with 50+ integrated tools for web application vulnerability scanning, reconnaissance, fuzzing, and API testing. Enables comprehensive bug bounty hunting workflows including subdomain enumeration, XSS/SQLi detection, and automated security assessments.
    1
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Server security auditing (413 checks, 29 categories), production hardening, and fleet management. Supports Hetzner, DigitalOcean, Vultr, and Linode.
    17
    214
    60
    Apache 2.0
  • A
    license
    B
    quality
    C
    maintenance
    Automated security red-team for any MCP server that scans manifests against OWASP LLM Top 10 and MCP-specific risks, returning a 0-100 hardening score and HMAC-signed report.
    7
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/splinesreticulating/icecast-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server