Skip to main content
Glama
vietanha34

sigma-streaming-platform-mcp

by vietanha34

sigma-streaming-platform-mcp

MCP server for Sigma Streaming Platform. Lets DevOps operators query and operate the platform from any AI client (Claude Desktop, Cursor, Kiro).

Prerequisites

  1. A Personal API Token — create at your Sigma portal under Settings → API Tokens

  2. Node.js 22+

Related MCP server: Railway MCP Server

Setup

cd /path/to/sigma-streaming-platform-mcp
npm install
npm run build    # uses tsgo (TypeScript native compiler)
npm run lint     # uses Biome for linting + formatting
npm run lint:fix # auto-fix

Deployment Options

This MCP supports two deployment paths without changing the server architecture:

  1. npx for direct local execution

  2. Docker for a containerized stdio process launched via docker run -i --rm sigmastreaming/cloud-mcp

Choose Docker when your MCP client can invoke Docker directly and you want isolated runtime dependencies.

Run Via npx

The package currently published on npm is @sigmaott/cloud-mcp. Run the MCP server directly with:

SIGMA_TOKEN=pat_your_token_here \
SIGMA_BASE_URL=https://api.sigma.example.com \
npx -y @sigmaott/cloud-mcp

This works because the package exposes a CLI binary pointing to dist/main.js.

Run Via Docker

Build the image from this repository:

docker build -t sigmastreaming/cloud-mcp .

Or use the bundled script:

npm run docker:build

Run the MCP server as a stdio container:

docker run -i --rm \
  -e SIGMA_TOKEN=pat_your_token_here \
  -e SIGMA_BASE_URL=https://api.sigma.example.com \
  sigmastreaming/cloud-mcp:latest

Or, if you prefer to pass environment variables from your current shell:

export SIGMA_TOKEN=pat_your_token_here
export SIGMA_BASE_URL=https://api.sigma.example.com
npm run docker:run

Environment Variables

Variable

Required

Description

SIGMA_TOKEN

Personal API Token (pat_...)

SIGMA_BASE_URL

Traefik ingress URL (e.g. https://api.sigma.example.com)

Claude Desktop Configuration

Using npx

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "sigma-streaming-platform": {
      "command": "npx",
      "args": ["-y", "@sigmaott/cloud-mcp"],
      "env": {
        "SIGMA_TOKEN": "pat_your_token_here",
        "SIGMA_BASE_URL": "https://api.sigma.example.com"
      }
    }
  }
}

Using Docker

If Claude Desktop on your machine can invoke Docker directly, use:

{
  "mcpServers": {
    "sigma-streaming-platform": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "SIGMA_TOKEN",
        "-e",
        "SIGMA_BASE_URL",
        "sigmastreaming/cloud-mcp:latest"
      ],
      "env": {
        "SIGMA_TOKEN": "pat_your_token_here",
        "SIGMA_BASE_URL": "https://api.sigma.example.com"
      }
    }
  }
}

Kiro CLI Configuration

Using npx

Add to ~/.kiro/settings/mcp.json:

{
  "mcpServers": {
    "sigma-streaming-platform": {
      "command": "npx",
      "args": ["-y", "@sigmaott/cloud-mcp"],
      "env": {
        "SIGMA_TOKEN": "pat_your_token_here",
        "SIGMA_BASE_URL": "https://api.sigma.example.com"
      }
    }
  }
}

Using Docker

{
  "mcpServers": {
    "sigma-streaming-platform": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "SIGMA_TOKEN",
        "-e",
        "SIGMA_BASE_URL",
        "sigmastreaming/cloud-mcp:latest"
      ],
      "env": {
        "SIGMA_TOKEN": "pat_your_token_here",
        "SIGMA_BASE_URL": "https://api.sigma.example.com"
      }
    }
  }
}

Local Development (kubectl port-forward)

If accessing via port-forward to the Traefik ingress:

kubectl port-forward svc/traefik 8080:80 -n traefik

Then use:

SIGMA_BASE_URL=http://localhost:8080

Available Tools

Tool

Params

Description

list_apps

page?, perPage?, search?

List all tenant apps/workspaces

get_app_detail

appId

Get app detail

list_servers

appId, page?, perPage?

List media servers for an app

get_server_info

