MCP Sound Tool
MCPサウンドツール
Cursor AIやその他のMCP互換環境でサウンド効果を再生するモデルコンテキストプロトコル(MCP)実装。このPython実装は、よりインタラクティブなコーディング体験のためにオーディオフィードバックを提供します。
特徴
さまざまなイベント(完了、エラー、通知)のサウンド効果を再生します
Cursor や他の IDE との標準化された統合に Model Context Protocol (MCP) を使用します。
クロスプラットフォームサポート(Windows、macOS、Linux)
設定可能なサウンドエフェクト
Related MCP server: MCP Notify Server
インストール
Pythonバージョンの互換性
このパッケージはPython 3.8~3.11でテストされています。Python 3.12以降でエラー(特にBrokenResourceErrorまたはTaskGroup例外)が発生する場合は、以前のバージョンのPythonをお試しください。
推奨: pipxでインストール
mcp-sound-tool をインストールするには、 pipxを使用することをお勧めします。これにより、コマンドをグローバルに使用しながら、パッケージが分離された環境にインストールされます。
# Install pipx if you don't have it
python -m pip install --user pipx
python -m pipx ensurepath
# Install mcp-sound-tool
pipx install mcp-sound-toolこの方法により、ツールが独自の分離された環境を持つことが保証され、他のパッケージとの競合を回避できます。
代替案: pipでインストールする
pip で直接インストールすることもできます。
pip install mcp-sound-toolソースから
このリポジトリをクローンします:
git clone https://github.com/yourusername/mcp-sound-tool cd mcp-sound-toolソースディレクトリから pipx を直接インストールします。
pipx install .または pip を使用する場合:
pip install -e .
使用法
サウンドファイルの追加
サウンドファイルはsoundsディレクトリに置いてください。以下のサウンドファイルが想定されています。
completion.mp3- コード生成後に再生error.mp3- エラーが発生したときに再生されますnotification.mp3- 一般的な通知に使用
freesound.org などの Web サイトで無料のサウンドエフェクトを見つけることができます。
MCPサーバーの実行
MCP サーバーを実行します。
mcp-sound-toolサーバーが起動し、stdio トランスポートを介して Cursor またはその他の MCP 互換クライアントからのイベントをリッスンします。
カーソル内の設定
このサーバーを Cursor で使用するには、MCP 構成ファイルに追加します。
macOSの場合:
// ~/Library/Application Support/Cursor/mcp.json
{
"mcpServers": {
"sound": {
"command": "mcp-sound-tool",
"args": [],
"type": "stdio",
"pollingInterval": 5000,
"startupTimeout": 10000,
"restartOnFailure": true
}
}
}Windowsの場合:
// %APPDATA%/Cursor/mcp.json
{
"mcpServers": {
"sound": {
"command": "mcp-sound-tool",
"args": [],
"type": "stdio",
"pollingInterval": 5000,
"startupTimeout": 10000,
"restartOnFailure": true
}
}
}pipxと一緒にインストールすると、 mcp-sound-toolコマンドが PATH で使用できるようになるため、Cursor は完全なパスを指定しなくてもそれを見つけて実行できるようになります。
AIモデルのための健全なMCP使用ガイドライン
このMCPサーバーは、AIとのインタラクションに音声フィードバック機能を提供します。テキストを読むことなく操作状況を分かりやすく音声で知らせることで、ユーザーエクスペリエンスを向上させるように設計されています。
サウンドフィードバックを使用する場合
AI エージェントは、適切なタイミングでサウンド ツールを積極的に使用する必要があります。
成功音(
completion) :タスクまたはコマンドが正常に完了した後
重要な操作が正常に終了したとき
ユーザーのリクエストが満たされたことを確認するとき
エラー音(
error) :コマンドが失敗したりエラーが発生した場合
ユーザーに問題について警告する場合
要求通りに操作を完了できなかった場合
通知音(
notification) :ユーザーに重要な情報を知らせる場合
ユーザーの注意や入力を促すとき
長時間実行中の操作のステータス更新
使用例
# When a command completes successfully
@mcp.tool()
def execute_command(command):
result = run_command(command)
if result.success:
play_sound("completion") # Indicate success with audio
return "Command executed successfully"
else:
play_sound("error") # Indicate failure with audio
return f"Error: {result.error_message}"利用可能なツール
play_sound(sound_type="completion", custom_sound_path=None): 効果音を再生するlist_available_sounds(): 利用可能なサウンドファイルをすべて一覧表示するinstall_to_user_dir(): サウンドファイルをユーザーの設定ディレクトリにインストールする
詳細については、MCP サーバーに接続してツールの説明を確認してください。
発達
開発の場合:
# Install development dependencies
pip install -e ".[dev]"
# Run tests
pytest謝辞
このPythonバージョンにインスピレーションを与えたオリジナルのsound-mcp JavaScript実装を作成したSIAM-TheLegend
AIツールのインタラクションのための強力な標準を作成するMCPプロトコル開発者
テストとドキュメント作成への貢献者
ライセンス
このプロジェクトは MIT ライセンスに基づいてライセンスされています - 詳細については LICENSE ファイルを参照してください。
Available Tools
3 toolsinstall_to_user_dirA
Install sound files to user's config directory.
WHEN TO USE THIS TOOL:
- When the user wants to customize the sound files
- When setting up the sound tool for the first time
- When troubleshooting missing sound files
This tool copies the default sound files to the user's configuration directory
where they can be modified or replaced with custom sounds.
| 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 cover behavioral traits. It states the tool copies default sound files to the config directory for modification, but lacks details on whether files are overwritten, directory creation, or error conditions. This provides basic but incomplete behavioral 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 concise, uses bullet points for clarity, and front-loads the core action in the first line. Every sentence adds value with 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?
For a zero-parameter tool with an output schema, the description adequately covers purpose and usage scenarios. It does not elaborate on return values (not required due to output schema) or side effects like overwriting, but the simplicity of the tool makes this likely 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 input schema has zero parameters, making schema coverage trivially 100%. Per the rubric, a baseline of 4 applies. No parameter information is needed, and the description does not need to add any.
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 primary action: 'Install sound files to user's config directory.' This is a specific verb-resource combination that distinguishes it from sibling tools list_available_sounds and play_sound, which are read and playback operations respectively.
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 includes explicit 'WHEN TO USE THIS TOOL' bullets, covering customization, first-time setup, and troubleshooting. While it does not specify when not to use or explicitly name alternatives, the use cases are clear and distinct from siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_available_soundsA
List all available notification sounds.
WHEN TO USE THIS TOOL:
- When you need to check what sound options are available
- When determining if a specific sound file exists
- Before using a custom sound to verify available options
This tool helps you discover what sounds are available for providing audio feedback.
| 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 implies read-only fetching of available sounds, but does not explicitly state that it is safe, nondestructive, or what the output format is. Since it's a simple list tool, this is adequate but not fully 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 extremely concise with only two sentences plus a bulleted usage section. It front-loads the purpose and uses clear formatting, making it 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 complexity (no parameters), the presence of an output schema, and the absence of annotations, the description fully covers the tool's purpose and usage. No additional details are 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 schema coverage is 100%. The description adds value by explaining the purpose, aligning with the baseline score of 4 for parameterless 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 lists all available notification sounds. It uses specific verb 'list' and resource 'notification sounds', distinguishing it from sibling tools like 'play_sound' and 'install_to_user_dir'.
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 explicitly provides three scenarios for when to use the tool: checking available options, verifying existence of a specific sound, and before using a custom sound. This gives clear guidance without needing to mention alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
play_soundA
Play a notification sound on the user's device.
WHEN TO USE THIS TOOL:
- Use 'completion' sound when a task or command has SUCCESSFULLY completed
- Use 'error' sound when a command has FAILED or an error has occurred
- Use 'notification' sound for important alerts or information that needs attention
- Use 'custom' sound only when you need a specific sound not covered by the standard types
AI agents SHOULD proactively use these sounds to provide audio feedback based on
the outcome of commands or operations, enhancing the user experience with
non-visual status indicators.
Example usage: After executing a terminal command, play a 'completion' sound if
successful or an 'error' sound if it failed.
| Name | Required | Description | Default |
|---|---|---|---|
| sound_type | No | completion | |
| custom_sound_path | 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, and the description does not disclose behavioral traits such as whether audio playback is synchronous, permission requirements, or error handling. The output schema exists but is not described.
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 well-structured with a clear introduction and bullet-point guidelines. The example adds context. It is slightly verbose but efficiently conveys necessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 parameters, no required ones), the description covers the purpose, usage scenarios, and parameter semantics adequately. It does not discuss return values, but that is acceptable for a straightforward action.
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%, but the description adds meaning to the sound_type parameter by explaining when to use each value. The custom_sound_path parameter is implied but not detailed. This compensates partially for the lack of schema 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 explicitly states 'Play a notification sound on the user's device' and differentiates between sound types with specific use cases. It clearly distinguishes from sibling tools like install_to_user_dir and list_available_sounds.
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?
Provides detailed WHEN TO USE guidelines for each sound type (completion, error, notification, custom) and an example. This gives clear context for when the tool should be invoked.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
- First observed
install_to_user_dir - First observed
list_available_sounds - First observed
play_sound
TDQS
Scored across 3 tools
Each tool has a distinct purpose: installing, listing, and playing sounds, with no overlap in functionality.
All tools use a consistent verb_noun pattern in snake_case, with clear and descriptive names.
Three tools is a reasonable number for a sound tool, covering setup, exploration, and core usage.
The tool set covers basic lifecycle: install, list, play. Minor gap: no tool for direct volume control or custom sound management beyond defaults.
Maintenance
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
CC0 sound effects API for AI agents — search, preview, and download via MCP.
Audio for your agent: transcribe, speak, translate, summarise, plus sound effects and music.
Shared memory and actions for Claude, Kiro, OpenAI, Cursor, and other MCP-compatible AI clients.
Related MCP Servers
- FlicenseDqualityDmaintenanceProvides audio feedback by playing sound effects when Cursor AI completes code generation, creating a more interactive coding experience.119-
- AlicenseBqualityFmaintenanceA Model Context Protocol service that sends desktop notifications and alert sounds when AI agent tasks are completed, integrating with various LLM clients like Claude Desktop and Cursor.154MIT
- FlicenseBqualityDmaintenancePlays sound effects when Cursor AI completes code generation, providing audio feedback for a more interactive coding experience.12-
- AlicenseBqualityCmaintenanceA Model Context Protocol server that allows AI agents to play notification sounds when tasks are completed.146 npm14Apache 2.0