srgplus-mcp (srgplus/srgplus-mcp) is an MCP server listed on the M8ven Trust Index. It scores 52 out of 100, grade D. It declares 103 tools. No publisher has claimed this listing.
MCP server for SRG+ — lets Claude (and any MCP-aware agent) manage hubs, channels, content, assets, users, and workspaces through the SRG+ API.
Caution. Specific findings reduced this grade. They are listed on the page. Grades reflect the full trust pyramid: code, verification depth, and reputation. New projects cap at C until adoption is earned.
How we verified
Verified is a snapshot. Live keeps it current, and builds your track record.
⚡ Connect GitHub → continuous verification on every pushwhy connect →Who stands behind it
srgplus
Source: Glama
Claim it to get a verified publisher badge, a free copy of our full audit findings, and direct contact for any high-priority issues we find. Or connect your repo for our deepest verification, Live Monitored: read-only, revoke anytime. What we access →
Install from
The grade above is for the source repository. Registries can serve a different version, so we mark the ones we were not able to read.
These names and descriptions are the publisher's own, read from the source code. We print them as written. Our assessment is the findings above, not this list.
list_assetsList assets in a hub profile with cursor-based pagination.
search_assetsSearch assets in a hub profile by keyword.
get_assetGet full asset details by ID (Media, File, Image, Embed, or Video).
update_assetUpdate an asset's display name, read-only flag, and optionally its cover image.
create_embed_assetCreate an embed asset (external URL embed) in a hub profile.
create_media_assetCreate a media (video) asset record in a hub profile.
create_file_assetCreate a file asset record in a hub profile.
create_image_assetCreate an image asset record in a hub profile.
create_video_assetCreate a video file asset record in a hub profile.
upload_assetCreate an asset AND upload its bytes in one call.
list_channelsList all channels for a hub profile.
get_channelGet full channel details by ID (includes categories and heading content).
get_channel_by_nameGet channel details by hub profile username slug and channel name slug.
create_channelCreate a new channel in a hub profile. Returns the new channel ID.
update_channelUpdate a channel's name, privacy, and category order.
archive_channelArchive a channel (hidden from members, content preserved).
restore_channelRestore a previously archived channel.
delete_channelPermanently delete a channel and all its categories/sections. Irreversible.
create_categoryCreate a new category inside a channel. Returns the new category ID.
update_categoryUpdate a category's name, pin status, notification settings, and display options.
archive_categoryArchive a category inside a channel.
restore_categoryRestore a previously archived category inside a channel.
delete_categoryPermanently delete a category from a channel. Irreversible.
get_category_referencesList content references in a category with cursor-based pagination.
get_category_by_slugsGet category details by hub profile username, channel name, and category name slugs.
create_sectionCreate a new section inside a channel category. Returns the new section ID.
update_sectionRename a section inside a channel category.
delete_sectionPermanently delete a section from a channel category. Irreversible.
add_content_to_categoryAdd one or more content items to a section inside a channel category.
list_contentsList content items in a hub profile with cursor-based pagination.
search_contentsSearch content items in a hub profile by keyword.
get_contentGet content item details by ID (v1 schema).
get_content_v2Get content item by ID (v2 schema).
create_contentCreate a new content item in a hub profile.
update_contentUpdate a content item's metadata. Only provided fields are changed.
archive_contentArchive a content item (hidden from listings, fully reversible).
restore_contentRestore a previously archived content item.
add_content_to_categoriesAdd a content item to one or more channel categories.
remove_content_from_categoriesRemove a content item from one or more channel categories.
move_contentMove a content item to a different category section within a channel.
create_content_sectionCreate a section inside a collection content item's category.
update_content_sectionRename a section inside a collection content item's category.
delete_content_sectionDelete a section from a collection content item's category. Irreversible.
add_subcontentLink existing content items as subcontent inside a collection section.
get_subcontentList the subcontent items nested inside a collection, page by page.
delete_subcontentUnlink a subcontent item from a collection section.
move_subcontentReorder a subcontent item within a collection section.
patch_content_progressionUpdate the current user's progression status for a content item.
patch_media_progressionUpdate the current user's last watched position in a media asset (seconds).
get_progression_statsGet completion statistics for the current user.
get_srgplus_guideReturn the full SRG+ how-to guide: navigation, content creation, the exact widget shapes for the `context` body, safe-update rules, asset upload, archive/restore, and common pitfalls.
list_hub_profilesList all hub profiles in a workspace.
list_managed_hub_profilesList hub profiles where the current API key user has Admin or Editor role.
get_hub_profileGet full hub profile details by ID.
get_hub_profile_by_usernameGet hub profile details by its URL username/slug.
filter_hub_profilesBatch-fetch lightweight hub profile data for a list of IDs.
create_hub_profileCreate a new hub profile in a workspace.
update_hub_profileUpdate an existing hub profile's metadata.
archive_hub_profileArchive a hub profile (hidden from listings, content preserved).
restore_hub_profileRestore a previously archived hub profile.
delete_hub_profilePermanently delete a hub profile and all its data. Irreversible.
join_hub_profileJoin a public hub profile as the current API key user.
move_hub_profile_to_workspaceTransfer a hub profile to a different workspace (preserves content).
turn_on_hub_profile_communityEnable community features for a hub profile (posts, comments, reactions).
list_permission_groupsList all permission groups for a target.
get_permission_groupGet a permission group by ID, including its members.
create_permission_groupCreate a new permission group on a target. Returns the new group ID.
update_permission_groupRename a permission group.
delete_permission_groupPermanently delete a permission group. Members lose inherited permissions.
add_users_to_permission_groupAdd one or more users to a permission group.
remove_user_from_permission_groupRemove a user from a permission group.
get_workspace_usersList all users in a workspace with their roles.
get_userGet a user's full profile by ID.
check_user_exists_by_emailCheck whether a user account with the given email address exists.
check_user_exists_by_phoneCheck whether a user account with the given phone number exists (e.g. "+1234567890").
list_invitationsList all pending invitations for a hub profile.
invite_to_hub_profileSend email invitations to join a hub profile.
invite_to_workspaceSend email invitations to join a workspace.
get_invitation_linkGenerate a shareable invitation link for a single email address.
update_invitationUpdate the role assigned to a pending invitation.
delete_invitationCancel and permanently delete a pending invitation.
list_workspace_invitationsList all pending invitations for a workspace.
get_workspace_invitation_linkGenerate a shareable invitation link for a workspace for a single email.
update_workspace_invitationUpdate the role assigned to a pending workspace invitation.
delete_workspace_invitationCancel and permanently delete a pending workspace invitation.
can_readCheck whether the current user has read access to a target.
can_editCheck whether the current user has edit access to a target.
can_create_childCheck whether the current user can create a child resource inside a parent.
can_manage_permissionsCheck whether the current user can grant/revoke roles on a target.
can_archiveCheck whether the current user can archive a target.
is_memberCheck whether the current user is a member of a target (any role).
get_permission_targetsGet all targets of a given type accessible to the current user.
give_permissionGrant a user a role on a target (hub profile, workspace, channel, etc.).
delete_permissionRevoke all permissions a user has on a target.
list_workspacesList all workspaces accessible with the current API key(s).
get_workspaceGet full details of a workspace (name, seats, subscription, hub profiles).
update_workspaceUpdate a workspace's display name.
get_workspace_hub_profilesList all hub profiles in a workspace (minimal representation).
list_workspace_actionsList all automation actions configured on a workspace.
get_workspace_actionGet full details of a workspace automation action by ID.
3 further tools are not listed here. The complete surface is in the source.
OAUTH_ISSUERCanonical issuer URL (e.g. https://mcp.srgplus.com)OPENAI_APPS_CHALLENGE_TOKENHOSTSRG_CLIENT_CACHE_MAXSRG_CLIENT_CACHE_TTLSRG_HTTP_TIMEOUTOAUTH_RESOURCEPORTAll four hints declared on every tool
103/103 tools missing one or more hints — list_assets (missing: idempotentHint); search_assets (missing: idempotentHint); get_asset (missing: idempotentHint), +100 more. OpenAI's directory rejects tools where any of the four hints are missing or non-boolean.
For every tool, set all four hints (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) to explicit true/false values that match the handler’s actual behaviour.
Destructive tools are labelled
1 tool perform destructive updates without destructiveHint — upload_asset deletes at line 424 (os.unlink(tmp_path))
Add destructiveHint:true to any tool whose handler calls .delete(), .upsert(), .update(), unlink, rm, DELETE, DROP, REPLACE INTO, or any operation that overwrites existing data.
Tool inputs are validated
101/103 tool handlers declare input schemas (98%)
Declare an inputSchema with zod/joi/yup on every tool definition.
Tool handlers catch errors
Only 1/103 tool handlers wrap calls in try/catch (1%)
Wrap each tool handler body in try/catch and return a structured error response.
License file
No license file
Add a LICENSE file (MIT, Apache-2.0, etc.).
Tests exist
No test files found
Add tests that exercise each declared tool.
Claim the listing to review these findings one by one and send us a correction where you disagree, straight to the team. Claiming also means we tell you when the grade moves, and reach you first if we find anything urgent.
[](https://m8ven.ai/mcp/srgplus/srgplus-mcp)?variant=verified from the URL.Vetting this one by hand? Tool Check is an MCP that scores other MCPs. Add it once and ask Claude, ChatGPT, or any MCP client to grade a server, surface CVEs, check the publisher, and suggest safer alternatives — before you install.
https://m8ven.ai/api/mcp/tool-check