appId, serverId

Get server detail

list_channels

appId, status?, name?, page?, perPage?

List transcoding channels

get_channel_detail

appId, channelId

Get channel detail

list_error_channels

appId

List channels in error state

start_channel

appId, channelId

Start a stopped channel

stop_channel

appId, channelId

Stop a channel

restart_channel

appId, channelId

Restart a channel (error recovery)

Typical Workflow

User: "Tìm xem app nào đang có channel lỗi"

AI → list_apps()
   → [{id: "app_abc", name: "VTV Live"}, ...]

AI → list_error_channels(appId: "app_abc")
   → [{channelId: "ch_1", name: "VTV HD", status: "error"}]

AI → restart_channel(appId: "app_abc", channelId: "ch_1")
   → {success: true}

Adding More Services

  1. Create src/services/sigma-<name>.service.ts

  2. Create src/tools/<name>/ with tool handlers

  3. Register in src/tools/tool-registry.ts

  4. Add service instance in src/main.ts

Publish To npm

  1. Use the published package name @sigmaott/cloud-mcp.

  2. Run npm login.

  3. Bump the version with npm version patch (or minor / major).

  4. Publish with npm publish.

Because prepack runs npm run build and files only includes dist plus README.md, the published tarball is ready for npx and excludes local workspace artifacts.

Docker Notes

  • This image keeps the MCP transport on stdio; it does not expose HTTP or SSE.

  • Use docker run -i so stdin/stdout remain attached to the MCP client.

  • Rebuild the image after changing source code or package dependencies.

Available Tools

11 tools
check_health_summaryA

Get a health overview for an app UUID: total channels and count by status (live, error, stop, etc.).

ParametersJSON Schema
NameRequiredDescriptionDefault
appUuidYes

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It discloses the output structure (total channels and status counts) but does not mention read-only behavior, authentication needs, rate limits, or performance characteristics. It is adequate but minimal.

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?

A single, front-loaded sentence that efficiently conveys the tool's purpose and output. No wasted words.

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

Completeness5/5

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

For a simple tool with one parameter and no output schema, the description fully covers what the tool does and what it returns. No gaps in context.

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 0%, so the description must add meaning. It explains that appUuid is the app's UUID for the health overview, but does not specify format, validation, or behavior for invalid input. This adds some value beyond the raw schema.

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 it gets a health overview for an app UUID, including total channels and counts by status. This distinguishes it from siblings like get_app_detail (app-level info) or list_channels (all channels) by specifying a summary format.

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?

No explicit when-to-use or when-not-to-use guidance. The purpose implies it's for quick health checks, but it doesn't mention alternatives or contexts where other tools are preferred. The list of siblings is provided externally but not leveraged in the description.

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

get_app_detailA

Get detail of a specific tenant app by UUID id.

ParametersJSON Schema
NameRequiredDescriptionDefault
appIdYes

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It indicates a read operation ('Get'), which suggests non-destructive behavior, but does not disclose auth needs, error handling, or scope of 'detail'. More context would be helpful.

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?

Single sentence with no filler, front-loaded with the core action and resource. Every word contributes to understanding.

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?

For a simple tool with one parameter and no output schema, the description is adequate but incomplete: it does not describe what 'detail' includes (e.g., fields returned). The agent may need to infer the response shape from context.

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

Parameters4/5

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

The description adds value beyond the input schema by specifying that appId is a 'UUID id', clarifying the format. Since schema coverage is 0%, this explanation is beneficial for correct invocation.

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 'Get' and resource 'detail of a specific tenant app' with the identifier 'by UUID id'. It distinguishes from siblings like list_apps (listing) and get_channel_detail (different resource).

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 retrieving a single app's details, but lacks explicit guidance on when to use this tool versus alternatives like list_apps or get_channel_detail, and no exclusions or prerequisites are mentioned.

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

get_channel_detailA

Get full detail of a single transcoding channel including config, inputs, targets, jobs. appUuid must be the app UUID.

ParametersJSON Schema
NameRequiredDescriptionDefault
appUuidYes
channelIdYes

TDQS

A3.6/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 full burden. It discloses the return content (config, inputs, targets, jobs) and a parameter constraint, but fails to mention behavioral traits like being read-only, authentication needs, rate limits, or side effects. The tool is likely non-destructive but this is not stated.

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. The first sentence front-loads the purpose and scope, listing what is included. The second adds a critical parameter constraint. No extraneous information.

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?

