{"_id":"@blocktopus/mcp-server-alert","_rev":"4-7f1392a937b932e37b1c2de89e4e37dc","name":"@blocktopus/mcp-server-alert","dist-tags":{"latest":"1.1.2"},"versions":{"1.0.0":{"name":"@blocktopus/mcp-server-alert","version":"1.0.0","keywords":["mcp","model-context-protocol","sound","audio","alert","notification","tone","synth"],"author":{"name":"Blocktopus"},"license":"MIT","_id":"@blocktopus/mcp-server-alert@1.0.0","maintainers":[{"name":"blocktopus","email":"email@blocktopus.co.uk"}],"homepage":"https://github.com/blocktopus/mcp-server-alert#readme","bugs":{"url":"https://github.com/blocktopus/mcp-server-alert/issues"},"bin":{"mcp-server-alert":"dist/index.js"},"dist":{"shasum":"962ec4a79aabe3895b18a8dbf2bc1564792907f7","tarball":"https://registry.npmjs.org/@blocktopus/mcp-server-alert/-/mcp-server-alert-1.0.0.tgz","fileCount":7,"integrity":"sha512-WsE4YIT+AASt6yDH2Rpmphkjrol25CLKkLOw366Wc57AmsJCbEMJuaAU+80teiOqA5db32XDd2ZUgQ8VtkpFmQ==","signatures":[{"sig":"MEUCIDfq4cdHtgh3OQnMgneLTW51LkSBfsGls2yOKW7ShXWQAiEAwCMVFl2P1gW9UMdM4Mtiu45D6aLXwTqSR+zclCmscgU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":100431},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"d818fd4f91752e9ec3e5d3a2e27e520fbfc6a5de","scripts":{"dev":"tsx watch src/index.ts","test":"jest","build":"tsc","start":"node dist/index.js","prepare":"npm run build","prepublishOnly":"npm run build"},"_npmUser":{"name":"blocktopus","email":"email@blocktopus.co.uk"},"repository":{"url":"git+https://github.com/blocktopus/mcp-server-alert.git","type":"git"},"_npmVersion":"11.3.0","description":"MCP server for generating alerts, sounds, and audio notifications","directories":{},"_nodeVersion":"22.15.0","dependencies":{"zod":"^3.23.8","tone":"^15.1.3","@modelcontextprotocol/sdk":"^1.12.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server-alert_1.0.0_1749583917247_0.27297386498902476","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@blocktopus/mcp-server-alert","version":"1.1.0","keywords":["mcp","model-context-protocol","sound","audio","alert","notification","tone","synth"],"author":{"name":"Blocktopus"},"license":"MIT","_id":"@blocktopus/mcp-server-alert@1.1.0","maintainers":[{"name":"blocktopus","email":"email@blocktopus.co.uk"}],"homepage":"https://github.com/blocktopus/mcp-server-alert#readme","bugs":{"url":"https://github.com/blocktopus/mcp-server-alert/issues"},"bin":{"mcp-server-alert":"dist/index.js"},"dist":{"shasum":"268270d0d9cf56b322ae9b7d37a6fa774f044221","tarball":"https://registry.npmjs.org/@blocktopus/mcp-server-alert/-/mcp-server-alert-1.1.0.tgz","fileCount":7,"integrity":"sha512-ZxYoH+zNLU+QTk3E3uoIvdo99N7JsRIgFgzcBzPZNpraC+9+13pjx3t/xZTOXGUQMGN5Hz/D//xt/QegqLSWiA==","signatures":[{"sig":"MEUCIQCPkRclACrupFtPmBgFGoZTpV6S6B/O3Xix9NlwstCy8wIgP3fC7nhmIGWKxcmWL/QCTsTcsrh5LzeTEegMr80Wtdo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":107058},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"c2ea061b7ea5267be26bd06470b22cf304ef9bc6","scripts":{"dev":"tsx watch src/index.ts","test":"jest","build":"tsc","start":"node dist/index.js","prepare":"npm run build","prepublishOnly":"npm run build"},"_npmUser":{"name":"blocktopus","email":"email@blocktopus.co.uk"},"repository":{"url":"git+https://github.com/blocktopus/mcp-server-alert.git","type":"git"},"_npmVersion":"11.3.0","description":"MCP server for generating alerts, sounds, and audio notifications","directories":{},"_nodeVersion":"22.15.0","dependencies":{"zod":"^3.23.8","tone":"^15.1.3","@modelcontextprotocol/sdk":"^1.12.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server-alert_1.1.0_1749584734115_0.48217402593560355","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@blocktopus/mcp-server-alert","version":"1.1.1","keywords":["mcp","model-context-protocol","sound","audio","alert","notification","tone","synth"],"author":{"name":"Blocktopus"},"license":"MIT","_id":"@blocktopus/mcp-server-alert@1.1.1","maintainers":[{"name":"blocktopus","email":"email@blocktopus.co.uk"}],"homepage":"https://github.com/blocktopus/mcp-server-alert#readme","bugs":{"url":"https://github.com/blocktopus/mcp-server-alert/issues"},"bin":{"mcp-server-alert":"dist/index.js"},"dist":{"shasum":"d1a2a698f73a822762e040bb7b8d78dfa380b051","tarball":"https://registry.npmjs.org/@blocktopus/mcp-server-alert/-/mcp-server-alert-1.1.1.tgz","fileCount":7,"integrity":"sha512-xr9M6ObQd4fNLOsIAhSe8oRpyk2OQIkFNnwio84+gySQMSSz+SGup8XHFwL2dTXDao970FeygeD4usNDU70TZQ==","signatures":[{"sig":"MEQCIDHPlQGqSpfUE8tZYjfCch6yhpAl+WdBNjjkOTUmqmlRAiBC4bZoKeXH7lTYvh5UmV8VKc7v8wx6m7pZv8DI6nttwQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":107553},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"def1f078133ebd8dfdff7ebcf1d65a1dc0c44d02","scripts":{"dev":"tsx watch src/index.ts","test":"jest","build":"tsc","start":"node dist/index.js","prepare":"npm run build","prepublishOnly":"npm run build"},"_npmUser":{"name":"blocktopus","email":"email@blocktopus.co.uk"},"repository":{"url":"git+https://github.com/blocktopus/mcp-server-alert.git","type":"git"},"_npmVersion":"11.3.0","description":"MCP server for generating alerts, sounds, and audio notifications","directories":{},"_nodeVersion":"22.15.0","dependencies":{"zod":"^3.23.8","tone":"^15.1.3","@modelcontextprotocol/sdk":"^1.12.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server-alert_1.1.1_1749661062869_0.5586018119344944","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@blocktopus/mcp-server-alert","version":"1.1.2","description":"MCP server for generating alerts, sounds, and audio notifications","main":"dist/index.js","type":"module","bin":{"mcp-server-alert":"dist/index.js"},"scripts":{"build":"tsc","start":"node dist/index.js","dev":"tsx watch src/index.ts","test":"jest","prepublishOnly":"npm run build","prepare":"npm run build"},"publishConfig":{"access":"public"},"keywords":["mcp","model-context-protocol","sound","audio","alert","notification","tone","synth"],"author":{"name":"Blocktopus"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/BlocktopusLtd/mcp-server-alert.git"},"bugs":{"url":"https://github.com/BlocktopusLtd/mcp-server-alert/issues"},"homepage":"https://github.com/BlocktopusLtd/mcp-server-alert#readme","dependencies":{"@modelcontextprotocol/sdk":"^1.12.1","tone":"^15.1.3","zod":"^3.23.8"},"devDependencies":{"@types/node":"^20.0.0","tsx":"^4.0.0","typescript":"^5.0.0","jest":"^29.0.0","@types/jest":"^29.0.0","ts-jest":"^29.0.0"},"engines":{"node":">=18.0.0"},"_id":"@blocktopus/mcp-server-alert@1.1.2","gitHead":"a54a3ac6b320aa8c974e81f00e4ca32696d4110d","types":"./dist/index.d.ts","_nodeVersion":"22.15.0","_npmVersion":"11.3.0","dist":{"integrity":"sha512-gm21ndWHwAbmXwlbBmDY6sS5TwIzXXw7HXXB40v3Ve0eHqedhjff3abFKokSqfmDh8B5C3p7dUgXqO5nrJBAZg==","shasum":"894fa092d58267eba918fba0a841d2c79c6df5dc","tarball":"https://registry.npmjs.org/@blocktopus/mcp-server-alert/-/mcp-server-alert-1.1.2.tgz","fileCount":7,"unpackedSize":107274,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIHgfLVzZGO4kRgRpv7ScCusUEONMf3+QSulqt8VQwFmMAiEA4UFs3HWQdRXNR/NInMcTvVRojacEJ55YBN6SS+kH2Rk="}]},"_npmUser":{"name":"blocktopus","email":"email@blocktopus.co.uk"},"directories":{},"maintainers":[{"name":"blocktopus","email":"email@blocktopus.co.uk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-server-alert_1.1.2_1749661362778_0.9011080991988885"},"_hasShrinkwrap":false}},"time":{"created":"2025-06-10T19:31:57.185Z","modified":"2025-06-11T17:02:43.125Z","1.0.0":"2025-06-10T19:31:57.400Z","1.1.0":"2025-06-10T19:45:34.324Z","1.1.1":"2025-06-11T16:57:43.092Z","1.1.2":"2025-06-11T17:02:42.947Z"},"bugs":{"url":"https://github.com/BlocktopusLtd/mcp-server-alert/issues"},"author":{"name":"Blocktopus"},"license":"MIT","homepage":"https://github.com/BlocktopusLtd/mcp-server-alert#readme","keywords":["mcp","model-context-protocol","sound","audio","alert","notification","tone","synth"],"repository":{"type":"git","url":"git+https://github.com/BlocktopusLtd/mcp-server-alert.git"},"description":"MCP server for generating alerts, sounds, and audio notifications","maintainers":[{"name":"blocktopus","email":"email@blocktopus.co.uk"}],"readme":"# @blocktopus/mcp-server-alert\n\n[![npm version](https://badge.fury.io/js/@blocktopus%2Fmcp-server-alert.svg)](https://badge.fury.io/js/@blocktopus%2Fmcp-server-alert)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\nAn MCP (Model Context Protocol) server that enables AI assistants to generate alerts, sounds, tones, melodies, and sound effects. Perfect for creating audio notifications, alerts, and musical sequences directly from your AI assistant!\n\n## 🎵 Features\n\n- **Play Tones**: Generate pure tones with customizable frequency, duration, waveform, and volume\n- **Play Melodies**: Create sequences of musical notes with tempo and volume control\n- **Play Chords**: Play multiple notes simultaneously with volume control\n- **Sound Effects**: Generate common sound effects (beep, alert, notification, error, success) with volume control\n- **External WAV Files**: Play external WAV files with volume control\n- **Bundled Sounds**: Built-in notification sounds (notification, success, error, bell, chime, ping)\n- **Sound Discovery**: Automatically discover WAV files from a specified directory\n- **Volume Control**: All sounds support volume adjustment (0-1)\n- **Cross-Platform**: Works on Windows, macOS, and Linux\n- **Easy Integration**: Simple MCP server that works with Claude Desktop and other MCP clients\n\n## 📦 Installation\n\n### Global Installation (Recommended)\n\n```bash\nnpm install -g @blocktopus/mcp-server-alert\n```\n\n### Or use directly with npx:\n\n```bash\nnpx @blocktopus/mcp-server-alert\n```\n\n## ⚙️ Configuration\n\n### Claude Desktop\n\nAdd the following to your Claude Desktop configuration file:\n\n**Windows**: `%APPDATA%\\Claude\\claude_desktop_config.json`\n**macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`\n\n#### Basic Configuration:\n```json\n{\n  \"mcpServers\": {\n    \"sound\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@blocktopus/mcp-server-alert\"]\n    }\n  }\n}\n```\n\n#### With Sound Discovery (specify your sounds directory):\n```json\n{\n  \"mcpServers\": {\n    \"sound\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@blocktopus/mcp-server-alert\", \"C:/MyMedia/Sounds\"]\n    }\n  }\n}\n```\n\nReplace `C:/MyMedia/Sounds` with the path to your directory containing WAV files. The server will automatically discover all WAV files in that directory and make them available by their filename (without extension).\n\n### Cursor\n\nAdd to `.cursor/mcp.json` in your project:\n\n```json\n{\n  \"mcpServers\": {\n    \"sound\": {\n      \"command\": \"npx\",\n      \"args\": [\"@blocktopus/mcp-server-alert\"]\n    }\n  }\n}\n```\n\n## 🛠️ Available Tools\n\n### 1. `play_tone`\nPlay a simple tone with specified parameters.\n\n**Parameters:**\n- `frequency` (number): Frequency in Hz (20-20000)\n- `duration` (number): Duration in seconds (0.1-10)\n- `waveform` (string): Waveform type (\"sine\", \"square\", \"sawtooth\", \"triangle\")\n- `volume` (number): Volume level (0-1, default: 0.5)\n\n**Example:**\n```\n\"Play a 440Hz sine wave for 1 second at half volume\"\n```\n\n### 2. `play_melody`\nPlay a sequence of musical notes.\n\n**Parameters:**\n- `notes` (array): Array of note objects with:\n  - `note` (string): Musical note (e.g., \"C4\", \"A#3\", \"Bb5\")\n  - `duration` (string): Duration (e.g., \"8n\", \"4n\", \"2n\", \"1n\")\n- `tempo` (number): Tempo in BPM (40-300)\n- `volume` (number): Volume level (0-1, default: 0.5)\n\n**Example:**\n```\n\"Play the C major scale at 120 BPM\"\n```\n\n### 3. `play_chord`\nPlay multiple notes simultaneously.\n\n**Parameters:**\n- `notes` (array): Array of note strings (e.g., [\"C4\", \"E4\", \"G4\"])\n- `duration` (string): Duration (e.g., \"8n\", \"4n\", \"2n\", \"1n\")\n- `volume` (number): Volume level (0-1, default: 0.5)\n\n**Example:**\n```\n\"Play a C major chord\"\n```\n\n### 4. `generate_sound_effect`\nGenerate common sound effects.\n\n**Parameters:**\n- `type` (string): Type of sound effect (\"beep\", \"alert\", \"notification\", \"error\", \"success\")\n- `variant` (number): Variant of the sound effect (1-3)\n- `volume` (number): Volume level (0-1, default: 0.5)\n\n**Example:**\n```\n\"Play a success sound effect\"\n```\n\n### 5. `play_wav`\nPlay an external WAV file.\n\n**Parameters:**\n- `filepath` (string): Path to the WAV file\n- `volume` (number): Volume level (0-1, default: 1.0)\n\n**Example:**\n```\n\"Play the sound file at C:/sounds/alert.wav\"\n```\n\n### 6. `play_bundled_sound`\nPlay a bundled notification sound.\n\n**Parameters:**\n- `sound` (string): Name of the bundled sound (see list below or use any custom name)\n- `volume` (number): Volume level (0-1, default: 0.7)\n\n**Pre-defined Bundled Sounds:**\n\n*Original sounds:*\n- `notification`: Classic two-tone notification\n- `success`: Ascending major chord arpeggio\n- `error`: Low frequency buzz with descending pitch\n- `bell`: Bell-like sound with harmonics\n- `chime`: Wind chime-like sound\n- `ping`: Short, high-pitched ping\n- `submarine`: Sonar ping with echo effect\n\n*alert-sound-notify compatible sounds:*\n- `bottle`: Bottle blow resonance\n- `glass`: High-pitched glass tap\n- `funk`: Funky bass wobble\n- `morse`: Morse code pattern (dot-dot-dash)\n- `purr`: Cat-like purring sound\n- `tink`: Light metallic tink\n\n*macOS native notification sounds:*\n- `basso`: Deep bass thud\n- `blow`: Whistle/blow sound\n- `frog`: Frog croak\n- `hero`: Heroic fanfare\n- `pop`: Pop/bubble sound\n- `sosumi`: Classic Mac alert sound\n\n**Custom Sounds:**\nYou can also pass any custom sound name, and the system will generate a unique sound based on that name. For example: `play_bundled_sound({ sound: \"my-custom-alert\" })` will generate a consistent sound unique to that name.\n\n**Example:**\n```\n\"Play the bell notification sound\"\n```\n\n### 7. `list_sounds`\nList all available sounds (bundled and discovered).\n\n**Parameters:** None\n\n**Example:**\n```\n\"List all available sounds\"\n```\n\nThis will show:\n- Any WAV files discovered from your specified directory\n- All bundled sounds available\n- A note that custom names can be used to generate unique sounds\n\n## 🔊 Sound Discovery\n\nWhen you specify a sounds directory in the MCP server configuration, the server will:\n1. Scan the directory for all `.wav` files at startup\n2. Make them available by their filename (without extension)\n3. Prioritize discovered sounds over bundled sounds with the same name\n\nFor example, if you have:\n- `C:/MyMedia/Sounds/homer-doh.wav`\n- `C:/MyMedia/Sounds/notification.wav`\n\nYou can play them with:\n```\n\"Play the homer-doh sound\"\n\"Play the notification sound\" (will use your file, not the bundled one)\n```\n\n## 💻 Platform Support\n\nThe server supports audio playback on:\n- **Windows**: Uses PowerShell's Media.SoundPlayer with WAV volume adjustment\n- **macOS**: Uses afplay with native volume support\n- **Linux**: Uses aplay with WAV volume adjustment\n\nVolume control works on all platforms! On Windows and Linux, the WAV data is modified to adjust volume. On macOS, the native -v flag is used.\n\n## 🚀 Development\n\n### Setup\n```bash\n# Clone the repository\ngit clone https://github.com/BlocktopusLtd/mcp-server-alert.git\ncd mcp-server-alert\n\n# Install dependencies\nnpm install\n\n# Build\nnpm run build\n\n# Run in development mode\nnpm run dev\n```\n\n### Project Structure\n```\nmcp-server-alert/\n├── src/\n│   └── index.ts      # Main server implementation\n├── package.json      # Package configuration\n├── tsconfig.json     # TypeScript configuration\n└── README.md         # This file\n```\n\n## 📝 License\n\nMIT © Blocktopus\n\n## 🤝 Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n## 🔮 Future Features\n\n- [✓] Add support for volume control\n- [✓] Support for external WAV file playback\n- [✓] Built-in notification sounds\n- [ ] Add support for more audio formats (MP3, OGG)\n- [ ] Implement MIDI support\n- [ ] Add drum patterns and rhythms\n- [ ] Add reverb and other effects\n- [ ] Implement real-time synthesis with Tone.js\n- [ ] WebSocket support for remote control\n- [ ] Audio recording capabilities\n\n## 🐛 Issues & Troubleshooting\n\nIf you encounter any problems, please check our [Troubleshooting Guide](TROUBLESHOOTING.md) first.\n\nFor unresolved issues, please [file an issue](https://github.com/BlocktopusLtd/mcp-server-alert/issues) along with a detailed description.\n\n## 🌟 Support\n\nIf you find this project useful, please consider giving it a star on GitHub!\n","readmeFilename":"README.md"}