Metadata-Version: 2.4
Name: webvoice-mcp
Version: 0.2.1
Summary: MCP server for WebVoice — agent registration, chat, TTS, STT, translation, images
Author-email: EasyTaskFlow / WebVoice <service@easytaskflow.app>
License-Expression: MIT
Project-URL: Homepage, https://webvoice.easytaskflow.app
Project-URL: Documentation, https://webvoice.easytaskflow.app/api/documentation/#mcp
Project-URL: Repository, https://github.com/supermarco74/webvoice-mcp
Project-URL: Issues, https://github.com/supermarco74/webvoice-mcp/issues
Keywords: mcp,webvoice,tts,stt,cursor,agents,solana
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: mcp>=1.6.0
Requires-Dist: httpx>=0.27.0
Dynamic: license-file

# WebVoice MCP Server

<!-- mcp-name: io.github.supermarco74/webvoice-mcp -->

Local [Model Context Protocol](https://modelcontextprotocol.io) server that exposes WebVoice REST API tools to **Cursor**, Claude Desktop, and other MCP clients.

**Install from PyPI:**

```bash
pip install webvoice-mcp
```

### From source (development)

```bash
pip install -r requirements-mcp.txt
# or editable install from repo root:
pip install -e .
```

## Configure Cursor

### Option A — Agent registration via MCP (no browser)

1. Add MCP **without** `WEBVOICE_API_KEY` first (or use the register tools from any client).
2. Call **`webvoice_register_send_code`** with your email.
3. Read the OTP from email, then **`webvoice_register_verify`** with the code.
4. Response includes **`api_key`** (once), **`onboarding.credits`**, **`onboarding.can_use_api`**, and optional **`onboarding.solana`** (wallet + `memo_code` for USDC/SOL top-up).
5. If `can_use_api` is true, use chat/TTS/STT immediately with welcome credits.
6. Set `WEBVOICE_API_KEY` in MCP config and restart Cursor (optional Solana/PayPal top-up later).

REST equivalent: `POST /api/v1/auth/send-code/` → `POST /api/v1/auth/verify-code/` with `create_api_key: true`. See [API docs](https://webvoice.easytaskflow.app/api/documentation/#agent-registration).

### Option B — Browser signup (human)

1. **Login** — email OTP or Google (`/accounts/login/`). New users get welcome + daily free credits.
2. **API key** — [API dashboard](https://webvoice.easytaskflow.app/api/) → Create key → copy `wv_…` (shown once).
3. **Credits (optional)** — [Buy credits](https://webvoice.easytaskflow.app/billing/purchase/), [Premium](https://webvoice.easytaskflow.app/billing/subscriptions/) (PayPal), or **Solana** (send USDC/SOL with your personal memo from `webvoice_onboarding`).

When balance is zero, MCP calls fail with insufficient credits; you receive an email with a recharge link.

### MCP config

Edit Cursor MCP config (`~/.cursor/mcp.json` or **Settings → MCP**):

```json
{
  "mcpServers": {
    "webvoice": {
      "command": "webvoice-mcp",
      "env": {
        "WEBVOICE_API_KEY": "wv_your_key_here"
      }
    }
  }
}
```

If `webvoice-mcp` is not on PATH, use Python module form:

```json
{
  "mcpServers": {
    "webvoice": {
      "command": "python",
      "args": ["-m", "webvoice_mcp"],
      "cwd": "/path/to/webvoice",
      "env": {
        "WEBVOICE_API_KEY": "wv_your_key_here"
      }
    }
  }
}
```

Optional: `WEBVOICE_BASE_URL` (default `https://webvoice.easytaskflow.app/api/v1`).

## Tools

| Tool | Description |
|------|-------------|
| `webvoice_register_send_code` | Start registration — OTP to email |
| `webvoice_register_verify` | Complete registration → API key + onboarding (credits, can_use_api) |
| `webvoice_onboarding` | Credits, can_use_api, optional Solana wallet/memo, recharge URLs |
| `webvoice_status` | Credits balance |
| `webvoice_list_chat_models` | Available chat models |
| `webvoice_list_voices` | TTS voices |
| `webvoice_chat` | Chat completions (DeepSeek default) |
| `webvoice_tts` | Text-to-speech → MP3 |
| `webvoice_stt` | Transcribe local audio file |
| `webvoice_translate` | Text translation |
| `webvoice_image` | MiniMax image generation |

## Example agent flow

**New agent (register → use → optional top-up):**

1. `webvoice_register_send_code` → `webvoice_register_verify` → save `api_key`.
2. If `onboarding.can_use_api`: call `webvoice_chat` / `webvoice_tts` / … immediately.
3. Optional: `webvoice_onboarding` → Solana memo or PayPal URLs when you need more credits.

**Existing account:**

1. Ask the model to call `webvoice_chat` with your question.
2. Call `webvoice_tts` with `output_path` to save spoken reply.
3. Call `webvoice_stt` with a recorded `audio_path` for voice input.

Credits are billed on your WebVoice account per API call.
