What is WebMCP?
A draft browser API for app-to-agent tool exposition.
WebMCP (Web Model Context Protocol) is a draft specification that defines how browser applications can expose tools to local AI agents running in the same browser. It is the browser-native equivalent of the Model Context Protocol (MCP) popularized by Anthropic for server-side tool exposition.
Instead of a remote MCP server, the application registers tools on navigator.modelContext. Any local agent that reads this object discovers all available tools and can call them directly, without any network hop.
FanChat is an early adopter. We expose all 10 tools below on every page as soon as the user is authenticated.
10 tools exposed
Navigation, reading and writing. Registered on navigator.modelContext.
search_charactersNavigationSearch public AI characters by name or description.
open_characterNavigationNavigate to a character's chat page.
open_chat_sessionNavigationNavigate to a specific chat session for a character.
list_my_charactersNavigationList characters created by or shared with the current authenticated user.
get_current_characterReadingGet the AI character currently displayed on the page.
get_session_messagesReadingRead messages from a chat session belonging to the current authenticated user.
export_sessionReadingExport a chat session as JSON, Markdown or PDF. Returns a download URL.
send_messageWritingSend a message to a character in an existing chat session and return the assistant response.
start_new_sessionWritingCreate a new chat session for a character. Returns the new sessionId.
create_characterWritingCreate a new AI character with a name and description. Returns the new characterId.
How to enable
WebMCP requires Chrome 146+ with the experimental flag enabled.
Install Chrome 146+
Download Chrome Canary or Chrome Dev from google.com/chrome.
Enable the WebMCP flag
Navigate to chrome://flags/#enable-experimental-web-platform-features and enable it.
Open FanChat
Sign in and navigate to any character. Tools are registered automatically.
Connect your agent
Point your local browser agent to navigator.modelContext. It will discover all 10 tools.
Code example
Call FanChat tools from your local browser agent.
// Example: list my characters and open the first one
const tools = await navigator.modelContext.getTools()
const listTool = tools.find(t => t.name === 'list_my_characters')
const result = await listTool.call({ limit: 5 })
const first = result.data[0]
const openTool = tools.find(t => t.name === 'open_character')
await openTool.call({ characterId: first.id })