For a tool that retrieves full details of a single channel, the description covers the purpose, included components, and a key parameter constraint. No output schema exists, so the agent must infer return shape from descriptions, but the list provides reasonable guidance. Minor gap: not explicitly stating that the tool is read-only.

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 0%, so the description must compensate. It adds meaning to appUuid by clarifying it must be the app UUID, but does not explain channelId. With 2 parameters, only one gets meaningful context. This provides some added value but not full compensation.

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 uses a specific verb 'Get' and resource 'full detail of a single transcoding channel', listing included components (config, inputs, targets, jobs). It clearly distinguishes from siblings like list_channels (lists summaries) and action tools (start/stop/restart).

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 mentions that appUuid must be the app UUID, providing a usage constraint. However, it lacks explicit guidance on when to use this tool vs alternatives (e.g., list_channels for summary, get_app_detail for app-level info). No exclusions or when-not scenarios are stated.

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

get_server_infoB

Get detailed info for a specific server including config and current state. appUuid must be the app UUID.

ParametersJSON Schema
NameRequiredDescriptionDefault
appUuidYes
serverIdYes

TDQS

B3.3/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 full burden. It lacks disclosure of behavioral traits such as read-only nature, authentication requirements, error scenarios (e.g., invalid appUuid), or latency. The phrase 'including config and current state' gives some context but is insufficient.

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, front-loaded sentence that efficiently conveys the core purpose. It could be slightly expanded to cover usage without losing 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?

The tool has two required parameters and no output schema. The description partially explains the output ('config and current state') but lacks details on the return structure. For a simple informational tool, this level is acceptable but not fully complete.

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

Parameters2/5

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

Schema coverage is 0%, requiring the description to compensate. The description adds minimal value by stating appUuid must be the app UUID, but does not explain serverId or provide formats. With no enums or nested objects, the description should give more parameter usage guidance.

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 tool retrieves detailed info for a specific server, including config and current state. It distinguishes from sibling tools like list_servers (which lists all servers without details) and get_app_detail (which targets apps).

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 mentions a prerequisite ('appUuid must be the app UUID') but does not explicitly state when to use this tool over alternatives like list_servers or when not to use it. Usage context is implied by the name and resource specificity.

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

list_appsA

List all tenant apps/workspaces. Use the returned id field (UUID) as appUuid for subsequent operations. The slug field is human-readable only.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
searchNo
perPageNo

TDQS

A3.5/5.0
Behavior3/5

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

Without annotations, the description carries the burden of behavioral disclosure. It states the tool lists all apps/workspaces and highlights key fields, but it does not mention pagination, rate limits, or any side effects, leaving important behavior undocumented.

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, front-loaded sentences with no wasted words. Every sentence adds value: the first states purpose, the second adds critical usage detail.

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

Completeness2/5

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

Given the tool has 3 optional parameters and no output schema or annotations, the description is incomplete. It omits parameter behavior and pagination details, which are essential for this list operation.

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

Parameters1/5

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

Schema description coverage is 0%, so the description must explain the parameters. It fails to mention page, search, or perPage, leaving their semantics entirely to inference from the parameter names.

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 'List' and the resource 'tenant apps/workspaces', distinguishing it from sibling tools like get_app_detail. It also explains the significance of the returned id and slug fields.

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

Usage Guidelines4/5

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

The description specifies that the returned id field should be used as appUuid for subsequent operations, providing clear usage guidance. However, it does not explicitly exclude when not to use this tool or mention alternatives such as get_app_detail.

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

list_channelsA

List live transcoding channels for an app UUID. Supports filtering by status and name.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
skipNo
limitNo
statusNo
appUuidYes

TDQS

A3.7/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. The verb 'list' implies a read-only operation, but the description does not explicitly state that it is non-destructive or safe to call repeatedly. No side effects or authorization needs are mentioned.

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 is a single sentence with no redundant words. It is front-loaded with the core purpose and directly conveys the essential functionality.

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?

