wxapkg-mcp
Provides tools for inspecting, decrypting, and extracting WeChat Mini Program packages (.wxapkg files).
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., "@wxapkg-mcpList my WeChat Mini Program apps."
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.
wxapkg-mcp
Small MCP server for local .wxapkg inspection, decryption, and extraction.
This project was generated entirely by AI.
Use only on packages you own or are authorized to analyze. Do not commit or redistribute third-party Mini Program packages or extracted source code.
By default on Windows, the tool searches:
%APPDATA%\Tencent\xwechat\radium\users\*\applet\packagesThat keeps user-specific IDs such as 8e7b2... out of the code and lets each teammate run it on their own machine.
Install
cd $env:USERPROFILE\Desktop\wxapkg-mcp
python -m venv .venv
.\.venv\Scripts\python -m pip install -e .Related MCP server: wechat-miniapp-engineering-mcp
Project Layout
wxapkg-mcp/
|-- README.md
|-- pyproject.toml
|-- setup.py
|-- requirements.txt
|-- src/
| `-- wxapkg_mcp/
| |-- __init__.py
| |-- main.py
| |-- server.py
| |-- cli.py
| `-- core.py
|-- tests/
| `-- test_core.py
`-- .gitignoreCLI
.\.venv\Scripts\wxapkg-tool roots
.\.venv\Scripts\wxapkg-tool apps
.\.venv\Scripts\wxapkg-tool appid wx87ceadd15865a6fb "C:\out\wx87ceadd15865a6fb"
.\.venv\Scripts\wxapkg-tool inspect "C:\path\to\__APP__.wxapkg"
.\.venv\Scripts\wxapkg-tool decrypt "C:\path\to\__APP__.wxapkg" "C:\out\__APP__.wxapkg" --appid wx...
.\.venv\Scripts\wxapkg-tool extract "C:\out\__APP__.wxapkg" "C:\out\extracted"
.\.venv\Scripts\wxapkg-tool batch "C:\path\to\packages\wx...\13" "C:\out" --appid wx...MCP config
After installation, add this to your MCP client configuration:
{
"mcpServers": {
"wxapkg": {
"command": "wxapkg-mcp"
}
}
}Note: This assumes you have already run pip install -e . to install the package and make the command available.
Alternative: Using Python module directly
If you prefer to run it as a Python module without installing:
{
"mcpServers": {
"wxapkg": {
"command": "python",
"args": ["-m", "wxapkg_mcp.server"]
}
}
}Exposed tools:
find_wechat_package_rootslist_wechat_appsinspect_wxapkgdecrypt_wxapkgextract_wxapkgdecrypt_and_extract_dirdecrypt_and_extract_appid
For most agent workflows, call list_wechat_apps first, then decrypt_and_extract_appid with the chosen AppID. The server chooses the latest local version by default; pass version only when you need a specific version.
Available Tools
7 toolsdecrypt_and_extract_appidB
Find an AppID locally, choose the latest version by default, then decrypt and extract it.
| Name | Required | Description | Default |
|---|---|---|---|
| appid | Yes | ||
| version | No | ||
| output_dir | Yes | ||
| package_root | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavior. It mentions 'find locally' and 'decrypt and extract' but does not clarify side effects (e.g., file writes), required permissions, or whether the extraction is destructive.
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 a single concise sentence that front-loads the main action. It could be improved by breaking into steps, but remains efficient.
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 4 parameters, no schema coverage, and no annotations, the description is incomplete. It does not explain the output (despite output schema), the meaning of 'find locally', or the optional parameter 'package_root'.
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?
Schema coverage is 0%, so description should compensate. It only explains 'appid' and the default version behavior, omitting 'output_dir' and 'package_root', leaving their purpose unclear.
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 finds an AppID locally and then decrypts and extracts it, with 'choose the latest version by default' clarifying version selection. It distinguishes itself from siblings like decrypt_and_extract_dir and decrypt_wxapkg by targeting a specific app ID.
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 implies usage when an AppID is known and version selection is desired, but does not explicitly describe when to use this versus sibling tools or mention prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
decrypt_and_extract_dirB
Decrypt and extract every .wxapkg file in a package version directory.
| Name | Required | Description | Default |
|---|---|---|---|
| appid | No | ||
| base_path | Yes | ||
| output_dir | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states the basic operation but lacks disclosures about batch behavior (e.g., overwrite policy, error handling, permission requirements). With no annotations, more detail is needed for full transparency.
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?
Extremely concise at one sentence, but lacks structure (e.g., bullet points). It earns its place but could be slightly more organized.
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 batch processing complexity and missing parameter documentation, the description is incomplete. While an output schema exists, the absence of param semantics and usage context leaves significant gaps.
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?
With 0% schema coverage, the description should explain parameters, but it does not. base_path, output_dir, and appid are not described beyond the schema field names, providing no added meaning.
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 action (decrypt and extract) and target resource (every .wxapkg file in a package version directory), distinguishing it from siblings like decrypt_and_extract_appid which likely targets a single app.
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?
No guidance on when to use this tool versus alternatives (e.g., decrypt_and_extract_appid). No context on prerequisites or conditions, leaving the agent without decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
decrypt_wxapkgC
Decrypt a local V1MMWX wxapkg file. AppID can be derived from wx... paths.
| Name | Required | Description | Default |
|---|---|---|---|
| appid | No | ||
| input_path | Yes | ||
| output_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description carries full burden but only says 'Decrypt' and hints at AppID. No disclosure of side effects (e.g., file overwrites), permissions, or error behavior.
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?
Two sentences, no fluff, but could be improved by front-loading key information. Concise but somewhat underspecified.
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 has 3 parameters, an output schema, and several siblings, the description is too short. It does not explain the output, relationship to siblings, or what 'V1MMWX' implies.
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?
Schema coverage is 0%, so description must compensate. It only mentions AppID derivation, but does not explain input_path or output_path formats, or the meaning of the nullable appid parameter.
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?
Description clearly states it decrypts a local V1MMWX wxapkg file, with specific action and resource. Mention of AppID derivation adds context, distinguishing it slightly from siblings that might not mention AppID.
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?
No guidance on when to use this tool versus alternatives like decrypt_and_extract_appid or extract_wxapkg. No prerequisites 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.
extract_wxapkgC
Extract a decrypted wxapkg file into output_dir.
| Name | Required | Description | Default |
|---|---|---|---|
| output_dir | Yes | ||
| wxapkg_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only states 'Extract', giving minimal behavioral detail. It does not disclose potential side effects like overwriting, permissions required, or error handling beyond the basic action.
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 extremely concise at one sentence, but this brevity sacrifices essential detail. It is not front-loaded with critical information like prerequisites or output expectations.
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 extracts files with two parameters and has an output schema, the description is incomplete. It does not explain the output structure, behavior on existing files, or error cases, which are important for a file extraction tool.
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?
Schema description coverage is 0%, and the tool description provides no additional meaning for the parameters. It names 'wxapkg_path' and 'output_dir' but offers no explanation of expected formats, valid ranges, or constraints beyond the schema types.
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 uses the verb 'Extract' and specifies the resource as a 'decrypted wxapkg file' and the destination 'output_dir'. It clearly distinguishes from siblings that handle decryption or inspection, though it does not explicitly differentiate from decrypt_and_extract_* tools.
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 implies the input must be decrypted but provides no guidance on when to use this tool versus alternatives. It does not state prerequisites, such as needing a decrypted file first, or mention conditions like file conflicts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_wechat_package_rootsB
Find local WeChat Mini Program package roots for the current Windows user.
| Name | Required | Description | Default |
|---|---|---|---|
| search_roots | No |
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, placing full burden on the description. It only states the tool finds roots for the current Windows user but does not disclose effects of the search_roots parameter, any system access details, or potential side effects. Behavior is underspecified.
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 a single sentence that efficiently conveys the core purpose. It is concise but could benefit from more structured information about parameters and output.
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?
The description is minimal and does not explain what constitutes a 'package root', how the tool determines them, or what the output represents. Even with an output schema present, the agent lacks context for correct interpretation.
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 single parameter search_roots has no description in the schema (0% coverage) and the tool description does not explain its meaning. The agent cannot determine whether it limits search, specifies directories, or modifies behavior.
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 finds local WeChat Mini Program package roots for the current Windows user. It uses specific verbs and resource, and the purpose is distinct from sibling tools that decrypt, extract, or inspect wxapkg files.
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 implies usage for Windows users to find package roots, but does not explicitly state when to use this tool versus alternatives like list_wechat_apps or inspect_wxapkg. No guidance on prerequisites or exclusions is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inspect_wxapkgC
Inspect a local wxapkg file and report whether it is encrypted or extractable.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description is the sole source of behavioral info. It implies a read-only inspection but does not disclose what exactly is checked (e.g., file format, header bytes) or any side effects.
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?
Single sentence, 14 words, very concise. No fluff. However, it could be structured to front-load the most critical info (verb+resource) which it does.
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 no annotations, low schema coverage, and a single parameter, the description is too brief. It does not explain what 'report' means or cover error cases, leaving the agent underinformed.
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?
Schema has 1 parameter 'path' with 0% description coverage. The description only says 'local wxapkg file' which hints at the parameter but adds no format, validity, or usage details.
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 states specific verb 'Inspect' and resource 'local wxapkg file' and purpose 'report whether it is encrypted or extractable'. This clearly distinguishes it from sibling tools that perform decryption or extraction.
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?
No explicit guidance on when to use this tool versus alternatives like decrypt_wxapkg or extract_wxapkg. The description only states what it does, not when to prefer it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_wechat_appsC
List discovered AppIDs and their latest local package versions.
| Name | Required | Description | Default |
|---|---|---|---|
| package_root | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations; description only says 'list' without explaining side effects, prerequisites, or behavior when no packages found. Minimal transparency.
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?
Single sentence is concise but lacks information; could be expanded while staying concise.
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?
Despite having an output schema, the description fails to explain the optional parameter or how the tool fits into the workflow with siblings. Incomplete for effective use.
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?
Parameter 'package_root' has 0% schema description coverage; tool description does not mention it at all, leaving the agent with no clue about its purpose or effect.
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?
Clearly states it lists AppIDs and their latest versions; specific verb and resource. Distinguishes from sibling decryption/extraction tools.
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?
No guidance on when to use this tool vs. siblings. Sibling names suggest context but description offers no explicit when or when-not.
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.
7 tool updates
v0.1.0- First observed
decrypt_and_extract_appid - First observed
decrypt_and_extract_dir - First observed
decrypt_wxapkg - First observed
extract_wxapkg - First observed
find_wechat_package_roots - First observed
inspect_wxapkg - First observed
list_wechat_apps
TDQS
Scored across 7 tools
Tools have distinct purposes, though 'decrypt_and_extract_appid' and 'decrypt_and_extract_dir' both combine decrypt and extract, potentially confusing an agent that only wants one step. Overall, the set is well-separated.
All tool names follow a consistent verb_noun pattern in snake_case, such as 'decrypt_wxapkg' and 'list_wechat_apps', making them predictable.
With 7 tools, the server is well-scoped for its domain—covering listing, inspection, decryption, and extraction without being overly numerous or sparse.
The tool set covers the full workflow for WeChat Mini Program packages: finding, listing, inspecting, decrypting, and extracting. No obvious gaps for the stated purpose.
Maintenance
Related MCP Connectors
MCP server for hex.pm and hexdocs.pm: search, inspect, compare, and audit Elixir packages
Publish and discover MCP servers via the official MCP Registry. Powered by HAPI MCP server.
MCP server for accessing curated awesome list documentation
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA Python MCP server that decompiles Android APK/XAPK/JAR/AAR files and extracts HTTP APIs used by the app.7Apache 2.0
- AlicenseBqualityCmaintenanceA Chinese-friendly, locally running MCP server for WeChat Mini Program engineering, helping developers break down ideas into actionable tasks, inspect projects, generate blueprints, and perform security scans.255 npm1MIT
- AlicenseNot gradedqualityDmaintenanceA WeChat Mini Program decompilation MCP server that enables scanning, decompiling, and analyzing local WeChat mini program packages through MCP clients like Cherry Studio.3GPL 3.0
- FlicenseCqualityDmaintenanceMCP server for reading local WeChat data, enabling AI assistants to query chat history, contacts, sessions, and more via MCP tools.207-