Skip to main content
Glama

Presentation Buddy MCP Server

by yshk-mrt
obs_mcp_tool_def.json15.5 kB
{ "name": "obs-mcp-ts", "version": "0.1.0", "description": "MCP Server for controlling OBS Studio (TypeScript)", "actions": [ { "name": "SwitchScene", "description": "Switches the current OBS program scene.", "requestDataSchema": { "type": "object", "properties": { "scene": { "type": "string", "description": "Name of the scene to switch to." } }, "required": ["scene"] }, "outputSchema": { "type": "object", "properties": { "success": { "type": "boolean" } } } }, { "name": "StartStream", "description": "Starts the OBS stream.", "outputSchema": { "type": "object", "properties": { "success": { "type": "boolean" } } } }, { "name": "StopStream", "description": "Stops the OBS stream.", "outputSchema": { "type": "object", "properties": { "success": { "type": "boolean" } } } }, { "name": "StartRecording", "description": "Starts the OBS recording.", "outputSchema": { "type": "object", "properties": { "success": { "type": "boolean" } } } }, { "name": "StopRecording", "description": "Stops the OBS recording.", "outputSchema": { "type": "object", "properties": { "success": { "type": "boolean" } } } }, { "name": "SetSourceVisibility", "description": "Sets the visibility of a source in a specific scene.", "requestDataSchema": { "type": "object", "properties": { "scene": { "type": "string", "description": "Name of the scene containing the source." }, "source": { "type": "string", "description": "Name of the source." }, "visible": { "type": "boolean", "description": "True to make visible, false to hide." } }, "required": ["scene", "source", "visible"] }, "outputSchema": { "type": "object", "properties": { "success": { "type": "boolean" } } } }, { "name": "GetSceneList", "description": "Gets the list of available OBS scenes.", "outputSchema": { "type": "object", "properties": { "currentProgramSceneName": { "type": "string" }, "scenes": { "type": "array", "items": { "type": "object", "properties": { "sceneName": { "type": "string" }, "sceneIndex": { "type": "integer" } } } } } } }, { "name": "SetTextContent", "description": "Sets the text content of a text source.", "requestDataSchema": { "type": "object", "properties": { "source": { "type": "string", "description": "Name of the text source." }, "text": { "type": "string", "description": "The new text content to set." } }, "required": ["source", "text"] }, "outputSchema": { "type": "object", "properties": { "success": { "type": "boolean" } } } }, { "name": "SetAudioMute", "description": "Mutes or unmutes an audio source.", "requestDataSchema": { "type": "object", "properties": { "source": { "type": "string", "description": "Name of the audio source." }, "mute": { "type": "boolean", "description": "True to mute, false to unmute." } }, "required": ["source", "mute"] }, "outputSchema": { "type": "object", "properties": { "success": { "type": "boolean" } } } }, { "name": "SetAudioVolume", "description": "Sets the volume of an audio source.", "requestDataSchema": { "type": "object", "properties": { "source": { "type": "string", "description": "Name of the audio source." }, "volume": { "type": "number", "description": "Volume multiplier (0.0 to 1.0)." } }, "required": ["source", "volume"] }, "outputSchema": { "type": "object", "properties": { "success": { "type": "boolean" } } } }, { "name": "SetSourcePosition", "description": "Sets the position of a source in a scene.", "requestDataSchema": { "type": "object", "properties": { "scene": { "type": "string", "description": "Name of the scene containing the source." }, "source": { "type": "string", "description": "Name of the source." }, "x": { "type": "number", "description": "X position in pixels." }, "y": { "type": "number", "description": "Y position in pixels." } }, "required": ["scene", "source", "x", "y"] }, "outputSchema": { "type": "object", "properties": { "success": { "type": "boolean" } } } }, { "name": "SetSourceScale", "description": "Sets the scale of a source in a scene.", "requestDataSchema": { "type": "object", "properties": { "scene": { "type": "string", "description": "Name of the scene containing the source." }, "source": { "type": "string", "description": "Name of the source." }, "scaleX": { "type": "number", "description": "Scale factor on X axis." }, "scaleY": { "type": "number", "description": "Scale factor on Y axis." } }, "required": ["scene", "source", "scaleX", "scaleY"] }, "outputSchema": { "type": "object", "properties": { "success": { "type": "boolean" } } } }, { "name": "TakeSourceScreenshot", "description": "Takes a screenshot of the specified source.", "requestDataSchema": { "type": "object", "properties": { "source": { "type": "string", "description": "Name of the source to capture." }, "filePath": { "type": "string", "description": "File path where the screenshot should be saved (optional)." }, "width": { "type": "integer", "description": "Optional width to resize the screenshot to." }, "height": { "type": "integer", "description": "Optional height to resize the screenshot to." }, "compressionQuality": { "type": "integer", "description": "Optional compression quality. For PNG (default format): 0-9 (OBS default is 4). For JPEG: 0-100 (OBS default is typically around 85-90). For WebP: 0-100. Use -1 for OBS default for the chosen format." }, "imageFormat": { "type": "string", "description": "Optional image format (e.g., \"png\", \"jpeg\", \"webp\"). Defaults to \"png\"." } }, "required": ["source"] }, "outputSchema": { "type": "object", "properties": { "imageData": { "type": "string", "description": "Base64-encoded image data." }, "sourceName": { "type": "string" }, "imageWidth": { "type": "integer" }, "imageHeight": { "type": "integer" } } } }, { "name": "SetTransitionSettings", "description": "Sets the current scene transition type and duration. 用途: シーン切り替え時のエフェクトをカスタマイズ", "requestDataSchema": { "type": "object", "properties": { "transitionName": { "type": "string", "description": "Name of the transition to set (e.g., 'Fade', 'Cut', 'Slide')." }, "transitionDuration": { "type": "number", "description": "Duration of the transition in milliseconds." } }, "required": ["transitionName", "transitionDuration"] }, "outputSchema": { "type": "object", "properties": { "success": { "type": "boolean" } } } }, { "name": "TriggerStudioModeTransition", "description": "Triggers the transition from Preview to Program in Studio Mode. 用途: シーンの準備と切り替えをスムーズに行う", "requestDataSchema": { "type": "object", "properties": {} }, "outputSchema": { "type": "object", "properties": { "success": { "type": "boolean" } } } }, { "name": "PlayPauseMedia", "description": "Controls playback of a media source (play, pause, stop, restart). 用途: 動画クリップやオーディオの再生制御", "requestDataSchema": { "type": "object", "properties": { "sourceName": { "type": "string", "description": "Name of the media source." }, "mediaAction": { "type": "string", "description": "Action to perform: PLAY, PAUSE, RESTART, STOP, NEXT, PREVIOUS.", "enum": ["PLAY", "PAUSE", "RESTART", "STOP", "NEXT", "PREVIOUS"] } }, "required": ["sourceName", "mediaAction"] }, "outputSchema": { "type": "object", "properties": { "success": { "type": "boolean" } } } }, { "name": "SetMediaTime", "description": "Sets the current playback time of a media source. 用途: 特定シーンへのジャンプ、リプレイの開始位置設定", "requestDataSchema": { "type": "object", "properties": { "sourceName": { "type": "string", "description": "Name of the media source." }, "mediaTime": { "type": "number", "description": "Playback time in milliseconds." } }, "required": ["sourceName", "mediaTime"] }, "outputSchema": { "type": "object", "properties": { "success": { "type": "boolean" } } } }, { "name": "SaveReplayBuffer", "description": "Saves the content of the replay buffer. 用途: ゲームのハイライト瞬間を即座に保存", "requestDataSchema": { "type": "object", "properties": {} }, "outputSchema": { "type": "object", "properties": { "success": { "type": "boolean" } } } }, { "name": "SaveReplayBufferAndAdd", "description": "Saves the replay buffer and adds it as a media source to a scene. 用途: リプレイをすぐにシーンに表示", "requestDataSchema": { "type": "object", "properties": { "sceneName": { "type": "string", "description": "Name of the scene to add the replay to." }, "sourceName": { "type": "string", "description": "Name for the new media source." }, "replayFolder": { "type": "string", "description": "Path to the folder where replay files are saved (optional)." } }, "required": ["sceneName", "sourceName"] }, "outputSchema": { "type": "object", "properties": { "success": { "type": "boolean" }, "filePath": { "type": "string" }, "sceneItemId": { "type": "number" } } } }, { "name": "CreateSource", "description": "Creates a new source in a specified scene. 用途: リプレイ映像用の新しいメディアソースを生成", "requestDataSchema": { "type": "object", "properties": { "sceneName": { "type": "string", "description": "Name of the scene to add the source to." }, "sourceName": { "type": "string", "description": "Name for the new source." }, "sourceKind": { "type": "string", "description": "Kind of the source (e.g., 'ffmpeg_source', 'image_source', 'text_gdiplus_v2')." }, "sourceSettings": { "type": "object", "description": "Settings for the new source (e.g., {\"local_file\": \"/path/to/video.mp4\"} or {\"file\": \"/path/to/image.png\"}).", "additionalProperties": true }, "setVisible": { "type": "boolean", "description": "Whether the source should be visible after creation (default: true).", "default": true } }, "required": ["sceneName", "sourceName", "sourceKind", "sourceSettings"] }, "outputSchema": { "type": "object", "properties": { "success": { "type": "boolean" }, "sceneItemId": { "type": "number", "description": "Numeric ID of the new scene item."} } } }, { "name": "SetShaderFilter", "description": "Sets parameters for a shader filter on a source. 用途: シェーダーエフェクトをリアルタイムで変更する", "requestDataSchema": { "type": "object", "properties": { "sourceName": { "type": "string", "description": "Name of the source with the shader filter." }, "filterName": { "type": "string", "description": "Name of the shader filter." }, "shaderCode": { "type": "string", "description": "GLSL shader code to set (optional)." }, "shaderParameters": { "type": "object", "description": "Key-value pairs of shader parameters to update.", "additionalProperties": true } }, "required": ["sourceName", "filterName"] }, "outputSchema": { "type": "object", "properties": { "success": { "type": "boolean" } } } }, { "name": "SetLutFilter", "description": "Sets parameters for a LUT filter on a source. 用途: LUTフィルターの適用量やファイルパスをリアルタイムで変更する", "requestDataSchema": { "type": "object", "properties": { "sourceName": { "type": "string", "description": "Name of the source with the LUT filter." }, "filterName": { "type": "string", "description": "Name of the LUT filter." }, "amount": { "type": "number", "description": "Blending amount (0.0-1.0)." }, "path": { "type": "string", "description": "Path to the LUT file (.png/.cube)." } }, "required": ["sourceName", "filterName"] }, "outputSchema": { "type": "object", "properties": { "success": { "type": "boolean" } } } }, { "name": "GetSceneItemList", "description": "Gets the list of scene items (sources) in a specified scene.", "requestDataSchema": { "type": "object", "properties": { "sceneName": { "type": "string", "description": "Name of the scene to get items from." } }, "required": ["sceneName"] }, "outputSchema": { "type": "object", "properties": { "sceneItems": { "type": "array", "items": { "type": "object", "properties": { "sceneItemId": { "type": "integer" }, "sourceName": { "type": "string" }, "sourceType": { "type": "string" }, "inputKind": { "type": "string" }, "isGroup": { "type": "boolean" }, "sceneItemIndex": { "type": "integer" }, "sceneItemEnabled": { "type": "boolean" }, "sceneItemLocked": { "type": "boolean" } } } } } } } ] }

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/yshk-mrt/obs-mcp'

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