The tool has 5 parameters and no output schema. The description covers only the basic list and filter functionality, but omits details on pagination (skip/limit), return format, or potential edge cases. It is minimally adequate but not comprehensive.

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 0%, so the description must compensate. It adds meaning for 'status' and 'name' (filtering), but does not explain 'skip', 'limit', or 'appUuid'. This partial compensation is helpful but incomplete.

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 explicitly states the verb 'list', the resource 'live transcoding channels', and the scope 'for an app UUID', with additional filtering support. This clearly defines the tool's purpose and distinguishes it from siblings like get_channel_detail and list_error_channels.

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 by describing what it does, but does not provide explicit guidance on when to use this tool versus alternatives like list_apps or list_error_channels. No when-not-to-use or contextual exclusions are given.

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

list_error_channelsA

List all channels currently in error state for an app UUID. Quick debugging overview.

ParametersJSON Schema
NameRequiredDescriptionDefault
appUuidYes

TDQS

A4/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. Describes the read-only nature (listing channels) but lacks details about error state definition, output format, or potential side effects. Adequate for a simple list, but could be more transparent about return data.

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?

Two sentences, no redundancy. Front-loaded with the verb and resource. Every word contributes meaning.

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?

For a simple list tool with one param and no output schema, the description is fairly complete. It conveys purpose and scope. Could benefit from mentioning the output structure or any pagination, but given the 'quick overview' intent, it's acceptable.

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 only parameter (appUuid) is mentioned in the description as 'for an app UUID,' providing context. However, with 0% schema description coverage, the description should be more explicit about the UUID format or constraints. It compensates partially but not fully.

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?

Clearly states the action (list), the resource (channels in error state), and the scope (for a specific app UUID). Distinguishes from sibling 'list_channels' by specifying the error state filter.

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

Usage Guidelines4/5

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

Describes as 'quick debugging overview,' indicating when to use for debugging. While it doesn't explicitly state when not to use, the context of siblings like 'list_channels' provides implicit guidance. No alternatives mentioned.

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

list_serversB

List media servers (transcoders) for a given app UUID.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
statusNo
appUuidYes
perPageNo

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavior. It only states the basic action, omitting details about pagination (implied by optional page and perPage), status filtering, error handling, or response format. The agent cannot infer critical behavioral traits.

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 is a single, concise sentence that front-loads the verb and resource. No redundant or unnecessary words, making it efficient for quick comprehension.

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

Completeness2/5

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

For a tool with 4 parameters, no output schema, and no annotations, the description is insufficient. It lacks details on pagination, filtering, response structure, and usage context. The agent would need to guess or experiment to use the tool correctly.

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

Parameters2/5

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

The schema has 0% coverage (no property descriptions). The tool description only clarifies that appUuid identifies the app, adding minimal meaning. The optional parameters page, status, and perPage are not explained, leaving the agent without guidance on their use or effects.

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 'list', the resource 'media servers (transcoders)', and the scope 'for a given app UUID'. This distinguishes it from sibling tools like list_apps, list_channels, and get_server_info.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The description does not mention use cases, exclusions, or when not to use it. With siblings like get_server_info and check_health_summary, explicit differentiation would be helpful.

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

restart_channelA

Restart a channel (stop + start). Best for error recovery. appUuid must be the app UUID.

ParametersJSON Schema
NameRequiredDescriptionDefault
appUuidYes
channelIdYes

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations provided, the description must fully disclose behavioral traits. It reveals the operation is a stop followed by a start, implying state mutation, but lacks details on side effects, permissions, or safety (e.g., channel downtime). The brief 'stop + start' is insufficient for an agent to assess risks.

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 concise with two sentences, front-loading the core action and use case. Every sentence adds value, but the structure could be improved by separating parameter guidance or listing steps, making it slightly less than perfectly structured.

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 existence of sibling start/stop tools, the description adequately clarifies when to use restart. However, with no output schema and only one parameter hint, it lacks details on return values, error states, or additional behavioral context, making it minimally complete for a mutation tool.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It adds meaning to appUuid ('must be the app UUID') but provides no context for channelId. With two parameters, this partial coverage leaves half the schema unexplained, failing to fully guide invocation.

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 'Restart a channel (stop + start)' using a specific verb and resource. It distinguishes itself from siblings like start_channel and stop_channel by explicitly combining them, and adds context 'Best for error recovery' that clarifies its unique purpose.

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

