Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Reposition feature as a generic communication tool?

Open
#236 10 comments 6 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
35/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Active
Tech stack
javascript, web-dev
Domain
api

Research direction

Start by reading the WebMCP spec and explainers mentioned in the issue, then review the discussion for prior decisions. The proposal explores exposing functions across environments, origins, WebDriver, and service workers, with browser and LLM integrations. Done would require agreeing on scope and a design before implementation.

Written by the indexing model from the issue text.

Description

I only read through the spec and explainers on a plane, so apologies if this is stuff that's already been discussed.

I wonder if it would be better to reposition this idea as a general way to call functions in other environments.

Right now, it's a pain in the arse to do simple function calls between environments (windows, workers, etc). So much so, that there are popular libraries to try and make it easier.

When I was looking at the API, I thought "haha I could totally abuse this to be like a built-in comlink", but then I thought "maybe it doesn't have to be an abuse".

Let's say the whole tool registering thing is just a way for one environment to expose function calls to another. Then, add in the ability to expose particular functions to particular other origins. There's your comlink.

Then, add in the ability to expose particular functions to "the browser" - this would make the function available via WebDriver, and whatever tooling the browser chooses to provide. This is where the schema and description comes in. This means the browser could expose this functionality via its own interface, and build a form for the parameters. Or, sure, an LLM could do all that transparently. I think it might be an easier sell like this - the LLM capability just falls out of the other capabilities provided.

Developers could simply use this as an easier way to call functions in a worker - nothing to do with LLMs. Or they could do it to expose site functionality to the outside world.

A service worker could register functions at install time, meaning these things can be callable without a window open. They may choose to open a window (or interact with another window). All they'd be doing is calling (probably private) tools on the window. With some feature that allows a tool to return "don't return until I've navigated and the next page is dom-ready" - now you have a single public tool in a service worker that can perform MPA automations.

Just don't call it Web Intents I guess.

Dominant language
Bikeshed
Stars
4.7k
Forks
328
Avg merge
1d 21h
Merged PRs (30d)
15

Getting set up

This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from webmachinelearning/webmcp

All issues in webmachinelearning/webmcp

Similar issues

More Backend & API Design issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.