# Douyu MCP

> Douyu provides deep API access to live streaming data, letting your agent monitor viewership metrics, process massive bullet-chat streams, and extract audience retention numbers from any client. It handles everything from identifying streamers to tracking top donors.

## Overview
- **Category:** data-analytics
- **Price:** Free
- **Tags:** esports-tracking, live-broadcasting, viewership-metrics, bullet-chat, streaming-analysis

## Description

You're trying to make sense of the sheer volume of activity happening in major online broadcast hubs—the kind that generate more data than a small city. You don't want to spend hours clicking between dashboard tabs or writing messy scripts just to get a clean view of what’s happening live. This MCP connects your AI client directly to Douyu's core broadcasting metrics. It lets you ask for specific, real-time details—like how many people are watching a certain room right now, or exactly what kind of gifts users are sending out.

Your agent handles the heavy lifting. You tell it to look up all active streams in a game category, and it pulls that list back instantly. Want to analyze chat? It can download high-velocity comment feeds for you, so your agent can filter spam or track specific keywords across millions of messages. The whole thing runs through Vinkius, letting you connect this data source alongside hundreds of others, keeping everything in one place.

## Tools

### follow_streamer
Automatically tracks a broadcaster’s activity using an OAuth token.

### get_danmu_config
Retrieves the necessary parameters to connect your agent to the live chat feed (Danmu).

### get_gift_list
Fetches a list of all active virtual gifts currently available in a room.

### get_live_rooms
Gets a current list of streaming rooms running within a specific category.

### get_room_detail
Retrieves detailed metrics and information about one specific live stream room.

### get_stream_categories
Pulls a full list of available game titles and general interest categories.

### get_top_donators
Gets the current leaderboard showing the top tippers for a given time period (weekly/monthly).

### get_user_stats
Looks up profile information and basic metrics for any user account.

### search_streamers
Finds streamers by searching using their name or alias.

### send_message
Sends a specific message into the live stream's comment chat feed.

## Prompt Examples

**Prompt:** 
```
Provide the real-time viewership metric block for room ID '183921'.
```

**Response:** 
```
The query targeted room #183921 natively... It currently houses a massive audience retention weighing an active heat metric of precisely 12.3 million internal pulse points. It seems driven heavily via an esports tie... shall I request detailed stream titles tied to this block?
```

**Prompt:** 
```
List all active channels broadcasting explicitly nested inside the specific 'League of Legends' category dynamically.
```

**Response:** 
```
Retrieving the list under 'LoL' mapping successfully! There are 304 live instances indexed officially. At the top rank hovers channel ID '73199' carrying half the category's weight alone. Should we refine targeting smaller emerging accounts inside?
```

**Prompt:** 
```
Snag the top 20 lines flashing across the screen on room 491.
```

**Response:** 
```
Sniffing stream ID 491... Caught the first 20 bullet-chats smoothly cleanly formatted! Half comprise of '666' spam, while 4 explicitly mention gameplay praise. Here is the array in JSON... shall I filter spam strings fully going forward internally?
```

## Capabilities

### Monitor real-time audience size
Get the current viewer population and detailed stats for a specific live room.

### Process massive comment streams
Download high-speed chat data (bullet-chats) to analyze interactions passing through major broadcast environments.

### Locate streamers and categories
Search for specific broadcasters by name or find all available game and IRL streaming categories.

### Track donor activity
Pull weekly or monthly leaderboards to see who the top tippers are in a room.

### Send messages into chat
Programmatically send a message into a live stream's comment feed.

## Use Cases

### Verifying Sponsorship Value
A liaison needs to prove engagement for an ad buy. They ask their agent to use `get_top_donators` and then `get_user_stats` on the top five accounts, getting a raw report of who tipped and how much. No spreadsheets needed.

### Monitoring Niche Content
A mod team notices a new genre emerging. They first run `get_stream_categories`, filter for 'indie games,' then use `get_live_rooms` to see which streams fit, saving hours of manual browsing.

### Debugging Live Chat Flow
A developer needs the chat feed parameters. They run `get_danmu_config`, get the required WebSocket details, and plug it into their local IDE to test message handling before deploying anything.

