Skip to main content
Glama
Giancarlo26

obs-action-history

by Giancarlo26

obs_save_screenshot

Save a scene or source frame directly to a file on disk and return the path, avoiding large base64 data in conversation.

Instructions

Write a frame of a scene or source straight to a file on disk, and return the path. Use this instead of the image-returning screenshot tool whenever the picture is for a FILE - a thumbnail, a clip poster, a before/after pair, anything sampled on a loop. That tool base64s the whole image back through the conversation, which for a 1080p frame is megabytes of context spent on something nobody is going to look at. This one costs a path. Keep using the other one when you personally need to SEE the frame to judge framing or spot a black camera. TRAPS: (1) OBS writes the file itself, so imageFilePath is resolved on the machine running OBS, not wherever this MCP server lives, and it must be absolute. Point it at a directory that already exists. (2) imageWidth and imageHeight are 'scale to inner' - the aspect ratio is kept and the smaller ratio wins, so passing both does not crop, it fits. Pass one, or neither for native resolution. (3) imageFormat must be one this OBS build compiled in; png, jpg and webp are the safe ones, and GetVersion's supportedImageFormats is the real list. (4) A source that is not currently rendering gives you a black or stale frame, not an error.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
imageWidthNoOptional. 8-4096.
sourceNameYesScene or source name. The current program scene captures what viewers see.
imageFormatNoDefault png. Use jpg or webp for anything sampled repeatedly.
imageHeightNoOptional. 8-4096.
imageFilePathYesAbsolute path ON THE OBS MACHINE, with extension, e.g. /path/to/frame.png (or C:/path/to/frame.png on Windows)
imageCompressionQualityNo0 = smallest file, 100 = uncompressed, -1 = OBS default. Default -1.
Behavior5/5

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

With no annotations to convey safety or behavior, the description carries the full disclosure burden and excels. It reveals that OBS itself writes the file (so paths resolve on the OBS machine), warns about black/stale frames when sources aren't rendering, explains the 'scale to inner' dimension behavior, and notes format compilation caveats. These are non-obvious behavioral traits an agent must know, all disclosed in an organized 'TRAPS' section.

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

Conciseness5/5

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

The description is tightly organized: purpose in the first sentence, usage rationale in the next, then a clearly labeled 'TRAPS' list. Every sentence adds value—no fluff. The use of numbered points for edge cases keeps it scannable despite its length, making it highly usable for an agent parsing quickly.

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?

Given the tool's complexity (6 params, no output schema, no annotations), the description covers all critical aspects: return value (path), file-system implications, dimension behavior, format constraints, and failure modes (black/stale frames). It even hints at performance trade-offs with compression formats. The only minor omission is error handling, but that does not detract from an otherwise thorough treatment.

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

Parameters5/5

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

Although schema coverage is 100% (baseline 3), the description adds meaningful semantic layers: it explains the interplay of width/height via 'scale to inner,' warns that imageFilePath must be absolute and point to an existing directory, clarifies that format support is build-dependent (with GetVersion as the source of truth), and gives compression-quality guidance ('0 = smallest file, 100 = uncompressed'). This goes well beyond the schema's terse field notes.

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 opens with a precise verb+resource pair: "Write a frame of a scene or source straight to a file on disk, and return the path." It immediately distinguishes itself from the sibling tool by contrasting with "the image-returning screenshot tool," clearly positioning this as the file-oriented alternative. This is unambiguous and specific.

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?

The description provides explicit when-to-use guidance: "Use this instead of the image-returning screenshot tool whenever the picture is for a FILE - a thumbnail, a clip poster, a before/after pair, anything sampled on a loop." It also tells when NOT to use it: "Keep using the other one when you personally need to SEE the frame to judge framing or spot a black camera." This directly addresses alternative selection.

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