WuWa MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@WuWa MCP Servershow me details about the character Jiyan"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
鸣潮 MCP Server
一个 Model Context Protocol (MCP) 服务器,用于获取《鸣潮》游戏的角色和声骸信息,并以 Markdown 格式返回,方便大型语言模型使用。
📄 English Documentation | 🇨🇳 中文文档
🚀 最新更新 (v2.0.1)
🏗️ 架构重构:采用领域驱动设计(DDD)架构,清晰的分层结构
🔧 代码质量:集成 ruff 代码格式化和静态分析工具
📝 现代化语法:使用 Python 3.12+ 现代类型注解 (dict/list 替代 Dict/List)
🧹 代码清理:移除旧有代码,统一代码风格和质量标准
✅ 支持 Streamable HTTP 传输:支持 Smithery 的新 HTTP 传输协议
🔄 向后兼容:同时支持传统的 STDIO 和新的 HTTP 传输模式
🌐 云端部署就绪:完美适配 VPS、Google Cloud Run、AWS Lambda 等云环境
📦 依赖注入:使用依赖注入容器管理服务实例
🐳 Docker 优化:使用 uv 的多阶段构建,提升构建速度并减小镜像体积
Related MCP server: purupuru-codex
功能特点
角色信息查询:获取《鸣潮》游戏中角色的详细信息
声骸信息查询:获取《鸣潮》游戏中声骸套装的详细信息
角色档案查询:获取《鸣潮》游戏中角色的档案信息
LLM 友好输出:结果格式特别为大型语言模型优化
双传输模式:支持 STDIO 和 Streamable HTTP 传输
安装方法
通过 Smithery 安装
要通过 Smithery 自动安装 WuWa MCP Server:
npx -y @smithery/cli@latest install @jacksmith3888/wuwa-mcp-server --client claude --key YOUR_SMITHERY_KEYs通过 uv 安装
直接从 PyPI 安装:
uv pip install wuwa-mcp-server使用方法
与 Cherry Studio 一起运行
在设置中点击 MCP 服务器
添加以下配置:
{
"mcpServers": {
"wuwa-mcp": {
"command": "uvx",
"args": ["wuwa-mcp-server"]
}
}
}与 Claude Desktop 一起运行
创建或编辑您的 Claude Desktop 配置文件:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\\Claude\\claude_desktop_config.json
添加以下配置:
{
"mcpServers": {
"wuwa-mcp": {
"command": "uvx",
"args": ["wuwa-mcp-server"]
}
}
}重启 Claude Desktop
可用工具
1. 角色信息工具
async def get_character_info(character_name: str) -> str在库街区上查询角色详细信息并以 Markdown 格式返回。
参数:
character_name: 要查询的角色的中文名称
返回: 包含角色信息的 Markdown 字符串,或者在找不到角色或获取数据失败时返回错误消息。
2. 声骸信息工具
async def get_artifact_info(artifact_name: str) -> str在库街区上查询声骸详细信息并以 Markdown 格式返回。
参数:
artifact_name: 要查询的声骸套装的中文名称
返回: 包含声骸信息的 Markdown 字符串,或者在找不到声骸或获取数据失败时返回错误消息。
3. 角色档案工具
async def get_character_profile(character_name: str) -> str在库街区上查询角色档案信息并以 Markdown 格式返回。
参数:
character_name: 要查询的角色的中文名称
返回: 包含角色档案信息的 Markdown 字符串,或者在找不到角色或获取数据失败时返回错误消息。
开发和测试
本地运行
# STDIO 模式(默认)
uv run python -m wuwa_mcp_server.server
# HTTP 模式
TRANSPORT=http uv run python -m wuwa_mcp_server.server代码质量
项目使用 ruff 进行代码格式化和静态分析,确保代码质量和一致性。
安装开发依赖
uv sync --extra dev代码格式化和检查
# 格式化所有 Python 代码
uv run ruff format .
# 检查代码问题
uv run ruff check .
# 自动修复可修复的问题
uv run ruff check --fix .Ruff 配置
项目配置了以下代码质量规则:
行长度: 120 字符
目标 Python 版本: 3.12
启用规则: pycodestyle、pyflakes、isort、命名约定、pyupgrade、bugbear、代码简化等
Import 排序: 强制单行导入,项目模块优先级设置
Docker 部署
# 构建镜像
docker build -t wuwa-mcp-server .
# 运行容器(HTTP 模式)
docker run -p 8081:8000 wuwa-mcp-server
# 运行容器(STDIO 模式)
docker run -e TRANSPORT=stdio wuwa-mcp-server详细功能
结果处理
清理和格式化库街区数据
为 LLM 消费优化格式
支持并行处理提高性能
异步操作避免阻塞
传输模式
STDIO 传输:适用于本地客户端,如 Claude Desktop
Streamable HTTP 传输:适用于云端部署和远程访问
自动检测环境变量
TRANSPORT切换模式
贡献
欢迎提出问题和拉取请求!一些潜在的改进领域:
增加对更多《鸣潮》游戏内容的支持
增强内容解析选项
增加对频繁访问内容的缓存层
支持更多语言的本地化
许可证
本项目采用 MIT 许可证。
Available Tools
3 toolsget_artifact_infoA
获取库街区上的声骸详细信息并以 Markdown 格式返回。
Args:
artifact_name: 要查询的声骸套装的中文名称。
Returns:
包含声骸信息的 Markdown 字符串,
或者在找不到声骸或获取数据失败时返回错误消息。
| Name | Required | Description | Default |
|---|---|---|---|
| artifact_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the tool returns Markdown-formatted data or error messages on failure, which is useful behavioral context. However, it doesn't mention other traits like rate limits, authentication needs, data freshness, or whether it's a read-only operation (though implied by 'get'). For a tool with no annotations, this is adequate 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded: the first sentence states the core purpose and output format. The Args and Returns sections are structured clearly without unnecessary details. Every sentence earns its place by providing essential information, making it efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (1 parameter, no nested objects) and the presence of an output schema (which handles return values), the description is mostly complete. It covers the purpose, parameter semantics, and output behavior. However, it lacks usage guidelines and deeper behavioral context (e.g., error conditions beyond 'not found' or 'failure'), which slightly reduces completeness for a tool with no annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, so the description must compensate. It adds meaning by specifying that 'artifact_name' is the Chinese name of the artifact set to query, which clarifies the parameter's purpose beyond the schema's generic 'Artifact Name' title. Since there's only one parameter, this is sufficient to earn a high score, though it doesn't detail format constraints or examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: '获取库街区上的声骸详细信息' (get detailed information about artifacts from the library district). It specifies the verb (获取/get) and resource (声骸详细信息/artifact details), and mentions the output format (Markdown). However, it doesn't explicitly differentiate from sibling tools like get_character_info, which likely retrieves character information instead of artifacts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools (get_character_info, get_character_profile) or clarify scenarios where this tool is appropriate versus others. The only implied usage is when artifact details are needed, but no explicit context or exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_character_infoA
获取库街区上的角色详细信息包括角色技能,养成攻略等,并以 Markdown 格式返回。
Args:
character_name: 要查询的角色的中文名称。
Returns:
包含角色信息的 Markdown 字符串,
或者在找不到角色或获取数据失败时返回错误消息。
| Name | Required | Description | Default |
|---|---|---|---|
| character_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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 mentions the output format (Markdown) and error handling (returns error message if character not found or data retrieval fails), which adds useful context beyond basic functionality. However, it doesn't cover rate limits, authentication needs, or other operational traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded, with the core purpose stated first. The Args and Returns sections are structured but slightly verbose; every sentence earns its place by providing essential details like output format and error handling, though it could be more streamlined.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (1 parameter, no annotations, but with output schema), the description is fairly complete. It explains the purpose, parameter semantics, output format, and error handling. The presence of an output schema means it doesn't need to detail return values, but it could benefit from more usage guidelines to address sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds significant meaning beyond the input schema, which has 0% description coverage. It specifies that 'character_name' must be the Chinese name of the character, clarifying language and format requirements not evident from the schema alone. This compensates fully for the schema's lack of documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: to retrieve detailed character information including skills and cultivation guides from '库街区' (likely a game or platform). It specifies the verb '获取' (get/retrieve) and resource '角色详细信息' (character details), but doesn't explicitly differentiate from sibling tools like 'get_character_profile' which might have overlapping functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'get_character_profile' or 'get_artifact_info'. It mentions the parameter 'character_name' but doesn't explain context, prerequisites, or exclusions for usage. The agent must infer usage from the purpose alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_character_profileB
获取库街区上的角色档案信息并以 Markdown 格式返回。
Args:
character_name: 要查询的角色的中文名称。
Returns:
包含角色档案信息的 Markdown 字符串,
或者在找不到角色或获取数据失败时返回错误消息。
| Name | Required | Description | Default |
|---|---|---|---|
| character_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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 fetches and returns data in Markdown format, and mentions error handling for missing characters or failures. However, it lacks details on authentication needs, rate limits, data sources, or whether it's read-only (implied but not explicit). For a tool with zero annotation coverage, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded, starting with the core purpose. The Args and Returns sections are structured but could be more integrated. There's minimal waste, though the formatting with indentation is slightly verbose. Overall, it's efficient for its content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (1 parameter, no nested objects) and the presence of an output schema (which handles return values), the description is moderately complete. It covers the basic purpose and parameter semantics but lacks usage guidelines and behavioral details like error types or data freshness. With no annotations, it should do more to compensate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds significant meaning beyond the input schema, which has 0% coverage. It specifies that 'character_name' is '要查询的角色的中文名称' (the Chinese name of the character to query), clarifying language and context. With only one parameter and no schema descriptions, this compensation is effective, though not exhaustive (e.g., no format examples).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: '获取库街区上的角色档案信息并以 Markdown 格式返回' (Get character profile information from the library district and return it in Markdown format). This specifies the verb (get), resource (character profile), and output format (Markdown). However, it doesn't explicitly differentiate from sibling tools like 'get_character_info', which likely serves a similar purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It mentions the parameter 'character_name' and what happens on success/failure, but offers no context about prerequisites, when to choose this over 'get_character_info', or any usage constraints. This leaves the agent without direction on tool selection.
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.
3 tool updates
v1.0.0- Changed
get_artifact_info1 field changed- added
Input schema / titleAdded value: +"get_artifact_infoArguments"
- Changed
get_character_info1 field changed- added
Input schema / titleAdded value: +"get_character_infoArguments"
- Changed
get_character_profile1 field changed- added
Input schema / titleAdded value: +"get_character_profileArguments"
3 tool updates
- First observed
get_artifact_info - First observed
get_character_info - First observed
get_character_profile
TDQS
Scored across 3 tools
The tools 'get_character_info' and 'get_character_profile' have significant overlap, both querying character data by Chinese name and returning Markdown. While 'get_character_info' includes skills and guides, and 'get_character_profile' focuses on profile details, their purposes are not clearly distinct, leading to potential confusion. 'get_artifact_info' is more distinct, targeting artifacts, but the character tools are ambiguous.
All tool names follow a consistent 'get_noun_info' or 'get_noun_profile' pattern using snake_case, with clear and predictable naming. 'get_artifact_info', 'get_character_info', and 'get_character_profile' maintain uniformity in structure and style, making them easily readable and organized.
With only 3 tools, the count feels thin for a game-related server like WuWa MCP Server, which might benefit from more operations such as updates, searches, or list functions. However, it covers basic retrieval needs, so it's borderline but not severely lacking.
The tool set is incomplete for a game data server, as it only provides retrieval (get) operations without create, update, delete, or list functions. There are obvious gaps in CRUD coverage, and the overlapping character tools suggest redundancy rather than comprehensive lifecycle management, which could lead to agent inefficiencies.
Maintenance
Related MCP Connectors
Web search, fetch, extract, and research for AI agents. Markdown output + AI-synthesized answers.
Web search, URL content extraction to Markdown, site mapping, and recursive web crawler.
Web scraping for AI agents. Converts URLs to clean, LLM-ready Markdown with anti-bot bypass.
Web data tools for AI agents: pages as markdown, search, maps, commerce, jobs, AI answers.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to search and access Arknights game data including operator information, enemy intelligence, skills, talents, and attributes through PRTS.wiki integration. Provides fuzzy search functionality for operators and enemies with clean Markdown output.9MIT
- FlicenseNot gradedqualityAmaintenanceEnables querying the Purupuru universe codex programmatically, including characters, locations, Jani variants, and Wuxing elements, with anti-hallucination validation and fuzzy search.-
- AlicenseAqualityCmaintenanceSearches Danbooru for anime/game characters and their associated tags, providing tools to retrieve character profiles, co-occurring tags, wiki descriptions, and tag implications.512MIT
- FlicenseAqualityDmaintenanceEnables AI assistants to look up World of Warcraft character information and reputation from Blizzard's Armory website.2-