Skip to main content
Glama

🎬 WeTV MCP Server

The first MCP server for Chinese long-form video streaming. Search, discover, and explore dramas, variety shows, anime, and movies on WeTV and Tencent Video (腾讯视频).

npm version License: MIT MCP

中文文档


✨ What is this?

wetv-mcp is a Model Context Protocol (MCP) server that lets AI assistants (Claude, ChatGPT, Cursor, etc.) search and recommend content from WeTV and Tencent Video — the largest Chinese-language streaming platform with 350M+ monthly active users.

Why does this matter?

YouTube and Spotify already have MCP servers. But there's zero MCP coverage for Chinese long-form video content. This fills that gap.

When you ask your AI assistant "What Chinese drama should I watch?", it can now give you real answers with play links, ratings, cast info, and episode updates — all from WeTV/Tencent Video.


Related MCP server: Bilibili MCP Server

🚀 Quick Start

git clone https://github.com/aimeeluwang/wetv-mcp.git
cd wetv-mcp
npm install
npm run build

Then add to your MCP configuration:

{
  "mcpServers": {
    "wetv": {
      "command": "node",
      "args": ["/path/to/wetv-mcp/dist/index.js"]
    }
  }
}

💡 Replace /path/to/wetv-mcp with the actual path where you cloned the repo.

Configuration file locations:

  • Claude Desktop: ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows)

  • Cursor: .cursor/mcp.json in your project root

  • Windsurf: ~/.codebuddy/mcp.json

  • WorkBuddy: ~/.workbuddy/mcp.json

Option 2: Remote Mode (HTTP Server)

cd wetv-mcp

# Start HTTP server
npm run start:http
# Server runs at http://localhost:3000/mcp

Then connect via Streamable HTTP:

{
  "mcpServers": {
    "wetv": {
      "url": "http://localhost:3000/mcp"
    }
  }
}

🛠️ Available Tools

Tool

Description

Example Query

search_content

Full-text search across all content

"Search for Joy of Life on Tencent Video"

get_trending

Current trending/hot content rankings

"What's the hottest drama on WeTV right now?"

get_popular

Most popular content by combined score

"What are the most popular Chinese anime?"

get_content_detail

Detailed info (synopsis, cast, rating, episodes)

"Tell me about Chasing Jade — what's it about?"

get_episodes

Episode list with air dates and play links

"How many episodes does Joy of Life S3 have?"

get_recommendations

AI-powered personalized recommendations

"Recommend something romantic for date night"

Content Types Supported

  • 📺 Dramas (电视剧) — Chinese dramas, C-dramas, period/modern/fantasy

  • 🎭 Variety Shows (综艺) — Reality shows, talent competitions, talk shows

  • 🎌 Anime (动漫) — Chinese animation (donghua)

  • 🎬 Movies (电影) — Chinese films

  • 📹 Documentaries (纪录片)

Regions Supported

  • 🇨🇳 China Mainland (CN)

  • 🇹🇭 Thailand (TH) — WeTV

  • 🇮🇩 Indonesia (ID) — WeTV

  • 🇻🇳 Vietnam (VN) — WeTV

  • 🇲🇾 Malaysia (MY) — WeTV

  • 🇵🇭 Philippines (PH) — WeTV

  • 🌏 Global (GLOBAL)


💬 Example Conversations

"What Chinese drama should I watch?"

User: What's trending on WeTV right now?

AI (via get_trending): Here are the top 5 trending dramas:

1. 🥇 Joy of Life Season 3 (庆余年 第三季) ★8.6
   Political intrigue meets comedy. Zhang Ruoyun returns as Fan Xian.
   👉 Watch: https://v.qq.com/x/cover/mzc00200qyn3.html

2. 🥈 Chasing Jade (逐玉) ★8.3
   Dual female leads in an epic fantasy adventure across three realms.
   👉 Watch: https://v.qq.com/x/cover/mzc00200zy26.html

3. 🥉 Legend of the Hunter (猎人传说) ★8.4
   Republic-era mystery thriller set in a primeval forest.
   👉 Watch: https://v.qq.com/x/cover/mzc00200lrcs.html

"I'm in a romantic mood"

User: Recommend something romantic and sweet for tonight

AI (via get_recommendations with mood="romantic"):
Based on your mood, here are my picks:

1. Our Beautiful Encounters (我们的美好际遇) ★7.8
   Sweet office romance with a genius programmer meets CEO architect.

2. The Legend of Shen Li (与凤行) ★8.1
   Immortal romance starring Zhao Liying & Lin Gengxin.

3. Only For Love (以爱为营) ★7.6
   Top 3 on WeTV Southeast Asia — a charming CEO x journalist love story.

🏗️ Development

# Install dependencies
npm install

# Run in development mode (stdio)
npm run dev

# Run HTTP server in development mode
npm run dev:http

# Build for production
npm run build

# Start production (stdio)
npm start

# Start production (HTTP)
npm run start:http

Environment Variables

Variable

Default

Description

WETV_MCP_PORT

3000

HTTP server port