Usage Guidelines4/5

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

The description provides clear usage context with 'Best for error recovery', indicating when to use restart. It also specifies 'appUuid must be the app UUID', guiding correct parameter use. However, it does not explicitly exclude other scenarios or mention alternatives like using start or stop individually.

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

start_channelC

Start a stopped transcoding channel. appUuid must be the app UUID.

ParametersJSON Schema
NameRequiredDescriptionDefault
appUuidYes
channelIdYes

TDQS

C2.4/5.0
Behavior2/5

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

No annotations are provided, and the description fails to disclose behavioral traits such as whether the operation is safe or destructive, what happens if the channel is already running, or any side effects.

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

Conciseness3/5

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

The description is very short (one sentence) and could be more structured, but it avoids unnecessary verbosity.

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

Completeness2/5

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

Given no output schema and no annotations, the description lacks information about return values, error cases, or prerequisites, making it incomplete for effective use.

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

Parameters1/5

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

With 0% schema description coverage, the description must compensate but only mentions 'appUuid' without explaining its purpose or the role of 'channelId', leaving parameter meaning largely implicit.

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

Purpose4/5

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

The description clearly states the action ('Start') and the resource ('stopped transcoding channel'), distinguishing it from sibling tools like 'stop_channel' and 'restart_channel'.

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

Usage Guidelines2/5

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

The description does not specify when to use this tool versus alternatives (e.g., 'restart_channel'), nor does it provide conditions or prerequisites beyond the appUuid constraint.

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

stop_channelC

Stop a transcoding channel. appUuid must be the app UUID.

ParametersJSON Schema
NameRequiredDescriptionDefault
appUuidYes
channelIdYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose behavioral traits such as side effects, idempotency, required permissions, or what happens if the channel is already stopped. The description is minimal and does not compensate for the lack of annotations.

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 very concise at two sentences with no unnecessary information. However, the second sentence is somewhat redundant if the parameter name already implies a UUID, but it does not detract significantly.

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

Completeness2/5

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

Given the tool's simplicity (2 required params, no output schema, no annotations), the description is incomplete. It lacks information on return values, error scenarios, success criteria, or any behavioral context that would help an agent use the tool effectively.

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

Parameters2/5

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

Schema description coverage is 0%, and the description only adds minimal value by restating that appUuid must be the app UUID. It does not explain the parameter's role or any constraints beyond the schema's required field.

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 ('Stop') and the resource ('a transcoding channel'), which is specific and distinguishes it from sibling tools like start_channel and restart_channel.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives, no prerequisites, and no context for usage. The only note is a parameter requirement ('appUuid must be the app UUID'), which is more about semantics than usage guidelines.

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.

  1. 11 tool updatesv1.0.1
    • First observedcheck_health_summary
    • First observedget_app_detail
    • First observedget_channel_detail
    • First observedget_server_info
    • First observedlist_apps
    • First observedlist_channels
    • First observedlist_error_channels
    • First observedlist_servers
    • First observedrestart_channel
    • First observedstart_channel
    • First observedstop_channel

TDQS

A3.5/5.0

Scored across 11 tools

Disambiguation5/5

Each tool has a clear, distinct purpose. List tools differentiate by resource (apps, channels, servers, error channels) and get tools provide details. Control verbs (start, stop, restart) are unambiguous. No overlapping functionality.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern with snake_case (list_apps, get_channel_detail, start_channel). Verbs like list, get, start, stop, restart, and check are used uniformly.

Tool Count5/5

11 tools cover the main operations for a streaming platform: listing, details, channel control, health check, and server info. This is well-scoped without unnecessary duplication.

Completeness4/5

Core lifecycle operations are present (list, get, start, stop, restart) for channels, plus health and server info. Missing creation or update tools for apps or channels, but these may be out of scope. The surface is mostly complete for management tasks.

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
    B
    quality
    D
    maintenance
    Allows developers to query security findings (SAST issues, secrets, patches) using natural language within AI-assisted tools like Claude Desktop, Cursor, and other MCP-compatible environments.
    17
    9
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables managing OpenI platform resources (login, query nodes, submit jobs, view logs) via natural language in Claude or Codex, following a kubectl/docker-style CLI.
    125
    MIT