weflow-mcp
# weflow-mcp
TypeScript MCP server for calling the local [WeFlow](https://github.com/hicccc77/WeFlow) HTTP API.
WeFlow must be running locally with **API 服务** enabled. The default API base URL is `http://127.0.0.1:5031`. Except for health checks, WeFlow `/api/v1/*` endpoints require an access token.
## Install
Use directly with `npx`:
```bash
npx -y weflow-mcp
```
Or install from source:
```bash
npm install
npm run build
```
## Configuration
Set these environment variables in your MCP client:
| Variable | Default | Description |
| --- | --- | --- |
| `WEFLOW_BASE_URL` | `http://127.0.0.1:5031` | WeFlow HTTP API base URL |
| `WEFLOW_ACCESS_TOKEN` | empty | WeFlow API token |
| `WEFLOW_API_TOKEN` | empty | Fallback token name, used if `WEFLOW_ACCESS_TOKEN` is empty |
| `WEFLOW_TIMEOUT_MS` | `30000` | Request timeout in milliseconds |
## MCP client example
```json
{
"mcpServers": {
"weflow": {
"command": "node",
"args": ["/home/projects/wechat-tool/weflow-mcp/dist/index.js"],
"env": {
"WEFLOW_BASE_URL": "http://127.0.0.1:5031",
"WEFLOW_ACCESS_TOKEN": "YOUR_TOKEN"
}
}
}
}
```
After npm publish, you can use `npx` instead:
```json
{
"mcpServers": {
"weflow": {
"command": "npx",
"args": ["-y", "weflow-mcp"],
"env": {
"WEFLOW_BASE_URL": "http://127.0.0.1:5031",
"WEFLOW_ACCESS_TOKEN": "YOUR_TOKEN"
}
}
}
}
```
## Tools
- `weflow_health`: check WeFlow API health.
- `weflow_list_sessions`: list chat sessions.
- `weflow_get_messages`: get messages from a chat session.
- `weflow_get_session_messages_chatlab`: pull one session in ChatLab format.
- `weflow_list_contacts`: list contacts.
- `weflow_get_group_members`: list group members.
- `weflow_sns_timeline`: get Moments timeline.
- `weflow_sns_usernames`: list Moments publishers.
- `weflow_sns_export_stats`: get Moments export stats.
- `weflow_sns_export`: start a Moments export.
- `weflow_sns_block_delete`: get/install/uninstall Moments anti-delete status.
- `weflow_request`: call any supported WeFlow API endpoint with custom method/query/body.
## Notes
- WeFlow's API only listens on `127.0.0.1` by default.
- Before using data tools, connect WeFlow to the WeChat database in the WeFlow app.
- Media URLs returned by message APIs are usable after calling messages with `media=1`.
TDQS
Scored across 12 tools
The two message retrieval tools (weflow_get_messages and weflow_get_session_messages_chatlab) have overlapping purposes; the first already supports ChatLab format, making the second redundant and confusing. Other tools are distinct within their domains.
Tool names use a consistent 'weflow_' prefix but mix verb_noun (list_sessions, get_messages), noun-only (health, request), and SNS category prefixes (sns_timeline, sns_export) inconsistently. The use of both 'list_' and 'get_' for similar actions adds inconsistency.
12 tools is appropriate for a domain covering health, chat sessions, messages, contacts, group members, and Moments. The number is well within the expected range and each tool addresses a specific sub-area.
The server provides comprehensive read and export functionality for chat and Moments, but lacks dedicated tools for sending messages or managing contacts/groups. While weflow_request can fill some gaps, core operations like sending a message are not directly exposed.