E2LLM
E2LLM gives your AI eyes and hands in a real browser: structured perception (SiFR) plus action.
What it says
The record the registry holds
Where it answers
https://mcp.e2llm.com/mcp · streamable-httphttps://api.e2llm.com/mcp · streamable-http
the record
Copied from the official MCP registry, exactly as it holds it.
{
"server": {
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"name": "com.e2llm/element-to-llm",
"description": "E2LLM gives your AI eyes and hands in a real browser: structured perception (SiFR) plus action.",
"title": "E2LLM",
"repository": {
"url": "https://github.com/e2llm/e2llm-sifr",
"source": "github"
},
"version": "1.5.78",
"websiteUrl": "https://e2llm.com",
"remotes": [
{
"type": "streamable-http",
"url": "https://mcp.e2llm.com/mcp"
},
{
"type": "streamable-http",
"url": "https://api.e2llm.com/mcp",
"headers": [
{
"description": "Bearer mk_… static API key from your e2llm.com dashboard. Use this api. endpoint for programmatic / CI clients; use the mcp. endpoint above for interactive browser OAuth login (no header required).",
"isRequired": true,
"isSecret": true,
"name": "Authorization"
}
]
}
],
"_meta": {
"io.modelcontextprotocol.registry/publisher-provided": {
"auth": "Two connection modes on the same server: OAuth (interactive browser login) at mcp.e2llm.com/mcp, and static Bearer mk_ API keys at api.e2llm.com/mcp.",
"format": "SiFR — Salience-Indexed, Flat Relations (see SIFR.md)",
"skill": "Working-discipline skill for models driving these tools: skills/sifr/SKILL.md (https://github.com/e2llm/e2llm-sifr/blob/main/skills/sifr/SKILL.md) — verify-don't-guess, stale-ID re-verification, cursor draining, untrusted page content. Claude Code: copy into ~/.claude/skills/; other clients: include in agent instructions.",
"tools": [
{
"annotations": {
"destructiveHint": false,
"openWorldHint": true,
"readOnlyHint": true
},
"description": "Capture a browser page as structured SIFR data — front-loaded summary plus high-salience nodes.",
"name": "sifr_capture",
"title": "Capture Page"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": false,
"readOnlyHint": true
},
"description": "Filter the current session without re-capturing — by tag, salience, text, selector, or section.",
"name": "query",
"title": "Query Session"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": false,
"readOnlyHint": true
},
"description": "Read a captured page as markdown text in reading order, wrapped in untrusted-content tags.",
"name": "read_page",
"title": "Read Page Text"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": false,
"readOnlyHint": true
},
"description": "Full details for one element: real CSS selector, text, attributes, styles, layout, relations.",
"name": "inspect",
"title": "Inspect Element"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": false,
"readOnlyHint": true
},
"description": "List open browser tabs with their IDs, URLs, and titles.",
"name": "list_tabs",
"title": "List Tabs"
},
{
"annotations": {
"destructiveHint": true,
"openWorldHint": false,
"readOnlyHint": false
},
"description": "Close a browser tab by ID. Irreversible; may require approval per session posture.",
"name": "close_tab",
"title": "Close Tab"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": true,
"readOnlyHint": true
},
"description": "Non-state-changing: scroll, hover, or recapture a subtree — returns only the diff.",
"name": "explore",
"title": "Explore"
},
{
"annotations": {
"destructiveHint": true,
"openWorldHint": true,
"readOnlyHint": false
},
"description": "One state-changing action on the live page: click, type, select, navigate, or drag. May require approval.",
"name": "act",
"title": "Act"
},
{
"annotations": {
"destructiveHint": true,
"openWorldHint": true,
"readOnlyHint": false
},
"description": "Execute multiple actions in sequence, then observe mutations once. May require approval.",
"name": "batch_act",
"title": "Batch Act"
}
]
}
}
},
"_meta": {
"io.modelcontextprotocol.registry/official": {
"status": "active",
"statusChangedAt": "2026-07-24T11:29:02.685825Z",
"publishedAt": "2026-07-24T11:29:02.685825Z",
"updatedAt": "2026-07-24T11:29:02.685825Z",
"isLatest": true
}
}
}
Make it installable
Draft an Agent Plugin from this
An MCP server is raw capability: some tools, wired to something. An Agent Plugin is the packaging that says what job it does, what it leaves behind and where it stops. The prompt below carries this record and asks for the packaging; your own assistant writes it, and nothing here is sent anywhere.
What this is
MCP server
application/mcp-server-record+jsonhosted · an address you callversion 1.5.78last seen 2026-08-23
These are the publisher's own words, filed by them with the official MCP registry and mirrored here. This catalog did not read them from the publisher and has not run, called or installed anything.
Where it lives
The publisher's own address
The address the publisher put in their registry record, printed as they wrote it. Nobody here has opened it.