Windsurf
Windsurf can run workonward-mcp as a local stdio server for Cascade. This keeps the PING8 API key on your machine and is the recommended setup for editor usage.
Reference: Windsurf MCP documentation (opens in a new tab).
Install Locally
cd SDK/mcp
python -m venv .venv
source .venv/bin/activate
pip install -e .
workonward-mcp --checkConfig File
Windsurf reads MCP configuration from:
~/.codeium/windsurf/mcp_config.jsonAdd:
{
"mcpServers": {
"workonward": {
"command": "/absolute/path/to/SDK/mcp/.venv/bin/python",
"args": ["-m", "workonward_mcp"],
"env": {
"WORKONWARD_API_KEY": "YOUR_API_KEY",
"WORKONWARD_BASE_URL": "https://mail.gitdate.ink",
"WORKONWARD_MCP_RECIPIENT_ALLOWLIST": "@gitdate\\.ink$|@actualintelligence\\.ink$",
"WORKONWARD_MCP_DRY_RUN": "1",
"WORKONWARD_MCP_AUDIT_LOG_PATH": "/tmp/workonward-mcp-audit.jsonl"
}
}
}
}Refresh Cascade
- Save
mcp_config.json. - Restart Windsurf or refresh MCP servers from Cascade settings.
- Open Cascade.
- Confirm the
workonwardtools are available.
Safe prompt:
Use the workonward MCP tools. Validate person@gitdate.ink and bad-address. Then preview a send to person@gitdate.ink. Do not send.Team Whitelist Notes
If your Windsurf team has MCP whitelisting enabled, the whitelist server ID must match the config key exactly:
workonwardThe command, args, and environment shape may also need to match your team policy. If an admin whitelist blocks the server, the local config can be correct but Cascade will still refuse to load it.
Optional Remote Setup
Use a remote URL only if your team has deployed the OAuth HTTP server:
{
"mcpServers": {
"workonward": {
"url": "https://mcp.gitdate.ink/mcp"
}
}
}For most Windsurf users, stdio is simpler and safer.
Troubleshooting
| Symptom | Check |
|---|---|
| Tools do not load | Restart Windsurf and confirm the JSON is valid |
| Team policy blocks the server | Ask the admin to whitelist server ID workonward |
| Server exits immediately | Run workonward-mcp --check in the same virtualenv |
| Sends do not happen | WORKONWARD_MCP_DRY_RUN=1 is still set |