Skip to main content
Glama
README.md
<div align="center">

# ๐Ÿ“„ wecom-doc-mcp

**Let AI read your Enterprise WeChat docs โ€” in real time.**

[![MCP](https://img.shields.io/badge/MCP-Compatible-blue?style=for-the-badge&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJ3aGl0ZSI+PHBhdGggZD0iTTEyIDJMMiA3bDEwIDUgMTAtNS0xMC01ek0yIDE3bDEwIDUgMTAtNS0xMC01LTEwIDV6TTIgMTJsMTAgNSAxMC01LTEwLTUtMTAgNXoiLz48L3N2Zz4=)](https://modelcontextprotocol.io)
[![Node](https://img.shields.io/badge/Node.js-โ‰ฅ18-339933?style=for-the-badge&logo=node.js&logoColor=white)](https://nodejs.org)
[![TypeScript](https://img.shields.io/badge/TypeScript-5.7-3178C6?style=for-the-badge&logo=typescript&logoColor=white)](https://www.typescriptlang.org)
[![License](https://img.shields.io/badge/License-MIT-yellow?style=for-the-badge)](LICENSE)

<br/>

<p>
  <img src="https://img.shields.io/badge/ไผไธšๅพฎไฟก-ๆ–‡ๆกฃ-07C160?style=flat-square&logo=wechat&logoColor=white" />
  <img src="https://img.shields.io/badge/Claude_Code-Ready-D97706?style=flat-square" />
  <img src="https://img.shields.io/badge/Cookie-Auth-red?style=flat-square&logo=cookiecutter&logoColor=white" />
</p>

[English](#-why) ยท [ไธญๆ–‡](README_CN.md)

</div>

---

## ๐Ÿค” Why

> Enterprise WeChat documents sit behind SSO. AI assistants can't access them.

This MCP server bridges the gap: provide your browser cookie once, and the server handles authenticated fetching + HTML-to-Markdown conversion on every request.

```
๐Ÿ’ฌ "ๅธฎๆˆ‘็œ‹ไธ‹่ฟ™ไธชๆ–‡ๆกฃ: https://doc.weixin.qq.com/doc/w3_xxx"
         โ”‚
         โ–ผ
   โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”     ๐Ÿช      โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”     ๐Ÿ“     โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
   โ”‚ Claude Code  โ”‚ โ”€โ”€Cookieโ”€โ”€โ–ถ โ”‚  MCP Server   โ”‚ โ”€โ”€HTMLโ”€โ”€โ–ถ โ”‚ Markdown โ”‚
   โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜             โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜            โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
```

## ๐Ÿ› ๏ธ Tools

| Tool | Description |
|:-----|:------------|
| ๐Ÿ“– `fetch_wecom_doc` | Fetch a document by URL โ†’ return Markdown |
| ๐Ÿช `set_wecom_cookie` | Save cookie locally (`chmod 600`) |
| โœ… `check_wecom_auth` | Verify if saved cookie is still valid |

## ๐Ÿš€ Quick Start

### Step 1 โ€” Install

```bash
git clone https://github.com/Tiansiyu-tj/wecom-doc-mcp.git
cd wecom-doc-mcp
npm install
```

### Step 2 โ€” Register with Claude Code

Add to `~/.mcp.json`:

```json
{
  "mcpServers": {
    "wecom-doc": {
      "command": "npx",
      "args": ["tsx", "/path/to/wecom-doc-mcp/src/index.ts"]
    }
  }
}
```

### Step 3 โ€” Get Your Cookie ๐Ÿช

```
1. ๐ŸŒ  Open doc.weixin.qq.com โ†’ log in
2. ๐Ÿ”ง  F12 โ†’ Network tab
3. ๐Ÿ“‹  Click any request โ†’ copy the Cookie header value
```

### Step 4 โ€” Use It

```text
You:    ๅธฎๆˆ‘่ฎพ็ฝฎไผไธšๅพฎไฟก Cookie: <paste>
Claude: โœ… Cookie ๅทฒไฟๅญ˜

You:    ๅธฎๆˆ‘็œ‹ไธ‹่ฟ™ไธชๆ–‡ๆกฃ: https://doc.weixin.qq.com/doc/w3_xxx
Claude: # ๆ–‡ๆกฃๆ ‡้ข˜
        ่ฟ™ๆ˜ฏๆ–‡ๆกฃ็š„ๅ†…ๅฎน...
```

## ๐Ÿ“ Architecture

```
                          wecom-doc-mcp
                    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                    โ”‚                     โ”‚
  fetch_wecom_doc โ”€โ”€โ”ค  ๐Ÿ“ก /dop-api/opendocโ”‚
        โ”‚           โ”‚  Call WeChat's       โ”‚
        โ”‚           โ”‚  internal API for    โ”‚โ”€โ”€โ”€โ”€ ๐Ÿ“ Markdown
        โ”‚           โ”‚  document JSON data  โ”‚
        โ”‚           โ”‚                     โ”‚
        โ”‚           โ”‚  ๐Ÿงน cleanDocText    โ”‚
        โ”‚           โ”‚  Strip HYPERLINK     โ”‚
        โ”‚           โ”‚  markup โ†’ clean text โ”‚
        โ”‚           โ”‚                     โ”‚
        โ”‚           โ”‚  ๐Ÿ“„ Fallback:       โ”‚
        โ”‚           โ”‚  cheerio + turndown  โ”‚
        โ”‚           โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
        โ”‚
  set_wecom_cookie โ”€โ”€โ”€ ๐Ÿ’พ ~/.claude/wecom-doc-mcp/.env (mode 600)
        โ”‚
  check_wecom_auth โ”€โ”€โ”€ ๐Ÿฅ GET doc.weixin.qq.com โ†’ 200?
```

## ๐Ÿ” Cookie Auth

Two modes, your choice:

| Mode | How | When |
|:-----|:----|:-----|
| ๐Ÿ’พ Persistent | `set_wecom_cookie` โ†’ saved to `~/.claude/wecom-doc-mcp/.env` | Set once, use forever (until expiry) |
| โšก Per-request | Pass `cookie` param to `fetch_wecom_doc` | Override on the fly |

> ๐Ÿ”’ Cookie file lives outside the project directory โ€” never committed, never shared, `chmod 600`.

## ๐Ÿ“‘ Supported Document Types

| Type | URL Pattern | Status |
|:-----|:------------|:------:|
| ๐Ÿ“ Documents | `/doc/` | โœ… Verified |
| ๐Ÿ“Š Spreadsheets | `/sheet/` | ๐Ÿ”ง Untested |
| ๐ŸŽž๏ธ Slides | `/slide/` | ๐Ÿ”ง Untested |
| ๐Ÿง  Mind Maps | `/mind/` | โœ… Verified |
| ๐Ÿ”€ Flowcharts | `/flowchart/` | ๐Ÿ”ง Untested |
| ๐Ÿ“‹ Smart Sheets | `/smartsheet/` | ๐Ÿ”ง Untested |

## ๐Ÿ“ฆ Tech Stack

| Dependency | Purpose |
|:-----------|:--------|
| `@modelcontextprotocol/sdk` | MCP protocol implementation |
| `cheerio` | HTML parsing |
| `turndown` | HTML โ†’ Markdown conversion |
| `tsx` | TypeScript runtime |

## ๐Ÿ“„ License

MIT

---

<div align="center">
  <sub>Built with โค๏ธ for teams drowning in enterprise docs</sub>
</div>

TDQS

A4.1/5.0

Scored across 3 tools

Disambiguation5/5

Each tool has a distinct purpose: fetching document content, saving authentication credentials, and verifying authentication validity. No overlap or ambiguity between them.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern using snake_case: fetch_wecom_doc, set_wecom_cookie, check_wecom_auth.

Tool Count5/5

With 3 tools, the server is well-scoped for its purpose of fetching WeCom documents with authentication management. Each tool earns its place.

Completeness4/5

The set covers authentication setup, validation, and document fetching. A minor gap is the lack of a tool to list or search documents, but the core workflow is complete for fetching known documents.

Maintenance

ActivityInactive
ResponsivenessNo issues