### Mapping Broadcaster Reach
An analyst wants to see which streamers are active in a particular region or niche. They start by using `search_streamers` for key aliases, and then run `get_user_stats` on the results list.

## Benefits

- Monitor audience retention instantly. You can check the current viewer count for a room using `get_room_detail` or monitor multiple concurrent streams with `get_live_rooms`, eliminating manual dashboard checking.
- Automate deep chat analysis. Instead of reading thousands of comments, your agent uses `get_danmu_config` to process high-velocity comment streams and filter out spam or track keywords.
- Track financial engagement easily. Use `get_top_donators` to instantly generate leaderboards, which is a massive time save compared to compiling raw donation logs yourself.
- Find what you're looking for fast. If you need a specific streamer, use `search_streamers`. If you want to know all the games being played right now, just call `get_stream_categories`.
- Control the narrative. Need to send a message or announce something? Use `send_message` to push text directly into the live chat feed.

## How It Works

The bottom line is: your AI client uses standard conversation prompts to execute complex, multi-step queries against Douyu’s deep data streams.

1. Sign up on the official Douyu Open Platform and configure your application with the required security keys.
2. Connect your AI client to Vinkius, then prompt your agent using natural language requests detailing the streaming data you need.
3. The MCP executes the request, gathering live metrics—like viewer counts or chat logs—and returns a structured output for your agent to use.

## Frequently Asked Questions

**How do I check who is watching a specific room using `get_room_detail`?**
The `get_room_detail` tool returns comprehensive data on the stream, including current viewer population metrics. This lets your agent give you an immediate snapshot of audience retention and size.

**Does `search_streamers` only find streamers by name?**
No, it searches for streamers using both their name or their alias. It’s a flexible search that helps your agent locate the correct broadcaster ID quickly.

**What is the best way to track top spenders? Should I use `get_top_donators`?**
Yes, using `get_top_donators` pulls a structured leaderboard of tippers. It’s much better than trying to scrape donation messages and gives you reliable, categorized data.

**Can I send a message into the chat using the `send_message` tool?**
Yes, `send_message` allows your agent to programmatically push text directly into a stream's Danmu chat. This is useful for automated moderation or alerts.

**How do I get the necessary parameters to connect my agent to live chat using `get_danmu_config`?**
It retrieves the WebSocket details needed for connection. This gives your AI client the full configuration required to listen to real-time Danmu chat streams automatically, bypassing manual setup in your code.

**What does `get_stream_categories` provide so I can filter content types?**
It returns a comprehensive list of all available game and IRL categories. This lets your agent filter streams by specific genres, ensuring you only analyze relevant content types (e.g., 'LoL' or 'Gaming').

**If I use `follow_streamer`, do I need to worry about authentication tokens or rate limits?**
The tool requires an OAuth token for continuous following. You must manage this token in your client setup. While the MCP handles basic retries, remember that high-volume polling might hit API usage limits.

**What kind of data can I get about virtual items using `get_gift_list`?**
It provides a list of all active virtual gifts available in a room. This is useful for analyzing the community's economic activity and understanding what types of donations or support are popular right now.

**Can my AI automatically aggregate bullet-chat density from a major active esports broadcast directly?**
Yes! Utilize the `get_room_danmu` integration command. Your agent will dynamically hook to the channel pinging the rapid incoming stream mapping it natively to your terminal workspace seamlessly bypassing clunky UI obstacles totally and continuously.

**How do I easily discover what tier of streamer category dominates the current local timezone traffic?**
Direct your agent to use the `search_category_metrics` tool checking the highest weighted nodes inside the response hierarchy sorting viewership metrics heavily bypassing raw unstructured noise dynamically avoiding manual page scrolling routines completely.

**Are there any destructive capabilities regarding overarching account deletions or unapproved streaming executions?**
No. The core structure isolates tasks strictly on retrieving passive data arrays without injecting changes downstream blocking inherently all write pathways firmly bypassing structural mutations altogether in the process loop constantly running below.