Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add sunnoy/openclaw-plugin-wecom --skill wecom-mcp-docgit clone --depth 1 https://github.com/sunnoy/openclaw-plugin-wecomWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/sunnoy/openclaw-plugin-wecom/wecom-mcp-doc)<a href="https://agentmods.dev/skills/sunnoy/openclaw-plugin-wecom/wecom-mcp-doc"><img src="https://agentmods.dev/badge/skills/sunnoy/openclaw-plugin-wecom/wecom-mcp-doc/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/sunnoy/openclaw-plugin-wecom/wecom-mcp-doc"><img src="https://agentmods.dev/badge/skills/sunnoy/openclaw-plugin-wecom/wecom-mcp-doc.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 8 findings, up to high
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- high Supply Chain · line 276 Remote code is downloaded and executed. This bypasses code review and could introduce malicious code.Fix: Avoid downloading and executing remote scripts. Use trusted packages from PyPI/npm. If remote fetch is required, verify checksums and use HTTPS.
- high Supply Chain · line 310 Remote code is downloaded and executed. This bypasses code review and could introduce malicious code.Fix: Avoid downloading and executing remote scripts. Use trusted packages from PyPI/npm. If remote fetch is required, verify checksums and use HTTPS.
- high Supply Chain · line 325 Remote code is downloaded and executed. This bypasses code review and could introduce malicious code.Fix: Avoid downloading and executing remote scripts. Use trusted packages from PyPI/npm. If remote fetch is required, verify checksums and use HTTPS.
- medium Privilege Escalation · line 149 Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.Fix: Avoid sudo/root unless strictly required. Prefer least-privilege patterns. If elevation is needed, document the justification and scope.
- medium Privilege Escalation · line 173 Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.Fix: Avoid sudo/root unless strictly required. Prefer least-privilege patterns. If elevation is needed, document the justification and scope.
- medium Data Exfiltration · line 310 Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.Fix: Verify the destination URL is trusted and necessary. Remove or replace with documented APIs. Ensure no secrets, tokens, or PII are transmitted.
- medium Data Exfiltration · line 325 Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.Fix: Verify the destination URL is trusted and necessary. Remove or replace with documented APIs. Ensure no secrets, tokens, or PII are transmitted.
- medium Data Exfiltration · line 352 Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.Fix: Verify the destination URL is trusted and necessary. Remove or replace with documented APIs. Ensure no secrets, tokens, or PII are transmitted.
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00197 | $0.05857 |
| Opus 5 | $0.00098 | $0.02929 |
| Sonnet 5 | $0.00039 | $0.01171 |
| Haiku 4.5 | $0.00020 | $0.00586 |
Grade A, and why
wecom-mcp-doc scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 10d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 547 lines — stays where its author put it; the contents beside it link to each section on GitHub.
使用分层
按三级暴露使用,避免每次都把全部细节加载进上下文:
- 先读本文件:只做任务分流、边界判断、字段类型速查、返回格式说明
- 需要具体 API 参数时再读
references/mcp-tools-reference.md - 需要可复制的 curl 命令时再读
references/curl-templates.md - 高频路径优先用
scripts/下的脚本,只有脚本不覆盖时才手写 curl
原则:本文件只放协议约束、字段格式速查、高频流程和返回示例;具体 API 参数下沉到参考文件。
硬约束(违反即失败)
MCP 协议
- 所有请求必须为 JSON-RPC 2.0:
{"jsonrpc":"2.0","id":"<ID>","method":"tools/call","params":{"name":"<tool>","arguments":{...}}} - 端点固定:
https://qyapi.weixin.qq.com/mcp/robot-doc - API Key 通过 URL QueryString 传入:
?apikey=$KEY - 必须带 Accept: application/json 请求头,否则返回 -32600 Not Acceptable
- 异步操作(
get_doc_content、smartpage_export_task→smartpage_get_export_result)必须轮询 - 轮询时仍需传入定位参数(
docid/url之一),不能只传task_id - 实际返回是
{result: {content: [{type: "text", text: "<JSON字符串>"}]}}。提取真正的业务 JSON 需多做一层JSON.parse(result.content[0].text)
凭据安全
- 禁止
echo/catAPI Key 到 stdout - 禁止将 API Key 赋给 shell 变量后再引用
- 脚本调用必须让脚本自己读取
/workspace/.wecom-mcp.env,不要把 API Key 作为命令行参数传入 - 手写 curl 时必须从配置文件内联读取:
$(grep -E '^WECOM_MCP_APIKEY=' /workspace/.wecom-mcp.env 2>/dev/null | cut -d= -f2-) - 配置文件
/workspace/.wecom-mcp.env权限必须是 600
智能表格(核心约束)
字段创建流程(必须严格按顺序)
新建智能表格后,默认子表自带一个名为 "文本"(create_doc 创建)或 "智能表列"(smartsheet_add_sheet 创建)的默认字段。
smartsheet_get_sheet→ 获取sheet_idsmartsheet_get_fields→ 查出默认字段的field_idsmartsheet_update_fields→ 将默认字段重命名为你需要的第1个字段名smartsheet_add_fields→ 只添加剩余字段(不含第1个)
如果跳过步骤3直接 add_fields,会多出一个无用的默认列。
记录写入 key 必须用字段标题
正确: {"姓名": [{"type":"text","text":"张三"}], "年龄": 25}
错误: {"f04Gwj": [{"type":"text","text":"张三"}]}
smartsheet_update_records 的 key_type
smartsheet_update_records 支持 key_type 参数:
CELL_VALUE_KEY_TYPE_FIELD_TITLE(默认)→ key 用字段标题CELL_VALUE_KEY_TYPE_FIELD_ID→ key 用字段 ID
不可更新的字段
创建时间、最后编辑时间、创建人、最后编辑人这四种字段不支持通过 update_records 更新。
各字段类型写入格式速查
| 字段类型 | 值格式 | 示例 |
|---|---|---|
| TEXT | [{"type":"text","text":"内容"}] |
数组必加外层方括号 |
| NUMBER/CURRENCY/PERCENTAGE/PROGRESS | 直接数字 | 100 |
| CHECKBOX | 布尔值 | true / false |
| SINGLE_SELECT/SELECT | [{"text":"选项内容"}] 或 [{"id":"选项id"}] |
不能用纯字符串 |
| DATE_TIME | ISO 格式字符串 | "2026-04-30" 或 "2026-04-30 14:30:00" |
| PHONE_NUMBER/EMAIL/BARCODE | 纯字符串 | "13800138000" |
| USER | [{"user_id":"成员ID"}] |
数组 |
| URL | [{"type":"url","text":"显示文本","link":"https://..."}] |
数组 |
| IMAGE | [{"image_url":"upload_doc_image获得的URL","title":"标题"}] |
数组 |
| ATTACHMENT | [{"file_id":"upload_doc_file获得的ID"}] |
数组 |
| LOCATION | [{"source_type":1,"id":"地点ID","latitude":"39.9","longitude":"116.4","title":"北京"}] |
数组 |
What ships with it
4 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 10d ago First seen · 547 lines · 197 tokens per session scan E 273bddeee8b0
wecom-mcp-doc is a skill published in the GitHub repository sunnoy/openclaw-plugin-wecom (705 stars, last pushed 3mo ago), licensed ISC. It adds 197 tokens to every session and 5,857 once invoked, about $0.0010 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
officecli-financial-model
Use this skill when the user wants to build a financial model — 3-statement model, DCF valuation, LBO, SaaS unit economics, sensitivity / scenario analysis, debt schedule, or fundraising projections — in Excel. Trigger on: 'financial model', '3-statement model', 'P&L + BS + CF', 'DCF', 'WACC', 'NPV', 'terminal value'…
officecli-data-dashboard
Use this skill to build a multi-element Excel dashboard — Dashboard sheet on open, multiple formula-driven KPI cards, multiple charts, sparklines, and conditional formatting — from CSV or tabular input. Trigger on: 'dashboard', 'KPI dashboard', 'analytics dashboard', 'executive dashboard', 'metrics dashboard', 'CSV to…
officecli-xlsx
Use this skill any time a .xlsx file is involved -- as input, output, or both. This includes: creating spreadsheets, financial models, dashboards, or trackers; reading, parsing, or extracting data from any .xlsx file; editing, modifying, or updating existing workbooks; working with formulas, charts, pivot tables, or…
officecli
Create, analyze, proofread, and modify Office documents (.docx, .xlsx, .pptx) using the officecli CLI tool. Use when the user wants to create, inspect, check formatting, find issues, add charts, or modify Office documents.
ha-data-analytics
A local-first data-analysis and reporting skill for CSV and spreadsheet files. It produces decision-ready analyses and shareable offline reports while separating facts, calculations, interpretations, and recommendations.
Workspace Data Analyst
Analyze CSV files in the workspace and summarize insights.