Notify Sound

Design notification sounds from layered tones and get an editor link to play and download.

Should I use this

Quality & Safety

A
Description quality
88%
Schema completeness
84%
Naming quality
100%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,244Tokens (tool definitions)
~3.8 KBTypical response size
Moderate attention impact (1.75% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "notify-sound": {
      "url": "https://notifysound.com/mcp"
    }
  }
}

Remote endpoints

https://notifysound.com/mcpstreamable-http

What it can do

Tool inventory

Tools (5)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟡create_sound(name, duration, effect, layers)

Build a notification sound from your own layer design and get an editor link for it. The link opens the sound in the editor, where the user plays, tweaks and downloads it. Returns the link, the stored sound and warnings for any value that was out of range, rounded or ignored. Read get_sound_guide first.

Input Schema

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "maxLength": 32,
      "description": "Name. Sound name, up to 32 characters."
    },
    "duration": {
      "type": "number",
      "minimum": 0.003,
      "maximum": 5,
      "default": 0.1,
      "description": "Note length. How long each note is held, shared by every layer and every repeat. Unit: s. Range 0.003 to 5, step 0.001, default 0.1."
    },
    "effect": {
      "type": "object",
      "description": "One effect over the whole sound.",
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "none",
            "reverb",
            "chamber",
            "echo",
            "pingpong",
            "chorus",
            "phone",
            "crunch"
          ],
          "default": "none",
          "description": "Effect. One effect over the whole sound. Options: None: dry, no effect; Reverb: soft room, a gentle space; Chamber: big hall, long airy tail; Echo: repeats that fade away; Ping-Pong: echo that bounces left and right; Chorus: wider and shimmery; Phone: tiny speaker sound; Crunch: rough 8-bit edge."
        },
        "amount": {
          "type": "number",
          "minimum": 0,
          "maximum": 1,
          "default": 0.3,
          "description": "Amount. Effect mix. 0 is dry, 1 is fully wet. Unit: 0 to 1. Range 0 to 1, step 0.01, default 0.3."
        }
      },
      "additionalProperties": false
    },
    "layers": {
      "type": "array",
      "description": "Layers play together, each from its own Start after. Leave out any field at its default. Up to 16 layers.",
      "minItems": 1,
      "maxItems": 16,
      "items": {
        "type": "object",
        "properties": {
          "freq": {
            "type": "number",
            "minimum": 40,
            "maximum": 4000,
            "default": 880,
            "description": "Pitch. Note pitch. On a noise layer it is the centre of the hiss band. Unit: Hz. Range 40 to 4000, step 1, default 880."
          },
          "wave": {
            "type": "string",
            "enum": [
              "sine",
              "triangle",
              "sawtooth",
              "square",
              "noise"
            ],
            "default": "sine",
            "description": "Wave. Wave shape. Options: Sine: smooth and pure; Triangle: soft and woody; Saw: bright and buzzy; Square: sharp and electronic; Noise: hiss, wind and rumble."
          },
          "attack": {
            "type": "number",
            "minimum": 0.0005,
            "maximum": 1,
            "default": 0.005,
            "description": "Attack. Time from silence to full level. Under 0.005 s gives a hard click at the start. Unit: s. Range 0.0005 to 1, step 0.0005, default 0.005."
          },
          "decay": {
            "type": "number",
            "minimum": 0.003,
            "maximum": 2,
            "default": 0.3,
            "description": "Decay. Time from full level down to the Hold level while the note is held. Unit: s. Range 0.003 to 2, step 0.001, default 0.3."
          },
          "sustain": {
            "type": "number",
            "minimum": 0,
            "maximum": 1,
            "default": 0,
            "description": "Hold. Level kept after Decay while the note is held. 0 is a struck or plucked note, 1 an organ-like note. Unit: 0 to 1. Range 0 to 1, step 0.01, default 0."
          },
          "release": {
            "type": "number",
            "minimum": 0.003,
            "maximum": 5,
            "default": 0.4,
            "description": "Ring out. Fade after the note ends. The main tail control. Unit: s. Range 0.003 to 5, step 0.001, default 0.4."
          },
          "delay": {
            "type": "number",
            "minimum": 0,
            "maximum": 5,
            "default": 0,
            "description": "Start after. When this layer starts, counted from the start of the sound. Spaces the notes of a melody. Unit: s. Range 0 to 5, step 0.01, default 0."
          },
          "gain": {
            "type": "number",
            "minimum": 0,
            "maximum": 1,
            "default": 1,
            "description": "Level. Layer loudness. Unit: 0 to 1. Range 0 to 1, step 0.01, default 1."
          },
          "pitchSlide": {
            "type": "number",
            "minimum": -24,
            "maximum": 24,
            "default": 0,
            "description": "Slide. Pitch glide over the Note length, up when positive, down when negative. Unit: semitones. Range -24 to 24, step 1, default 0."
          },
          "fmAmount": {
            "type": "number",
            "minimum": 0,
            "maximum": 1,
            "default": 0,
            "description": "Wobble. Vibrato depth. 1 swings the pitch 4 semitones each way. Unit: 0 to 1. Range 0 to 1, step 0.01, default 0."
          },
          "fmRate": {
            "type": "number",
            "minimum": 0.5,
            "maximum": 50,
            "default": 6,
            "description": "Wobble speed. Vibrato speed. Unit: Hz. Range 0.5 to 50, step 0.1, default 6."
          },
          "amAmount": {
            "type": "number",
            "minimum": 0,
            "maximum": 1,
            "default": 0,
            "description": "Flutter. Tremolo depth: how far the level dips. Unit: 0 to 1. Range 0 to 1, step 0.01, default 0."
          },
          "amRate": {
            "type": "number",
            "minimum": 0.5,
            "maximum": 50,
            "default": 8,
            "description": "Flutter speed. Tremolo speed. Unit: Hz. Range 0.5 to 50, step 0.1, default 8."
          },
          "pan": {
            "type": "number",
            "minimum": -1,
            "maximum": 1,
            "default": 0,
            "description": "Balance. Stereo position. -1 is left, 1 is right. Unit: -1 to 1. Range -1 to 1, step 0.01, default 0."
          },
          "repeat": {
            "type": "number",
            "minimum": 1,
            "maximum": 5,
            "default": 1,
            "description": "Times. How many times the layer plays its note. Unit: count. Range 1 to 5, step 1, default 1."
          },
          "repeatGap": {
            "type": "number",
            "minimum": 0.02,
            "maximum": 1,
            "default": 0.1,
            "description": "Gap. Silence between one repeat ending and the next starting. Unit: s. Range 0.02 to 1, step 0.01, default 0.1."
          },
          "enabled": {
            "type": "boolean",
            "default": true,
            "description": "On. A layer that is off stays in the sound but is silent."
          },
          "seed": {
            "type": "integer",
            "minimum": 0,
            "maximum": 2147483647,
            "description": "Noise seed. Fixes the noise pattern so the sound is the same every play. Set one on every noise layer. Noise layers only."
          },
          "randomNoise": {
            "type": "boolean",
            "default": false,
            "description": "Random. New noise on every play. Keep false. Noise layers only."
          },
          "sharpness": {
            "type": "number",
            "minimum": 0.5,
            "maximum": 20,
            "default": 1.2,
            "description": "Sharpness. Width of the hiss band. Low is a wide hiss, high is close to a pitched whistle. Range 0.5 to 20, step 0.1, default 1.2. Noise layers only."
          },
          "noiseColor": {
            "type": "string",
            "enum": [
              "white",
              "pink",
              "brown"
            ],
            "default": "white",
            "description": "Noise type. Noise colour. Options: White: bright, even hiss; Pink: softer, like wind; Brown: deep rumble. Noise layers only."
          }
        },
        "additionalProperties": false
      }
    }
  },
  "required": [
    "layers"
  ],
  "additionalProperties": false
}
🟢read_sound(link)