📡 API Endpoints (HTTP Mode)

Endpoint

Method

Description

/mcp

POST

MCP JSON-RPC requests

/mcp

GET

SSE stream for server notifications

/mcp

DELETE

Close session

/health

GET

Health check

/

GET

Server info & usage instructions


🗺️ Roadmap

  • 6 core tools (search, trending, popular, detail, episodes, recommendations)

  • Stdio + Streamable HTTP dual transport

  • Multi-region support (China + Southeast Asia)

  • Bilingual content (Chinese + English)

  • OAuth user authentication (watchlist, progress tracking)

  • Subtitle/transcript retrieval

  • Live WeTV API integration

  • Cast/crew deep profiles

  • Comment/danmaku AI summaries

  • Content analytics (B2B)


📄 License

MIT © aimeeluwang


🌟 Contributing

PRs welcome! See CONTRIBUTING.md for guidelines.

Key areas where contributions are appreciated:

  • Additional content data

  • New tools (subtitle search, comment analysis, etc.)

  • WeTV API integration

  • Multi-language subtitle support

  • Bug reports and feature requests


Built with ❤️ for the global C-drama community. The first MCP to bring Chinese streaming content to AI assistants.

Available Tools

6 tools
get_content_detailA

Get detailed information about a specific drama, movie, variety show, or anime on WeTV/Tencent Video (腾讯视频). Returns full details including synopsis, cast, rating, episode count, update schedule, play links, and available regions/subtitles.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesContent ID (obtained from search_content or get_trending results). Example: "qyn3" for Joy of Life Season 3

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It discloses the return contents (synopsis, cast, rating, etc.) and implies a read-only operation, but does not disclose potential specifics like authentication requirements, data freshness, or error conditions. This is acceptable but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, two sentences, front-loaded with the core purpose, then details. Every word earns its place without unnecessary fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description lists the key return fields (synopsis, cast, rating, episode count, update schedule, play links, regions/subtitles), providing a clear picture of what the tool returns. It could mention error handling or authentication, but for a simple single-parameter lookup, it is sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a description for the 'id' parameter, but the tool description adds meaningful provenance ('obtained from search_content or get_trending') and a concrete example ('qyn3'), which goes beyond the schema and helps the agent acquire the correct ID.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action ('Get detailed information') and resource ('specific drama, movie, variety show, or anime on WeTV/Tencent Video'). It distinguishes itself from sibling tools by focusing on a specific content item rather than searches or lists, and enumerates the types of details returned.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for obtaining comprehensive details about a single content item, contrasting with sibling tools for searching, trends, popularity, episodes, or recommendations. It provides clear context but does not explicitly name alternatives or state when not to use this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_episodesA

Get the episode list for a specific drama, anime, or variety show on WeTV/Tencent Video. Returns episode numbers, names, durations, air dates, and play links with subtitle information.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number, default 1
per_pageNoEpisodes per page, max 50, default 20
content_idYesContent ID (from search_content or get_trending). Example: "qyn3"

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavioral traits. It does mention the output fields, which helps set expectations, but it does not mention pagination behavior (page/per_page) or any prerequisites beyond providing a content_id. It doesn't contradict any annotations since none exist, but it leaves some behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences, front-loaded with the essential purpose and followed by a focused list of return fields. No redundant or unnecessary information is present.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-parameter tool with no output schema, the description lists all key return fields, which is helpful. However, it stops short of explaining how pagination works or how episodes are ordered, which would make it more complete. Overall, it covers the main use case adequately.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds context about content types and platform, but it doesn't significantly enrich the meaning of parameters beyond what the schema already provides. The schema already defines content_id, page, and per_page well.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function with a specific verb ('Get') and resource ('episode list'), and specifies the content types and platform ('specific drama, anime, or variety show on WeTV/Tencent Video'). It also lists the returned fields (episode numbers, names, durations, air dates, play links with subtitle info), which differentiates it from siblings like get_content_detail.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a clear context for use: retrieving episodes for a specific show, which implies it should be used when episode details are needed. It doesn't explicitly mention alternative tools or exclusions, but the stated scope is sufficient to guide an agent in most cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_recommendationsA

Get personalized content recommendations from WeTV/Tencent Video (腾讯视频) based on genre preferences, mood, or viewing context. This is the AI drama advisor - perfect for "what should I watch tonight?", "recommend something for a date", or "I'm in the mood for something exciting". Supports both Chinese and English genre/mood keywords.

