46a Mcp

io.github.johnroyPublished by GitHub account johnroyv1.0.0Updated Oct 28, 2026

MCP for the 46a platform.

VerifiedStreamable HTTPWeb executableBrowser AutomationMedia & Design

Overview

AI-generated overview

Connects an assistant to a live 46a project open in a browser, letting it read application/DOM state and perform editor actions in real time.

What you can do
  • List live browser connections and pick a connectionId, optionally filtered by user
  • Read application state such as page, workspace, project, user, objects and logs
  • Add objects (shapes, text, HTML, SVG) singly or in batches, or from raw HTML snippets
  • Perform editor actions such as undo/redo, selection, zoom, page changes, object patches and project/page lifecycle
  • Run code in the connected browser session and generate images via DALL-E
  • Delegate tasks to another assistant and create UI widgets in the chat thread
When to use it
Useful when you want an assistant to inspect and edit a 46a project that is currently open in a browser, for example to add objects, adjust pages or read live editor state while you work.
Requirements
Remote streamable HTTP endpoint at 46a.co/mcp, added as a custom connector or config entry. Authentication is required: OAuth by default, or basic auth via the Authorization header. An optional local stdio variant needs Node.js plus REMOTE_URL, EMAIL_OR_USERNAME and PASSWORD.
Before you install
The Authorization header carries credentials (basic auth user and password, or an OAuth bearer token); the stdio variant takes the password in plain environment variables. The inject tool runs arbitrary code in the connected browser session, and editor actions change project data. Image generation via DALL-E may incur provider costs. connectionIds are ephemeral and orphan on page reload.

Installation

In SourceWeft

  1. Open 46a Mcp in the dashboard and add it to a workspace.
  2. Connect the required credentials. They are stored privately and never shown on public pages.
  3. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.johnroy%2F46a-mcp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config. The client completes OAuth sign-in on first connect.

{
  "mcpServers": {
    "46a": {
      "type": "http",
      "url": "https://46a.co/mcp"
    }
  }
}

README

46a MCP Server

Live control of a 46a project open in a user's browser, via MCP. Lets an MCP client read live application/DOM state and perform editor actions in real time.

Installation

As an HTTP (configured outside mcpServers)

How to use the MCP connector, for hints ask claude "claude: show me where to configure mcpServers?"

  1. Add the server URL as a custom connector (claude.ai: Settings → Connectors → Add custom connector; Claude Code: claude mcp add --transport http 46a-mcp https://46a.co/mcp).

Configure entry with OAuth

Local claude MCP configuration to use oauth (default)

json
{  "mcpServers": {    "46a-mcp-http-oauth": {      "type": "streamable-http",      "url": "https://46a.co/mcp"    }  }}

Configure a entry with basic auth

Local claude MCP configuration to use basic auth instead of oauth.

json
{  "mcpServers": {    "46a-mcp-http-basic-auth": {      "type": "streamable-http",      "url": "https://46a.co/mcp",      "headers": {        "Authorization": "Basic <user:pass>"      }    }  }}

Configure stdio process (you probably won't need this)

json
{  "mcpServers": {    "46a-mcp-stdio": {      "command": "node",      "args": ["src/stdio.js"],      "cwd": "/Users/jroy/src/46a/mcp",      "env": {        "REMOTE_URL": "https://46a.co/mcp",        "EMAIL_OR_USERNAME": "<user>",        "PASSWORD": "<pass>"      }    }  }}

Running (or this)

bash
node src/http.js

Connecting a client

A. Configure a custom connector, or B. Add entries (as above) to .mcp.json or other Claude config location, using either basic auth or OAuth (default), or C. Configure a local entry for the stdio-based process (see above)

[Screenshot 2026-10-09 at 11 46 06 PM]

Workflow

  1. listConnections → pick a live connectionId.
  2. callTools and/or inject against that connectionId.

connectionId is ephemeral and orphans on page reload — re-list when in doubt.

Tools

Client discovers tools via tools/list.

  • listConnections — list live browser connections. Optional emailOrUsername filter. Returns connectionId -> { user, project }.
  • callTools — run 46a tool calls against one connection: { connectionId, request: { v: 't', calls: [...] } }.
  • inject — run code in the connection's browser session: { connectionId, request: { v: 'j', code } }. code must be a single expression evaluating to a Promise.
  • hello_world — connectivity test tool.

callTools call surface

request.calls

  • add_object — add a single object (Circle, Square, _basic.text, _basic.plainText, _basic.html, SVG).
  • add_objects — batched add_object, preferred for creating many objects at once.
  • make_object_from_html — add an object from a raw HTML snippet.
  • getSelectorData — read application state (page, workspace, project, user, objects, logs).
  • doAction — perform an editor action (undo/redo, open editor, select objects, zoom, change page, patch object fields, project/page lifecycle, etc).
  • createImage — generate an image via DALL-E and add it to the project.
  • delegateAI — delegate a task to another assistant.
  • uiInteraction — create a UI widget/interaction in the chat thread or UI.

Source: README.md at commit 49a8d33

Tools

0
This server asks you to sign in, so SourceWeft could not read its tools without an account and has not indexed them. What a connected account sees can depend on that account and its permissions.

Version history

1
  1. v1.0.0LatestOct 19, 2026

Score

75% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

    Declare a license in the repository or the registry entry.