Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

SRG+

PYPI · SRGPLUS-MCP · 2 COMPONENTS · SCANNED SEP 21

Manage SRG+ hubs, channels, content, assets, users, and workspaces from any MCP-aware AI agent.

0 this week 62 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security50
  • Malware scan not yet available for this package.Unverified
  • No known CVEs affecting this package version or its production dependencies.Pass
  • Runs hatchling.build at install time, a recognised native-build step with no shell scripting around it. View diagnostics → Pass
  • 0 of 30 dependencies flagged as unhealthy. View diagnostics → Pass
Provenance & Transparency32
Schema Quality & AI Usability67
  • AI-judged instruction clarity (good).Pass
  • Tool/resource definitions use about 8085 tokens (~83/item across 97 items; 97 tools + 0 resources), lean.Pass
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management90
  • Stability observed for 27 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage71
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 0% of tool parameters carry a description.Fail
  • Structured output schemas are declared (66% of tools); any adoption earns full credit.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 16 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 97 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

How do I install the SRG+ MCP server?

SRG+ runs locally as a PyPI package, launched with uvx srgplus-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

pypi · srgplus-mcp

# add to Claude Code
claude mcp add srgplus-srgplus-mcp -- uvx srgplus-mcp
// .cursor/mcp.json
{
  "mcpServers": {
    "srgplus-srgplus-mcp": {
      "command": "uvx",
      "args": [
        "srgplus-mcp"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "srgplus-srgplus-mcp": {
      "command": "uvx",
      "args": [
        "srgplus-mcp"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add srgplus-srgplus-mcp -- uvx srgplus-mcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "srgplus-srgplus-mcp": {
      "type": "local",
      "command": [
        "uvx",
        "srgplus-mcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add srgplus-srgplus-mcp --command uvx --arg srgplus-mcp
# ~/.hermes/config.yaml
mcp_servers:
  srgplus-srgplus-mcp:
    command: "uvx"
    args: ["srgplus-mcp"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "srgplus-srgplus-mcp": {
      "Transport": "stdio",
      "Command": "uvx",
      "Arguments": [
        "srgplus-mcp"
      ]
    }
  }
}
# add to Vellum
assistant mcp add srgplus-srgplus-mcp -t stdio -c uvx -a srgplus-mcp
// mcp.json
{
  "mcpServers": {
    "srgplus-srgplus-mcp": {
      "command": "uvx",
      "args": [
        "srgplus-mcp"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 21 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 87 to 90. That category is still filling its 30-day observation window: 26 days of observed history at the previous scan, 27 at this one. The score rises as the window fills, whether or not the server changes.

  • 19 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 80 to 83. That category is still filling its 30-day observation window: 24 days of observed history at the previous scan, 25 at this one. The score rises as the window fills, whether or not the server changes.

  • 18 Sept 26 −3
    • Stability: pass → 0.80 functional
  • 17 Sept 26 0
    • Stability: 0.97 → pass security
  • 16 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.

  • 14 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 87 to 90. That category is still filling its 30-day observation window: 26 days of observed history at the previous scan, 27 at this one. The score rises as the window fills, whether or not the server changes.

  • 12 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 80 to 83. That category is still filling its 30-day observation window: 24 days of observed history at the previous scan, 25 at this one. The score rises as the window fills, whether or not the server changes.

  • 11 Sept 26 −3
    • Stability: pass → 0.80 functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 21 Sept 2026 · Analysed pypi/srgplus-mcp@0.4.7

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem pypi

Background: How many MCP packages publish verified provenance →

Install scripts 1 script
Hook Tier Command
build_backend allowlisted hatchling.build

Background: Why install scripts are a supply-chain risk →

Dependencies 30 packages
Packages resolved 30
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 97 exposed · ~8,085 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
add_content_to_categories ~103

Add a content item to one or more channel categories. workspace_id: target workspace ID — get available IDs from list_workspaces() content_id: ID of the content item channel_id: ID of the channel category_ids: IDs of the categories inside that channel to add the content to

NameTypeReqDescription
category_idsarrayyes
channel_idstringyes
content_idstringyes
workspace_idstringyes
NameTypeReqDescription
resultstringyes

No examples provided.

add_content_to_category ~79

Add one or more content items to a section inside a channel category. workspace_id: target workspace ID — get available IDs from list_workspaces()

NameTypeReqDescription
category_idstringyes
channel_idstringyes
content_idsarrayyes
section_idstringyes
workspace_idstringyes
NameTypeReqDescription
resultyes

No examples provided.

add_subcontent ~202

Link existing content items as subcontent inside a collection section. Subcontent is the nested content that lives inside a Collection — think lessons inside a course, or chapters inside a module. A Content item automatically becomes a Collection once it has at least one subcontent item. workspace_id: target workspace ID — get available IDs from list_workspaces() content_id: ID of the collection (the parent content item) category_name: "Content" for nested content items, "Asset" for nested assets section_id: ID of the section to add the subcontent into (create a section first with create_content_section if needed) subcontent_ids: list of content IDs to link as subcontent (one or more)

NameTypeReqDescription
category_namestringyes
content_idstringyes
section_idstringyes
subcontent_idsarrayyes
workspace_idstringyes
NameTypeReqDescription
resultstringyes

No examples provided.

add_users_to_permission_group ~60

Add one or more users to a permission group. workspace_id: target workspace ID — get available IDs from list_workspaces()

NameTypeReqDescription
group_idstringyes
user_idsarrayyes
workspace_idstringyes
NameTypeReqDescription
resultyes

No examples provided.

archive_category ~54

Archive a category inside a channel. workspace_id: target workspace ID — get available IDs from list_workspaces()

NameTypeReqDescription
category_idstringyes
channel_idstringyes
workspace_idstringyes
NameTypeReqDescription
resultyes

No examples provided.

archive_channel ~50

Archive a channel (hidden from members, content preserved). workspace_id: target workspace ID — get available IDs from list_workspaces()

NameTypeReqDescription
channel_idstringyes
workspace_idstringyes
NameTypeReqDescription
resultyes

No examples provided.

archive_hub_profile ~54

Archive a hub profile (hidden from listings, content preserved). workspace_id: target workspace ID — get available IDs from list_workspaces()

NameTypeReqDescription
hub_profile_idstringyes
workspace_idstringyes
NameTypeReqDescription
resultyes

No examples provided.

can_archive ~57

Check whether the current user can archive a target. workspace_id: target workspace ID — get available IDs from list_workspaces()

NameTypeReqDescription
target_idstringyes
target_typestringyes
workspace_idstringyes
NameTypeReqDescription
resultbooleanyes

No examples provided.

can_create_child ~89

Check whether the current user can create a child resource inside a parent. workspace_id: target workspace ID — get available IDs from list_workspaces() Example: can the user create a "Channel" inside a "HubProfile"?

NameTypeReqDescription
child_target_typestringyes
parent_target_idstringyes
parent_target_typestringyes
workspace_idstringyes
NameTypeReqDescription
resultbooleanyes

No examples provided.

can_edit ~77

Check whether the current user has edit access to a target. workspace_id: target workspace ID — get available IDs from list_workspaces() target_type: "HubProfile", "Workspace", "Channel", "Content", etc.

NameTypeReqDescription
target_idstringyes
target_typestringyes
workspace_idstringyes
NameTypeReqDescription
resultbooleanyes

No examples provided.

can_manage_permissions ~62

Check whether the current user can grant/revoke roles on a target. workspace_id: target workspace ID — get available IDs from list_workspaces()

NameTypeReqDescription
target_idstringyes
target_typestringyes
workspace_idstringyes
NameTypeReqDescription
resultbooleanyes

No examples provided.

can_read ~77

Check whether the current user has read access to a target. workspace_id: target workspace ID — get available IDs from list_workspaces() target_type: "HubProfile", "Workspace", "Channel", "Content", etc.

NameTypeReqDescription
target_idstringyes
target_typestringyes
workspace_idstringyes
NameTypeReqDescription
resultbooleanyes

No examples provided.

check_user_exists_by_email ~53

Check whether a user account with the given email address exists. workspace_id: target workspace ID — get available IDs from list_workspaces()

NameTypeReqDescription
emailstringyes
workspace_idstringyes
NameTypeReqDescription
resultbooleanyes

No examples provided.

check_user_exists_by_phone ~63

Check whether a user account with the given phone number exists (e.g. "+1234567890"). workspace_id: target workspace ID — get available IDs from list_workspaces()

NameTypeReqDescription
phone_numberstringyes
workspace_idstringyes
NameTypeReqDescription
resultbooleanyes

No examples provided.

create_category ~180

Create a new category inside a channel. Returns the new category ID. workspace_id: target workspace ID — get available IDs from list_workspaces() view_type: display view type (e.g. "Grid", "List") progression_enabled: track user completion progress cover_show: show cover images in this category expandable: allow the category to be collapsed sections: list of {"name": "...", "type": "...", "reference_ids": [...]} for initial sections

NameTypeReqDescription
channel_idstringyes
cover_showboolean
expandableboolean
is_pinnedboolean
namestringyes
notifications_enabledboolean
progression_enabledboolean
sections
view_type
workspace_idstringyes
NameTypeReqDescription
resultstringyes

No examples provided.

create_channel ~81

Create a new channel in a hub profile. Returns the new channel ID. workspace_id: target workspace ID — get available IDs from list_workspaces() privacy: "Private" (default) or "Public"

NameTypeReqDescription
hub_profile_idstringyes
namestringyes
privacystring
workspace_idstringyes
NameTypeReqDescription
resultstringyes

No examples provided.

create_content ~183

Create a new content item in a hub profile. workspace_id: target workspace ID — get available IDs from list_workspaces() privacy: "Preview" (default), "Private", or "Public" channels: list of channel IDs to place the content in main_asset_id: ID of the primary playable asset url: optional external URL to associate with the content cover_image: local path or http(s):// URL of the cover image (auto-upload) context: additional context widget objects categories: category assignment objects

NameTypeReqDescription
categories
channels
context
cover_image
details
hub_profile_idstringyes
main_asset_id
namestringyes
privacystring
url
workspace_idstringyes

No output schema declared.

No examples provided.

create_content_section ~83

Create a section inside a collection content item's category. workspace_id: target workspace ID — get available IDs from list_workspaces() category_name: the name slug of the category (e.g. "week-1")

NameTypeReqDescription
category_namestringyes
content_idstringyes
namestringyes
workspace_idstringyes
NameTypeReqDescription
resultyes

No examples provided.

create_embed_asset ~76

Create an embed asset (external URL embed) in a hub profile. workspace_id: target workspace ID — get available IDs from list_workspaces()

NameTypeReqDescription
duration_in_seconds
hub_profile_idstringyes
namestringyes
urlstringyes
workspace_idstringyes

No output schema declared.

No examples provided.

create_file_asset ~96

Create a file asset record in a hub profile. workspace_id: target workspace ID — get available IDs from list_workspaces() extension: without dot, e.g. "pdf" Returns a signed URL for uploading the actual file.

NameTypeReqDescription
extensionstringyes
hub_profile_idstringyes
memory_size_in_bytesintegeryes
namestringyes
workspace_idstringyes

No output schema declared.

No examples provided.

create_hub_profile ~169

Create a new hub profile in a workspace. workspace_id: target workspace ID — get available IDs from list_workspaces() availability_level: "Public" (default) or "Private" primary_url: optional external URL shown on the profile app_clip_on: enable iOS App Clip widgets: profile widget configuration objects buttons: action buttons, each {"title": "...", "logic": {"type": "...", "url": "..."}}

NameTypeReqDescription
app_clip_onboolean
availability_levelstring
buttons
description
namestringyes
primary_url
sub_name
user_namestringyes
widgets
workspace_idstringyes

No output schema declared.

No examples provided.

create_image_asset ~110

Create an image asset record in a hub profile. workspace_id: target workspace ID — get available IDs from list_workspaces() extension: without dot, e.g. "png" Returns a signed URL for uploading the actual image.

NameTypeReqDescription
extensionstringyes
heightnumberyes
hub_profile_idstringyes
memory_size_in_bytesintegeryes
namestringyes
widthnumberyes
workspace_idstringyes

No output schema declared.

No examples provided.

create_media_asset ~87

Create a media (video) asset record in a hub profile. workspace_id: target workspace ID — get available IDs from list_workspaces() Returns a signed URL for uploading the actual video file.

NameTypeReqDescription
duration_in_seconds
hub_profile_idstringyes
memory_size_in_bytes
namestringyes
workspace_idstringyes

No output schema declared.

No examples provided.

create_permission_group ~81

Create a new permission group on a target. Returns the new group ID. workspace_id: target workspace ID — get available IDs from list_workspaces() target_type: "HubProfile" or "Workspace"

NameTypeReqDescription
namestringyes
target_idstringyes
target_typestringyes
workspace_idstringyes
NameTypeReqDescription
resultstringyes

No examples provided.

create_section ~69

Create a new section inside a channel category. Returns the new section ID. workspace_id: target workspace ID — get available IDs from list_workspaces()

NameTypeReqDescription
category_idstringyes
channel_idstringyes
namestringyes
workspace_idstringyes
NameTypeReqDescription
resultstringyes

No examples provided.

create_video_asset ~99

Create a video file asset record in a hub profile. workspace_id: target workspace ID — get available IDs from list_workspaces() extension: without dot, e.g. "mp4" Returns a signed URL for uploading the actual video file.

NameTypeReqDescription
extensionstringyes
hub_profile_idstringyes
memory_size_in_bytesintegeryes
namestringyes
workspace_idstringyes

No output schema declared.

No examples provided.

create_workspace_action ~112

Create a workspace automation action. Returns the new action ID. workspace_id: target workspace ID — get available IDs from list_workspaces() metadata example for a webhook trigger: {"$type": "ProgressionUpdatedMetadata", "webhookUrl": "https://..."} hub_profile_ids: profiles this action applies to (default: all)

NameTypeReqDescription
details
hub_profile_ids
metadataobjectyes
titlestringyes
workspace_idstringyes
NameTypeReqDescription
resultstringyes

No examples provided.

delete_category ~60

Permanently delete a category from a channel. Irreversible. workspace_id: target workspace ID — get available IDs from list_workspaces()

NameTypeReqDescription
category_idstringyes
channel_idstringyes
workspace_idstringyes
NameTypeReqDescription
resultstringyes

No examples provided.

delete_channel ~55

Permanently delete a channel and all its categories/sections. Irreversible. workspace_id: target workspace ID — get available IDs from list_workspaces()

NameTypeReqDescription
channel_idstringyes
workspace_idstringyes
NameTypeReqDescription
resultstringyes

No examples provided.

delete_content_section ~70

Delete a section from a collection content item's category. Irreversible. workspace_id: target workspace ID — get available IDs from list_workspaces()

NameTypeReqDescription
category_namestringyes
content_idstringyes
section_idstringyes
workspace_idstringyes
NameTypeReqDescription
resultstringyes

No examples provided.

delete_hub_profile ~57

Permanently delete a hub profile and all its data. Irreversible. workspace_id: target workspace ID — get available IDs from list_workspaces()

NameTypeReqDescription
hub_profile_idstringyes
workspace_idstringyes
NameTypeReqDescription
resultstringyes

No examples provided.

delete_invitation ~57

Cancel and permanently delete a pending invitation. workspace_id: target workspace ID — get available IDs from list_workspaces()

NameTypeReqDescription
hub_profile_idstringyes
invitation_idstringyes
workspace_idstringyes
NameTypeReqDescription
resultstringyes

No examples provided.

delete_permission ~80

Revoke all permissions a user has on a target. workspace_id: target workspace ID — get available IDs from list_workspaces() target_type: "HubProfile", "Workspace", or "Channel"

NameTypeReqDescription
target_idstringyes
target_typestringyes
user_idstringyes
workspace_idstringyes
NameTypeReqDescription
resultstringyes

No examples provided.

delete_permission_group ~52

Permanently delete a permission group. Members lose inherited permissions. workspace_id: target workspace ID — get available IDs from list_workspaces()

NameTypeReqDescription
group_idstringyes
workspace_idstringyes
NameTypeReqDescription
resultstringyes

No examples provided.

delete_section ~69

Permanently delete a section from a channel category. Irreversible. workspace_id: target workspace ID — get available IDs from list_workspaces()

NameTypeReqDescription
category_idstringyes
channel_idstringyes
section_idstringyes
workspace_idstringyes
NameTypeReqDescription
resultstringyes

No examples provided.

delete_subcontent ~165

Unlink a subcontent item from a collection section. Removes the link between the collection and the subcontent item. The subcontent item itself is NOT deleted — it continues to exist as a standalone content item. workspace_id: target workspace ID — get available IDs from list_workspaces() content_id: ID of the collection (the parent content item) category_name: "Content" or "Asset" section_id: ID of the section that currently contains the subcontent item subcontent_id: ID of the subcontent item to unlink

NameTypeReqDescription
category_namestringyes
content_idstringyes
section_idstringyes
subcontent_idstringyes
workspace_idstringyes
NameTypeReqDescription
resultstringyes

No examples provided.

delete_workspace_action ~48

Permanently delete a workspace automation action. workspace_id: target workspace ID — get available IDs from list_workspaces()

NameTypeReqDescription
action_idstringyes
workspace_idstringyes
NameTypeReqDescription
resultstringyes

No examples provided.

delete_workspace_invitation ~50

Cancel and permanently delete a pending workspace invitation. workspace_id: target workspace ID — get available IDs from list_workspaces()

NameTypeReqDescription
invitation_idstringyes
workspace_idstringyes
NameTypeReqDescription
resultstringyes

No examples provided.

filter_hub_profiles ~73

Batch-fetch lightweight hub profile data for a list of IDs. workspace_id: target workspace ID — get available IDs from list_workspaces() availability_level: "Public" or "Private" to filter by visibility

NameTypeReqDescription
availability_level
idsarrayyes
workspace_idstringyes
NameTypeReqDescription
resultarrayyes

No examples provided.

get_asset ~57

Get full asset details by ID (Media, File, Image, Embed, or Video). workspace_id: target workspace ID — get available IDs from list_workspaces()

NameTypeReqDescription
asset_idstringyes
workspace_idstringyes

No output schema declared.

No examples provided.

get_category_by_slugs ~76

Get category details by hub profile username, channel name, and category name slugs. workspace_id: target workspace ID — get available IDs from list_workspaces()

NameTypeReqDescription
category_namestringyes
channel_namestringyes
hub_profile_usernamestringyes
workspace_idstringyes

No output schema declared.

No examples provided.

get_category_references ~89

List content references in a category with cursor-based pagination. workspace_id: target workspace ID — get available IDs from list_workspaces() Returns items and a cursor for the next page (null if no more pages).

NameTypeReqDescription
category_idstringyes
channel_idstringyes
cursor
page_sizeinteger
workspace_idstringyes

No output schema declared.

No examples provided.

get_channel ~52

Get full channel details by ID (includes categories and heading content). workspace_id: target workspace ID — get available IDs from list_workspaces()

NameTypeReqDescription
channel_idstringyes
workspace_idstringyes

No output schema declared.

No examples provided.

get_channel_by_name ~63

Get channel details by hub profile username slug and channel name slug. workspace_id: target workspace ID — get available IDs from list_workspaces()

NameTypeReqDescription
channel_namestringyes
hub_profile_usernamestringyes
workspace_idstringyes

No output schema declared.

No examples provided.

get_content ~69

Get content item details by ID (v1 schema). workspace_id: target workspace ID — get available IDs from list_workspaces() hub_profile_id: optional, used to resolve access context

NameTypeReqDescription
content_idstringyes
hub_profile_id
workspace_idstringyes

No output schema declared.

No examples provided.

get_content_v2 ~62

Get content item by ID (v2 schema). workspace_id: target workspace ID — get available IDs from list_workspaces() Includes main asset, user progression, and extended metadata.

NameTypeReqDescription
content_idstringyes
workspace_idstringyes

No output schema declared.

No examples provided.

get_hub_profile ~50

Get full hub profile details by ID. workspace_id: target workspace ID — get available IDs from list_workspaces()

NameTypeReqDescription
hub_profile_idstringyes
workspace_idstringyes

No output schema declared.

No examples provided.

get_hub_profile_by_username ~53

Get hub profile details by its URL username/slug. workspace_id: target workspace ID — get available IDs from list_workspaces()

NameTypeReqDescription
usernamestringyes
workspace_idstringyes

No output schema declared.

No examples provided.

get_invitation_link ~96

Generate a shareable invitation link for a single email address. workspace_id: target workspace ID — get available IDs from list_workspaces() role_id: 1 = Admin, 2 = Editor, 3 = Viewer Returns the invitation ID and access link URL.

NameTypeReqDescription
emailstringyes
hub_profile_idstringyes
role_idintegeryes
workspace_idstringyes

No output schema declared.

No examples provided.

get_permission_group ~51

Get a permission group by ID, including its members. workspace_id: target workspace ID — get available IDs from list_workspaces()

NameTypeReqDescription
group_idstringyes
workspace_idstringyes

No output schema declared.

No examples provided.

Common questions

What is the SRG+ MCP server?

SRG+ is an MCP server listed in the public MCP registry as io.github.srgplus/srgplus-mcp. Manage SRG+ hubs, channels, content, assets, users, and workspaces from any MCP-aware AI agent. This page covers its PyPI package (srgplus-mcp).

Is the SRG+ MCP server safe to use?

SRG+ scores 62 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 21 September 2026. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the SRG+ MCP server expose?

SRG+ exposes 97 tools: list_hub_profiles, list_managed_hub_profiles, get_hub_profile, get_hub_profile_by_username, filter_hub_profiles, and 92 more. Their descriptions and schemas cost roughly 8,085 tokens of context every time the server is loaded.

Is the SRG+ MCP server still maintained?

SRG+ is still listed as active in the MCP registry. We last reached this channel on 21 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.