Command Palette

Search for a command to run...

UnylyUnyly
Browse all

Wais

FreeNot checked

Universal MCP server for WAIS (Web Agent Interaction Standard) that provides 5 generic tools to discover, register, execute actions, confirm high-risk actions,

GitHubEmbed

About

Universal MCP server for WAIS (Web Agent Interaction Standard) that provides 5 generic tools to discover, register, execute actions, confirm high-risk actions, and check status on any WAIS-compatible site.

README

Universal MCP server for WAIS (Web Agent Interaction Standard) — 5 generic tools that work with any WAIS-compatible site.

Works with Claude, ChatGPT, Gemini, Cursor, Windsurf, VS Code Copilot, and any MCP-compatible client.

Tools

Tool Description
wais_discover Fetch a site's agents.json and show available actions
wais_register Register at a site using SD-JWT selective disclosure
wais_execute Execute any action (search, subscribe, purchase, etc.)
wais_confirm Confirm high-risk actions or complete payments (402 flow)
wais_status Check account status, plan, and credits

Quick Start

pip install wais-mcp
wais-mcp init

The setup wizard will ask you to pick your provider (Claude, ChatGPT, Cursor, etc.), choose project or global scope, and enter your API key. It writes the correct config file automatically.

Manual Setup by Provider

If you prefer to configure manually, all providers use the same wais-mcp command — only the config file location and format differ.

Claude Desktop

File: claude_desktop_config.json

{
  "mcpServers": {
    "wais": {
      "command": "wais-mcp",
      "env": {
        "PLATFORM_URL": "https://pod.deeger.io",
        "WAIS_API_KEY": "<your-api-key>"
      }
    }
  }
}

Claude Code

File: .mcp.json (project root) or ~/.claude/settings.json (global)

{
  "mcpServers": {
    "wais": {
      "command": "wais-mcp",
      "env": {
        "PLATFORM_URL": "https://pod.deeger.io",
        "WAIS_API_KEY": "<your-api-key>"
      }
    }
  }
}

ChatGPT Desktop

Requires Developer Mode: Settings > Advanced Settings > Developer Mode.

File locations:

  • macOS: ~/Library/Application Support/ChatGPT/mcp-server-config.json
  • Windows: %APPDATA%\OpenAI\ChatGPT\mcp-server-config.json
  • Linux: ~/.config/ChatGPT/mcp-server-config.json
{
  "mcpServers": {
    "wais": {
      "command": "wais-mcp",
      "env": {
        "PLATFORM_URL": "https://pod.deeger.io",
        "WAIS_API_KEY": "<your-api-key>"
      }
    }
  }
}

Restart ChatGPT after saving.

Gemini CLI

File: ~/.gemini/settings.json (global) or .gemini/settings.json (project)

{
  "mcpServers": {
    "wais": {
      "command": "wais-mcp",
      "env": {
        "PLATFORM_URL": "https://pod.deeger.io",
        "WAIS_API_KEY": "<your-api-key>"
      }
    }
  }
}

Cursor

File: .cursor/mcp.json (project) or ~/.cursor/mcp.json (global)

{
  "mcpServers": {
    "wais": {
      "command": "wais-mcp",
      "env": {
        "PLATFORM_URL": "https://pod.deeger.io",
        "WAIS_API_KEY": "<your-api-key>"
      }
    }
  }
}

Windsurf

File: ~/.codeium/windsurf/mcp_config.json

Or open from Windsurf: click MCPs icon in Cascade panel > Configure.

{
  "mcpServers": {
    "wais": {
      "command": "wais-mcp",
      "env": {
        "PLATFORM_URL": "https://pod.deeger.io",
        "WAIS_API_KEY": "<your-api-key>"
      }
    }
  }
}

VS Code (GitHub Copilot)

File: .vscode/mcp.json (project) or via Command Palette: MCP: Open User Configuration (global)

{
  "servers": {
    "wais": {
      "type": "stdio",
      "command": "wais-mcp",
      "env": {
        "PLATFORM_URL": "https://pod.deeger.io",
        "WAIS_API_KEY": "<your-api-key>"
      }
    }
  }
}

Note: VS Code uses servers instead of mcpServers, and requires the type field.

Usage without MCP (Python SDK)

For custom agents, scripts, or any Python code — no MCP client needed:

import asyncio
from wais_mcp import WAISClient

async def main():
    client = WAISClient(api_key="your-api-key")

    # 1. Discover what the site offers
    site = await client.discover("https://serphub.deeger.io")
    print(site.name, site.list_action_ids())

    # 2. Register (shares only required claims via SD-JWT)
    await client.register(site)

    # 3. Execute actions
    result = await client.execute(site, "search", {"query": "python"})
    print(result)

    # 4. Confirm high-risk actions (if 402 returned)
    # result = await client.confirm(site, challenge_id)

    # 5. Check account status
    status = await client.status(site)
    print(status)

asyncio.run(main())

Works with OpenAI SDK, LangChain, CrewAI, or any Python agent framework.

How It Works

  1. Discover — Fetches /.well-known/agents.json from a site
  2. Register — Shares only required claims via SD-JWT selective disclosure
  3. Execute — Handles tokens, DPoP, endpoint resolution, and async polling automatically
  4. Confirm — Polls for completion after 402 confirmation challenges
  5. Status — Check credits and plan info

All authentication (PoD tokens, DPoP proofs) is handled transparently.

Configuration

Env Var Default Description
PLATFORM_URL https://pod.deeger.io WAIS Provider URL
WAIS_API_KEY (keychain fallback on macOS) API key from provider dashboard

Development

pip install -e ".[dev]"

License

MIT

from github.com/deegerhq/wais-mcp

Install Wais in Claude Desktop, Claude Code & Cursor

Recommended · one command, every IDE
unyly install wais-mcp

Installs into Claude Desktop, Claude Code, Cursor & VS Code — handles npx, uvx and build-from-source repos for you.

First time? Get the CLI: curl -fsSL https://unyly.org/install | sh

Or configure manually

Run in your terminal:

claude mcp add wais-mcp -- uvx wais-mcp

FAQ

Is Wais MCP free?

Yes, Wais MCP is free — one-click install via Unyly at no cost.

Does Wais need an API key?

No, Wais runs without API keys or environment variables.

Is Wais hosted or self-hosted?

A hosted option is available: Unyly runs the server in the cloud, no local setup required.

How do I install Wais in Claude Desktop, Claude Code or Cursor?

Open Wais on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.

Related MCPs

Compare Wais with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All ai MCPs