Skip to main content
Glama
L-Chris

weflow-mcp

by L-Chris
README.md
# 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

C2.9/5.0

Scored across 12 tools

Disambiguation3/5

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.

Naming Consistency3/5

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.

Tool Count5/5

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.

Completeness3/5

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.

Maintenance

ActivityStale
ResponsivenessNo issues