Atlas / MCP servers / runzhliu / WeLink

WeLinkCAUTION

mcp/runzhliu/welink

🔍微信聊天数据分析的本地化AI-agent(Docker/Windows/MacOS) · AI分身 / 大模型分析 / 好友排行 / 词云 / 情感趋势 / 群聊画像

Verdict
CAUTION
Grade
B
Trust score
84 /100
Exposed tools
3 3r · 0w · 0d
Transport
—
License
AGPL-3.0
Stars
287
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

WeLink

AI 驱动的微信聊天数据分析平台

官方文档 · 在线 Demo

你的微信聊天记录里,藏着你和每个人关系最真实的样子。WeLink 把这些数据交给 AI 来读——不只是统计图表,而是能让你直接提问、得到洞察:

「我和 XXX 的关系在哪个阶段最好?后来发生了什么?」 「这个群里真正活跃的人是谁?他们通常聊什么?」 「我今年和哪些朋友聊得越来越少了?」

所有数据留在本地,不上传任何服务器。

功能示例

点击可放大查看
Read from source at commit aaa379b7adedOBSERVED · 2026-10-06
02

Connect

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.

claude-code
claude mcp add welink-frontend -- npx -y [email protected]
claude-desktop
{
  "mcpServers": {
    "welink-frontend": {
      "command": "npx",
      "args": [
        "-y",
        "[email protected]"
      ]
    }
  }
}
03

Exposed tools (3)

3 read · 0 write · 0 destructive.

ToolRiskDescription
关系剧本read把一段关系浓缩成 3-5 个剧情节点的时间线
关系报告read分析两人关系的发展阶段、沟通特点和关键数字
风格画像read提炼联系人的性格标签、口头禅和聊天习惯
04

Trust audit

CAUTIONgrade B · trust 84/100 Install with care. The audit found things worth knowing before you trust its output.

LayerWhat it checksResult
L0Provenance & inventoryWARN
L1Static analysis of the codeWARN
L2Instruction surface (what it tells the agent)WARN
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (10 observation(s))
Network
declared (6 observation(s))
Shell
none-observed
Dependencies
not all pinned
Secrets in source
found

Findings (18)

MEDIUMInventory / provenance · inv.binary · CWE-1104
assets/AppIcon.icns
AppIcon.icns
Why it matters. a compiled or binary member cannot be reviewed from source
Fix. ship source, or explain the binary in the README
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
backend/export_oauth_util.go:31
return "http://127.0.0.1:" + port
MEDIUMHard-coded secrets · secret.private_key · CWE-798, CWE-321
docs/ai-analysis.md:130
"private_key": "-----BEGIN PRIVATE KEY-----\nMIIE...\n-----END PRIVATE KEY-----\n",
MEDIUMPrompt injection · prompt.hidden_style · CWE-94, CWE-1427
docs/index.md:138
<div id="video-overlay" onclick="this.style.display='none';this.querySelector('video').src=''" style="display:none;position:fixed;inset:0;z-index:999;background:rgba(0,0,0,.85);cursor:zoom-out;justify
LOWInventory / provenance · inv.hidden_file · CWE-1104
.mailmap
.mailmap
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
frontend/src/components/anniversary/AnniversaryPage.tsx:7
import type { ContactStats, DetectedEvent, FriendMilestone, CustomAnniversary, AnniversaryResponse } from '../../types';
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
frontend/src/components/anniversary/AnniversaryPage.tsx:8
import { anniversaryApi } from '../../services/api';
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
frontend/src/components/anniversary/AnniversaryPage.tsx:9
import { usePrivacyMode } from '../../contexts/PrivacyModeContext';
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
frontend/src/components/anniversary/AnniversaryPage.tsx:10
import { avatarSrc } from '../../utils/avatar';
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
frontend/src/components/calendar/ChatCalendarPage.tsx:23
import { calendarApi } from '../../services/api';
LOWNetwork egress · net.metadata_ip · CWE-200, CWE-319
backend/http_clients_test.go:15
{"169.254.169.254", true},
Why it matters. cloud metadata endpoint: the classic SSRF credential grab
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
docs/chatgpt-gpt.md:84
proxy_pass http://127.0.0.1:8080;
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
docs/chatgpt-gpt.md:104
proxy_pass http://127.0.0.1:8080;
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
docs/docker.md:94
| `WELINK_PUBLIC_URL` | — | 反代场景下显式指定公网 base URL(如 `https://welink.example.com`),用于构造 Google Drive / OneDrive OAuth 回调地址。**不设置时默认用 `http://127.0.0.1:<PORT>`**,反代部署时不设就会拿不到 token。不再读取 `X-Forwarded-*` 请
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
docs/docker.md:206
proxy_pass http://127.0.0.1:3418;
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
docs/package.json
medium-zoom, vitepress
Why it matters. 2 dependency range(s) float
Fix. pin exact versions or ship a lockfile
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
frontend/package.json
@tailwindcss/typography, @types/marked, axios, html2canvas, lucide-react, marked, qrcode, react
Why it matters. 26 dependency range(s) float
Fix. pin exact versions or ship a lockfile
INFOSupply chain · prompt.pipe_to_shell · CWE-829, CWE-1357
docs/ollama-setup.md:35
curl -fsSL https://ollama.com/install.sh | sh

Gates applied: no_behavioural_pass.

Audited 2026-10-06 · audit v0.4.1 · source sha aaa379b7adedfull audit observations/trust-audit/mcp-server/runzhliu__welink.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-06aaa379b7adedCAUTIONB84first audit
06

Questions

What is the WeLink MCP server?

🔍微信聊天数据分析的本地化AI-agent(Docker/Windows/MacOS) · AI分身 / 大模型分析 / 好友排行 / 词云 / 情感趋势 / 群聊画像

What tools does WeLink expose?

3 in total: 3 read-only, 0 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.

Is WeLink safe to connect to an agent?

With care. The audit graded it B (84/100) and found 18 things worth knowing before you trust this server, listed below with the exact line each was found on.

What credentials does WeLink need?

No credential environment variables were found in its source, so it appears to need none.

How current is this page?

The grade is for one exact copy of the source (aaa379b7aded), read on 2026-10-06. The repository is watched and re-audited when it changes.

Advertisement