MCP Sound Tool
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., "@MCP Sound Toolplay a notification sound"
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.
MCP Sound Tool
A Model Context Protocol (MCP) implementation that plays sound effects for Cursor AI and other MCP-compatible environments. This Python implementation provides audio feedback for a more interactive coding experience.
Features
Plays sound effects for various events (completion, error, notification)
Uses the Model Context Protocol (MCP) for standardized integration with Cursor and other IDEs
Cross-platform support (Windows, macOS, Linux)
Configurable sound effects
Related MCP server: MCP Notify Server
Installation
Python Version Compatibility
This package is tested with Python 3.8-3.11. If you encounter errors with Python 3.12+ (particularly BrokenResourceError or TaskGroup exceptions), please try using an earlier Python version.
Recommended: Install with pipx
The recommended way to install mcp-sound-tool is with pipx, which installs the package in an isolated environment while making the commands available globally:
# 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-toolThis method ensures that the tool has its own isolated environment, avoiding conflicts with other packages.
Alternative: Install with pip
You can also install directly with pip:
pip install mcp-sound-toolFrom Source
Clone this repository:
git clone https://github.com/yourusername/mcp-sound-tool cd mcp-sound-toolInstall with pipx directly from the source directory:
pipx install .Or with pip:
pip install -e .
Usage
Adding Sound Files
Place your sound files in the sounds directory. The following sound files are expected:
completion.mp3- Played after code generationerror.mp3- Played when an error occursnotification.mp3- Used for general notifications
You can find free sound effects on websites like freesound.org.
Running the MCP Server
Run the MCP server:
mcp-sound-toolThe server will start and listen for events from Cursor or other MCP-compatible clients through the stdio transport.
Configuration in Cursor
To use this server with Cursor, add it to your MCP configuration file:
On macOS:
// ~/Library/Application Support/Cursor/mcp.json
{
"mcpServers": {
"sound": {
"command": "mcp-sound-tool",
"args": [],
"type": "stdio",
"pollingInterval": 5000,
"startupTimeout": 10000,
"restartOnFailure": true
}
}
}On Windows:
// %APPDATA%/Cursor/mcp.json
{
"mcpServers": {
"sound": {
"command": "mcp-sound-tool",
"args": [],
"type": "stdio",
"pollingInterval": 5000,
"startupTimeout": 10000,
"restartOnFailure": true
}
}
}When installed with pipx, the mcp-sound-tool command will be available in your PATH, so Cursor will be able to find and execute it without specifying the full path.
Sound MCP Usage Guidelines for AI Models
This MCP server provides audio feedback capabilities for AI interactions. It's designed to enhance the user experience by providing clear audio cues that indicate the status of operations without requiring the user to read text.
When to Use Sound Feedback
AI agents should use the sound tools proactively at appropriate moments:
Success Sounds (
completion):After a task or command has successfully completed
When a significant operation has finished successfully
When confirming a user's request has been fulfilled
Error Sounds (
error):When a command has failed or encountered an error
When warning the user about a problem
When an operation couldn't be completed as requested
Notification Sounds (
notification):When alerting the user to important information
When prompting for user attention or input
For status updates on long-running operations
Example Usage
# 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}"Available Tools
play_sound(sound_type="completion", custom_sound_path=None): Play a sound effectlist_available_sounds(): List all available sound filesinstall_to_user_dir(): Install sound files to user's config directory
For more details, connect to the MCP server and check the tool descriptions.
Development
For development:
# Install development dependencies
pip install -e ".[dev]"
# Run tests
pytestAcknowledgments
SIAM-TheLegend for creating the original sound-mcp JavaScript implementation that inspired this Python version
The MCP protocol developers for creating a powerful standard for AI tool interactions
Contributors to the testing and documentation
License
This project is licensed under the MIT License - see the LICENSE file for details.
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.
TDQS
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
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
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
A Model Context Protocol server for Wix AI tools
Share one project context across ChatGPT, Claude, Telegram and any MCP client.
Generate game-ready 3D models, textures, and audio from natural language, over MCP.
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.12714Apache 2.0
Appeared in Searches
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/tijs/py-sound-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server