MCP server setup

In the release notes of “2025-eoy-update-whatsapp-dark-mode-more” there is mention of AI assist integrating MCP server.
I have tried adding the MCP server integration to my chat bot, but it shows me Available Tools 0.

Where can i find documentation for this?
What is the correct base url?
How should my routes be setup?

Hi @matjaz, thanks for reaching out.

AI Assist only shows tools once it can successfully load and parse a valid MCP manifest from your server. If it shows “Available Tools: 0”, it means no tools were discovered.

For a sanity check, you can share your MCP manifest of the JSON that endpoint returns so we can verify whether the endpoint is reachable, the JSON is valid, and the tools are defined in the format AI Assist expects.

Same issue here.
When you say " the tools are defined in the format AI Assist expects", do you have specification on that?
I checked my MCP with MCP Inspector and it’s all fine there. So the JSON is valid for sure.

Same issue here too with two established technology platforms official MCP servers, which work using Claude, Codex and iPaaS MCP connectors.

Same issue here, trying to use the WooCommerce MCP server and 0 tools discovered. Works perfectly with Claud code.

1 Like

if it helps anyone, this is how i did my setup:
first i made a publicly available API endpoint, that gets used by AI assistant to get the MCP config, like:
mydomain/api/tawkto/mcp

Tawkto will call this endpoint to obtain the MCP config adhering to MCP standard. There are some other specifics that made it work for me, best shown by code of the /mcp endpoint:

public function mcpResponse(){
    if (!empty($this->body)
        && isset($this->body['jsonrpc'])
        && isset($this->body['id'])
        && isset($this->body['method'])
        && $this->body['method'] === 'tools/list'
    ) {
        $response = [
            "jsonrpc" => $this->body['jsonrpc'],
            "id" => $this->body['id'],
            "result" => [
                "tools" => [
                    [
                        'name' => 'myEndpoint',
                        'description' => 'details of my endpoint',
                        'inputSchema' => [
                            'type' => 'object',
                            'properties' => [
                                'hash' => [
                                    'type' => 'string',
                                    'description' => 'auth hash token.'
                                ],
                            ],
                            'required' => [
                                'hash',
                            ]
                        ]
                    ],
                    [
                        'name' => 'myEndpoint2',
                        'description' => 'description of endpoint2',
                        'inputSchema' => [
                            'type' => 'object',
                            'properties' => [
                                'hash' => [
                                    'type' => 'string'
                                    'description' => 'auth hash token.'
                                ],
                                'input_field_that_i_need' => [
                                    'type' => 'string',
                                    'description' => 'unique string for this endpoint.'
                                ]
                            ],
                            'required' => [
                                'hash',
                                'input_field_that_i_need'
                            ]
                        ]
                    ]
                ]
            ]
        ];

        $this->response->headers('Content-Type', 'application/json');
        return $this->response->body(json_encode($response));
    }
}

then in tawkto i made a new MCP entry… filled the name, description, label and for the url of my api, example mydomain/api/tawkto/mcp.
Then refresh the tool and so tawkto did request to my mcp endpoint to get the config, which is last step.

I also have auth token in my API, in bearer token for authentication. I added it and it gets written in the request headers in HTTP_AUTHORIZATION when tawkto calls your API endpoints… this is how i extracted it:

$authorization = null;
if (isset($_SERVER['Authorization'])) {
    $authorization = trim($_SERVER["Authorization"]);
} else if (isset($_SERVER['HTTP_AUTHORIZATION'])) {
    $authorization = trim($_SERVER["HTTP_AUTHORIZATION"]);
}

$this->hash = null;
if (!empty($authorization)) {
    if (preg_match('/Bearer\s(\S+)/', $authorization, $matches)) {
        $this->hash = $matches[1];
    }
}