Skip to main content
Glama
Giancarlo26

obs-action-history

by Giancarlo26

obs_audio_routing

Route OBS audio inputs to tracks, configure monitoring, sync offset, and stereo balance. Read or change routing with warnings for common misrouting and latency-cap traps.

Instructions

Read - and optionally change - WHERE one audio input goes: which recording/stream tracks carry it, whether OBS monitors it out of the speakers, its A/V sync offset, and its stereo balance. Call it with only inputName to read; every other field is a change. This is separate from mute and volume on purpose: those are 'how loud', these are 'does it reach anyone at all', and a source can be at 0 dB, unmuted, and still inaudible to viewers. TRAPS, all of which return success while doing nothing you wanted: (1) syncOffsetMs is capped near 960 ms - OBS accepts far larger values, stores them, and applies nothing, so 2000 ms is silently 0. The protocol declares a floor of -950 on the negative side but a ceiling of 20000 on the positive one, so only the positive side gets to fail quietly. If a feed is more than a second late, cut the real latency; you cannot compensate past the cap. (2) A source on no track at all does not even meter, so it looks like dead hardware. (3) Only the tracks named by RecTracks reach the recording, and only one reaches the stream; a source on any other track meters perfectly and reaches nobody. That is how a detection microphone exists without being heard, so do not 'fix' such a source onto track 1. (4) monitorType anything but NONE sends this to the room speakers, where the microphone picks it up and it goes out a second time, out of phase. MONITOR_AND_OUTPUT is the one that does both. The reply always contains what OBS holds AFTER the write, plus a notes list naming any of the above that is now true - trust that over the value you sent.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
tracksNoOmit to leave unchanged. Partial is fine - only the tracks you name change, e.g. {"6": true}.
balanceNoOmit to leave unchanged. 0.0 hard left, 0.5 centre, 1.0 hard right.
inputNameYesAudio input name, exactly as OBS lists it.
monitorTypeNoOmit to leave unchanged. NONE = viewers only (the safe default while live).
syncOffsetMsNoOmit to leave unchanged. Positive delays this audio to catch up with late video. Useful range is about -950..960; larger is accepted and ignored.
Behavior5/5

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

With no annotations, the description carries full behavioral burden. It discloses several traps: syncOffsetMs silently ignored beyond ~960ms, sources on unconnected tracks may not meter, monitorType can cause audio feedback, and the reply always reflects OBS state after the write with a 'notes' list. This exceeds typical disclosure and prepares the agent for edge cases.

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

Conciseness4/5

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

The description is lengthy but well-structured: it begins with the core read/write distinction, then lists traps in a numbered list. Each sentence adds value, though some repetition could be trimmed. The front-loading of the purpose and the clear trap enumeration make it efficient for an agent.

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

Completeness5/5

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

Despite having no output schema, the description clearly explains the return (post-write state plus notes). It covers all aspects: how to read vs. change, parameter semantics, traps, side effects, and relationships to siblings. For a tool with nested objects and 5 parameters, this is complete and self-contained.

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

Parameters4/5

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

Schema already covers 100% of parameters with descriptions, so baseline is 3. The description adds semantic value beyond the schema: it explains that omission means unchanged, clarifies the syncOffsetMs trap and effective range, and reinforces the meaning of balance values. It does not repeat schema text verbatim but augments it, earning a 4.

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

Purpose5/5

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

The description clearly states it reads and optionally changes where an audio input goes (tracks, monitoring, sync, balance), with a specific verb ('Read - and optionally change') and resource (audio input routing). It also distinguishes from siblings like obs_audio_control (mute/volume) and obs_audio_routing_map (likely a read-only map), 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.

Usage Guidelines5/5

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

Explicit guidance: 'Call it with only inputName to read; every other field is a change.' It contrasts with mute/volume tools, explains when to use it vs. alternatives, and warns against 'fixing' sources intentionally excluded from tracks. Also notes that monitorType should be NONE to avoid feedback, giving specific do's and don'ts.

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

Install Server

Other Tools

Latest Blog Posts

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/Giancarlo26/obs-action-history'

If you have feedback or need assistance with the MCP directory API, please join our Discord server