ParametersJSON Schema
NameRequiredDescriptionDefault
moodNoCurrent mood or context. Supported: "relaxing/轻松", "exciting/热血", "romantic/浪漫", "suspenseful/烧脑", "funny/搞笑", "inspiring/励志", "date/约会", "family/家庭"
typeNoFilter by content type
genreNoPreferred genre in Chinese or English. Examples: "古装" (Historical), "悬疑" (Mystery), "甜宠" (Sweet Romance), "热血" (Action), "科幻" (Sci-Fi)
limitNoNumber of recommendations, max 10, default 5
regionNoFilter by region availability

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool is 'personalized' and an 'AI drama advisor', implying algorithmic curation, but does not disclose whether results are deterministic, how many results are returned, or what data is used for personalization. There is no mention of side effects, but as a recommendation tool, it is likely read-only. This is acceptable but lacks depth.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, front-loaded with the core function. Each sentence earns its place: the first defines the tool, the second provides practical examples, and the third clarifies language support. No fluff or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 5 parameters, no required fields, and no output schema. The description and schema cover input parameters well, but the description does not explain what the response looks like (e.g., a list of items with IDs and titles), which is important for an agent to chain subsequent calls like get_content_detail. This is a notable gap given the absence of an output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters. The description adds a general note about supporting 'both Chinese and English genre/mood keywords' and references 'viewing context', which aligns with the 'mood' parameter. This adds slight value beyond the schema but doesn't introduce new parameter semantics that aren't already present.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Get personalized content recommendations from WeTV/Tencent Video based on genre preferences, mood, or viewing context.' It uses a specific verb ('Get') and resource ('content recommendations'), and distinguishes itself from sibling tools like search_content and get_trending by emphasizing personalized, context-based suggestions. The 'AI drama advisor' phrasing reinforces its unique role.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides concrete use-case examples like 'what should I watch tonight?' and 'recommend something for a date', making it clear when to use the tool. However, it does not explicitly mention when not to use it or name alternative tools (e.g., get_trending for popularity-based picks, search_content for specific searches), leaving some implicit differentiation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_contentA

Search for dramas, variety shows, anime, movies, and documentaries on WeTV and Tencent Video (腾讯视频). Supports searching by title, actor, director, genre, or keywords in both Chinese and English.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number, default 1
typeNoFilter by content type
queryYesSearch keywords - title, actor name, director, genre, or any keyword. Supports Chinese and English. Examples: "庆余年", "Joy of Life", "张若昀", "古装"
regionNoFilter by region availability. CN=China, TH=Thailand, ID=Indonesia, VN=Vietnam, MY=Malaysia, PH=Philippines
languageNoFilter by subtitle language (ISO 639-1 code, e.g., "en", "th", "id", "vi")
per_pageNoResults per page, max 20, default 10

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavioral traits. It does not mention that this is a read-only operation, whether results are paginated, or any limitations (e.g., no results handling). It only lists search capabilities, lacking depth in behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long and front-loaded with the core function. Every word adds value, and there is no redundant or filler content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 6-parameter search tool with no output schema, the description is adequate but has gaps. It does not mention pagination, response format, or that region/language filters exist in the schema, which an agent might need for effective invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description repeats what the schema already provides (e.g., search by title, actor, director, genre, keywords; Chinese and English support) without adding new meaning beyond the parameter definitions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool searches for specific content types (dramas, variety shows, anime, movies, documentaries) on WeTV and Tencent Video. It uses the specific verb 'search' and lists search dimensions (title, actor, director, genre, keywords), distinguishing it from sibling tools like get_trending and get_content_detail.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

While the description implies this tool is for searching specific content, it does not explicitly state when to use it versus alternatives such as get_trending for discovery. No exclusions or preferred contexts are mentioned, but the purpose is self-evident.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 6 tool updatesv1.0.0
    • First observedget_content_detail
    • First observedget_episodes
    • First observedget_popular
    • First observedget_recommendations
    • First observedget_trending
    • First observedsearch_content

TDQS

A4.1/5.0

Scored across 6 tools

Disambiguation5/5

Each tool has a distinct purpose: search_content handles targeted queries, get_trending and get_popular are separated by time horizon, get_content_detail provides specifics, get_episodes lists episodes, and get_recommendations offers personalized suggestions. The overlap between trending/popular/recommendations is clearly explained in descriptions.

Naming Consistency4/5

All tools use a consistent verb-first pattern ('search' or 'get'), and most follow verb_noun structure. However, get_trending and get_popular omit the noun, using an adjective instead, which is a minor deviation from the otherwise uniform pattern.

Tool Count5/5

Six tools is a well-scoped size for a video content discovery server. Each tool serves a necessary function—search, browse, detail, episodes, and recommendations—without redundancy or bloat.

Completeness5/5

The tool set covers the complete user journey: discovering content (search, trending, popular, recommendations), understanding it (detail), and accessing episodes. There are no obvious gaps for the stated purpose of exploring WeTV/Tencent Video content.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that enables users to search for movie and TV show resources across multiple sources and validate video link playability. It supports both STDIO and SSE transport modes for seamless integration with AI applications.
    55 npm
    5
    MIT
  • A
    license
    Not graded
    quality
    F
    maintenance
    An MCP server that enables users to search Bilibili videos, access trending rankings, and retrieve detailed information about videos, content creators, and anime schedules. It allows AI applications to interact directly with Bilibili content via simple API interfaces.
    47 npm
    192
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    MCP server enabling AI assistants to search, analyze, and generate content for Xiaohongshu (RedNote), China's leading lifestyle social media platform.
    6
    9
    MIT