riverside-mcp-server
Allows queueing and downloading timeline exports compatible with Pro Tools editing software.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@riverside-mcp-serverlist my recent recordings"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Riverside MCP Server
A local stdio MCP server for the Riverside Business API v3. It exposes every endpoint currently listed in Riverside's documentation as an MCP tool and includes a hand-authored OpenAPI 3.1 specification.
Works with Claude Desktop, Cursor, Codex, and other MCP clients that can launch a local stdio process.
Requirements
Node.js 20 or newer
A Riverside Business API key (the API is available only to select Riverside Business accounts)
Related MCP server: vcon-mcp
Install
git clone YOUR_REPOSITORY_URL
cd riverside-mcp-server
npm install
npm run buildDo not place the API key in the repository. Supply it in your MCP client configuration.
Client configuration
Use an absolute path to dist/index.js.
{
"mcpServers": {
"riverside": {
"command": "node",
"args": ["/absolute/path/to/riverside-mcp-server/dist/index.js"],
"env": {
"RIVERSIDE_API_KEY": "YOUR_API_KEY",
"RIVERSIDE_DOWNLOAD_DIR": "/absolute/path/to/downloads"
}
}
}
}This standard configuration shape is accepted directly by Claude Desktop and many other local clients. Cursor and Codex may store the same server definition in client-specific configuration files or expose an “Add MCP server” command.
Available tools
Tool | Purpose |
| List productions, studios, and projects |
| Find and inspect recordings |
| Soft-delete a recording; requires |
| Find and inspect exports |
| Permanently delete an export; requires |
| Download a recording track file |
| Download SRT or TXT transcription |
| Download exported audio/video |
| Register a webinar participant |
| Search and paginate webinar registrants |
| List edits/clips |
| Queue Premiere, Final Cut, or Pro Tools timeline export |
| Poll timeline export status |
| Download a completed timeline ZIP |
Downloads are written to RIVERSIDE_DOWNLOAD_DIR, or ./downloads if it is omitted. Riverside download redirects are followed automatically. Errors are returned to the MCP client as structured tool errors without exposing the API key.
OpenAPI
openapi.yaml describes all 16 documented v3 operations. It is community-authored from Riverside's public documentation and is not an official Riverside artifact.
Development and validation
npm test
npm run inspectThe server communicates only over stdout using MCP stdio. Diagnostics go to stderr so they do not corrupt protocol messages.
Documentation source
License
MIT
Available Tools
16 toolscreate_timeline_exportC
Queue an XML or AAF editing-timeline export for an edit.
| Name | Required | Description | Default |
|---|---|---|---|
| clipId | Yes | ||
| target | Yes | ||
| include_comments_markers_chapters | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It does not mention that the operation is asynchronous (queue), what side effects occur, or any authentication or rate limit requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a single sentence, but it lacks critical details. It is not front-loaded with the most important information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given three required parameters, no output schema, and no annotations, the description is insufficient. It does not explain the response format, how to check status, or what the export includes beyond format hints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, and the description adds no meaning to the three parameters (clipId, target, include_comments_markers_chapters). The formats 'XML or AAF' are not explicitly tied to the parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'queue', the resource 'export', and specifies the formats 'XML or AAF' and target 'editing-timeline'. It effectively distinguishes from sibling tools like download_export or get_timeline_export.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 like download_export or delete_export. No conditions, prerequisites, or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_webinar_registrantC
Register a participant for a Riverside webinar event.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | |||
| eventId | Yes | ||
| last_name | Yes | ||
| first_name | Yes | ||
| custom_fields | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior. It states a write operation ('register') but omits side effects (e.g., email sending, confirmation), failure modes, or required authentication. Minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single 8-word sentence, which is concise but at the cost of useful detail. It is front-loaded but under-specified for a tool with multiple parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a creation tool with 5 parameters (including a nested object) and no output schema, the description is insufficient. It does not explain input requirements, return value, or behavior, leaving the agent with gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% parameter descriptions, and the description adds no meaning to the 5 parameters. Required fields like eventId, email, first_name, last_name are not explained, and the custom_fields object is undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'register' and identifies the resource as 'a participant for a Riverside webinar event', making the action clear. It distinguishes from sibling tools like get_webinar_registrants which lists registrants.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives (e.g., creating vs listing registrants) or prerequisites (e.g., event active, duplicate handling). The description provides no context for appropriate use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_exportADestructiveIdempotent
Permanently delete a Riverside export. This cannot be undone.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | Yes | Must be true to confirm permanent deletion | |
| exportId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds value beyond the destructiveHint annotation by explicitly stating irreversibility ('cannot be undone'). It does not contradict annotations. However, it could mention the confirm parameter's role.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence. It is efficient but could be slightly improved by briefly explaining the confirm parameter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple deletion tool, the description and annotations adequately cover purpose, effects, and safety (destructiveHint + irreversibility). Missing the role of confirm parameter reduces completeness slightly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 50% schema description coverage, the description adds no additional meaning for parameters. The confirm parameter is documented in schema but not highlighted in description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (permanently delete) and the resource (Riverside export), with no ambiguity. It distinguishes from sibling tools like download_export or get_export.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly conveys when to use (to delete an export) but does not explicitly state when not to use (e.g., if unsure, use get_export first) or mention alternatives. The 'cannot be undone' warning helps, but lacks explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_recordingADestructiveIdempotent
Soft-delete a recording and its associated tracks and files. This is destructive.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | Yes | Must be true to confirm deletion | |
| recordingId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as destructive and idempotent. The description adds valuable context: it is a 'soft-delete' and cascades to associated tracks and files, behavior not captured by annotations alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no redundancy, front-loaded with the core behavior and a clear warning. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and annotations covering destructive/idempotent traits, the description adequately specifies the scope (soft-delete, cascading). Missing details about reversibility or permissions, but sufficient for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% (only 'confirm' parameter described). The tool description does not elaborate on parameters, leaving 'recordingId' unexplained. Baseline is 3 due to borderline coverage, and no added value from description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('soft-delete') and the specific resource ('a recording and its associated tracks and files'), distinguishing it from siblings like 'delete_export'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description notes the destructive nature but does not explicitly guide when to use this tool versus alternatives, such as when a recording should be deleted versus exported or listed. The confirm parameter implies cautious use, but no direct guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
download_exportC
Download an exported video or audio file.
| Name | Required | Description | Default |
|---|---|---|---|
| exportId | Yes | ||
| fileName | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits, but it only states the basic action. No information about side effects, permissions, or what happens on failure is given.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no fluff. Every word is necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, no annotations, and two parameters, the description is too minimal. It lacks crucial details like whether the download is a file stream, how to handle responses, or link generation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, and the description adds no meaning to the two parameters ('exportId', 'fileName'). It fails to explain their purpose or format, relying entirely on the schema's minimal type info.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('download') and resource ('exported video or audio file'), providing a direct purpose. However, it does not differentiate from siblings like 'download_file' or 'download_recording', which could cause confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, nor any prerequisites or context for usage. The description offers no help in deciding between similar tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
download_fileC
Download a Riverside track file to the configured local download directory.
| Name | Required | Description | Default |
|---|---|---|---|
| fileId | Yes | ||
| fileName | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits (e.g., overwrite behavior, error handling, authentication). It only states 'download' without any such details, leaving significant gaps for a tool that likely performs a side effect (file download).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (12 words) but at the expense of completeness. It lacks essential details, so while it is brief, it sacrifices clarity and usefulness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and simple parameters, the description should explain what a 'track file' is and how the two parameters interact. It fails to do so, leaving the tool's behavior underspecified for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, yet the description adds no meaning for the two parameters (fileId, fileName). For a tool with two parameters, this is a critical omission; the agent cannot infer how to use fileName or what fileId represents beyond being required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Download') and the resource ('Riverside track file') and specifies the destination ('configured local download directory'). However, it does not distinguish this tool from sibling tools like 'download_export' or 'download_timeline', leaving ambiguity about when to use each.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus its siblings (e.g., download_export, download_timeline). There are no use-case conditions, prerequisites, or exclusions, making it difficult for an agent to select it correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
download_timelineC
Download a completed timeline export ZIP.
| Name | Required | Description | Default |
|---|---|---|---|
| fileName | No | ||
| timelineId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It only states the action without indicating whether it is a read-only operation, requires authentication, or has side effects. The agent cannot assess safety or consequences.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise at one sentence, which is efficient but omits crucial details. It is front-loaded but sacrifices completeness for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and sparse description, the tool definition lacks essential context about return values, success conditions, or error states. The agent cannot fully understand what to expect after invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, yet the description adds no information about the two parameters (timelineId required, fileName optional). The agent must rely solely on the schema, which also lacks descriptions, making correct invocation uncertain.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'download' and the resource 'completed timeline export ZIP', which helps distinguish it from siblings like 'create_timeline_export' and 'download_export'. However, it lacks specificity on what constitutes a 'completed timeline export', so a perfect score is not warranted.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 (e.g., download_export, download_file). The description implies it's for completed timeline exports but does not mention prerequisites or exclusions, leaving the agent to infer context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
download_transcriptionC
Download a recording transcription as SRT or TXT.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | ||
| fileName | No | ||
| recordingId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior but fails to mention permissions, error conditions (e.g., transcription not available), or whether the download is direct file or URL. The formats are listed but no other 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, efficient with no redundancy. However, it could include more detail without sacrificing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and no description of return format (e.g., file content, download link). Missing differentiation from sibling download tools and lacks context about what the transcription includes (e.g., timestamps).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description should clarify parameters. It does not explain the file name's purpose (e.g., output filename) or the recording ID's source. Only the type enum is self-explanatory.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (download), resource (recording transcription), and output formats (SRT or TXT). It distinguishes from sibling tools like download_export, download_file, and download_timeline by specifying the transcription and formats.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 like download_export or download_timeline. No context about prerequisites, such as whether a transcription must already exist.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_exportBRead-onlyIdempotent
Get details for a Riverside export.
| Name | Required | Description | Default |
|---|---|---|---|
| exportId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint as true, so the description does not need to disclose safety or idempotency. However, it adds no further behavioral context (e.g., what 'details' includes).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no unnecessary words. Every part earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple read tool with annotations; but lacks output description or error handling context, and no explanation of what 'details' entails.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description should compensate, but it only mentions 'a Riverside export' without explaining the exportId parameter's format, source, or how to obtain it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get details') and resource ('a Riverside export'), clearly distinguishing from sibling tools like create_timeline_export, delete_export, and list_exports.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 like get_timeline_export or list_exports. The description does not specify context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_recordingARead-onlyIdempotent
Get a recording including tracks, files, and transcription details.
| Name | Required | Description | Default |
|---|---|---|---|
| recordingId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly and idempotent behavior. The description adds value by specifying the included sub-resources (tracks, files, transcription details), giving the agent a clearer picture of the response without needing an output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that is front-loaded and concise. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple get-by-ID tool with one parameter and no output schema, the description adequately specifies what is returned. However, it could mention if there are any limitations or if the response is paginated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the single parameter recordingId. The description does not elaborate on the parameter's format or expected values, leaving the agent to infer from the name alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb 'Get' and resource 'recording', and specifies what is included (tracks, files, transcription details). This distinguishes it from sibling tools like delete_recording or list_recordings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 like list_recordings or download_recording. The description does not mention context or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_timeline_exportARead-onlyIdempotent
Get timeline export status. Poll until done or failed.
| Name | Required | Description | Default |
|---|---|---|---|
| timelineId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint and idempotentHint, so safety is clear. The description adds the polling behavior, which is valuable context beyond annotations. However, it does not disclose details like rate limits or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with only two short sentences, each earning its place. The purpose is front-loaded, making it easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and lack of output schema, the description covers the basic action but omits expected response fields (e.g., what 'done' or 'failed' looks like). This information is critical for a polling tool but is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the description provides no additional meaning for the single required parameter 'timelineId'. The agent must rely on the parameter name alone, which is insufficient for unambiguous usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get timeline export status') and indicates polling behavior ('Poll until done or failed'). However, it does not explicitly differentiate from similar sibling tools like 'get_export', though the 'timeline' prefix provides some distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description hints at usage (polling) but does not specify when to use versus alternatives (e.g., create_timeline_export to initiate the export). No exclusions or context for when not to use are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_webinar_registrantsBRead-onlyIdempotent
List webinar registrants with cursor pagination, filtering, and sorting.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | ||
| limit | No | ||
| order | No | ||
| cursor | No | ||
| search | No | ||
| eventId | Yes | ||
| approved | No | ||
| participated | No | ||
| updated_after | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint. The description adds value by mentioning cursor pagination, filtering, and sorting features, but does not disclose behavior like rate limits, response format, or edge cases. With annotation coverage, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with the main action, and avoids redundancy. However, it could briefly explain key parameters without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 9 parameters, no output schema, and minimal annotations, the description is insufficient for an agent to use the tool correctly. It omits details on filtering fields, sort options, pagination mechanics, and return format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 only vaguely mentions 'cursor pagination, filtering, sorting' without explaining individual parameters (e.g., sort enum values, limit range, cursor usage). This provides minimal additional meaning over the schema structure.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb 'list', the resource 'webinar registrants', and key features (cursor pagination, filtering, sorting). It distinguishes from sibling tools like create_webinar_registrant (creation) and list_recordings (different resource).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied (listing registrants), but no explicit guidance on when to use vs alternatives, no exclusions, and no mention of prerequisites or context. The sibling list_recordings suggests different resources, but the description doesn't clarify.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_editsCRead-onlyIdempotent
List Riverside edits (clips) with optional filters.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| end_date | No | ||
| studioId | No | ||
| projectId | No | ||
| start_date | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint. The description adds the context of optional filters but does not detail pagination, ordering, limits, or other behavioral traits beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, which is concise but lacks structure or detail. It is not verbose, but it does not maximize the use of space to convey information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 optional parameters and no output schema, the description is minimal. It does not explain how to use filters effectively, pagination behavior, or what fields the response contains, leaving important gaps for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%; all 5 parameters lack descriptions. The description only says 'optional filters' without explaining individual parameters (e.g., page, date range, studioId). It fails to compensate for the missing parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'List Riverside edits (clips) with optional filters,' clearly identifying the resource and action. It distinguishes from sibling tools like list_exports and list_recordings by specifying 'edits'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. There is no mention of when not to use it or suggestions for other tools (e.g., for non-filtered lists or specific edit types).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_exportsCRead-onlyIdempotent
List exported Riverside media with optional filters.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| end_date | No | ||
| studioId | No | ||
| projectId | No | ||
| start_date | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint and idempotentHint. The description adds only 'with optional filters' but doesn't disclose pagination behavior, default sorting, or response format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise (one sentence) but lacks substance. It is front-loaded appropriately but doesn't add enough value to warrant the conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a listing tool with 5 optional parameters and no output schema, the description is insufficient. It does not mention available filters, outcomes, or usage context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 merely says 'optional filters' without explaining any parameter (page, dates, IDs), providing no meaningful addition over the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 'exported Riverside media', and mentions optional filters. It distinguishes from siblings like get_export (single) and delete_export. However, it lacks specificity about what constitutes 'media'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 like list_recordings or get_export. No exclusions or conditions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_recordingsCRead-onlyIdempotent
List Riverside recordings with optional workspace, date, and page filters.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| end_date | No | ||
| studioId | No | ||
| projectId | No | ||
| start_date | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint and idempotentHint, so the safety profile is clear. The description adds no behavioral details beyond that, such as pagination behavior or data freshness.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence is very concise and front-loaded, but lacks structure such as bullet points or explicit ordering of information. Still, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and description does not explain return format, pagination behavior, or any limitations. For a tool with 5 optional parameters and no output schema, more completeness is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description must compensate. It mentions optional workspace, date, and page filters, which loosely map to fields, but does not explain specific formats (e.g., date format) or how filters combine.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists recordings and mentions filters (workspace, date, page). However, it does not differentiate from sibling tools like list_exports or get_recording.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 (e.g., list_exports, get_recording). The description does not provide context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_workspaceARead-onlyIdempotent
List productions, studios, and projects in the Riverside workspace.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, indicating safe and repeatable execution. The description adds no additional behavioral context, such as return structure, pagination, or limitations. For a tool with rich annotations, the description should still provide some behavioral detail beyond safety.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence of 8 words, front-loaded with the verb 'List'. Every word is essential; no redundancy or waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple listing tool with no parameters and no output schema, the description adequately states what is listed. However, it lacks details about return format (e.g., array of objects) or any scope limitations, which would help an agent understand the full behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so schema coverage is effectively 100%. Per calibration, baseline is 4 when no parameters exist. The description does not need to add parameter meaning, and it doesn't.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'List' and explicitly names three resource types ('productions', 'studios', 'projects') within the workspace. It clearly distinguishes from sibling tools like list_edits and list_exports that list different entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 (e.g., list_edits, list_recordings). There is no mention of prerequisites, filtering, or context that would help an agent decide.
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.
16 tool updates
v1.0.0- First observed
create_timeline_export - First observed
create_webinar_registrant - First observed
delete_export - First observed
delete_recording - First observed
download_export - First observed
download_file - First observed
download_timeline - First observed
download_transcription - First observed
get_export - First observed
get_recording - First observed
get_timeline_export - First observed
get_webinar_registrants - First observed
list_edits - First observed
list_exports - First observed
list_recordings - First observed
list_workspace
TDQS
Each tool targets a distinct resource or action. Download tools are differentiated by target (export, track file, timeline zip, transcription). CRUD operations for recordings, exports, timelines, and webinars are clearly separated.
All tool names follow a consistent verb_noun pattern in snake_case (e.g., create_timeline_export, delete_recording, list_recordings). There are no mixed conventions or ambiguous verbs.
With 16 tools, the server covers a broad but well-scoped set of operations for managing Riverside media, exports, timelines, webinars, and workspace. Each tool serves a clear purpose and the count feels appropriate for the domain.
The tool surface covers core workflows: CRUD for recordings, exports, and timelines, plus webinar registration and workspace listing. Minor gaps exist (e.g., no update for recordings/exports, no create for edits), but they don't hinder primary use cases.
Maintenance
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
MCP server for RiverScript, an AI transcription platform - fetches transcripts shared via a link.
MCP server that lets AI assistants use all OneSchema features exposed via the public API.
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
An MCP server that provides an API to LLMs to manage their JumpCloud resources.
Related MCP Servers
- FlicenseCqualityDmaintenanceMCP server enabling interaction with Telnyx telephony, messaging, and AI assistant APIs through natural language.46-
- AlicenseNot gradedqualityBmaintenanceMCP server for storing, managing, and analyzing IETF vCon (Virtual Conversation) data with AI assistants.3554MIT
- FlicenseNot gradedqualityCmaintenanceMCP server for the Runn API, enabling resource management and reporting through natural language.-
- AlicenseNot gradedqualityBmaintenanceMCP server for GovTech's Transcribe speech-to-text service, enabling audio upload, batch transcription, summaries, minutes, sections, notes, and transcript Q&A.GPL 3.0
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/edpreble/riverside-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server