wjx-ai-kitBLOCK
问卷星 OpenAPI 全栈工具包:TypeScript SDK + MCP Server + CLI
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
问卷星官方开源 AI 工具包:SDK 提供共享业务基础层,CLI 是完整的主入口,MCP Server 提供面向原生 MCP 客户端的核心业务子集。
从这里开始
CLI 是默认入口:它不要求客户端支持 MCP,适合 AI Agent、自动化脚本和人工终端操作。MCP 处于 secondary / maintenance-mode 定位,只覆盖核心业务子集;初始化、诊断、profile、补全、参考/schema、更新和 Skill 安装保持 CLI-only。SDK 用于程序化集成;Agent/Skill 只是工作流层,不是独立 API 层。完整差异见 能力矩阵。
安装
当前源码版本为 0.4.5。发布到 npm 后,registry 的 latest 将指向 0.4.5。直接安装 CLI:
通过 AI 安装并启用 wjx-cli:先执行npm install -g wjx-cli@latest,成功后再执行wjx skill install --force;安装后命令名是wjx,请用wjx --version验证,不要运行wjx-cli --version。
npm install -g wjx-cli@latest wjx skill install --force wjx init --api-key "你的问卷星 API Key" wjx doctor
让 AI 自动完成安装
把下面整段话发给你的 AI 助手。它应按顺序执行,拿到 API Key 前暂停等待,不要跳过最后的连接验收:
请帮我安装并配置问卷星 CLI(wjx-cli): 0. 预检当前操作系统和 shell。检查 `node --version`、`npm --version`,并在命令可用时先检查 `wjx --version`。Windows 还要用 `Get-Command node,npm,wjx -ErrorAction SilentlyContinue`、`where.exe node`、`where.exe npm`、`where.exe wjx`,并检查 `C:\Program Files\nodejs\node.exe` 和 `%LOCALAPPDATA%\Programs\nodejs\node.exe`。同时记录 `npm prefix -g`,确认 npm 全局 bin 在当前 PATH。一个 shell 报“找不到命令”不能证明软件未安装。 1. 若绝对路径能找到 Node.js,直接用该路径验证版本;若只是当前 shell 的 PATH 未刷新,刷新 PATH 或启动新的 shell 后重新检查。只有确认 Node.js 不存在时才引导我从 https://nodejs.org 安装 LTS;版本低于 20 时停止并引导升级。不要在证据不足时运行 winget、安装器或后台安装进程。安装/升级后必须在新进程再次验证 `node --version` 和 `npm --version`。 2. Node.js >= 20 且 npm 可用后,先检查 `wjx --version`。若 wjx 已存在且版本 >= 0.4.1,跳过重复安装;若 wjx 缺失、版本过低或执行失败,才执行 `npm install -g wjx-cli@latest`。npm 包名是 `wjx-cli`,安装后的命令名是 `wjx`;npm 退出码为 0 不等于安装完成,必须刷新 PATH(如有需要)并再次运行 `wjx --version`。每个命令都要读取自身的真实退出码,不要用 `head`/`tail` 管道的退出码代替。禁止运行 `wjx-cli --ver
d405ad5ab955OBSERVED · 2026-10-10Connect
Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.
claude mcp add wjx-survey-ppt --env MCP_AUTH_TOKEN=${MCP_AUTH_TOKEN} --env MCP_LEGACY_BEARER_API_KEY=${MCP_LEGACY_BEARER_API_KEY} --env WJX_API_KEY=${WJX_API_KEY} --env WJX_APP_KEY=${WJX_APP_KEY} -- npx -y [email protected]{
"mcpServers": {
"wjx-survey-ppt": {
"command": "npx",
"args": [
"-y",
"[email protected]"
],
"env": {
"MCP_AUTH_TOKEN": "${MCP_AUTH_TOKEN}",
"MCP_LEGACY_BEARER_API_KEY": "${MCP_LEGACY_BEARER_API_KEY}",
"WJX_API_KEY": "${WJX_API_KEY}",
"WJX_APP_KEY": "${WJX_APP_KEY}"
}
}
}
}Exposed tools (66)
35 read · 22 write · 9 destructive. Blast radius: 9 tools can delete or overwrite — an agent that can be talked into calling a tool can be talked into calling this one.
| Tool | Risk | Description |
|---|---|---|
add_admin | write | |
add_contacts | write | |
add_department | write | |
add_participants | write | |
add_sub_account | write | |
add_tag | write | |
bind_activity | read | |
build_preview_url | read | |
build_submit_template | write | |
build_survey_url | read | |
calculate_csat | read | |
calculate_nps | read | |
clear_recycle_bin | destructive | |
clear_responses | destructive | |
compare_metrics | read | |
count_responses | read | |
create_ai_page | write | |
create_survey_by_json | write | |
create_survey_from_definition | write | |
decode_push_payload | write | |
decode_responses | read | |
delete_admin | destructive | |
delete_contacts | destructive | |
delete_department | destructive | |
delete_participants | destructive | |
delete_sub_account | destructive | |
delete_survey | destructive | |
delete_tag | destructive | |
detect_anomalies | read | |
download_responses | read | |
generate_wjx_dsl | read | |
get_360_report | read | |
get_config | read | |
get_question_tags | read | |
get_report | read | |
get_short_link | read | |
get_survey | read | |
get_survey_settings | read | |
get_tag_details | read | |
get_winners | read | |
list_departments | read | |
list_surveys | read | |
list_tags | read | |
modify_department | write | |
modify_participants | write | |
modify_response | write | |
modify_sub_account | write | |
modify_tag | write | |
query_contacts | read | |
query_responses | read | |
query_responses_realtime | read | |
query_sub_accounts | read | |
query_survey_binding | read | |
query_user_surveys | read | |
query_wjx_dsl | read | |
restore_admin | read | |
restore_sub_account | read | |
sso_partner_url | read | |
sso_subaccount_url | read | |
sso_user_system_url | read | |
submit_response | write | |
update_ai_page | write | |
update_survey_from_definition | write | |
update_survey_settings | write | |
update_survey_status | write | |
upload_file | write |
Trust audit
BLOCKgrade F · trust 51/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | FAIL |
| L2 | Instruction surface (what it tells the agent) | FAIL |
| L3 | Class-specific surface | WARN |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- declared (7 observation(s))
- Network
- declared (6 observation(s))
- Shell
- declared (5 observation(s))
- Dependencies
- not all pinned
- Secrets in source
- found
Findings (25)
if command -v sudo &> /dev/null && sudo "$NPM_BIN" install -g wjx-cli@latest; then
echo " Ubuntu: curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - && sudo apt-get install -y nodejs"
echo " CentOS: curl -fsSL https://rpm.nodesource.com/setup_20.x | sudo bash - && sudo yum install -y nodejs"
print_info "尝试 sudo..."
if command -v sudo &> /dev/null; then
- **`isAiAgentEnv()` 扩展**:识别 wjx-docs 中提及的全部 AI Agent 场景(Claude Code/Desktop、Cursor、Windsurf、Cline、Copilot、Trae、Gemini、Qoder、各类 Claw/工作台)。
submitdata = readFileSync(fileOpt, "utf8").replace(/^/, "").trimEnd();
submitdata = readFileSync(fileOpt, "utf8").replace(/^/, "").trimEnd();
setCredentialProvider(() => ({ apiKey: "mcp-invalid-version-key" }));setCredentialProvider(() => ({ apiKey: "mcp-explicit-version-key" }));setCredentialProvider(() => ({ apiKey: "mcp-explicit-version-failure-key" }));clear_recycle_bin, clear_responses, delete_admin, delete_contacts, delete_department, delete_participants, delete_sub_account, delete_survey, delete_tag
const md5Hex = createHash("md5").update(appKey, "utf-8").digest("hex");const signature = createHash("sha1").update(rawBody + appKey, "utf-8").digest("hex");const md5Hex = createHash("md5").update(appKey, "utf-8").digest("hex");const expected = createHash("sha1").update(rawBody + appKey, "utf-8").digest("hex");const md5Hex = createHash("md5").update(appKey, "utf-8").digest("hex");const packageJson = require("../../package.json");import type { WjxApiResponse, WjxCredentials, FetchLike } from "../../core/types.js";import { Action } from "../../core/constants.js";import { callWjxContactsApi, getWjxCredentials, getCorpId } from "../../core/api-client.js";import type { FetchLike, WjxApiResponse, WjxCredentials } from "../../core/types.js";origin = "http://127.0.0.1",
WJX_API_URL: "http://127.0.0.1:1/openapi/default.aspx",
env: { WJX_CONFIG_PATH: configPath, WJX_API_URL: "http://127.0.0.1:1/openapi/default.aspx" },Gates applied: no_behavioural_pass.
d405ad5ab955full audit observations/trust-audit/mcp-server/wjxcom__wjx-ai-kit.json · Report an issue / request a re-scanAudit history
Every audit this server has had. A grade with a past is a grade somebody is still checking.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-10 | d405ad5ab955 | BLOCK | F | 51 | first audit |
Questions
What is the wjx-ai-kit MCP server?
问卷星 OpenAPI 全栈工具包:TypeScript SDK + MCP Server + CLI
What tools does wjx-ai-kit expose?
66 in total: 35 read-only, 22 that write, and 9 that can delete or overwrite (clear_recycle_bin, clear_responses, delete_admin, delete_contacts, delete_department). Every one is listed on this page with its risk.
Is wjx-ai-kit safe to connect to an agent?
No — not without reading the findings first. The audit graded it F (51/100) and found 6 critical or high issues in the source. Each one is listed on this page with the file and line it is on. Separately from the audit: 9 of its tools can destroy data, so scope the token you give it to what you actually need.
What credentials does wjx-ai-kit need?
It reads MCP_AUTH_TOKEN, MCP_LEGACY_BEARER_API_KEY, WJX_API_KEY and WJX_APP_KEY from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.
How does wjx-ai-kit run?
It speaks stdio and streamable-http, so it runs as a local process your client starts. It is published on npm as wjx-survey-ppt at 0.1.0.
How current is this page?
The grade is for one exact copy of the source (d405ad5ab955), read on 2026-10-10. The repository is watched and re-audited when it changes.