OBS MCP
Provides tools for controlling and automating OBS Studio, including scene and source management, audio control, recording/streaming, transitions, filters, media playback, and diagnostics via OBS WebSocket.
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., "@OBS MCPStart recording and switch to the Coding scene"
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.
OBS MCP — AI Broadcast Control & Automation for OBS Studio
An MCP (Model Context Protocol) server that turns an AI assistant into an AI broadcast operator for OBS Studio. Describe what you want in natural language — the server handles scenes, sources, audio, recording, streaming, transitions, filters, media playback, diagnostics and multi-step workflows over the OBS WebSocket 5.x protocol.
AI Assistant (Claude, opencode, Cursor, ...)
│ MCP (stdio / sse / streamable-http)
▼
OBS MCP Server
┌─────────────────────────────┐
│ Control / Monitoring │
│ Diagnostics / Automation │
│ Safety layer (confirmation) │
└──────────────┬──────────────┘
│ OBS WebSocket (default port 4455)
▼
OBS Studio
(obs-websocket)89 tools, 107 tests, no OBS required to run the test suite.
Table of contents
Related MCP server: obs-mcp-server
What you can do
Connection & status
get_obs_status · get_obs_stats · obs_help
Scene management
list_scenes · get_current_scene · switch_scene · create_scene ·
rename_scene · delete_scene · duplicate_scene ·
get_scene_sources · add_source_to_scene · remove_source_from_scene
Source (input) management
list_sources · get_source · get_source_available_kinds ·
create_source · update_source · delete_source · duplicate_source ·
show_source · hide_source · set_source_visibility_in_all_scenes
Positioning & layout
get_source_transform · set_source_transform (move / scale / rotate /
crop) · set_source_index (z-order)
Transitions & studio mode
get_transitions · set_scene_transition · set_transition_duration ·
get_studio_mode_status · set_studio_mode · set_preview_scene ·
trigger_transition
Audio
list_audio_sources · get_audio_status · get_volume · set_volume ·
mute_source · unmute_source · set_audio_monitor ·
set_audio_sync_offset · set_audio_track
Filters
list_filters · add_filter · remove_filter · get_filter_settings ·
set_filter_settings · reorder_filters · toggle_filter
Recording & replay buffer
get_recording_status · start_recording · stop_recording ·
pause_recording · resume_recording · get_record_directory ·
set_record_directory · get_replay_buffer_status · start_replay_buffer
· stop_replay_buffer · save_replay_buffer
Streaming
get_stream_status · start_stream · stop_stream · get_stream_health ·
get_stream_service_settings · set_stream_settings ·
get_output_settings · set_output_settings
Media & VLC playback
media_control (play / pause / stop / restart / next / previous) ·
get_media_time · set_media_time
Hotkeys & configuration
get_hotkey_list · trigger_hotkey · get_video_settings ·
set_video_settings · list_profiles · set_current_profile ·
create_profile · list_scene_collections ·
set_current_scene_collection · create_scene_collection
Diagnostics
diagnose_obs (full health check) · diagnose_stream ·
diagnose_recording · diagnose_audio
Automation workflows
prepare_recording · prepare_stream · start_recording_session ·
end_session
Requirements
Python 3.10+
OBS Studio (any recent version — 28+; tested on 32.x) with the built-in WebSocket server enabled
One of these AI assistants (any MCP client works):
Claude Desktop
Cursor
Any MCP-capable client
Setup OBS (do this first)
Install OBS Studio from obsproject.com.
Enable the WebSocket server:
OBS menu: Tools → WebSocket Server Settings…
Check Enable WebSocket server
Note the Server Port (default
4455)Check Require authentication and set a password — the server refuses to connect without credentials for security reasons. Save it; you will need it in the next step.
Prepare your scenes and sources (optional but recommended):
Create scenes (e.g.
Intro,Coding,BrB) via Scene dock or+button in the Sources dock.Add sources (webcam, display capture, audio, media) and arrange them.
If you plan to use the automation workflows, decide which scene is the "recording scene" and which is the "stream scene".
Leave OBS running while you use the AI assistant. The server connects lazily and reconnects automatically if OBS restarts.
(Optional) To verify everything works before wiring the AI assistant, run the included demo client — see Testing.
Installation
git clone <this-repo> && cd obs-mcp
python3 -m venv .venv
source .venv/bin/activate
pip install -e .This installs the obs-mcp command into the virtual environment
(.venv/bin/obs-mcp). All examples below assume the venv is active or use
the full path .venv/bin/obs-mcp.
Configuration
Copy the example file and fill in your OBS WebSocket password:
cp .env.example .env
# edit .env, set OBS_PASSWORD to the password you configured in OBSThe server reads the .env file in the project directory, plus any
OBS_* environment variables you export (environment variables win).
Variable | Default | Description |
|
| OBS WebSocket host |
|
| OBS WebSocket port (must match Tools → WebSocket Server Settings) |
| (empty) | WebSocket auth password — required when OBS requires authentication |
|
| Gate high-risk ops (stream start/stop, deletes) behind |
|
| Gate medium-risk ops (audio, recording) behind |
|
| Seconds to wait for a connection attempt |
| (empty) | Scene used by |
| (empty) | Scene used by |
|
| Logging verbosity: |
Security note
OBS_PASSWORD is the same credential that grants full control of your OBS
instance (start streams, delete scenes). Never commit it to version control
(.env is git-ignored), and use a strong password if your machine is
network-exposed.
Connecting an AI assistant (MCP client)
opencode
Add a mcp entry to opencode.json (usually ~/.config/opencode/opencode.json):
{
"mcp": {
"obs-mcp": {
"type": "local",
"command": [
"/path/to/obs-mcp/.venv/bin/obs-mcp"
],
"enabled": true,
"environment": {
"OBS_HOST": "localhost",
"OBS_PORT": "4455",
"OBS_PASSWORD": "your-obs-websocket-password"
}
}
}
}Restart opencode, then ask it things like "check OBS status".
Claude Desktop
Add to claude_desktop_config.json (Claude → Settings → Developer):
{
"mcpServers": {
"obs-mcp": {
"command": "/path/to/obs-mcp/.venv/bin/obs-mcp",
"args": [],
"env": {
"OBS_HOST": "localhost",
"OBS_PORT": "4455",
"OBS_PASSWORD": "your-obs-websocket-password"
}
}
}
}Other clients (Cursor, VS Code, generic)
Point the client at the stdio binary. If your client only supports HTTP
servers, run the server with --transport sse or --transport streamable-http
and give it the URL of the running server.
Running the server
The server is normally launched by your MCP client, but you can also run it standalone to check it starts cleanly:
obs-mcp # stdio transport (default, what MCP clients use)
obs-mcp --transport sse # SSE HTTP transport
obs-mcp --transport streamable-http
python -m server.mcp_server # equivalent to obs-mcpA successful stdio start prints nothing but the MCP handshake — clients
usually show the server as connected. You can verify OBS connectivity by
calling get_obs_status from your assistant, or by running the demo client
(needs OBS running):
python examples/demo_client.pySafety model
Operations are classified by risk in server/safety/permissions.py:
Level | Examples | Default policy |
Low | status, lists, | runs automatically |
Medium | volume/mute, create/rename scene, source settings, recording | runs automatically (can be gated via |
High | start/stop stream, delete scene/source, | requires |
High-risk tools return confirmation_required unless the caller passes
confirm=True — i.e. the AI asks the human first, then proceeds only with
explicit confirmation.
Example session
User: Check OBS.
AI: OBS is connected. Current scene: Coding. Microphone: Active. Webcam: Active. Recording: OFF. Streaming: OFF.
User: Add a camera in the bottom-right corner of Scene 2 with a full-screen background.
AI: creates a
Backgroundcolor source (1920×1080) and the webcam source, then positions the camera at the bottom-right usingset_source_transform.User: Prepare my coding recording.
AI: calls
prepare_recording, reports the setup summary.User: Everything looks good. Start recording.
AI: calls
start_recording_sessionwithconfirm=Trueafter asking, confirms, and reports the recording is live.User: Stop recording and give me a summary.
AI: calls
end_session, returns duration and the saved file path.
Testing
pip install -e ".[dev]"
pytestRun the tests from the project root. The suite (107 tests) runs against an in-memory fake OBS — no OBS needed — plus one end-to-end test over the real stdio MCP transport.
Project structure
obs-mcp/
├── server/
│ ├── mcp_server.py # MCP wiring, tool registration, entry point
│ ├── obs_client.py # OBS WebSocket connection, auth, reconnect, helpers
│ ├── config.py # OBS_* environment configuration
│ ├── tools/ # one module per feature area
│ │ ├── scenes.py sources.py audio.py
│ │ ├── recording.py streaming.py transitions helpers
│ │ ├── media.py filters.py config.py
│ │ ├── diagnostics.py automation.py
│ ├── safety/permissions.py # risk classification + confirmation policy
│ └── models/responses.py # structured tool responses
├── tests/ # pytest suite with an in-memory fake OBS
├── examples/demo_client.py # stdio demo client
├── pyproject.toml
├── features.txt # full feature checklist
└── .env.exampleTroubleshooting
Problem | Fix |
| OBS not running, or WebSocket server disabled (Tools → WebSocket Server Settings → Enable WebSocket server) |
Authentication failed |
|
Connection refused on a remote machine | Check |
Tools return | The operation is high-risk — pass |
| Keys are snake_case ( |
Media source won't play |
|
Assistant can't find the tools after adding the server | Restart the MCP client so it re-reads the config |
Tests fail when run from another directory | Always run |
Available Tools
89 toolsadd_filterAdd filterB
Add a filter to a source, e.g. chroma_key_v3, noise_suppress_v2, gain_filter, color_filter. Optionally pass settings.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | ||
| filter_kind | Yes | ||
| filter_name | Yes | ||
| source_name | Yes | ||
| filter_settings | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only mentions 'Optionally pass settings' but does not explain the confirm parameter, potential side effects, prerequisites (e.g., source must exist), or whether adding a filter is reversible. This is a thin disclosure for a mutation operation.
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 filler. It is concise and to the point, but it sacrifices critical parameter and behavioral details. It earns its place but could be slightly expanded without losing efficiency.
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 5-parameter schema with no inline descriptions, the description is incomplete. It does not explain required parameters or the confirm field, nor does it mention any prerequisites or error scenarios. The presence of an output schema is not enough to compensate for these missing operational details.
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 by explaining parameters. It covers source_name implicitly ('to a source') and filter_settings ('optionally pass settings'), but it does not explain the difference between filter_name and filter_kind, the meaning of confirm, or what the filter_settings object should contain. Significant gaps remain.
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: 'Add a filter to a source' and provides concrete examples like chroma_key_v3 and noise_suppress_v2. It is specific and distinguishes from sibling tools such as remove_filter, toggle_filter, and set_filter_settings.
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 implies when to use the tool—whenever you need to add a filter to a source—but it provides no explicit alternatives or exclusions. It doesn't mention when to prefer this tool over other filter-related operations, so usage guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_source_to_sceneAdd source to sceneB
Add an existing source to a scene (as a new scene item).
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | ||
| enabled | No | ||
| scene_name | Yes | ||
| source_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavior. It only says 'Add', which implies mutation but does not describe side effects, whether the source must already exist, if duplicate additions are allowed, what happens on failure, or how the 'confirm' and 'enabled' parameters affect execution. This is a significant transparency gap for a mutating tool.
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, front-loaded with the action and resource. It contains no fluff, but it is perhaps too terse given the missing parameter and behavioral details. It earns its place but does not use the available space to improve clarity.
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 has 4 parameters, no annotations, and an output schema that is not described, the description is incomplete. It does not explain the optional parameters (confirm, enabled), the prerequisites (source must exist), or the outcome of adding a source. Although an output schema exists, it doesn't make up for the lack of behavioral and parameter 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 with parameter explanations. It does not. The schema lists four parameters (source_name, scene_name, confirm, enabled) with no descriptions, and the tool description adds nothing about their meaning or constraints. Even the basic mapping of 'source' and 'scene' to parameter names is trivial and does not clarify behavior.
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 ('Add'), the resource ('source'), and the target ('scene'), with the clarifying phrase 'existing source' and 'as a new scene item'. This distinguishes it from sibling tools like create_source or remove_source_from_scene.
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 by the phrase 'existing source' — it should be used when the source already exists and you want to place it in a scene. However, it does not explicitly state when to prefer this tool over alternatives, nor does it mention prerequisites or exclusions. Guidance is limited to what is inferred from the wording.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_profileCreate profileB
Create a new OBS profile. Medium risk.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | ||
| profile_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. It only says 'Medium risk,' which hints at potential side effects but does not explain what they are—e.g., whether creating a profile with an existing name overwrites it, whether the confirm parameter is required for that, or what happens if the operation fails. This is insufficient for safe usage.
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 short—two sentences with no filler. It efficiently conveys the core purpose and a risk level. Every word contributes, and it is front-loaded with the action.
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?
Despite having an output schema, the tool has no annotations and no parameter descriptions. The description does not cover the confirm parameter's role, overwrite behavior, or any prerequisites. The 'Medium risk' note is a start, but for a mutation tool with a required confirm-flag pattern likely present, it lacks necessary 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?
With 0% schema description coverage, the description must explain the parameters. It does not mention profile_name or confirm at all. While 'profile_name' is self-explanatory, 'confirm' is unclear without explanation—does it confirm overwriting? The 'Medium risk' hint indirectly relates but does not define parameter behavior.
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 a specific action ('Create') and resource ('a new OBS profile'), which distinguishes it from sibling tools like list_profiles and set_current_profile. The phrase 'OBS profile' is explicit and unambiguous.
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 usage context is implied: this tool is for creating a new profile, not for listing or switching profiles. However, there is no explicit mention of when to use it versus alternatives, such as checking if a profile already exists or using set_current_profile. The 'Medium risk' tag gives a small hint but no clear when-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_sceneCreate sceneB
Create a new empty scene.
| Name | Required | Description | Default |
|---|---|---|---|
| scene_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool creates an 'empty' scene, which is a mild behavioral trait, but it does not mention what happens if the scene name already exists, whether the new scene becomes the current scene, or any other side effects. This is a significant gap for a mutation tool.
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 zero waste. It immediately states the purpose without any filler, making it an appropriately sized definition for a tool of this simplicity.
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?
While the tool is simple and an output schema exists, the description leaves out important contextual details such as error behavior (duplicate names), side effects (whether the scene is auto-activated), and the typical workflow of creating a scene before populating it with sources. Given the availability of sibling tools like duplicate_scene, more guidance would be expected.
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 one required parameter, scene_name, and the schema description coverage is 0%. The description adds no meaning beyond the parameter's title, which is already present in the schema. For such a simple parameter, the lack of explanation may be acceptable, but the description does not compensate for the low schema coverage as 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 ('Create') and the resource ('a new empty scene'), which distinguishes it from sibling tools like delete_scene, rename_scene, and duplicate_scene. The word 'empty' adds a useful qualifier that implies a scene with no sources.
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 about when to use this tool versus alternatives like duplicate_scene or switch_scene. The description does not mention prerequisites, such as whether creating a scene is required before adding sources, nor does it explain exclusions (e.g., when a scene name already exists).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_scene_collectionCreate scene collectionB
Create a new OBS scene collection. Medium risk.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | ||
| collection_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavioral details. It only adds 'Medium risk', which is vague and does not explain what the risk entails, whether the new collection becomes active, or if it requires OBS to be running. The behavior after creation is undisclosed, such as potential switching or overwriting.
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 with two short statements. It front-loads the purpose and does not waste words, though 'Medium risk' is somewhat vague but still brief.
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?
The tool is a mutation (create) with no annotations and a minimal description. It lacks context about the effect on the current OBS session, whether the new collection is auto-selected, or how it relates to list_scene_collections. The output schema exists but the description does not indicate what to expect on success or error.
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 does not mention the parameters 'collection_name' or 'confirm' at all. While the schema titles give hints, 'confirm' with default false is ambiguous, and the description adds no clarification.
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: 'Create a new OBS scene collection.' It uses the specific verb 'Create' and the resource 'OBS scene collection', which distinguishes it from sibling tools like create_scene or list_scene_collections.
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 usage guidance. It does not state when to use this tool versus alternatives like set_current_scene_collection or create_scene, nor mention prerequisites or exclusions. The only clue is the verb 'create', which implies the intended use but without explicit context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_sourceCreate sourceC
Create a new source (input) and add it to a scene.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | ||
| confirm | No | ||
| enabled | No | ||
| scene_name | Yes | ||
| source_name | Yes | ||
| source_settings | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only states the basic creation action and omits important details such as whether confirmation is needed, what happens on duplicates, or any other side effects of this mutation tool.
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 and to the point, but it is under-specified for a tool with this many parameters and no other documentation. It is efficient but incomplete.
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 complexity (6 parameters, no schema descriptions, no annotations), the description is far too minimal. It fails to explain parameter usage or behavioral nuances, making it insufficient for correct 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 description coverage is 0%, and the description explains none of the six parameters. Terms like 'kind' and 'source_settings' are not clarified, so the description adds no semantic value beyond the bare 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 tool creates a new source (input) and adds it to a scene, using a specific verb and resource. It distinguishes from siblings by emphasizing 'new' source, though it doesn't explicitly name alternatives like add_source_to_scene.
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. The description simply states what it does without any context, exclusions, or alternative references.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_sceneDelete sceneA
Permanently remove a scene. High-impact: requires confirmation.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | ||
| scene_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that the action is permanent ('Permanently remove') and high-impact requiring confirmation. This is useful behavioral context, though it doesn't specify how confirmation is conveyed (e.g., the confirm parameter) or potential side effects like removal of associated sources.
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, consisting of two short sentences that immediately convey the core action and caution. No filler or redundant information; every word contributes 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?
Given that an output schema exists, the description doesn't need to detail return values. It covers the essential aspects: permanent deletion and the need for confirmation. However, it could be more complete by explicitly stating that the confirm parameter must be set to true, and by noting any prerequisites or side effects. Overall, it is adequate for a simple destructive tool.
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, so the description must compensate. It adds meaning to the confirm parameter through 'requires confirmation,' implying that confirmation must be explicitly given. The scene_name parameter is self-explanatory from its name and the description's reference to 'a scene,' but the description doesn't elaborate further on parameter formatting or requirements beyond that.
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's function with a specific verb and resource: 'Permanently remove a scene.' This distinguishes it from sibling tools like create_scene, rename_scene, or duplicate_scene, and even from delete_source by specifying 'scene'.
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 clear usage context by labeling the operation as 'High-impact: requires confirmation,' which signals that the agent should obtain user consent before invocation. It does not explicitly name when not to use or mention alternatives, but for a straightforward destructive operation, this guidance is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_sourceDelete sourceA
Permanently remove a source. High-impact: requires confirmation.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | ||
| source_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the permanent, destructive nature ('Permanently remove'), the risk ('High-impact'), and the confirmation requirement. This goes beyond the schema by adding crucial safety context, though it doesn't mention side effects like removal from all scenes.
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 short sentences deliver all essential information in a front-loaded manner. Every word earns its place: 'Permanently remove a source. High-impact: requires confirmation.'
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?
The description is sufficient for a simple delete tool, but it lacks explicit differentiation from remove_source_from_scene and does not clarify how confirmation is provided (e.g., setting confirm=true). The output schema covers return values, but the description could be more complete about the tool's scope and execution requirements.
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%, and the description does not explain either parameter. It only hints at confirmation without naming the 'confirm' parameter or its required value (true) to execute. The 'source_name' parameter is obvious, but the description adds minimal semantic value 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 tool's function: 'Permanently remove a source.' The verb 'remove' combined with 'permanently' distinguishes it from sibling tools like hide_source or remove_source_from_scene, making the purpose unambiguous.
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 phrase 'High-impact: requires confirmation' provides clear context that this is a destructive action needing user confirmation. It does not explicitly name alternatives or exclusion criteria, which prevents a 5, but the cautionary context is helpful.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
diagnose_audioDiagnose audioA
Diagnose audio problems: muted sources, missing devices.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It reveals the tool checks for muted sources and missing devices, strongly implying a read-only diagnostic nature. Yet it doesn't explicitly state that no state is modified, nor does it describe any prerequisites or return behavior beyond the 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?
The description is a single, efficient sentence that starts with the verb 'diagnose' and includes two specific examples of what it addresses. Every word contributes, with no redundancy or filler.
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 zero-parameter diagnostic tool with an output schema present, the description adequately scopes the tool's purpose. It could be more explicit about the tool being read-only and how the results are presented, but such details are partially covered by the output schema and sibling context, making it sufficient.
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 complete at 100%. The description doesn't need to explain parameter meanings; the baseline of 4 applies because there is nothing to clarify.
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 diagnoses audio problems, specifically citing muted sources and missing devices. This distinguishes it from broader diagnostics like diagnose_obs and from audio control tools like mute_source or set_volume, making its purpose unmistakable.
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 implies usage when audio issues are suspected, and the cited examples give concrete triggers. However, it doesn't explicitly compare with sibling tools like list_audio_sources or get_audio_status, so an agent might need to infer when to prefer this diagnostic over direct audio queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
diagnose_obsDiagnose OBSA
Full OBS health check: connection, scene, recording, streaming, FPS, CPU, memory, dropped frames, audio. Returns a structured report.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses what the tool checks and that it returns a structured report, which is useful. However, it does not explicitly state that it is read-only, mention prerequisites like OBS running, or describe any potential side effects, leaving some behavioral aspects undisclosed.
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 two concise sentences, front-loaded with the key purpose ('Full OBS health check') followed by a scannable list of checked items. Every word adds value, with no redundancy or filler.
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 zero-parameter tool with an output schema, the description covers the scope well by listing the health check areas and mentioning the structured report. It could be more complete by noting prerequisites (e.g., OBS must be running) or stating that it is a read-only diagnostic, but these are minor gaps given the tool's simplicity.
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 the baseline score is 4. The description does not need to explain parameter semantics since there are none, and the schema already confirms an empty parameter set.
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 this is a 'Full OBS health check' and enumerates specific areas it covers (connection, scene, recording, streaming, FPS, CPU, memory, dropped frames, audio). This distinguishes it from sibling tools like diagnose_stream or diagnose_recording, which focus on narrower aspects.
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 clear context for use as an overall health check, and the word 'Full' implies it is the comprehensive option. However, it does not explicitly mention alternative tools for specific issues, so it falls short of fully explicit guidance with exclusions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
diagnose_recordingDiagnose recordingA
Diagnose recording problems: output state, disk, FPS.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It lists diagnostic areas but fails to disclose whether the operation is read-only, what side effects may occur, or what the return structure looks like beyond the schema. Minimal behavioral context beyond the name.
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 that states the purpose and scope without unnecessary words. Every element 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?
With zero parameters and an existing output schema, the description is largely sufficient for selection. The ambiguity of 'state' and lack of elaboration on what the diagnosis covers are minor gaps, but the schema can fill return details.
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 zero parameters, so the baseline is 4. No parameter documentation is needed, and the description does not introduce any conflicting or missing parameter expectations.
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 the specific verb 'diagnose' with the resource 'recording' and enumerates focus areas (output state, disk, FPS), clearly distinguishing it from sibling tools like diagnose_stream and diagnose_audio.
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 intended use case (recording problems) is implied, but no explicit alternatives or exclusions are provided. It does not contrast against diagnose_obs or get_recording_status, leaving the agent to infer when this tool is preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
diagnose_streamDiagnose streamA
Diagnose streaming problems: drops, congestion, encoder.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only mentions 'Diagnose' but does not explain whether the tool is read-only, requires specific permissions, or produces a summary report. The output schema exists but the description still lacks transparency about side effects or operational impact.
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 that is front-loaded with the key action and target. It contains no redundant words and effectively communicates the tool's purpose.
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?
Despite having an output schema and no parameters, the description is insufficient to distinguish this tool from closely related siblings like get_stream_health, which also relates to streaming status. It lacks guidance on expected output format or how to interpret results, making it contextually incomplete.
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 the description does not need to add parameter meaning. Per the baseline for no parameters, a score of 4 is appropriate since the schema coverage is trivially 100% and there is nothing to clarify.
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 ('Diagnose') and the resource ('streaming problems'), with specific focus areas (drops, congestion, encoder). It distinguishes itself from sibling tools like diagnose_obs, diagnose_recording, and diagnose_audio, which target different aspects of the OBS ecosystem.
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 implies a clear use case: diagnosing streaming issues such as drops, congestion, or encoder problems. It does not explicitly state exclusions or alternatives, but the focus is sufficiently clear from the description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
duplicate_sceneDuplicate sceneA
Duplicate a scene and all of its sources into a new scene (optionally with a custom name).
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | ||
| new_name | No | ||
| scene_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It reveals that sources are also duplicated and that a custom name is optional, adding value over the schema. However, it omits the 'confirm' parameter's purpose and any side effects, leaving gaps in 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, front-loaded sentence with no wasted words. It efficiently states the core functionality and a key option, earning a top score for 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?
The description covers the primary function and an optional behavior, but given there are 3 parameters and no annotations, it is incomplete. It misses the confirmation parameter and usage context. The output schema exists, so return values are not needed here, but the description still leaves significant 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 description coverage is 0%, so the description must compensate. It implicitly covers 'scene_name' (the scene to duplicate) and 'new_name' (custom name), but 'confirm' is completely unexplained. The description does not fully document all three 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 tool's action: duplicating a scene and all its sources into a new scene. It distinguishes from sibling 'duplicate_source' by explicitly mentioning scene-level duplication with source copying, and the optional custom name is noted.
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 implies when to use this tool (to duplicate a scene with its sources) but provides no explicit guidance on when not to use it or alternatives like 'create_scene' or 'duplicate_source'. Usage context is inferred rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
duplicate_sourceDuplicate sourceB
Duplicate a source with its settings (optionally into a scene, optionally under a new name).
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | ||
| new_name | No | ||
| scene_name | No | ||
| source_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavioral traits, but it only mentions that settings are preserved and that scene/new name are optional. It does not explain what happens on name conflicts, whether the original is affected, or what the confirm flag does. These are significant gaps for a duplication tool.
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 sentence that front-loads the verb 'Duplicate' and includes all essential optionality in a compact, well-structured form. Every word contributes value, and there is no redundant 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?
Even though there is an output schema, the description fails to address critical runtime behaviors such as the role of confirm, behavior when scene_name refers to a nonexistent scene, and potential name conflicts. Given the four parameters and absence of annotations, this is insufficient for reliable tool 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?
The schema has 0% description coverage, so the description must compensate. It clarifies that new_name and scene_name are optional via 'optionally under a new name' and 'optionally into a scene', but it does not explain the confirm parameter or the meaning of source_name beyond the tool name. This leaves half the parameters semantically unexplained.
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 'Duplicate' and the object 'a source with its settings', and explicitly mentions optional scene and new name, which distinguishes it from sibling tools like duplicate_scene and create_source. It is specific and unambiguous.
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 alternatives, no prerequisites, and no mention of when the confirm parameter is needed. It simply states the action without conditional advice, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
end_sessionEnd sessionA
Stop recording and/or streaming after confirmation and return a final session summary with duration and statistics.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | ||
| stop_recording | No | ||
| stop_streaming | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It mentions confirmation before stopping and the return of a summary, which is helpful. However, it does not explain what happens if confirmation is not provided, whether the session can be resumed, or any side effects (e.g., unsaved data). This is adequate but not rich.
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 that leads with the primary action. Every part is necessary: the action, the confirmation gate, and the output summary. No redundancy or filler.
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 moderate complexity, the output schema exists (so return values need not be described), and the description covers the core behavior and parameter roles. It falls slightly short of fully complete because it does not explicitly address alternatives or the implications of the confirmation default, but overall it is sufficient for an agent to understand and invoke the tool.
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 add meaning to the parameters. It does so by linking 'recording and/or streaming' to the stop_recording and stop_streaming flags, and 'after confirmation' to the confirm parameter. This provides context beyond the bare parameter names, though it does not explain defaults or the exact consequences of each combination.
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's purpose: to stop recording and/or streaming after confirmation and return a session summary. This distinguishes it from sibling tools like 'stop_recording' and 'stop_stream' by emphasizing the session-level scope and the final summary.
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 implies usage context (ending a recording/streaming session with confirmation and a summary) but does not explicitly compare against alternatives like 'stop_recording' or 'stop_stream'. It lacks clear when-to-use vs. when-not-to-use guidance, especially since siblings exist for individual stop actions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_audio_statusAudio statusA
Overall audio status: mute/volume of all audio-capable sources.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It does state the scope and content of the response, but it does not explicitly confirm that the tool is read-only, describe return format, or mention potential side effects. Some transparency is provided, but not fully.
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 that directly conveys the core purpose. No filler or redundant information. It is appropriately sized for a parameterless status tool.
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 status retrieval with no parameters and an output schema available, the description is adequate. It covers the scope and content, but lacks explicit contextual guidance on when to use it. Given its low complexity, the description is reasonably complete.
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 takes zero parameters, yielding a baseline of 4. There are no parameter semantics to clarify, so the maximum baseline is appropriate.
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 resource ('audio status') and scope ('all audio-capable sources'), and enumerates specific fields (mute/volume). Although it omits an explicit verb, the tool name 'get' supplies the action. It differentiates from siblings like get_volume, which targets a specific source.
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 gives no guidance on when to use this tool versus alternatives. It does not mention exclusions or suggest alternatives like list_audio_sources or get_volume. Usage is only implied by the name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_current_sceneGet current sceneA
Return the currently active program scene.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the burden. It clearly indicates a read-only operation via 'Return', but it does not disclose edge cases (e.g., behavior when no scene is active) or explicitly state non-mutating behavior. This is acceptable for a simple getter.
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 direct sentence: 'Return the currently active program scene.' It is appropriately sized, front-loaded, and contains no filler.
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 zero-parameter, read-only tool with an output schema, the description fully captures the tool's purpose. There are no parameters to explain, and return values are covered by the output schema. The description is complete for its simplicity.
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, and the empty input schema fully documents this. Per the baseline for zero-parameter tools, no additional parameter details are needed. The description adds no parameter-specific value, but none is 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 uses the verb 'Return' with the specific resource 'currently active program scene', clearly distinguishing it from sibling tools like list_scenes or switch_scene. It is concise and unambiguous.
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 explicit guidance is provided about when to use this tool versus alternatives like list_scenes, but the phrase 'currently active program scene' implies it should be used for querying the active scene. Usage is inferred rather than clearly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_filter_settingsGet filter settingsA
Get the settings and state of one filter on a source.
| Name | Required | Description | Default |
|---|---|---|---|
| filter_name | Yes | ||
| source_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. 'Get' implies a read-only operation, and 'settings and state' hints at the return content, but the description does not explicitly state that it has no side effects, does not require special permissions, or describe error behavior if the filter/source doesn't exist. It is minimally adequate.
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 that front-loads the action and resource, with no wasted words or redundancy.
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 operation with an output schema present (so return values need not be detailed), the description adequately covers the essential context. It lacks comparison to sibling tools but is otherwise complete for the tool's simplicity.
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% and the description compensates only slightly by indicating that the tool operates on 'one filter on a source,' mapping loosely to the filter_name and source_name parameters. The parameter names themselves are self-explanatory, but no additional meaning, constraints, or examples are provided.
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 the specific verb 'Get' and identifies the resource as 'the settings and state of one filter on a source.' This clearly distinguishes it from sibling tools like list_filters (which lists filters), set_filter_settings (which modifies), and toggle_filter (which toggles state). It is both specific and differentiated.
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 implies its usage by naming the object, but it does not explicitly state when to use this tool versus alternatives such as list_filters for enumerating filters or set_filter_settings for modifying them. No exclusions or prerequisites are mentioned, so guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_hotkey_listList hotkeysA
List all hotkeys defined in OBS.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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. 'List' implies a read-only operation with no side effects, which is helpful, but it does not disclose additional behavioral traits such as response format (though an output schema exists) or potential operational requirements like needing OBS to be running. This 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that directly states the tool's purpose. No unnecessary words or filler, making it easy to parse and understand.
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 list tool with no parameters and an output schema available, the description is fully complete. It specifies the scope ('all hotkeys') and the domain ('OBS'), leaving no ambiguity about the tool's function.
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 the baseline is 4. The description correctly adds no parameter information since none exist, and the input schema is already empty. No gap in parameter understanding.
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 'List all hotkeys defined in OBS' uses a specific verb ('List') and resource ('hotkeys defined in OBS'), clearly distinguishing it from sibling tools like trigger_hotkey which triggers rather than lists.
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 usage context is implied: use this to retrieve the list of hotkeys. However, there is no explicit guidance on when to use versus alternatives, nor any mention of prerequisites or exclusions. The description simply states what it does without providing contextual decision-making information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_media_timeGet media timeA
Get the current playback position and duration of a media source.
| Name | Required | Description | Default |
|---|---|---|---|
| source_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It accurately describes the read-only nature of the operation, but does not provide details such as time units (seconds/milliseconds), behavior when the source is missing, or whether any state is affected. This is a simple getter, so minimal disclosure is acceptable, but more context would improve 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, direct sentence that front-loads the action and outcome. There is no wasted text or redundancy, making it highly concise and well-structured.
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?
The tool is simple with one parameter and an output schema, so the description need not explain return values. However, given the lack of annotations and low schema coverage, the description should provide more context about time units or edge cases to be fully complete. It is adequate but leaves clear 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?
The schema has no descriptions (0% coverage), so the description must compensate. It mentions 'media source,' which hints that source_name identifies the media source, but it does not explicitly map the parameter or add format details. The schema's title 'Source Name' already provides some meaning, and the description adds only marginal context.
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 retrieves the current playback position and duration of a media source. It uses a specific verb ('get') and resource, and distinguishes itself from siblings like set_media_time by focusing on reading rather than modifying.
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 implies usage for reading playback state, and the presence of set_media_time as a sibling clarifies when not to use this tool. However, it does not explicitly name alternatives or state exclusions, so it misses full marks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_obs_statsOBS statisticsA
Raw OBS statistics: CPU, memory, FPS, render/output drops.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of disclosing behavior. It lists the stats returned, which adds value, but does not explicitly state that this is a read-only snapshot operation or whether it affects OBS. The name 'get' strongly implies read-only, but the description could be more explicit.
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 filler. It front-loads the tool's purpose and lists the key metrics efficiently. 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?
The tool is simple with no parameters and an output schema, so the description does not need to explain return values. It clearly lists the included metrics, making it sufficiently complete for a stats retrieval tool. Minor gap: no mention of the snapshot nature or units, but these are likely in the output schema.
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 parameter semantics are trivially covered. The description adds no parameter information, but none is needed. Baseline 4 is appropriate for zero-parameter tools.
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 retrieves 'Raw OBS statistics' and lists specific metrics (CPU, memory, FPS, render/output drops). This is a specific verb+resource combination that distinguishes it from sibling tools like get_obs_status or get_stream_status.
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 implies usage for retrieving raw performance metrics by naming the specific statistics, but it does not explicitly state when to use this tool versus alternatives like get_obs_status. Sibling differentiation is minimal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_obs_statusOBS statusA
Overall OBS status: connection, OBS version, current scene, recording/streaming state and key stats. Example: 'Is OBS connected?'
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It lists what information is returned (connection, version, scene, etc.), but it does not mention potential failure modes (e.g., when OBS is not running), nor explicitly confirm this is a read-only operation. This leaves some gaps for an agent deciding to invoke it.
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 that immediately states the tool's purpose, followed by a helpful example. Every word contributes, and there is no redundancy or filler.
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 (0 parameters) and the existence of an output schema, the description is adequately complete for a status-check tool. It states the core content and provides a usage example. It could be enriched by noting that it serves as a health check before other OBS commands, but this is not essential.
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 zero parameters, and the description correctly reflects that. With no parameters to explain, the baseline score is 4. The description adds no parameter-related information, but none is needed.
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 returns overall OBS status including connection, version, current scene, and recording/streaming state. It uses a specific verb ('status') and resource ('OBS'), and the example clarifies the intent. However, it doesn't explicitly distinguish from the sibling tool 'get_obs_stats', relying on 'Overall' to imply a broader overview.
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 example 'Is OBS connected?' gives a clear use case, implying this tool is for quick connection/status checks. However, it does not explicitly state when to use this tool over alternatives like get_obs_stats, nor does it provide exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_output_settingsGet output settingsA
Get the settings of an OBS output (e.g. adv_stream, adv_file_output).
| Name | Required | Description | Default |
|---|---|---|---|
| output_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description simply restates the function without disclosing behavioral traits such as side effects, error behavior, or requirements. While a getter is likely side-effect free, this is not explicitly confirmed.
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 that front-loads the action and resource, and immediately provides useful examples without any fluff.
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 getter with one parameter and an existing output schema, this description is adequate. It lacks explicit usage guidance, but the examples and output schema cover the key information needed to invoke the tool 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?
The schema provides no description for output_name (0% coverage), but the description compensates with concrete examples (adv_stream, adv_file_output), clarifying the expected values. Though not exhaustive, the examples add meaningful guidance beyond 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 tool retrieves settings for a specific OBS output, with concrete examples of valid outputs (adv_stream, adv_file_output). The verb 'Get' and resource 'settings' distinguish it from sibling tools like set_output_settings.
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 implies usage for reading output settings but does not explicitly state when to use this tool versus alternatives. No mention of set_output_settings or other getters, but the examples provide context for which outputs to target.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_record_directoryGet record directoryA
Get the folder where recordings are saved.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It clearly indicates a read-only operation via the verb 'get' and specifies the resource being retrieved. It does not describe edge cases or return format, but the output schema covers return values, and the behavior is straightforward.
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 that directly states the tool's purpose with no unnecessary information or filler.
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 zero-parameter getter tool with an output schema provided, the description is sufficiently complete. It fully explains what the tool does, and the output schema handles return value details.
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 no parameters, so the baseline is 4. The description does not need to add parameter semantics, and the input schema is complete with 100% coverage.
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') and resource ('the folder where recordings are saved'), making the tool's purpose unambiguous. It clearly distinguishes itself from the sibling tool 'set_record_directory' by focusing on retrieval rather than modification.
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 context is clear for a simple getter tool, but it does not explicitly state when to use this over alternatives or mention the counterpart 'set_record_directory' to change the directory. No exclusions are given, but the usage is inherent in the tool's purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_recording_statusRecording statusA
Get whether OBS is recording, paused, and for how long.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It plainly indicates a read-only operation via 'Get' and discloses the exact data points returned (recording state, paused state, duration). It doesn't discuss explicit side effects, but for a getter, this is sufficient context.
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 that front-loads the verb and provides all necessary information without redundancy. Every word contributes 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?
Given there are no parameters and an output schema exists (as indicated by context signals), the description adequately covers the tool's functionality. It fully explains what the tool does without needing to elaborate on return values or edge cases.
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, and the schema is empty, so the baseline of 4 applies. The description adds no parameter details because none are needed.
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 identifies the resource (OBS recording) and the specific information being retrieved (whether recording, paused, and duration). It uses an explicit verb ('Get') and distinguishes from sibling status tools like get_stream_status and get_replay_buffer_status.
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 implies usage when recording status is needed but provides no explicit when-to-use or when-not-to-use guidance. It does not mention alternatives, though the clarity of the purpose makes the intended use straightforward.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_replay_buffer_statusReplay buffer statusA
Get whether the replay buffer is active or saving.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. The verb 'Get' implies a read-only operation, but the description does not explicitly state that it has no side effects or mention any return format. However, the description does clarify the specific states checked ('active or saving'), adding some behavioral context beyond a generic status query.
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 that front-loads the action ('Get') and clearly states the query subject. Every word earns its place with no redundancy or vague filler.
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 (zero parameters, no nested objects) and the existence of an output schema, the description is sufficiently complete. It names the resource and the specific status values checked, which is enough for an agent to select and invoke the tool correctly. Slightly more context about the replay buffer lifecycle could elevate it, but it is not necessary.
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 and the input schema is empty, so there is nothing for the description to add. With 0 parameters, the baseline is 4, and the description appropriately focuses on the return value rather than 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 tool's purpose with a specific verb ('Get') and resource ('replay buffer status'), and even specifies the exact information returned ('whether the replay buffer is active or saving'). This distinguishes it from sibling action tools like start_replay_buffer, stop_replay_buffer, and save_replay_buffer.
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 alternatives such as get_recording_status or get_stream_status. The name and title imply it is for checking replay buffer status, but there is no explicit context or exclusion of other status tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_scene_sourcesInspect scene sourcesA
List sources (scene items) inside a scene, with visibility.
| Name | Required | Description | Default |
|---|---|---|---|
| scene_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. 'List' implies a read-only operation, and 'with visibility' indicates the output includes visibility status. However, it doesn't state whether hidden sources are included, error behavior if scene_name doesn't exist, or that the tool doesn't modify state. The description adds one useful detail (visibility) but lacks depth for a read operation.
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 sentence of 12 words, front-loads the action ('List sources'), and contains no filler. Every word earns its place, making it highly concise and well-structured.
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 list tool with one parameter and an output schema, the description covers the core purpose and a key output detail (visibility). It doesn't explain error handling or edge cases, but the output schema likely covers return structure. The description is mostly complete given the tool's low complexity, though it could mention what happens if the scene doesn't exist.
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. The only parameter, scene_name, is named clearly and the description links it to the concept of 'inside a scene,' but it doesn't add details like whether the name must be exact or case-sensitive. The parameter name is self-explanatory, so the description's contribution is marginal but not fully compensating for zero schema coverage.
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), the resource (sources/scene items inside a scene), and an additional detail (with visibility). It distinguishes from siblings like list_sources (global list) and get_source (single source) by specifying the scope as a specific scene.
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 implies when to use this tool: when you need to know the source composition of a particular scene and their visibility. It doesn't explicitly name alternatives or exclusions, but the 'inside a scene' scope provides clear context that differentiates it from global source listing. No explicit when-not-to-use guidance, but the purpose is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sourceGet source stateC
Get the settings and visibility state of one source.
| Name | Required | Description | Default |
|---|---|---|---|
| scene_name | No | ||
| source_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full behavioral burden, but it only states 'Get the settings and visibility state of one source.' It does not disclose any side effects, error behavior, permission requirements, or whether the source must exist. This is a significant transparency gap for a tool with no annotation support.
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 sentence with no wasted words, earning a high conciseness score. However, it is slightly under-sized given the need to explain parameters, so it does not reach 5.
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?
Although an output schema exists, the description does not fully cover the input context: scene_name is unexplained, and there is no annotation support. The tool is simple but with 2 parameters and no schema descriptions, the description is incomplete for reliable 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 description coverage is 0%, so the description must compensate. It confirms source_name is the identifier but does not explain the role of scene_name, which is optional. The description adds minimal value beyond the schema, leaving parameter meaning ambiguous.
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 'Get the settings and visibility state of one source' clearly states the verb (Get), resource (settings and visibility state), and scope (one source). This distinguishes it from sibling tools like list_sources (multiple) and get_source_transform (specific to transform).
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 such as get_source_transform or show_source. There is no mention of alternatives, exclusions, or prerequisites, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_source_available_kindsList source kindsA
List all source types (input kinds) that OBS supports.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It implies a read-only operation but does not mention side effects, whether it requires an active OBS connection, or any other behavioral characteristics. The output schema covers return format, but the description adds no extra 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, concise sentence that is front-loaded with the key information. There is no wasted text or redundant phrasing.
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 this is a simple zero-parameter tool with an output schema, the description is largely complete for selection and invocation. However, a small addition about typical use (e.g., before creating a source) would improve completeness, but this is a minor gap.
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 is empty with zero parameters, and the baseline for 0 params is 4. The description does not need to add parameter details, as there are none to describe.
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 a specific verb ('List') and resource ('all source types (input kinds) that OBS supports'), making its purpose unambiguous. It also naturally distinguishes itself from sibling tools like list_sources, which enumerate actual sources rather than kinds/types.
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 alternatives, no prerequisites, and no context for how it fits into a workflow (e.g., during source creation). It is a bare statement of functionality without usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_source_transformGet source transformB
Get the position, scale, rotation and crop of a source in a scene.
| Name | Required | Description | Default |
|---|---|---|---|
| scene_name | Yes | ||
| source_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It clearly states this is a 'get' operation (read-only), and enumerates the transform properties returned. However, it does not disclose potential errors (e.g., nonexistent source/scene) or any units/format details.
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, front-loaded with the verb and object. Every word adds value, with no redundancy or unnecessary detail.
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 getter tool with two self-explanatory parameters and an output schema, the description is adequate but not complete. It lacks usage guidance and behavioral nuances, but the tool's simplicity somewhat compensates.
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 mentions 'source' and 'scene' but does not explain the parameters beyond their names, which are already visible in the schema. No additional meaning or constraints are added.
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 the verb 'Get' and clearly specifies the resource: 'position, scale, rotation and crop of a source in a scene.' This is specific and distinguishes it from sibling tools like set_source_transform or get_source by naming the exact transform properties.
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 alternatives such as get_source or list_sources. There is no mention of use cases, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_stream_healthStream healthA
Check stream health: dropped frames, congestion, reconnects.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of disclosing behavior. It lists the health indicators examined, which gives some transparency, but it does not explicitly state that the operation is read-only, has no side effects, or whether any permissions are required. The term 'Check' implies non-mutation, but this is not made explicit.
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 that front-loads the action and resource while adding specific, relevant details. Every word earns its place, with no fluff or repetition.
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?
The tool is simple (no parameters) and has an output schema, so the description need not explain return values. However, given the large set of sibling tools, a brief note on how this differs from get_stream_status or diagnose_stream would improve completeness. As is, it is adequate for a 0-param health-check tool.
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 the baseline is 4. There is nothing to add beyond the empty schema, and the description correctly focuses on behavior rather than 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 uses a specific verb ('Check') with a clear resource ('stream health') and immediately lists concrete metrics (dropped frames, congestion, reconnects). This distinguishes it from sibling tools like get_stream_status (which reports status) and diagnose_stream (which is a broader diagnostic), making the tool's purpose unmistakable.
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 implies usage for monitoring stream health but does not explicitly state when to use this tool over alternatives like get_stream_status or diagnose_stream. No exclusions or alternative references are provided, leaving the agent to infer the appropriate context from the wording alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_stream_service_settingsStream destinationA
Inspect the stream service type and configured settings.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. The verb 'Inspect' indicates a read-only operation, and the description clarifies that it returns both the stream service type and configured settings. However, it does not mention any error conditions, side effects, or prerequisites beyond what the tool name implies.
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 sentence of eight words, front-loaded with the key action. No filler or redundant content.
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 (no parameters, output schema provided), the description covers the core purpose. However, it lacks explicit usage context or exclusion of competing tools, which would make it more complete.
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 the schema fully covers the input. The description correctly avoids inventing 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 uses a specific verb 'Inspect' and identifies the resource as 'the stream service type and configured settings'. It clearly distinguishes from sibling tools like get_stream_status (status) and set_stream_settings (settings mutation).
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 alternatives such as get_output_settings or get_stream_status. 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.
get_stream_statusStream statusA
Get whether OBS is live, reconnecting, and stream duration.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It clearly indicates a read-only getter operation and specifies the three status fields returned. It does not mention error conditions or prerequisites, but for a simple status query this is largely sufficient.
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 filler. It front-loads the verb 'Get' and immediately lists the specific data points, making it highly scannable.
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?
An output schema is present, so return values are documented elsewhere. The tool is simple with no parameters, and the description sufficiently explains the core purpose, though it could benefit from a brief note on how it differs from get_stream_health.
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 the schema fully covers input needs. The baseline of 4 applies because there is nothing to explain beyond what is already structured.
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 retrieves OBS stream status including 'live', 'reconnecting', and 'duration'—a specific verb and resource. It distinguishes itself from siblings like get_recording_status and get_stream_health by focusing on the stream's live state and duration.
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?
There is no explicit guidance on when to use this tool versus alternatives such as get_obs_status or get_stream_health. The context implies usage when stream-specific status is needed, but no alternatives 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.
get_studio_mode_statusStudio mode statusA
Return whether studio mode is enabled, plus the current preview and program scenes.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. The verb 'Return' clearly signals a read-only operation with no side effects, which is the key behavioral trait for this getter. However, it does not address edge cases like behavior when studio mode is disabled, though an output schema may cover that.
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 that fronts the main action (return status) and lists the specific outputs. No wasted words or redundancy with the title.
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 (zero parameters) and the presence of an output schema that likely documents return fields, the description is complete. It states exactly what the tool returns and does not omit any necessary context for an agent to use it 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?
The tool has zero parameters, so the baseline score is 4. There are no parameter semantics to explain, and the description appropriately focuses on describing the return content rather than 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 uses the specific verb 'Return' and clearly identifies the resource (studio mode status) plus the additional return values (preview and program scenes). This distinguishes it from mutation tools like set_studio_mode and from get_current_scene, making its purpose unmistakable.
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 alternatives such as set_studio_mode or get_current_scene. It simply states what it does without any exclusions, prerequisites, or recommendations, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_transitionsList scene transitionsA
List available scene transitions and the active one.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. The verb 'List' clearly indicates a read-only operation with no side effects, which is transparent enough for a getter. The existing output schema covers return details, so no additional behavioral disclosure is necessary.
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 one concise, front-loaded sentence that states the action and scope directly. Every word contributes to meaning, with no redundant or extraneous content.
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 (zero parameters, output schema present), the description is fully complete. It clearly states what the tool does, and the output schema handles return value details, so there are no 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?
The tool has zero parameters and an empty input schema, so the baseline is 4. The description adds no parameter-specific information, but none is needed since no parameters exist.
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 clearly identifies the resource as 'scene transitions' with an additional detail 'and the active one'. This distinguishes it from related sibling tools like set_scene_transition and trigger_transition, which perform different actions.
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 implies usage when you need to see available transitions or the current active one, but it does not explicitly state when to use this tool versus alternatives. No exclusions or alternatives are mentioned, making guidance minimal but not misleading.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_video_settingsGet video settingsC
Canvas resolution, output resolution and FPS.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description discloses no behavioral traits whatsoever. It does not state that this is a read-only getter, describe the return format, or mention any permissions or side effects. The description fails to carry the burden of behavioral 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 extremely concise and information-dense, but it is a sentence fragment rather than a complete sentence. It effectively captures the key fields in few words, but the lack of grammatical structure makes it less clear than it could be.
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 getter with an output schema, the description lists the expected fields, which is minimally adequate. However, it does not explicitly state the action ('gets') or provide any usage context, making it somewhat incomplete for a tool with no annotations.
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 the schema is empty and there is nothing to explain. The description adds no parameter information, but the baseline of 4 is appropriate for a zero-parameter tool where parameters are not relevant.
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 lists the fields ('Canvas resolution, output resolution and FPS') but lacks a verb or explicit statement of action, relying on the tool name for meaning. It provides specific detail about what settings are included, but does not clearly distinguish from siblings like set_video_settings beyond the name.
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 about when to use this tool versus alternatives such as set_video_settings or get_obs_stats. The description offers no context, prerequisites, or exclusions, leaving the agent to infer usage solely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_volumeGet volumeA
Get the current volume of an audio source (multiplier and dB).
| Name | Required | Description | Default |
|---|---|---|---|
| source_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It states 'current volume' and specifies the return format (multiplier and dB), implying a read-only operation with no side effects. However, it does not disclose potential error conditions (e.g., invalid source name) or further behavioral details.
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 that efficiently conveys the tool's purpose and output format. Every word is necessary, with no redundancy or filler.
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 getter tool with an output schema present, the description adequately covers the core behavior. It does not need to explain return values in detail since the output schema exists. However, it lacks any mention of error handling or edge cases, which is a minor gap for a tool with no annotations.
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 does not explicitly describe the source_name parameter. It only mentions 'audio source' in the context, which provides some implicit meaning, but given the low coverage, the description should have compensated with more explicit parameter guidance.
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 'Get the current volume of an audio source (multiplier and dB)' clearly states a specific action (get) and resource (volume of an audio source). It also distinguishes itself from sibling tools like set_volume or mute_source by focusing on the read-only retrieval of current volume.
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 implies usage: use this tool when you need the current volume of an audio source. However, it does not explicitly state when to use it over alternatives (e.g., get_audio_status) or exclude scenarios. The context is clear but not elaborated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hide_sourceHide sourceB
Hide a source in a scene. Example: 'Turn off my webcam.'
| Name | Required | Description | Default |
|---|---|---|---|
| scene_name | Yes | ||
| source_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the literal action without revealing side effects, such as whether the hide is per-scene, persists, or can be reversed by show_source.
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 sentence plus an example, which is maximally concise and front-loaded. Every word contributes to conveying the core purpose.
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 tool, the description is minimally viable but leaves out important contextual relationships with sibling tools (e.g., show_source) and does not compensate for the absence of parameter documentation. The existence of an output schema reduces the need to describe return values, so this is a marginal pass.
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, and the description does not explain the two parameters beyond what their names already imply. The phrase 'in a scene' adds no meaning to scene_name, and source_name is left entirely undeveloped.
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 ('Hide') and the resource ('a source in a scene'), which unambiguously distinguishes it from siblings like show_source or mute_source. The example 'Turn off my webcam' reinforces the intended behavior.
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 example provides a concrete use case, implying when to use this tool, but the description does not explicitly contrast it with alternatives such as show_source or set_source_visibility_in_all_scenes. There is no mention of when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_audio_sourcesList audio sourcesA
List all audio sources with their mute and volume state.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It explicitly states the tool lists all audio sources and their mute/volume state, which implies a read-only operation. However, it does not explicitly state that it has no side effects, nor does it mention any edge cases (e.g., behavior when no sources exist or OBS is disconnected). For a simple list operation, the risk is low, but the description could be more explicit about its read-only nature.
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 that front-loads the verb and resource and immediately states the output scope. It contains no filler words or redundant information, making it highly efficient and easy to parse.
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 (no parameters, output schema exists), the description is adequate for an agent to understand what it does. It clearly defines the resource ('all audio sources') and the output content ('mute and volume state'). However, it lacks any contextual guidance on when to choose this over related tools like get_audio_status, so it is not fully complete.
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 the description cannot add meaning beyond the empty schema. The baseline for 0 parameters is 4, and the description correctly avoids mentioning any parameters. No further semantic clarification is needed.
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 resource ('audio sources') and clearly states the scope ('all') and the included information (mute and volume state). This distinguishes it from sibling tools like list_sources or get_audio_status, making its purpose unambiguous.
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 alternatives. It doesn't mention that it's best for getting an overview of all audio sources, nor does it suggest using get_volume or get_audio_status for individual source details. No exclusions or alternative tools are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_filtersList source filtersA
List all filters attached to a source with their state.
| Name | Required | Description | Default |
|---|---|---|---|
| source_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of disclosing behavior. The word 'list' clearly indicates a read-only operation, and adding 'with their state' tells the user what information will be returned. It does not describe error cases, but for a simple listing tool this is adequate.
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 sentence with no unnecessary words. It front-loads the verb and resource, and the additional 'with their state' is concise and informative.
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 has only one parameter, an output schema is available, and the operation is a read-only list, the description is sufficient for a user to understand what the tool does and what input it expects. No significant context 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?
The schema has 0% description coverage, but the tool description explicitly mentions 'a source', making it clear that the required parameter source_name identifies the source whose filters are listed. This adds meaning beyond the raw schema title and type, compensating for the lack of a parameter 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 (list), the resource (all filters attached to a source), and includes the additional detail 'with their state'. This distinguishes it from sibling tools like get_filter_settings, which retrieves settings for a specific filter, and toggle_filter, which changes state.
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 implies the tool is used when you need to see all filters on a source, but it does not explicitly mention alternatives or when not to use it. There is no comparison to other filter-related tools in the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_profilesList profilesA
List all OBS profiles and the active one.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It explicitly mentions that it returns all profiles and the active one, which is a useful behavioral detail. However, it does not explicitly state read-only behavior, though 'list' strongly implies it.
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, front-loaded sentence that precisely describes the tool's function with no unnecessary words. Every part of the description 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?
The tool is simple with no parameters and an output schema likely covering return values. The description fully explains the purpose for a zero-argument listing tool, and sibling context does not require elaboration.
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 the baseline is 4. The description adds no parameter-level details, but none are needed. The input schema is empty and thus fully covered.
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 ('List all OBS profiles') and adds the specific detail of identifying the active profile, distinguishing it from profile-management tools like set_current_profile.
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?
There is no guidance on when to use this tool versus alternatives such as set_current_profile or create_profile. The description only states what it does, not the context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_scene_collectionsList scene collectionsA
List all OBS scene collections and the active one.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It clarifies the active collection is included, which is useful, but does not disclose side effects or return format details. Listing is inherently read-only, but no explicit safety statement is made.
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 wasted words. It immediately states the action and resource.
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?
The tool has no parameters and an output schema is present, so the description only needs to convey the core purpose. It does so clearly and completely for a tool of this simplicity.
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 accepts zero parameters, so the baseline is 4. The description correctly doesn't reference any parameters, as none exist.
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 the verb 'List' with a specific resource 'all OBS scene collections' and adds 'and the active one,' making it distinct from sibling tools like list_scenes or list_profiles.
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 states what the tool does but provides no explicit guidance on when to use it over alternatives. Usage is implied for viewing scene collections, but no exclusions or alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_scenesList scenesA
List every scene in OBS with its index.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It clearly indicates a read-only operation ('List') and specifies the scope ('every scene') and output characteristic ('with its index'). While it does not mention error conditions or prerequisites, these are not critical for this simple list operation.
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 sentence, front-loaded with the verb, and contains only necessary information. Every word contributes to understanding the tool's purpose and behavior, with no wasted or redundant content.
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 (no parameters, no nested objects) and the presence of an output schema, the description is complete enough. It communicates the essential behavior—listing every scene with its index—and does not need to describe return values since the output schema covers them.
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 and schema description coverage is 100%, so there is no parameter documentation needed. The description adds no parameter details because none exist; this matches the baseline for 0-parameter tools.
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 the specific verb 'List' and identifies the resource 'every scene in OBS' with an additional detail 'with its index', making the action and scope unambiguous. It clearly distinguishes from sibling tools that mutate or retrieve individual scenes (e.g., switch_scene, get_scene_sources).
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 implies usage by stating it lists all scenes, but it does not explicitly discuss when to use this tool over alternatives or any exclusions. The context signals show a simple read operation with no parameters, making usage fairly obvious, yet no explicit guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_sourcesList sourcesA
List all sources (inputs) in OBS with their kind.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must bear the burden of transparency. The description states that it lists all sources with their kind, which implies a read-only query, but it does not explicitly confirm non-destructiveness or describe any side effects. It adds minimal behavioral context beyond the tool's basic function.
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 that front-loads the action and scope. Every word is relevant, with no filler or repetition.
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 (zero parameters, clear output), the description provides sufficient context. The output schema presumably details the returned structure, so the description doesn't need to explain return values in depth. It fully explains the tool's purpose and scope, but could be slightly more explicit about the returned data if 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?
The tool has no parameters, and the schema shows an empty object, giving 100% coverage. The description reinforces that the tool lists 'all' sources, indicating there is no filtering parameter, which aligns with the schema. With no parameters, the baseline of 4 applies.
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's function: listing all sources (inputs) in OBS and including their kind. This distinguishes it from sibling tools like list_audio_sources (which specifically lists audio sources) and get_source (which retrieves a single source).
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 implies this is the general-purpose listing tool for all OBS sources, but it does not explicitly mention when to use it over alternatives like list_audio_sources or get_source. No exclusions or alternative references are provided, so the usage guidance is only implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
media_controlControl media sourceB
Play, pause, stop, restart, or skip a media/VLC source. Actions: PLAY, PAUSE, STOP, RESTART, NEXT, PREVIOUS.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | ||
| source_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It lists the actions but does not specify effects beyond their names, nor does it mention error conditions, side effects, or whether source existence is required. The description is too sparse for a control operation.
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 highly concise, consisting of two short sentences. It front-loads the main purpose and then lists actions, with no redundant or filler content.
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 two-parameter tool, the description is minimal but somewhat sufficient. Yet it omits any usage context, error behavior, or distinction from sibling tools, which is especially relevant given the large number of related controls. The presence of an output schema reduces the need to describe return values, but overall the description feels incomplete.
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 no descriptions (0% coverage), but the description compensates by enumerating the valid action values (PLAY, PAUSE, STOP, RESTART, NEXT, PREVIOUS). However, 'source_name' is only vaguely described as a media/VLC source, lacking format or validation details.
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 indicates the tool's function with specific verbs (play, pause, stop, restart, skip) and identifies the resource (media/VLC source). It lists all supported actions, making the purpose unambiguous and distinct from sibling tools like set_media_time which focus on seeking.
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 alternatives. It does not mention exclusions, prerequisites, or how it relates to sibling media controls. The agent is left to infer usage from the action list alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mute_sourceMute sourceC
Mute an audio source.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | ||
| source_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only states the action without elaborating on side effects, whether the change is persistent, or the role of the 'confirm' parameter. This is a significant transparency gap for a mutation tool.
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, fluff-free sentence, which is structurally concise. However, it is under-specified for the tool's complexity (including a 'confirm' parameter), so it sacrifices completeness for brevity. A few more words would significantly improve it 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?
Given there is an output schema and 2 parameters, one of which is a boolean requiring clarification, the description is incomplete. It does not address the behavior of 'confirm', potential side effects, or the relationship to sibling audio tools. The tool is simple, but the description leaves too much unspecified for fuller completeness.
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, and the description does not explain either parameter. 'source_name' is inferable from the tool's purpose, but 'confirm' is completely unexplained—its effect, whether it gates the action, or what the default false means. The description adds no value beyond the schema's field names.
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 'Mute an audio source' clearly states the action (mute) and the target (audio source), which distinguishes it from the sibling 'unmute_source'. However, it doesn't explicitly mention any scope or context that would further differentiate from other audio tools like 'set_volume', so it's clear but not maximally distinct.
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 about when to use this tool versus alternatives (e.g., 'unmute_source', 'set_volume', or 'hide_source'). The intended use is implied by the name, but there is no explicit context or mention of prerequisites, which leaves the agent without clear decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
obs_helpMCP tool indexA
List every available OBS MCP tool with a short description.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It accurately states the action but does not explicitly mention that the operation is read-only or that it returns a catalog of tools. Given the simple nature, there is no misleading information, but additional context would improve 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 concise sentence that is front-loaded and information-dense. Every word adds value, and there is no wasted text.
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?
This is a simple, parameterless tool with an output schema present. The description fully covers what the tool does, and the output schema handles return-value details. There are no missing behavioral or usage aspects that need further explanation.
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 the baseline is 4. The description does not need to explain parameters but could hint at the output structure. The mention of 'with a short description' adds some context about what the returned list will contain.
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 resource ('every available OBS MCP tool') and adds detail about the output ('with a short description'). It clearly distinguishes the tool from the many specific sibling tools that operate on individual OBS features.
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 implies usage for tool discovery without explicitly stating when to use it over alternatives. Since it lists all tools with descriptions, the intended use case is clear, but there is no direct statement like 'use when you need an overview of available tools'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pause_recordingPause recordingA
Pause the active recording.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden for behavioral disclosure. It does not state what happens if there is no active recording, whether the pause is reversible, or any side effects. The only behavioral hint is 'active', implying a recording must already be in progress.
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 phrase of five words: 'Pause the active recording.' It wastes no words and directly states the action, achieving perfect conciseness for a simple control operation.
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?
The tool is simple with no parameters and has an output schema, so return values need not be explained. However, the description omits context about prerequisites or consequences, such as requiring an active recording or how to resume. Given the low complexity, it is minimally adequate but lacks helpful context, warranting a medium score.
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 accepts zero parameters, so the schema is already fully self-explanatory. The baseline for 0 parameters is 4, and the description appropriately adds no parameter-related details, as there are none to describe.
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 the specific verb 'pause' with the resource 'active recording', clearly distinguishing it from siblings like start_recording, stop_recording, and resume_recording. It goes beyond a tautology by specifying the target as the active recording, making the action unambiguous.
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 given about when to use this tool versus alternatives such as stop_recording or resume_recording. It does not mention that pause is for temporary suspension or that resume_recording is the complementary action, so the agent must infer usage context from tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prepare_recordingPrepare recordingA
Prepare OBS for recording: switch to the recording scene, verify sources, check audio and readiness, then report a setup summary. Does NOT start recording.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well by disclosing that it switches scenes, verifies sources, checks audio/readiness, and reports a summary. It also clearly states it does not start recording. Missing details about side effects like permanently changing the current scene or prerequisites, but core behavior is transparent.
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, consisting of two meaningful sentences. The first sentence lists the exact actions in a compact list, and the second adds a crucial disclaimer. No filler or redundant 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?
The description outlines the steps, the final report, and the exclusion of starting recording. It is reasonably complete for a no-parameter tool, though it could mention prerequisites (e.g., OBS running) or potential failure conditions, but these are not critical given the scope.
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, and the schema confirms this with no properties. Per the baseline for 0 params, a score of 4 is appropriate; the description does not need to explain parameter semantics.
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 'Prepare' with a clear resource 'OBS for recording' and details the concrete steps: switch to recording scene, verify sources, check audio and readiness, and report a summary. It explicitly states 'Does NOT start recording,' which clearly distinguishes it from the sibling tool start_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?
The description makes it clear this is for preparing OBS before recording and explicitly warns it does not start recording, which is a key exclusion. However, it does not explicitly name alternatives like prepare_stream for streaming or state when not to use it beyond the recording context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prepare_streamPrepare streamA
Prepare OBS for streaming: switch to the stream scene, verify sources and audio, check output configuration, then report readiness. Does NOT go live.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses a key mutation (switch scene) and explicitly excludes going live, which is helpful. But it does not state whether verification steps modify anything, whether OBS must be running, or whether this is idempotent. It also doesn't describe side effects on existing source states.
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 purpose, and includes a clear negative scope. Every phrase 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 that an output schema exists and there are no parameters, the description sufficiently conveys the tool's scope and steps. It could mention prerequisites like OBS running, but overall it is complete for an agent to decide when to invoke.
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?
Tool has 0 parameters, so the description adds context about the workflow rather than parameter syntax. Given the empty schema, the description adequately fills the gap by explaining what the tool does.
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?
States a specific action: 'Prepare OBS for streaming' and enumerates the steps: switch to stream scene, verify sources/audio, check output config, report readiness. Explicitly distinguishes from start_stream by noting 'Does NOT go live.'
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 phrase 'prepare OBS for streaming' and the explicit 'Does NOT go live' imply this is a pre-flight check before going live. However, it does not name alternative tools like start_stream or get_stream_health, so the guidance is clear but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_filterRemove filterB
Remove a filter from a source. High-impact: requires confirmation.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | ||
| filter_name | Yes | ||
| source_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the operation is high-impact and requires confirmation, which is useful. However, it does not explain what high-impact means concretely (e.g., permanent deletion) or how confirmation works (e.g., the confirm parameter must be true). With no annotations provided, the description carries the full burden and falls short.
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 short sentences with no filler. The most important information is front-loaded.
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 that there is an output schema, return values needn't be explained. Yet for a high-impact mutation, the description lacks details about the confirmation flow, error cases (e.g., filter not found), and the irreversible nature. The description is minimal but not fully adequate.
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, so the description must compensate. The text implies the need for source_name and filter_name ('from a source') and the confirmation requirement touches on the confirm parameter. However, it does not explain the boolean semantics (e.g., that confirm must be explicitly set to true) or any constraints on names.
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 (remove) and the resource (a filter from a source), using a specific verb. It is distinct from sibling tools like add_filter or toggle_filter.
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 alternatives like toggle_filter to disable a filter. The 'High-impact' warning is a caution, not a usage guideline. There is also no mention of prerequisites, such as the filter existing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_source_from_sceneRemove source from sceneA
Remove a source from a scene without deleting the source itself. High-impact: requires confirmation.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | ||
| scene_name | Yes | ||
| source_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses that the operation is high-impact and requires confirmation, and clarifies that the source is not destroyed. It also hints at the confirm parameter's role. However, it doesn't detail the consequence of confirm=false, reversibility, or prerequisites like scene/source existence, leaving some gaps.
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, front-loaded with the primary action, and no fluff. Each sentence provides meaningful information: the operation's scope and the high-impact/confirmation requirement. This is concise and well-structured.
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?
The tool is relatively simple, but the description lacks crucial details for an agent to invoke it safely: what happens if confirm is not true, whether the operation is reversible, and what output to expect (though output schema exists). It also doesn't mention preconditions like the source existing in the scene. The description is adequate but has clear 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 description coverage is 0%, so the description must compensate for parameter explanation. It only addresses confirm indirectly with 'requires confirmation', but does not explain scene_name or source_name beyond their names, nor specify that confirm must be set to true. The description adds minimal value for parameter understanding.
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 ('Remove a source from a scene') and immediately clarifies the key distinction from sibling tools: it does not delete the source itself, unlike delete_source or show/hide source. This is a specific verb+resource combination with a clear boundary.
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 implies the intended use case (removing a source while preserving it), which contrasts with deletion. However, it does not explicitly name alternatives or explain when not to use it, such as versus hide_source or set_source_visibility_in_all_scenes. The guidance is indirect rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rename_sceneRename sceneC
Rename an existing scene.
| Name | Required | Description | Default |
|---|---|---|---|
| new_name | Yes | ||
| scene_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for behavioral disclosure. It only restates the action without revealing any side effects, error conditions, or requirements (e.g., whether the scene must exist, what happens if the new name is already taken).
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 wasted words. However, it is so minimal that it borders on tautological, adding little value beyond the title.
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 absence of annotations, 0% schema coverage, and no behavioral context, the description is grossly inadequate for a tool that modifies state. The presence of an output schema doesn't compensate for missing usage context, side effects, or parameter semantics.
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%, and the description adds no meaning beyond the schema. The parameter names (scene_name, new_name) are self-explanatory, but the description does not clarify constraints, formats, or relationships between 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 'Rename an existing scene' clearly states a specific action (rename) on a specific resource (scene). It distinguishes from sibling tools like create_scene, delete_scene, and duplicate_scene by the verb 'rename' and the qualifier 'existing'.
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 alternatives. There is no mention of prerequisites, exclusions, or suggested use cases, leaving the agent to infer usage solely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reorder_filtersReorder filtersB
Set the processing order (index) of a filter on a source.
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes | ||
| filter_name | Yes | ||
| source_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('Set') but does not mention whether the index is zero-based, what happens if the index is out of bounds, whether the operation is reversible, or any permission requirements. For a mutation tool, this is a significant gap in 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, concise sentence of 12 words. It is front-loaded with the verb and key concept, contains no filler, and every word contributes to the meaning. This is an excellent example of efficient, focused tool documentation.
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 the existence of an output schema (which would explain return values), the description is minimally adequate. It covers the essential purpose and parameters but omits contextual details like index semantics, error behavior, or prerequisite filter existence on the source. For a simple reorder operation, this is a clear but not exhaustive coverage.
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, so the description must compensate by explaining parameter roles. The phrase 'processing order (index)' gives semantic meaning to the index parameter, and 'of a filter on a source' maps to filter_name and source_name. However, it does not clarify index base or valid ranges, which leaves partial ambiguity.
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 a specific action ('Set the processing order (index)') on a specific resource ('of a filter on a source'). This distinguishes it from sibling tools like set_source_index (which reorders sources) and set_filter_settings (which sets filter properties), making the tool's unique function clear.
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 about when to use this tool versus alternatives such as add_filter, remove_filter, or set_source_index. There is no explicit mention of when this reorder operation is appropriate or when other tools should be chosen, leaving the agent to infer usage from the tool name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resume_recordingResume recordingA
Resume the paused recording.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden of behavioral disclosure. 'Resume the paused recording.' is straightforward but omits any mention of potential errors (e.g., if no recording is paused), side effects, or return values. For a state-changing operation with zero annotation support, this is a notable gap.
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 that front-loads the action and object. It contains no filler or redundancy, and 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?
The tool is extremely simple (no parameters), but the description does not cover important context such as when the operation is valid (only when recording is actually paused) or what happens if the precondition is not met. While an output schema may exist, the description alone is thin for a no-annotation tool.
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, and the schema confirms this. With no parameters to document, description-level parameter semantics are not needed, and the baseline of 4 applies.
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 'Resume the paused recording.' clearly states the specific action (resume) and the resource (recording), and the word 'paused' distinguishes it from starting a new recording or stopping. In the context of sibling tools like pause_recording and start_recording, the purpose is unambiguous.
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 implies the tool should be used when a recording is paused, but it does not explicitly state when to use it versus alternatives like start_recording, nor does it mention any prerequisites or conditions that must be met. Usage context is implied rather than instructed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_replay_bufferSave replay bufferA
Save the current replay buffer to disk (the buffer keeps recording afterwards).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It adds one valuable behavioral detail: the buffer continues recording after saving. However, it does not disclose prerequisites (e.g., whether the replay buffer must be active), error behavior, or side effects on the buffer contents.
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 sentence with the action front-loaded and a parenthetical that adds crucial nuance. It contains no redundant or filler wording.
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?
This is a simple, zero-parameter tool with an output schema present, so the description need not cover return values. It covers the core action and the key side effect, but could be more complete by mentioning that the replay buffer must be active to succeed. Still, it is adequate for the tool's simplicity.
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, and schema description coverage is vacuously 100%. Per the rubric, 0 params earns a baseline of 4. The description correctly adds no parameter-level detail because there is nothing to document.
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 states a clear action: 'Save the current replay buffer to disk.' It identifies the specific resource and destination. The parenthetical 'the buffer keeps recording afterwards' differentiates it from stop_replay_buffer, making its purpose unambiguous.
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 implies when to use the tool (when you want to preserve the buffer without stopping recording), but it does not explicitly compare to sibling tools like stop_replay_buffer or mention when not to use it. Usage context is inferred rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_audio_monitorSet audio monitor modeA
Set how a source's audio is monitored: NONE (off), MONITOR_ONLY (hear only), or MONITOR_AND_OUTPUT (hear and broadcast).
| Name | Required | Description | Default |
|---|---|---|---|
| source_name | Yes | ||
| monitor_type | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of disclosing behavior. It adds value by explaining what each monitor_type value means (e.g., MONITOR_AND_OUTPUT = hear and broadcast), which is not obvious from the raw schema. It does not mention side effects or error behavior, but for a simple setter this is adequate.
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, tightly worded sentence that front-loads the action and resource, then lists the allowed values. Every word earns its place; no filler or redundancy.
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 two-parameter setter with an output schema, the description is largely complete. It defines all enum options and clearly states the tool's purpose. The presence of an output schema relieves the need to describe return values. Minor gaps like permission requirements or reversibility exist, but they are not critical for this tool's simplicity.
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, but the description compensates by explaining the monitor_type values (NONE, MONITOR_ONLY, MONITOR_AND_OUTPUT) with plain-language meanings. It also implies the role of source_name as 'a source.' This adds significant meaning beyond the bare schema field names.
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 identifies the action (set) and resource (a source's audio monitor mode), and specifies the three possible values. It is distinct from sibling tools like mute_source or set_audio_track, as it specifically targets audio monitoring states.
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 implies when to use the tool—whenever you need to configure a source's audio monitoring—but it does not explicitly contrast it with alternatives or provide exclusion criteria. No when-not-to scenarios are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_audio_sync_offsetSet audio sync offsetA
Set an audio sync offset in milliseconds for a source. Positive delays audio, negative advances it.
| Name | Required | Description | Default |
|---|---|---|---|
| offset_ms | Yes | ||
| source_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does provide the key behavioral trait that positive delays and negative advances audio. However, it omits other behavioral details such as persistence, source type restrictions, or side effects on existing settings, so it only partially discloses behavior.
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 two short sentences, front-loaded with the core action, and every phrase contributes (units, sign semantics). It is concise without missing essential 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?
For a simple two-parameter setter with an output schema, the description adequately covers the operation and parameter meaning. It does not explain prerequisites for source types or error behavior, but these are likely covered by the output schema and the tool's simplicity reduces the need for extensive 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 explicitly defines offset_ms as milliseconds and gives meaning to positive/negative values, while source_name is implied as the target source. This adds meaningful semantic value beyond the bare schema fields.
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 'Set' and names the resource 'audio sync offset', clearly distinguishing it from sibling tools like set_volume or set_audio_monitor. It also states the scope 'for a source' and the unit 'milliseconds', making the purpose unambiguous.
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 implies the tool is used to adjust audio sync offset by stating the action and sign semantics, giving clear context. It does not explicitly mention when to prefer this over alternatives or list exclusions, but the context is sufficient for an agent to infer appropriate use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_audio_trackSet audio tracksA
Enable or disable audio tracks 1-6 for a source. Pass a dict like {'1': True, '2': False}.
| Name | Required | Description | Default |
|---|---|---|---|
| tracks | Yes | ||
| source_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of transparency. It discloses the core behavior (track enablement via dict mapping) and gives an example, but does not mention side effects, whether tracks not listed are left unchanged, error handling for invalid track numbers, or any permissions needed. This is adequate but not rich.
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 sentence plus a short example. Every word earns its place, with no filler or redundancy. The structure is front-loaded with the action and resource.
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 setter with two parameters and an output schema, the description is largely complete. It covers the main use case and parameter format. Minor gaps: it could clarify whether the dict should include all tracks or only those being changed, but overall it provides enough context for correct 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 description coverage is 0%, so the description must compensate. It explains that the 'tracks' parameter is a dict mapping track numbers (1-6) to booleans, with a concrete example. It does not explicitly describe 'source_name', but that is self-evident. This adds significant meaning beyond the bare 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 tool's function: enable or disable audio tracks 1-6 for a source. It uses specific verbs 'Enable or disable' and identifies the resource as 'audio tracks', distinguishing it from other audio tools like mute_source or set_volume.
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 implies clear usage context: use this tool when you need to enable/disable individual audio tracks by passing a dict of track numbers to booleans. It doesn't explicitly mention alternatives or exclusions, but the purpose is unambiguous enough for an agent to know when to invoke it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_current_profileSwitch profileB
Switch to another OBS profile. Medium risk.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | ||
| profile_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions 'Medium risk' but does not explain what the risk entails, whether confirmation is required, or what happens to the current profile. This leaves significant behavioral ambiguity for a mutating operation.
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 at two short sentences with no filler. It front-loads the action and adds a brief risk note.
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?
Despite its simplicity, the tool has a confirm parameter and a risk warning that are not elaborated. The output schema exists, so return values need not be explained, but the description fails to specify the behavior of confirmation and the nature of the risk, leaving the agent under-informed.
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 clarifies that profile_name is the target profile name, but the confirm parameter is never mentioned. The description adds minimal meaning beyond the schema's titles and types.
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: switching to another OBS profile, using a specific verb and resource. It distinguishes from sibling tools like list_profiles and create_profile, though it does not explicitly contrast with alternatives.
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 implies the use case (switching the active profile) but provides no explicit guidance on when to use this tool versus list_profiles or create_profile. No 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.
set_current_scene_collectionSwitch scene collectionB
Switch to another OBS scene collection. High impact.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | ||
| collection_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It adds 'High impact' as a warning, but does not specify what the impact is (e.g., replacing all current scenes, potentially disrupting active recordings). This is vague and insufficient for a mutation tool.
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 short sentences, front-loaded with the purpose. Every word earns its place, and the 'High impact' warning adds value without bloat.
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?
The tool has two parameters, one required, and a high-impact warning, but the description provides no specifics about parameter usage or consequences of the action. The output schema exists, so return values are not needed, but the description is still incomplete for a setter with such a warning.
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%, and the description does not mention either parameter. 'collection_name' is required but its meaning or expected format is not explained, and 'confirm' is entirely omitted. No compensating information is provided.
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 'Switch to another OBS scene collection' uses a specific verb and resource, clearly distinguishing it from sibling tools like switch_scene (which switches to another scene within the current collection) and list_scene_collections (which lists collections).
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 states the action but does not explicitly mention when to use this tool versus alternatives. 'High impact' implies caution, but there are no clear exclusions or alternative references, so usage guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_filter_settingsSet filter settingsB
Modify the settings of a filter on a source.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | ||
| overlay | No | ||
| filter_name | Yes | ||
| source_name | Yes | ||
| filter_settings | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must carry the full behavioral burden. It fails to disclose any side effects, permission requirements, or the meaning of the `confirm` and `overlay` parameters, which could affect how the operation behaves.
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 redundant information. It effectively communicates the core purpose without wasting 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?
With five parameters, a nested object, and an output schema, this tool warrants more context than a one-sentence description. It doesn't explain whether settings are merged or replaced, the role of the boolean flags, or what the output contains, making it incomplete for reliable use.
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%, and the description offers no explanation of the five parameters. While names like source_name and filter_name are intuitive, `confirm`, `overlay`, and the structure of `filter_settings` remain unexplained, leaving the agent to guess.
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 'Modify' and the resource 'settings of a filter on a source,' making it easy to distinguish from sibling tools like get_filter_settings or add_filter. The verb and resource are specific and unambiguous.
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 implies usage—you use it when you want to change a filter's settings—but provides no explicit guidance on when to prefer it over alternatives like add_filter or remove_filter. It also omits any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_media_timeSeek media sourceC
Seek a media source to a specific time in milliseconds.
| Name | Required | Description | Default |
|---|---|---|---|
| time_ms | Yes | ||
| source_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden but only states the action. It does not disclose behaviors like error handling if the time is out of range, whether the media source must be active, or any side effects on playback.
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 sentence that states the operation clearly with no redundant words or 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?
Even though an output schema exists, the description lacks contextual information such as when to use this tool, prerequisites, and potential error conditions. For a state-changing operation, more guidance 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?
The description specifies that time_ms is in milliseconds, which adds some meaning beyond the schema. However, it does not explain how source_name identifies the media source or any constraints on these parameters, and schema description coverage is 0%.
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 'seek' and identifies the resource as 'a media source' with the target being 'a specific time in milliseconds.' It clearly communicates the action but does not explicitly distinguish it from sibling tools like get_media_time or media_control.
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?
There is no guidance on when to use this tool versus alternatives, such as get_media_time for reading time or media_control for general control. No 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.
set_output_settingsSet output settingsC
Modify settings of an OBS output (bitrate, encoder, etc.). Medium risk.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | ||
| output_name | Yes | ||
| output_settings | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | 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 only states 'Medium risk', which is vague and does not explain what 'modify' entails (e.g., dynamic reconfiguration, potential disruption of ongoing outputs, or the need for confirmation). The confirm parameter suggests safety behavior but is not mentioned, making the tool's side effects opaque.
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 sentence front-loaded with the action and resource, followed by a risk qualifier. It is efficient and not overly verbose, though it could benefit from additional necessary details. The structure is clear and easy to parse.
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 complexity (nested object parameter, confirmation flag, no schema descriptions, and no annotations), the description is insufficient. It fails to explain what an 'output' is in OBS context, when modifications apply, or why confirmation might be needed. While an output schema exists, it does not cover operational 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 by explaining parameters. It gives examples of what might be inside 'output_settings' (bitrate, encoder), but does not clarify the expected values for 'output_name' or the role of 'confirm'. Nested object structure and semantics are left entirely to the schema, which lacks descriptions.
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 'Modify' and clearly identifies the resource ('settings of an OBS output'). It provides examples ('bitrate, encoder, etc.') and implicitly differentiates from sibling 'get_output_settings' by being a setter rather than getter. This is a clear, non-tautological statement of purpose.
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 offers no guidance on when to use this tool versus alternatives like 'set_stream_settings' or 'set_video_settings'. It merely restates the tool's function without providing context, exclusions, or recommended scenarios. The 'Medium risk' note hints at caution but does not direct usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_preview_sceneSet preview sceneB
Set the preview scene while studio mode is enabled.
| Name | Required | Description | Default |
|---|---|---|---|
| scene_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the condition that studio mode must be enabled, but it does not disclose potential errors, prerequisites beyond studio mode, side effects, or how the tool behaves if the scene does not exist. For a state-changing tool with zero annotations, this is a significant gap.
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 sentence with 7 words, front-loading the action and resource. It contains no redundant information and effectively conveys the core purpose in minimal space.
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?
The tool has one parameter and an output schema, so return values are not needed. However, the description does not provide enough context for an agent to know how to prepare for calling it (e.g., checking studio mode status) or what to do if studio mode is disabled. The presence of sibling tools like set_studio_mode and get_studio_mode_status suggests additional context is needed, but the description only hints at the condition.
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 for the only parameter, scene_name. The description does not explain what the parameter should be, its format, or any constraints (e.g., must exist). While the name 'scene_name' is self-explanatory, the description fails to compensate for the lack of schema documentation, leaving the agent to infer the parameter's semantics 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?
The description clearly states the action (set) and the resource (preview scene), and includes the condition 'while studio mode is enabled,' which distinguishes it from tools like switch_scene that presumably set the program scene. However, it does not explicitly explain what 'preview scene' means, leaving some ambiguity for users unfamiliar with OBS studio mode.
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 phrase 'while studio mode is enabled' provides context for when to use the tool, but it does not mention alternatives or exclusions. For example, it does not state that switch_scene should be used for the program scene or what to do if studio mode is disabled. The usage is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_record_directorySet record directoryB
Change the folder where recordings are saved.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| confirm | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only restates the intended change without explaining the confirm parameter's default behavior, whether the change applies immediately, or any side effects on existing recordings. This is a significant transparency gap for a mutation tool.
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 that wastes no words. It clearly states the action and object without superfluous detail.
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 setter with two parameters and an output schema, the description is minimally adequate but leaves the confirm parameter undocumented and provides no usage constraints. The absence of annotations increases the burden, making this a clear but not severe completeness gap.
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 must compensate for the lack of parameter documentation. It implicitly clarifies that 'path' is the destination folder, but it offers no explanation of the 'confirm' boolean parameter, leaving its purpose and default value ambiguous.
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 ('Change') and identifies the target resource ('the folder where recordings are saved'), making the tool's purpose immediately clear. It also distinguishes this setter from the sibling get_record_directory by emphasizing the modification action.
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 alternatives, nor does it mention any prerequisites or exclusions. For example, it does not mention using get_record_directory to check the current directory or warn against changing the directory during an active recording.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_scene_transitionSet scene transitionB
Set the transition used when switching scenes.
| Name | Required | Description | Default |
|---|---|---|---|
| transition_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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, but it only states the basic action without mentioning side effects, permission requirements, error handling, or scope (e.g., whether it applies to the current scene collection only). It does not clarify what happens if an invalid transition_name is provided or whether the change is reversible.
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, front-loaded sentence with no wasted words. It immediately conveys the core function without unnecessary elaboration, earning a top score for 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?
This simple setter tool has no annotations and a sparse schema, so the description needs to explain more about expected behavior, but it only provides the bare minimum. It does not mention how to discover valid transitions, what output to expect, or any constraints, leaving the agent under-informed for a state-changing operation.
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 description coverage is 0%, so the description must compensate, but it does not explicitly describe the transition_name parameter's allowed values, format, or how to obtain valid options. The phrase 'transition' provides minimal context, but it adds little beyond the schema property name itself.
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 'set' with a clear resource 'transition' and context 'when switching scenes', which unambiguously distinguishes it from sibling tools like get_transitions (retrieval) and set_transition_duration (duration). It is immediately evident what the tool does.
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 context is implied by 'when switching scenes', suggesting this tool is used before or during scene switches to change the transition effect. However, there is no explicit guidance on when to choose this over alternatives like set_transition_duration or trigger_transition, nor any mention of prerequisites like listing available transitions via get_transitions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_source_indexReorder source in sceneA
Change the stacking order (z-order) of a source in a scene. Index 0 is at the back; higher indexes are drawn on top. Example: 'Send my webcam to the front in the Coding scene.'
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes | ||
| scene_name | Yes | ||
| source_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of explaining behavior. It explicitly defines index semantics (0 = back, higher = drawn on top), which is critical behavioral information beyond the bare schema. It does not detail edge cases like out-of-range indices or effects on existing order, but the core behavior is well disclosed.
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 focused sentences plus a helpful example. The first sentence immediately states the action, the second clarifies the ordering semantics, and the example grounds it in a realistic use case. No fluff or redundant content.
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 the presence of an output schema, the description is largely complete. It covers purpose, key mechanics, and parameter meaning with an example. It does not address potential errors or what happens with an invalid index, but those gaps are minor for such a straightforward reorder operation.
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 does so by naming all three parameters in context: source_name, scene_name, and index, and the example maps a real source and scene to its natural language intent. While not a formal parameter-by-parameter breakdown, it effectively conveys each parameter's meaning.
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 changes the stacking order (z-order) of a source in a scene, using a specific verb and resource. It distinguishes itself from sibling tools like set_source_transform or reorder_filters by explicitly targeting z-order rather than transforms or filters.
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 clear context for when to use the tool: whenever a user wants to change the stacking order of sources in a scene. It includes a concrete example ('Send my webcam to the front'), but does not explicitly mention when not to use it or name alternatives, slightly missing the top bar.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_source_transformSet source transformA
Move, scale, rotate or crop a source in a scene. Pass any subset of position_x/position_y, scale_x/scale_y, rotation, width/height, bounds_type/bounds_width/bounds_height, crop_left/right/top/bottom, alignment. Example: 'Put my webcam in the bottom right corner, 320x180.'
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | ||
| transform | Yes | ||
| scene_name | Yes | ||
| source_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden for behavioral disclosure. It explains the flexible transform parameters, but it omits mention of the 'confirm' parameter and any side effects (e.g., whether changes are permanent or require confirmation). This is a significant gap for a mutating tool.
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 efficient: two sentences plus an example, with no wasteful wording. It is front-loaded with the main action and immediately lists the supported transform options, 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 that transform is a complex nested object and there is no annotation support, the description does a good job covering the main complexity. It omits details about the confirm parameter and any prerequisites (e.g., existing source), but the overall guidance is sufficient for most uses, especially with an output schema present.
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% coverage for parameter descriptions, but the description compensates by enumerating the transform properties (position, scale, rotation, bounds, crop, alignment). It does not explain the confirm parameter, but for the core transform object, it adds substantial meaning beyond the raw 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 tool's purpose with specific verbs: 'Move, scale, rotate or crop a source in a scene.' It distinguishes itself from siblings like get_source_transform by focusing on the set operation, and the example reinforces the intent.
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 clear context for when to use the tool (to modify a source's transform) and even shows an example command. It does not explicitly exclude alternatives or state when not to use it, but the purpose is evident, so it earns a 4 rather than a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_source_visibility_in_all_scenesShow/hide source in all scenesA
Make a source visible or hidden in every scene that contains it. Example: 'Turn off my webcam everywhere.'
| Name | Required | Description | Default |
|---|---|---|---|
| visible | Yes | ||
| source_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It clearly states the action and scope, but it does not disclose failure conditions, whether the source must already exist, or how scenes without the source are handled. The example adds practical context, but some edge-case behavior remains unspecified.
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 two sentences, front-loads the core behavior, and includes a concrete example. Every sentence earns its place, and there is no redundant or filler content.
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 two-parameter tool with an output schema, the description covers the main behavior and scope adequately. It does not explain return values (covered by the output schema) or error conditions, but the core operation is clear. Some context about scene collections or source existence would improve completeness, but it is not essential for basic use.
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 does not compensate adequately. It mentions 'source' and 'visible or hidden,' which hint at source_name and visible, but it does not explain that visible is a boolean, how source_name matching works, or provide explicit parameter-level guidance. The schema titles add some clarity, but the description adds minimal value beyond them.
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 states a specific action: making a source visible or hidden in every scene that contains it. This clearly distinguishes it from per-scene tools like show_source and hide_source by emphasizing the 'every scene' scope, and the example reinforces the purpose.
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 clear context for when to use this tool: when you need to change visibility across all scenes at once. It does not explicitly mention alternatives or exclusions, but the phrase 'every scene' and the example 'everywhere' imply the bulk use case versus single-scene operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_stream_settingsSet stream destinationA
Set the stream service and its settings (server URL, stream key, service name, etc.). Example: 'Set my stream key to X on rtmp://ingest.example.com/live'.
| Name | Required | Description | Default |
|---|---|---|---|
| settings | Yes | ||
| service_type | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the transparency burden. It accurately states the action ('Set') and provides an example, but does not disclose whether settings are merged or replaced, validation rules, or whether it requires OBS to be running. Not misleading, but thin.
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 one sentence plus an example, with no redundant wording. It is front-loaded and concise.
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?
The tool is a simple setter with a nested object, and an output schema exists, so return values are already covered. The description provides the essential purpose and example, but could elaborate on service_type values and settings merge behavior for full completeness.
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 the description must compensate. It mentions 'server URL, stream key, service name, etc.' and gives an example, partially clarifying the 'settings' parameter. However, the 'service_type' parameter is left unexplained, and the structure of 'settings' is still vague.
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's purpose: 'Set the stream service and its settings' and provides a concrete example. It distinguishes this from sibling tools like get_stream_service_settings (which retrieves) and start_stream (which begins streaming).
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 implies usage for configuring stream destination, but does not explicitly state when to use it versus alternatives, nor any prerequisites or exclusions. The example provides some context but lacks direct guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_studio_modeToggle studio modeA
Enable or disable studio mode (preview/program layout).
| Name | Required | Description | Default |
|---|---|---|---|
| enabled | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description bears full responsibility for behavioral disclosure. It states the action (enable/disable) and the target mode, but omits potential side effects, prerequisites (e.g., whether OBS must be running with studio mode supported), or the effect on the current preview/program layout beyond the mode toggle. It is not misleading but lacks depth.
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 that earns its place: it names the action and the domain. No filler or repetition.
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 one-parameter boolean toggle, the description covers the core functionality. It includes a helpful parenthetical explaining what studio mode is, which aids context. However, it does not mention how to check the current state (sibling get_studio_mode_status) or what the output schema returns, which could be useful but is not strictly required given the tool's simplicity.
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 only defines a required boolean 'enabled' with no description, and schema coverage is 0%. The description compensates by clarifying that the boolean determines whether to enable (true) or disable (false) studio mode, mapping the parameter to the tool's action. It doesn't provide default values or edge-case handling, but for a single boolean this is solid.
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 ('Enable or disable') and explicitly names the resource ('studio mode') with a clarifying parenthetical ('preview/program layout'). This clearly distinguishes it from sibling tools like get_studio_mode_status, which queries status rather than toggling it.
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 does not explicitly state when to use this tool versus alternatives such as get_studio_mode_status or set_preview_scene. Usage must be inferred: use it to switch studio mode on or off. No exclusions or alternative recommendations are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_transition_durationSet transition durationB
Set the duration (ms) of the active scene transition.
| Name | Required | Description | Default |
|---|---|---|---|
| duration_ms | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only says 'Set the duration' without explaining whether the change is temporary, whether it affects future transitions, error conditions, or reversibility. Minimal transparency for a mutation tool.
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, focused sentence with no superfluous information. It is front-loaded with the verb and resource, making it immediately understandable.
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 tool, the description lacks essential context: when to use it, prerequisites (active transition), and behavioral implications. The output schema exists but does not replace the need for usage context or side-effect disclosure. Inadequate for an agent to confidently choose and invoke it without additional investigation.
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 no description for duration_ms (0% coverage), so the description must compensate. It clarifies the unit (ms) and the scope (active scene transition), but it does not specify allowed values, constraints, or default behavior. Adds some meaning but not comprehensive.
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 (Set) and the specific resource (duration of the active scene transition), using a precise verb and object. It is distinct from sibling tools like set_scene_transition, which sets the transition type, and trigger_transition, which triggers it. No ambiguity or tautology.
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, prerequisites, or exclusions. For example, it does not mention that an active transition must exist or how this tool relates to set_scene_transition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_video_settingsSet video settingsB
Change canvas/output resolution or FPS. Pass any subset of base_width/base_height, output_width/output_height, fps_numerator/fps_denominator. Medium risk.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | ||
| video_settings | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only says 'Medium risk,' which is vague, and doesn't explain the confirm parameter, whether changes are destructive, or if they require an idle state. It doesn't mention that changes may interrupt output or require confirmation, which are key behavioral aspects.
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 three short sentences that front-load the purpose and provide necessary details about parameter subsets and risk. 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?
The description covers the core purpose and lists key parameters, but it omits the confirm parameter's role, the nature of 'Medium risk' (e.g., interruption to output), and any usage constraints. For a tool with nested objects and a confirmation flag, this leaves gaps that the output schema may not cover.
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, so the description must compensate. It lists the relevant keys (base_width/base_height, output_width/output_height, fps_numerator/fps_denominator), which is useful, but it doesn't specify types, units, or valid ranges, nor does it explain the 'confirm' parameter. It adds some meaning but not enough to fully compensate for the sparse 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 states a specific action ('Change canvas/output resolution or FPS') with a clear resource, and the verb 'change' differentiates it from the sibling 'get_video_settings.' It also lists the specific settings involved, making the tool's scope clear.
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 like get_video_settings or set_output_settings. It doesn't mention prerequisites, whether changes take effect immediately, or exclusions. The 'Medium risk' is a warning, not usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_volumeSet volumeA
Set the volume of an audio source. Provide volume_percent (0-100) or volume_db directly. Example: 'set my microphone to 70%'.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | ||
| volume_db | No | ||
| source_name | Yes | ||
| volume_percent | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It adds useful context about the two volume specification methods and the 0-100 range, but it does not explain the confirm parameter, what happens if both volume_percent and volume_db are provided, or any side effects. This is a moderate amount of transparency but leaves gaps.
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, front-loaded with the primary purpose, and uses three short sentences that each add value: the action, the two input modes, and an example. There is no redundancy or extraneous 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?
The tool has 4 parameters and no annotations, and the description leaves notable ambiguities (e.g., precedence between volume_percent and volume_db, role of confirm, source_name specification). While an output schema exists, the description does not fully round out the tool's usage for an agent, especially regarding optional parameters.
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 explains volume_percent (0-100) and volume_db, adding meaning beyond the schema. However, source_name is only implied via the example, and confirm is not addressed at all. The compensation is partial, covering two of four 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 tool's action with a specific verb and resource: 'Set the volume of an audio source.' This distinguishes it from siblings like get_volume (read) and mute_source (toggle mute). The mention of volume_percent and volume_db further specifies the resource being modified.
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 a clear context for use (setting audio volume) and includes a concrete example ('set my microphone to 70%'), which implies how to invoke the tool. However, it does not explicitly exclude alternatives or mention when not to use it, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
show_sourceShow sourceA
Make a source visible in a scene. Example: 'Show my webcam in the Coding scene.'
| Name | Required | Description | Default |
|---|---|---|---|
| scene_name | Yes | ||
| source_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description is the sole source of behavioral transparency. It correctly states the action (making a source visible in a scene) but does not disclose behavior when the source is already visible, whether the source must already exist in the scene, or potential error conditions. This is adequate for a simple operation but not rich.
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 one sentence followed by an example, clearly front-loaded with the core purpose. There is no wasted text, and the example reinforces both parameter usage and real-world context without redundancy.
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 low-complexity tool with an output schema and only two straightforward parameters, the description covers the essential action and provides a helpful example. Minor ambiguity remains about whether the source must already exist in the scene, but this is a minor gap given the tool's simplicity.
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 provides only parameter names with no descriptions (0% coverage). The description partially compensates with a concrete example mapping 'my webcam' to source_name and 'Coding scene' to scene_name, but it does not explain expected values or constraints (e.g., source must be in the scene). The example adds semantic value, but not comprehensive coverage.
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 'Make a source visible' and identifies the resource ('a source') and scope ('in a scene'). The example 'Show my webcam in the Coding scene' clarifies the typical use case and distinguishes this from sibling tools like hide_source by implying scene-specific visibility.
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 implies the tool is used when the user wants to show a source in a particular scene, as the example illustrates. However, it does not explicitly mention when not to use it (e.g., for showing in all scenes) or point to alternatives like set_source_visibility_in_all_scenes, leaving the user to infer based on the scene_name parameter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_recordingStart recordingA
Start recording. Medium impact: may require confirmation.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does disclose 'Medium impact: may require confirmation,' adding useful behavioral context. However, it omits details about state requirements (e.g., handling of already-active recording) and potential failures.
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 short sentences, front-loaded with the action, and no unnecessary words. 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?
The tool is simple with one optional parameter and an output schema, so completeness is moderate. The description covers the core action and impact but leaves out edge-case behavior and prerequisites. Overall adequate but sparse.
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 for the 'confirm' parameter, but the description's mention of 'may require confirmation' provides some semantic context. It does not explicitly explain how the parameter works (e.g., whether confirming bypasses the prompt).
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's action ('Start recording') with a specific verb and resource. It naturally distinguishes from sibling tools like stop_recording, pause_recording, and start_replay_buffer.
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 exclusions. The note about confirmation is behavioral, not usage-focused.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_recording_sessionStart recording sessionA
Full recording workflow: prepare the scene, verify sources and audio, check health, then start recording. High impact: requires explicit confirmation.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It adds useful context by disclosing the multi-step workflow and emphasizing 'High impact: requires explicit confirmation.' However, it doesn't mention potential side effects, prerequisites, or behaviors like handling an already-active recording, leaving gaps in 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 two sentences, front-loaded with the core purpose and followed by a critical warning. Every word earns its place; no fluff or repetition.
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 complex workflow tool with an output schema, the description covers the main steps and the confirmation requirement. However, it omits preconditions or error scenarios, which would be valuable for a tool that orchestrates multiple actions. Still, it's reasonably complete given the output schema exists.
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 sole parameter 'confirm' is not described in the schema, but the description's 'requires explicit confirmation' directly explains its purpose and implication (must be true). This provides crucial semantic meaning beyond the schema's bare boolean.
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 a specific verb+resource: 'Full recording workflow' that includes preparing the scene, verifying sources/audio, checking health, then starting recording. This distinguishes it from siblings like start_recording and prepare_recording by describing a comprehensive multi-step action.
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 implies usage for a full workflow but does not explicitly state when to use this tool over alternatives like start_recording or prepare_recording. It doesn't provide when/when-not conditions or name alternatives, so guidance is only implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_replay_bufferStart replay bufferA
Start the replay buffer (requires it to be enabled in OBS).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. It discloses one key behavioral trait (requires OBS enabled), but does not explain error behavior, idempotency, or the effect of starting an already-running buffer. For a mutating action, this is a minimal but acceptable disclosure.
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 sentence that is front-loaded with the action and includes a critical prerequisite. Every word earns its place; there is no redundancy or irrelevant detail.
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 simplicity of the tool (no parameters, output schema present), the description is nearly complete. It mentions the OBS-enabled requirement, which is essential context. It does not elaborate on return values, but the presence of an output schema makes that unnecessary. It could benefit from noting whether the command is idempotent, but is otherwise adequate.
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, and the schema is an empty object with 100% coverage. The description adds no parameter-specific information, but since there are no parameters to explain, the baseline of 4 is appropriate.
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 ('Start the replay buffer') with a specific resource and verb, distinguishing it from siblings like stop_replay_buffer and save_replay_buffer. The phrase 'requires it to be enabled in OBS' adds a useful condition but does not obscure the core purpose.
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 clear context by noting the prerequisite that the replay buffer must be enabled in OBS. It implies when to use this tool (after enabling the replay buffer), though it does not explicitly mention alternatives or when not to use it. Sibling tools like get_replay_buffer_status exist but are not referenced.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_streamStart streamA
Start the live stream. HIGH IMPACT: going live is visible to viewers, so explicit user confirmation is required.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the transparency burden. It discloses the high-impact nature (visible to viewers) and the confirmation requirement, which are critical behavioral traits. However, it does not mention potential failure conditions (e.g., already streaming) or additional side effects, though these may be less critical for a simple start action.
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 two sentences: the first states the action, the second provides the critical warning and requirement. It is front-loaded, concise, and every word earns its place with no redundancy.
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 (one parameter, no annotations, output schema present), the description covers the essential points: what the tool does and the key requirement. It does not mention prerequisites like checking stream status first, but the output schema and sibling tools (e.g., get_stream_status) can fill that gap. Overall, it is adequately complete for a naive 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 schema has 0% description coverage, but the description adds meaning to the sole 'confirm' parameter by stating that explicit user confirmation is required, implying the parameter must be true. This goes beyond the default-false schema definition and helps the agent use the parameter correctly.
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 the specific verb 'Start' with the resource 'live stream', making the action unambiguous. It clearly distinguishes from sibling tools like stop_stream and get_stream_status, and the mention of high impact adds purpose context.
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 a clear usage condition: explicit user confirmation is required before going live. While it doesn't explicitly name alternatives or exclusions, the high-impact warning serves as a strong guideline for when and how to use the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stop_recordingStop recordingC
Stop the current recording and return the saved file path.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It states the basic action and return but does not explain side effects, behavior when no recording is active, the meaning of the 'confirm' parameter, or any safety/permissions aspects.
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 efficient sentence that immediately states the action and result. However, it omits critical parameter information, which prevents a higher score.
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?
The tool is simple but not fully specified. The description covers the main purpose but leaves the 'confirm' parameter unexplained and does not address preconditions or failure cases. Given the output schema exists, return values are less critical, but the missing parameter semantics and lack of behavioral context make it incomplete.
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%, and the 'confirm' parameter is not mentioned in the description at all. The description adds no meaning beyond the raw schema, leaving the agent without understanding of what confirm does.
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 identifies the verb 'stop' and the resource 'current recording', and also states the return value (saved file path). This distinguishes it from related tools like pause_recording or start_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 is provided on when to use this tool versus alternatives (e.g., pause_recording for temporary stop). There is no mention of preconditions such as requiring an active recording or when the 'confirm' parameter should be used.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stop_replay_bufferStop replay bufferB
Stop the replay buffer.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It merely restates the action without indicating side effects (e.g., buffer contents discarded), idempotency, or behavior when no buffer is active. This lacks transparency about operational 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 extremely concise—a single sentence with no wasted words. It is front-loaded and to the point, fitting a simple command tool.
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 presence of sibling tools that start and save the replay buffer, the description lacks context about how stop differs from save or when to use which. Since there are no annotations and the output schema is not detailed, more context is needed for an agent to operate 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?
The tool has zero parameters, so the baseline score is 4. The description adds no parameter information, but none is needed since there is nothing to document.
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 'Stop the replay buffer.' clearly identifies the action (stop) and resource (replay buffer). It is specific and unambiguous, though it does not explicitly differentiate from sibling tools like save_replay_buffer, relying on the verb alone.
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 such as save_replay_buffer or start_replay_buffer. There are no context clues, prerequisites, or exclusions mentioned, leaving the agent to infer the appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stop_streamStop streamA
Stop the live stream. HIGH IMPACT: ends the broadcast for all viewers, so explicit user confirmation is required.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden. It discloses that the action ends the broadcast for all viewers (high impact) and that confirmation is required. This is significant behavioral context for a destructive operation, though it doesn't describe the response or reversibility.
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 two sentences, front-loaded with the action and a concise warning. Every word adds value, with no filler.
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 tool with one parameter and an output schema, the description covers purpose, impact, and user confirmation requirement. It is complete enough for an agent to invoke correctly without further guidance.
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 only defines 'confirm' as a boolean with default false. The description adds meaning by stating that explicit user confirmation is required, directly explaining the purpose of the 'confirm' parameter. This compensates for the 0% schema description coverage.
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 'Stop the live stream' with a specific verb and resource. It distinguishes this from sibling tools like 'stop_recording' or 'pause_recording' by explicitly naming the stream as the target.
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 clear context: it is used to end a broadcast, and it emphasizes that explicit user confirmation is required before calling. It doesn't explicitly mention when not to use or name alternatives, but the warning about high impact gives strong usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
switch_sceneSwitch sceneA
Switch to another scene. Example: 'Switch to my Gaming scene.'
| Name | Required | Description | Default |
|---|---|---|---|
| scene_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only states the action without disclosing side effects, potential failure modes (e.g., if the scene does not exist), or whether this switches the program (active) scene versus the preview scene in studio mode. The description is minimal and leaves key behavioral aspects unexplained.
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 followed by a relevant example. It is front-loaded with the action and resource, no filler words, and every part adds value. This is an appropriate size for a simple tool.
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?
The tool has only one parameter and an output schema, so return values are already covered. However, the description does not mention whether the scene must exist or distinguish between program and preview scene switching, which is relevant given sibling tools like set_preview_scene. It is adequate for a basic understanding but not fully complete for unambiguous use.
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?
There is one parameter, scene_name, with 0% schema description coverage. The description's example 'Gaming scene' implies the parameter is a scene name, but it does not explicitly define constraints (e.g., scene must exist, case sensitivity) or add meaning beyond the schema's 'Scene Name' title. The example provides partial compensation, but not enough for a higher score.
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 ('Switch') and a resource ('scene'), clearly stating the tool's function. The example 'Switch to my Gaming scene' reinforces the purpose. It distinguishes from sibling tools like list_scenes or create_scene by focusing on the act of changing the active scene.
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 example implies usage, showing how a user would request a scene switch. However, there is no explicit guidance on when to use this tool versus alternatives like set_preview_scene, nor any exclusions or prerequisites. The intended use is clear for a basic action, but the lack of differentiation from similar sibling tools prevents a higher score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
toggle_filterEnable/disable filterB
Enable or disable a filter on a source.
| Name | Required | Description | Default |
|---|---|---|---|
| enabled | Yes | ||
| filter_name | Yes | ||
| source_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of disclosing behavior. It states the core state change (enable/disable) but omits details such as idempotency, error handling if the filter or source doesn't exist, and return value behavior. The basic action is transparent, but additional behavioral context is missing.
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 filler or redundancy. It is appropriately sized for the simplicity of the tool and contains zero 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?
For a simple toggle operation with an output schema present, the description provides the essential action but lacks usage context, alternative tool references, and edge-case behavior. It is minimally complete but leaves gaps in when and how to use it within the broader toolset.
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%, and the description adds no explanation of what each parameter means beyond the parameter names themselves. It does not clarify the role of 'enabled' beyond the obvious (true/false), nor does it describe expected values for source_name or filter_name. The description fails to compensate for the low schema coverage.
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 ('Enable or disable') and the resource ('a filter on a source'). It is specific enough to distinguish from general filter management tools, though it doesn't explicitly differentiate from set_filter_settings which might also handle enabled state.
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 vs. alternatives like set_filter_settings or add_filter/remove_filter. The description is a one-liner with no context, exclusions, or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trigger_hotkeyTrigger hotkeyB
Trigger a hotkey by its name (e.g. 'Start Recording').
| Name | Required | Description | Default |
|---|---|---|---|
| hotkey_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It only says 'trigger a hotkey' without disclosing side effects, error behavior if the hotkey does not exist, whether it simulates keypresses, or any expected system state. This is too sparse for an agent to anticipate outcomes.
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, front-loaded sentence that immediately states the action and includes a useful example. No filler words; 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?
For a simple one-parameter tool, the description is minimally adequate, but lacks context about failure modes, prerequisites, and how to discover valid hotkey names. The presence of an output schema is not leveraged, and no annotations exist to fill 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?
The schema provides a bare parameter name with no description (0% coverage), so the description must compensate. The example 'Start Recording' clarifies that hotkey_name is a specific registered hotkey name, but does not explain how to obtain valid names (e.g., via get_hotkey_list) or format constraints.
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?
Description uses a specific verb 'Trigger' and resource 'hotkey' with the method 'by its name', and provides a concrete example 'Start Recording'. This clearly distinguishes it from sibling tools like get_hotkey_list, which lists hotkeys, and other action tools.
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. It does not mention prerequisites (e.g., that the hotkey must exist, or that get_hotkey_list can be used to find valid names) or any context where triggering a hotkey is preferable to other actions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trigger_transitionTrigger transitionB
Execute a manual studio-mode transition (preview becomes program).
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the core effect ('preview becomes program') but does not disclose the role of the 'confirm' parameter, whether the transition respects current transition settings, or what happens if studio mode is inactive. This is minimal disclosure for a mutation-like action.
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 that directly states the action and outcome. There is no wasted text; every word contributes essential 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?
Although the tool is simple with one optional parameter and an output schema, the description omits critical context: it does not mention that studio mode must be enabled, what 'confirm' does, or how this transition interacts with other transition settings. The description is too thin to support reliable invocation without additional knowledge.
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 one optional boolean 'confirm' with no description, and schema description coverage is 0%. The tool description does not mention this parameter at all, leaving its purpose and effect completely unexplained. The description fails to compensate for the lack of schema 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 uses a specific verb 'Execute' with a clear resource 'manual studio-mode transition' and explains the outcome ('preview becomes program'). This distinguishes it from siblings like set_studio_mode (enabling/disabling mode) and set_preview_scene (choosing the preview scene).
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 phrase 'manual studio-mode transition' implies this tool is for manually switching preview to program in studio mode, but it does not explicitly state when to use it over alternatives, nor does it mention prerequisites like being in studio mode or having a transition configured. Usage guidance is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unmute_sourceUnmute sourceC
Unmute an audio source.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | ||
| source_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It merely states 'Unmute an audio source' with zero detail on side effects, prerequisites (e.g., source must exist or be muted), required permissions, or the role of the 'confirm' parameter. This is a minimal, non-informative statement.
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 short, but it is under-specified rather than concise. It contains only one sentence that essentially restates the tool name, lacking any additional useful content. It does not earn its place by adding 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 mutation tool with no annotations and no schema coverage, this description is seriously inadequate. It provides no context about return values, side effects, or error conditions, even though an output schema exists and could have been referenced. The description is far from complete for an AI agent to invoke the tool safely and 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 0%, and the description mentions none of the two parameters ('source_name' and 'confirm'). The description fails entirely to compensate for the missing schema semantics, leaving parameter meaning unexplained.
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 states a specific verb ('Unmute') and resource ('audio source'), making the core purpose clear. However, it does not explicitly distinguish itself from the sibling tool 'mute_source' beyond the obvious inverse relationship, so it lacks explicit sibling differentiation.
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 (e.g., when to use 'mute_source' or other audio tools). The description only states the action without contextual usage cues.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_sourceUpdate source settingsC
Modify source properties (e.g. capture settings). Medium risk.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | ||
| overlay | No | ||
| source_name | Yes | ||
| source_settings | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full transparency burden. It notes 'Medium risk' but gives no specifics on side effects, reversibility, or what changes occur. It does not explain the role of the 'confirm' parameter or whether changes are immediate.
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 short, almost fragmentary. While front-loaded, it omits essential information. 'Medium risk' adds little context. It is under-specified rather than appropriately concise.
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 moderate complexity (4 params, nested object) and lack of annotations, the description is inadequate. It does not explain the nested source_settings structure, the confirm/overlay flags, or the intended use cases, leaving the agent without enough context 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 0%, so the description must compensate for the four parameters. It only mentions 'capture settings' as an example but does not explain source_name, source_settings, confirm, or overlay. This adds minimal value beyond 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 tool modifies source properties, with an example of capture settings. It distinguishes from creation/deletion but is somewhat generic compared to siblings like set_source_transform and set_source_index which target specific properties.
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 alternatives, no conditions, prerequisites, or exclusions. It only says 'Modify source properties' and 'Medium risk', which does not help the agent choose among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Tools are generally well-separated by resource and action, but some overlap exists (e.g., get_obs_stats vs get_obs_status vs diagnose_obs; start_recording vs start_recording_session). Descriptions help clarify these boundaries, making accidental misselection unlikely.
Most tools follow a consistent verb_noun snake_case pattern (get_, set_, create_, delete_, start_, stop_, etc.). Minor exceptions like 'media_control' and 'obs_help' invert the pattern, but the overall style is uniform.
With 89 tools, the server is extremely large. While OBS has many features, the sheer number of tools is excessive, and some could be consolidated (e.g., diagnostic tools could use a single parameterized endpoint). This is well beyond the 25+ threshold for 'too many'.
The tool surface covers virtually every major OBS domain: scenes, sources, audio, video, media, filters, transitions, studio mode, profiles, collections, recording, streaming, replay buffer, hotkeys, and diagnostics. It even includes higher-level session workflows, leaving no obvious gaps for typical automation.
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
Multistream to Twitch, YouTube and Kick; generate OBS overlays from a plain-English prompt.
Query your Twitch streams, events, supporters, raids & rankings from an AI assistant via OAuth.
Give your AI agents the tools to build, manage, and run automation workflows.
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables natural language control of Blackmagic ATEM video switchers via the Model Context Protocol. It allows users to manage camera switching, transitions, audio mixing, macros, and streaming operations through AI assistants.327MIT
- AlicenseAqualityDmaintenanceAn MCP (Model Context Protocol) server for controlling OBS Studio via the built-in obs-websocket plugin. Lets Claude control your scenes, recording, streaming, audio, and more.26171MIT
- AlicenseBqualityAmaintenanceAI-powered stream and recording control for OBS Studio through the Model Context Protocol1004Apache 2.0
- AlicenseAqualityCmaintenanceEnables AI assistants to control DualStream streaming studio: switch scenes, compose layouts, manage widgets, and react to stream events.30Apache 2.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/KshamayBharadwaj/obs-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server