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

@lweight/xbrush-api-mcp

v2.11.0

Published

MCP server for the XBrush AI media generation API (image, video, TTS, music, sound effects, lip-sync & talking photos, video extend/retake, LLM chat, content moderation, watermark)

Readme

@lweight/xbrush-api-mcp

MCP server for the XBrush AI media generation API — images, video, speech, music, sound effects, lip-sync (incl. talking photos), video extend/retake, LLM chat, content moderation, and watermarks, directly from Claude Code.

Quick Start

1. Get an API Key

Get your key at xbrush.run/api-keys.

2. Configure Claude Code

Add to your MCP settings:

{
  "mcpServers": {
    "xbrush": {
      "command": "npx",
      "args": ["-y", "@lweight/xbrush-api-mcp"],
      "env": {
        "XBRUSH_API_KEY": "your_api_key_here"
      }
    }
  }
}

3. Use It

"Generate an image of a cat sitting on a desk"
"Remove the background from this image"
"Read this script aloud in Korean"
"Create a 30-second upbeat synth track"
"Extend this video by another 5 seconds"
"Make this portrait photo say the following line"
"Ask GLM 5.2 to summarize this paragraph"
"Ask Seed 2.0 Mini what is in this photo"

How results work

All generation tools submit asynchronously and return a request_id. Poll it with xbrush_get_request until status is completed, then read the output URL(s). The blocking /sync endpoints are intentionally never called (see CLAUDE.md).

The exceptions are xbrush_chat (LLM chat completions) and xbrush_voice_clone: both are synchronous and return their result directly — the API has no async variant for them. Responses must fit the platform's ~30s gateway limit; if a 504 cuts the connection, the request keeps processing server-side and its outcome can be recovered via xbrush_list_requests + xbrush_get_request.

Available Tools (23)

Image (5)

| Tool | Description | |------|-------------| | xbrush_image_generate | Generate images from text (e.g. seedream-5.0-pro, nano-banana-pro, flux.2-pro, gpt-image-2, z-image-turbo); apply trained LoRAs via loras: [{url, weight}] | | xbrush_image_edit | Edit / inpaint (qwen-image-edit, seedream-5.0-pro-edit, flux.2-pro-edit) or outpaint (flux-outpaint, qwen-outpaint); supports loras too | | xbrush_lora_train | Train a LoRA (custom style/subject) on 1–80 images for LoRA-capable bases (flux.1-dev, qwen-image, z-image-turbo, netayume-v4) — 2 credits per 1k steps | | xbrush_image_upscale | Upscale images (2x / 4x) | | xbrush_image_remove_bg | Remove background |

Video (5)

| Tool | Description | |------|-------------| | xbrush_video_generate | Image-/text-/reference-to-video (e.g. kling-v3/o3, veo3.1, seedance-2.0, hailuo-02, wan-2.7). seedance-2.0 supports multi-reference via image_urls + @ImageN prompts and model-specific duration (4–15s) | | xbrush_video_upscale | Upscale videos (realesrgan, seedvr) | | xbrush_video_lip_sync | Lip-sync a face video (pixverse-lipsync, infinite-talk) or animate a still portrait as a talking photo (fabric-1.0) — speech from audio or built-in TTS (text + voice_id) | | xbrush_video_extend | Extend an existing video by 1–20 seconds | | xbrush_video_retake | Regenerate a video variation up to a timestamp |

Audio (4)

| Tool | Description | |------|-------------| | xbrush_tts_generate | Text-to-speech (e.g. speech-2.8-hd, eleven-v3) | | xbrush_music_generate | Music generation from text (lyria2, lyria3, lyria3-pro) | | xbrush_sound_effect_generate | Generate sound effects for a video — video-driven (pixverse) or prompt-driven (elevenlabs, stable-audio) | | xbrush_voice_clone | Clone a voice from audio samples (eleven / speech-2.8-hd / speech-2.6-hd) for use as a voice_id in TTS — synchronous, flat 50 credits (failures auto-refund) |

Text (1)

| Tool | Description | |------|-------------| | xbrush_chat | LLM chat completions (GLM 5.2, Seed 2.0 Mini, Gemini 3.1 Flash Lite) — synchronous, OpenAI-compatible, billed per token; vision models take image inputs via content parts (https or data: URL, detail: low for cheap image tokens); function calling via OpenAI-style tools/tool_choice (answer every tool_call with a role:"tool" message; forced tool_choice is honored by Seed 2.0 Mini and Gemini but not GLM 5.2 — see constraints.forcedChoiceHonored in xbrush_list_models) |

Utility (8)

| Tool | Description | |------|-------------| | xbrush_content_moderate | NSFW moderation + masking for an image or video | | xbrush_watermark_add | Add the XBrush watermark to an image/video | | xbrush_list_models | List available AI models with pricing, vendor, and per-model constraints (video durations, LLM vision / function-calling support) | | xbrush_list_voices | List TTS voices (use a voice_id with tts_generate) | | xbrush_get_request | Check status/result of an async operation | | xbrush_list_requests | List recent API requests | | xbrush_file_upload | Upload a local file to the XBrush CDN (auto / direct / presign) | | xbrush_check_health | Check API server status |

Environment Variables

| Variable | Required | Description | |----------|----------|-------------| | XBRUSH_API_KEY | Yes | Your XBrush API key | | XBRUSH_BASE_URL | No | API base URL. Defaults to https://api.xbrush.run. | | XBRUSH_DISABLED_TOOLS | No | Comma-separated tool names to skip. Safety valve for selectively disabling a specific tool without uninstalling. Example: xbrush_music_generate,xbrush_content_moderate |

License

MIT