Contribute a Config

Teach AI agents how to interact with any website by submitting a WebMCP configuration.

Before you start

Write operations require an API key. Sign in with GitHub, then create a key in Settings. Keys start with whub_. All read endpoints are public โ€” no key needed to browse or look up configs.

REST API

Direct HTTP requests

Use curl, fetch, or any HTTP client to submit configs programmatically.

Create a config

curl -X POST https://webmcp-hub.com/api/configs \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer whub_your_api_key" \
  -d '{
    "domain": "example.com",
    "urlPattern": "example.com/tasks",
    "title": "Example Task Manager",
    "description": "Create, list, and delete tasks",
    "contributor": "your-github-username",
    "tags": ["productivity", "tasks"],
    "tools": [{
      "name": "add-task",
      "description": "Add a new task to the list",
      "inputSchema": {
        "type": "object",
        "properties": {
          "title": { "type": "string", "description": "Task title" }
        },
        "required": ["title"]
      }
    }]
  }'

Endpoints

GEThttps://webmcp-hub.com/api/configsList
POSThttps://webmcp-hub.com/api/configsCreate
GEThttps://webmcp-hub.com/api/configs/lookupLookup by domain
GEThttps://webmcp-hub.com/api/configs/:idGet by ID
PATCHhttps://webmcp-hub.com/api/configs/:idUpdate
POSThttps://webmcp-hub.com/api/configs/:id/voteVote on tool
DELETEhttps://webmcp-hub.com/api/configs/:id/tools/:toolNameDelete tool (owner only)
MCP

Via any MCP client

Connect the MCP server to your AI agent and use upload_config and update_config to submit configs conversationally.

Remote (no local setup)

{
  "mcpServers": {
    "web-mcp-hub": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://webmcp-hub-mcp.flowagentlyhub.workers.dev/mcp"
      ]
    }
  }
}
Local server (for development)
{
  "mcpServers": {
    "web-mcp-hub": {
      "command": "node",
      "args": ["path/to/packages/mcp-server/dist/index.js", "--stdio"],
      "env": {
        "HUB_URL": "http://localhost:3000"
      }
    }
  }
}

Your AI agent will use upload_config, update_config, delete_tool, and vote_on_tool automatically when you ask it to contribute, modify, delete, or rate configs.

Config reference

Required fields

domain
Normalized domain, e.g. github.com
urlPattern
URL scope for matching (see below)
title
Human-readable name
description
What agents can do with this config
contributor
Your name or GitHub username
tools
Array of tool descriptors (min 1)

URL patterns

example.com
All pages (fallback)
example.com/dashboard
Exact path only
example.com/users/:id
Dynamic segment
example.com/admin/**
Wildcard prefix

Tool rules

  • name โ€” kebab-case verb: search-products, add-to-cart, delete-item
  • inputSchema โ€” JSON Schema object. Each property needs at least {"type":"string"}
  • execution โ€” optional CSS selector metadata for Chrome extension auto-execution
  • annotations โ€” optional: readOnlyHint, destructiveHint, idempotentHint
Full example with execution metadata
{
  "domain": "example.com",
  "urlPattern": "example.com/tasks",
  "title": "Task Manager",
  "description": "Create, list, and delete tasks",
  "contributor": "your-username",
  "tags": ["productivity", "tasks"],
  "tools": [
    {
      "name": "add-task",
      "description": "Add a new task",
      "inputSchema": {
        "type": "object",
        "properties": {
          "title": { "type": "string", "description": "Task title" }
        },
        "required": ["title"]
      },
      "execution": {
        "selector": "#taskForm",
        "autosubmit": true,
        "fields": [{
          "type": "text",
          "selector": "#titleInput",
          "name": "title",
          "description": "Task title field"
        }]
      }
    },
    {
      "name": "list-tasks",
      "description": "List all current tasks",
      "inputSchema": { "type": "object", "properties": {} },
      "execution": {
        "selector": "#taskList",
        "autosubmit": false,
        "resultSelector": "#taskList li",
        "resultExtract": "list"
      }
    }
  ]
}

Want to contribute to the project?

Beyond submitting configs, you can help improve the hub itself โ€” fix bugs, add features, improve docs, or extend the Chrome extension and MCP server.