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 --check

Config File

Windsurf reads MCP configuration from:

~/.codeium/windsurf/mcp_config.json

Add:

{
  "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

  1. Save mcp_config.json.
  2. Restart Windsurf or refresh MCP servers from Cascade settings.
  3. Open Cascade.
  4. Confirm the workonward tools 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:

workonward

The 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

SymptomCheck
Tools do not loadRestart Windsurf and confirm the JSON is valid
Team policy blocks the serverAsk the admin to whitelist server ID workonward
Server exits immediatelyRun workonward-mcp --check in the same virtualenv
Sends do not happenWORKONWARD_MCP_DRY_RUN=1 is still set