Skip to main content
Glama
Beltran12138

wecom-docs-mcp-server

by Beltran12138

wecom-docs-mcp-server

MCP Python License: MIT Tests

An ergonomic stdio MCP facade over WeCom's official robot-doc MCP backend. It proxies all 25 backend tools verbatim and adds a transform layer that makes the raw output usable by LLM agents:

  • Schema passthrough — the tool list is fetched from the backend at startup, so it auto-tracks official updates. Zero schema maintenance.

  • Cell unwrap — smartsheet values[field] = [{"type":"text","text":...}] cells become plain scalars (in a _rows view).

  • ms → ISO — 13-digit ms-epoch timestamps (create_time, update_time) convert to ISO 8601.

  • Chinese error hintserrcode 851003 etc. get _error_summary + _error_hint so the agent learns the fix, not just the code.

Relationship to the backend: This server requires the official robot-doc MCP backend (an apikey from WeCom admin → 智能文档机器人 → API). It is a thin proxy + ergonomics layer, not a replacement.


Why this exists

The official robot-doc backend is an HTTP (StreamableHttp) MCP server. Two friction points: (1) many MCP clients and dev workflows prefer stdio; (2) its raw output is agent-hostile — nested cell format, ms-epoch strings, opaque error codes. This server bridges both:

official robot-doc

this server

Transport

HTTP (StreamableHttp)

stdio

Tool schema

raw 25 tools

same 25, passthrough

Cell format

[{"type":"text",...}]

unwrapped scalars (_rows)

Timestamps

ms-epoch strings

ISO 8601

Error codes

851003 only

+ Chinese summary + fix hint

apikey

required

required (proxied)


Related MCP server: dingtalk-wiki-mcp

Requirements

  • Python 3.9+

  • A WeCom 智能文档机器人 (Smart Doc Bot) with its API key — available to enterprises (≥10 members) via WeCom admin → 应用管理 → 智能文档机器人 → API.


Install

pip install wecom-docs-mcp-server

Or clone + editable:

git clone https://github.com/Beltran12138/wecom-docs-mcp-server
cd wecom-docs-mcp-server
pip install -e .

Configuration

Variable

Required

Description

WECOM_MCP_APIKEY

yes

robot-doc apikey

WECOM_MCP_BASE_URL

no

override backend URL (default https://qyapi.weixin.qq.com/mcp/robot-doc)

Claude Desktop (claude_desktop_config.json)

{
  "mcpServers": {
    "wecom-doc": {
      "command": "wecom-docs-mcp-server",
      "env": { "WECOM_MCP_APIKEY": "your_apikey_here" }
    }
  }
}

Tools

All 25 backend tools are exposed verbatim (fetched live at startup). By domain:

Domain

Read

Write

doc

get_doc_content

create_doc, edit_doc_content, upload_doc_image, upload_doc_file

smartsheet (智能表)

get_sheet, get_fields, get_records

add/update/delete × sheet/fields/records

sheet (电子表格)

get_info

add_sub, delete_sub, update_range_data, append_data

smartpage (智能页面)

get_export_result

create, export_task

Permission model (empirically observed 2026-07): get_doc_content and smartsheet_get_* use independent permission scopes. A bot may read a smartsheet via smartsheet_get_records (errcode 0) yet get 851003 no authority from get_doc_content on the same doc. Route reads by doc type.


Transforms (the value-add)

Applied automatically on every tools/call response:

  1. _rows on smartsheet_get_records — a flattened view where cells are unwrapped to scalars and top-level record fields (record_id, create_time, …) are preserved. The original records array is kept intact.

  2. ms → ISO on all successful dict payloads — 13-digit ms-epoch strings → ISO 8601. Alphanumeric IDs (q979lj) are untouched.

  3. _error_summary + _error_hint on any non-zero errcode — Chinese explanation + concrete fix.


Usage

Read a smartsheet end-to-end:

User: read https://doc.weixin.qq.com/smartsheet/s3_xxx?scode=yyy

Agent:
1. smartsheet_get_sheet(url=...)          → sheet_id (e.g. "q979lj")
2. smartsheet_get_fields(sheet_id, url)   → field schema (types, IDs)
3. smartsheet_get_records(sheet_id, url)  → records + _rows (cells unwrapped, timestamps ISO)

Pass the full url (with ?scode=) rather than guessing docid — the backend resolves it. Manually extracting docid by stripping prefixes is error-prone (empirically: 301085 invalid docid).


Troubleshooting

errcode

meaning

fix

851000

文档链接有误

check url + scode, or use docid

851002

文档类型与工具不兼容

smartsheet → use smartsheet_get_*

851003

无文档权限

smartsheet 用 smartsheet_get_*;普通文档查后台权限

851008

缺文档内容读取权限

企微后台 → 机器人 → API 权限

301085

无效 docid

用完整 url 含 scode

40058

参数缺失

smartsheet 需 sheet_id(先 get_sheet)


Project

Focus

official robot-doc MCP

backend (HTTP, ≥10 人企业)

wecom-bot-mcp-server

bot messaging via webhook

this server

robot-doc stdio proxy + ergonomics


Tests

pip install -e ".[dev]"  # or: pip install pytest httpx
pytest

25 unit tests cover SSE/JSON parsing, ms-timestamp normalization, cell unwrap, error humanizing, and server routing/post-processing — all offline (httpx mocked).


License

MIT

Install Server
A
license - permissive license
A
quality
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • -
    license
    -
    quality
    -
    maintenance
    A tool designed to help users connect AI Agents with the Feishu/Lark platform, encapsulating Feishu/Lark Open Platform API interfaces as MCP tools for document processing, conversation management, calendar scheduling and more.
    8,384

View all related MCP servers

Related MCP Connectors

  • Google Docs MCP Pack — read, create, and edit Google Docs via OAuth.

  • Free public MCP for AI agents — 193 tools, 44 workflows. No API key.

  • Markdown-first MCP server for Notion API with 8 composite tools and 39 actions.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Beltran12138/wecom-docs-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server