Item logo image for WebMCP - Model Context Tool Inspector

WebMCP - Model Context Tool Inspector

5.0 (

8 ratings

)

3 support issues

For additional help, check out the developer's support site.

  • All
  • Questions
  • Suggestions
  • Problems

Andrew Taylor

Apr 30, 2026

Tool function response not sent to Gemini after successful functionCall

Issue:
When a page registers a WebMCP tool via the Imperative API (navigator.modelContext.registerTool) and a user prompt triggers a functionCall from Gemini, the extension correctly invokes the page's handler but never sends the tool result back to Gemini as a functionResponse. This means the conversation stops after the first turn and no answer is shown to the user.

Steps to reproduce:
1. Register a tool via navigator.modelContext.registerTool with a handler that returns a plain object (or async function returning a plain object)
2. Set a Gemini API key in the extension
3. Enter a natural language prompt that should trigger the tool
4. Click Send

Expected: Gemini receives the functionResponse, processes it, and returns a natural language answer.

Actual: The trace shows a single turn ending with functionCall and finishReason: STOP. No second request is made to Gemini. No answer is displayed. The tool handler does execute (verified via console logging) — the result is simply never passed back to Gemini.

The trace consistently shows candidatesTokenCount: 12 and no functionResponse turn, regardless of what the handler returns (plain object, JSON string, async function, MCP content envelope).

Trace:

[
{
"userPrompt": {
"message": "How much does this phone cost",
"config": {
"systemInstruction": [
"You are an assistant embedded in a browser tab.",
"User prompts typically refer to the current tab unless stated otherwise.",
"Use your tools to query page content when you need it.",
"Today's date is: Thursday, April 30, 2026",
"CRITICAL RULE: Whenever the user provides a relative date (e.g., \"next Monday\", \"tomorrow\", \"in 3 days\"), you must calculate the exact calendar date based on today's date."
],
"tools": [
{
"functionDeclarations": [
{
"name": "get_price_options",
"description": "Returns all available price options for the Nebula X1 Pro, including storage variants, colours, and monthly finance plans.",
"parametersJsonSchema": {
"type": "object",
"properties": {},
"required": []
}
}
]
}
]
}
}
},
{
"response": {
"sdkHttpResponse": {
"headers": {
"access-control-allow-origin": "MASKED",
"content-type": "application/json; charset=UTF-8",
"date": "Thu, 30 Apr 2026 08:56:23 GMT",
"x-gemini-service-tier": "standard"
}
},
"candidates": [
{
"content": {
"parts": [
{
"functionCall": {
"name": "get_price_options",
"args": {}
},
"thoughtSignature": "MASKED"
}
],
"role": "model"
},
"finishReason": "STOP",
"index": 0
}
],
"modelVersion": "gemini-2.5-flash",
"responseId": "MASKED",
"usageMetadata": {
"promptTokenCount": 150,
"candidatesTokenCount": 12,
"totalTokenCount": 297
}
}
}
]

Salva Morales

Feb 16, 2026

The extension suddently stop working

The extension icon recognices WebMCP tools but they are not displayed as before. Only displayed "Copy as ScripToolConfig" "Copy as JSON". Also, clicking on the Set Gemini API Key does nothing. It looks like there are some JS errors:
45background.js:1 Uncaught (in promise) Error: Could not establish connection. Receiving end does not exist.Understand this error
sidebar.html:1 Uncaught TypeError: Failed to resolve module specifier "p-retry". Relative references must start with either "/", "./", or "../".Understand this error

It works very good yesterday. The page implements WebMCP --> https://los-granainos.pages.dev/

Syna Kim

Feb 16, 2026

support input from other (JP) languages.

Pressing the "Enter" key to confirm Japanese character conversion (IME) accidentally triggered the "Send" action.(JP need to press "Enter" to select the right word)

Google apps
Create a Mobile Website
View Site in Mobile | Classic
Share by: