npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

botnoi-voice-mcp

v1.0.3

Published

MCP server for Botnoi Voice Text-to-Speech API

Readme

Botnoi Voice MCP 🇹🇭🗣️

A Model Context Protocol (MCP) server for Text-to-Speech generation (Thai, English, and other regional languages) via the Botnoi Voice API. Designed to empower AI assistants (e.g., Claude 3.5 Sonnet, Cursor) to seamlessly synthesize speech and discover available voices dynamically.

🌟 Features

  • 🎙️ Generate Speech (generate_speech): Allows the AI to convert text immediately to audio and download it as an .mp3 file.
  • 🔍 List & Filter Voices (list_voices): Smartly search and filter through the Botnoi Voice library. Examples: search for "Thai female teen voice" or "Male news anchor voice".

🚀 Installation

You can use the server directly via npx (no installation required) or install it globally:

# Global installation
npm install -g botnoi-voice-mcp

🔑 Configuration

A Botnoi Voice API Key is required. You can register and obtain one from the Botnoi Voice Dashboard.
Set your API key as an environment variable named BOTNOI_API_KEY.

Example Configuration for Claude Desktop

Add the server to your Claude Desktop configuration file (e.g., on Windows: %APPDATA%\Claude\claude_desktop_config.json):

{
  "mcpServers": {
    "botnoi-voice": {
      "command": "npx",
      "args": ["-y", "botnoi-voice-mcp"],
      "env": {
        "BOTNOI_API_KEY": "YOUR_API_KEY_HERE"
      }
    }
  }
}

🛠️ Available Tools

list_voices

Discover and search the available voice models inside the Botnoi Voice library.

  • language (optional): Filter by language (e.g., 'th', 'en', 'ja').
  • gender (optional): Filter by gender (e.g., 'Female', 'Male').
  • age_style (optional): Filter by age group (e.g., 'วัยเด็ก' (Child), 'วัยรุ่น' (Teen), 'วัยผู้ใหญ่' (Adult)).

generate_speech

Convert specified text into a speech output.

  • text (required): The text to be synthesized into speech.
  • speaker (optional): The Voice ID (e.g., "1"). Defaults to a basic voice.
  • language (optional): Language code (e.g., "th").
  • speed (optional): Speech speed ranging from 0.5 to 2.0.

⚠️ Important Note for Developers

If you are a developer extending this MCP, note that list_voices currently reads directly from a static local JSON response file. If you publish this to NPM, please ensure the .json file is correctly bundled in your build output (dist/) and referenced via __dirname, or fallback to making a live HTTP fetch to ensure it works across all user environments!


📝 License

MIT