Semantic DOM Filter Server
БесплатноНе проверенConverts messy HTML into clean semantic markdown with integer IDs, enabling LLMs to navigate and interact with web pages efficiently using intent-guided filteri
Описание
Converts messy HTML into clean semantic markdown with integer IDs, enabling LLMs to navigate and interact with web pages efficiently using intent-guided filtering and diff-based updates.
README
A high-pass filter that sits between chaotic web pages and clean LLM context windows. Converts ~100KB HTML into ~2KB Semantic Markdown with integer IDs, eliminating selector hallucination and dramatically reducing token usage.
Architecture
User Prompt → LLM Agent → Semantic MCP Server
↓
┌──────────────────────┐
│ Playwright (Chromium)│
│ ↓ │
│ Accessibility Tree │
│ ↓ │
│ Semantic Processor │
│ ├─ Visibility Filter │
│ ├─ Struct. Flatten │
│ └─ Intent Pruning │
│ ↓ │
│ Markdown Synthesizer │
└──────────────────────┘
↓
Clean Semantic Map → LLM Agent
↓
Action (click id=7) → Semantic Diff
Tools
get_semantic_view
Navigate to a URL and get a filtered semantic map.
| Parameter | Type | Description |
|---|---|---|
url |
string | URL to navigate to |
task_intent |
string | What you're trying to do (guides filtering) |
Intent-guided filtering:
"read content"/"find pricing"→ prunes navigation, footers"fill form"/"login"→ focuses on inputs, buttons"find X"/"navigate"→ keeps navigation, prunes long text
perform_action
Execute an action and get back only what changed (semantic diff).
| Parameter | Type | Description |
|---|---|---|
action |
enum | click, type, select, hover, scroll, wait, press_key, go_back, go_forward, navigate |
id |
number? | Semantic ID of the target element |
value |
string? | Text to type, option to select, scroll direction, key to press |
url |
string? | URL for navigate action |
get_current_state
Re-extract the semantic map without navigating. Useful to refresh after multiple actions.
| Parameter | Type | Description |
|---|---|---|
task_intent |
string? | Optionally change the intent filter |
get_screenshot
Capture a PNG screenshot of the current viewport.
| Parameter | Type | Description |
|---|---|---|
full_page |
boolean? | Capture the full scrollable page |
Output Format
# Example Page
**URL:** https://example.com
**Task:** find the pricing table
**Stats:** 23 semantic nodes (filtered from 847 raw nodes)
## Page Structure
- **main**: "Main Content" (312 nodes)
- **navigation**: "Primary Nav" (45 nodes)
## Semantic Map
[Heading(1): "Pricing Plans", id=1]
[Text: "Choose the plan that works for you"]
[Button: "Monthly", id=3, selected]
[Button: "Annual", id=4]
[Heading(2): "Starter", id=5]
[Text: "$9/month"]
[Button: "Get Started", id=7]
[Heading(2): "Pro", id=8]
[Text: "$29/month"]
[Button: "Get Started", id=10]
Semantic Diff (after actions)
Instead of re-sending the whole page:
**Action:** click on id=3
**Result:** Changes detected
## Changes
Modified:
[Button, id=3]: state.pressed: "unset" → "true"
Added: [Text: "Billed monthly"]
Removed: [Text: "Billed annually"]
Setup
npm install
npm run build
Usage with Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"semantic-dom": {
"command": "node",
"args": ["path/to/browser_mcp/dist/index.js"]
}
}
}
Usage with VS Code (Copilot)
Add to your .vscode/mcp.json:
{
"servers": {
"semantic-dom": {
"type": "stdio",
"command": "node",
"args": ["${workspaceFolder}/dist/index.js"]
}
}
}
Why This Wins
| Metric | Raw HTML | This MCP |
|---|---|---|
| Payload | ~100KB | ~2KB |
| Token cost | ~25K tokens | ~500 tokens |
| Selector accuracy | Hallucinated CSS | Integer IDs |
| After-action update | Full re-send | Diff only |
| Intent awareness | None | Prunes by task |
Установка Semantic DOM Filter Server
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/krishankb-de/AxonMCPFAQ
Semantic DOM Filter Server MCP бесплатный?
Да, Semantic DOM Filter Server MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Semantic DOM Filter Server?
Нет, Semantic DOM Filter Server работает без API-ключей и переменных окружения.
Semantic DOM Filter Server — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить Semantic DOM Filter Server в Claude Desktop, Claude Code или Cursor?
Открой Semantic DOM Filter Server на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
GitHub
PRs, issues, code search, CI status
автор: GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
автор: mcpdotdirectCompare Semantic DOM Filter Server with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории development
