🌙 LATE NIGHT MODE ACTIVATED — THE CLOWN IS WATCHING 🌙
🤖

Model Context
Protocol.

AI agents can talk to ClownVPN through a small set of registered functions. WebMCP exposes them — same idea as the JSON-RPC MCP but running in the browser, callable from any AI client that supports it.

🎪 What Is WebMCP

WebMCP is a small open-source widget (~29 KB, no dependencies) that turns a static webpage into an MCP-capable endpoint. An AI agent with MCP support — Claude Desktop, ChatGPT custom GPTs, local agents — can call registered functions on the page just like a regular MCP server.

Widget source: github.com/jasonjmcghee/WebMCP. Loaded on this page. Open the page and your MCP-aware agent will see the four tools below.

🎪 Registered Tools

Four functions. Read-only — no state changes on our side.

search_posts

Search ClownVPN articles by keyword. Returns matching posts from /resources/ with titles, slugs, and descriptions.

▸ Input schema
{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Search keyword (matches title, description, or category)"
    }
  },
  "required": [
    "query"
  ]
}
get_post

Get metadata for a specific ClownVPN article by slug. Returns title, category, description, and full URL.

▸ Input schema
{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "Article slug, e.g. /resources/basics/what-is-a-vpn/"
    }
  },
  "required": [
    "slug"
  ]
}
list_posts

List ClownVPN articles. Optionally filter by category (basics, privacy, security, protocols, legality, glossary).

▸ Input schema
{
  "type": "object",
  "properties": {
    "category": {
      "type": "string",
      "description": "Optional category filter",
      "enum": [
        "basics",
        "privacy",
        "security",
        "protocols",
        "legality",
        "glossary"
      ]
    }
  }
}
get_site_info

Get high-level information about ClownVPN: positioning, features, supported platforms, protocols, contact email, languages.

▸ Input schema
{
  "type": "object",
  "properties": {}
}

🎪 How An Agent Uses This

  1. Agent navigates to https://clownvpn.com/mcp/.
  2. WebMCP widget initializes and announces the four tools above.
  3. Agent can now call any tool with the documented input schema.
  4. Tool executes client-side (in the page) and returns JSON to the agent.
  5. Agent uses the result — e.g. to answer a user question about VPN concepts.

Everything runs in the page. No backend API, no rate limits, no auth. Just the agent talking to a small registered function.

🎪 Honest Notes