Turn a share link (or the code after #s=) back into the sound design, to change it and call create_sound again.

Input Schema

{
  "type": "object",
  "properties": {
    "link": {
      "type": "string",
      "description": "A share link, \"#s=...\" or the bare code."
    }
  },
  "required": [
    "link"
  ],
  "additionalProperties": false
}
🟢list_library_sounds(group, query)

List the built-in sounds by group, or search them by name. Without arguments it lists every group with its sound names. Use a close built-in sound as a starting point.

Input Schema

{
  "type": "object",
  "properties": {
    "group": {
      "type": "string",
      "enum": [
        "featured",
        "classics",
        "chords",
        "messages",
        "alerts",
        "arcade",
        "chiptune",
        "chiptunes",
        "scifi",
        "nature",
        "spooky",
        "motion"
      ],
      "description": "Only this group, with each sound described."
    },
    "query": {
      "type": "string",
      "description": "Search sound names, e.g. \"bell\" or \"coin\"."
    }
  },
  "additionalProperties": false
}
🟢get_library_sound(name, group)

Get the full design of a built-in sound and its editor link, to use as a starting point for create_sound.

Input Schema

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Sound name, e.g. \"Tri-Tone\"."
    },
    "group": {
      "type": "string",
      "enum": [
        "featured",
        "classics",
        "chords",
        "messages",
        "alerts",
        "arcade",
        "chiptune",
        "chiptunes",
        "scifi",
        "nature",
        "spooky",
        "motion"
      ],
      "description": "Group to look in, when a name is in more than one."
    }
  },
  "required": [
    "name"
  ],
  "additionalProperties": false
}
🟢get_sound_guide

How sounds are built: layers, envelope, pitch, timing, noise, levels and effects, with example designs. Read it once before designing.

Input Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded5 tools