Skip to main content
Glama

page-image-mcp

MCP server que lê um site página por página e gera uma imagem coesa com o tema de cada página — sem nenhum texto e sem rostos humanos reconhecíveis.

Setup

cd /Users/pastorello/Desktop/MCP
npm install
npm run build

A geração de imagem usa uma instância local do Draw Things rodando o modelo Flux Schnell quantizado. Não precisa de API key nem de internet para gerar — mas o app Draw Things precisa estar aberto com o servidor de API habilitado em http://127.0.0.1:7860 antes de rodar qualquer tool deste MCP.

Os detectores locais de rosto/texto (scripts/detect_face.py, scripts/detect_text.py) rodam via OpenCV num virtualenv próprio, não versionado:

python3 -m venv venv-facedetect
venv-facedetect/bin/pip install opencv-python numpy

Eles também esperam dois arquivos de modelo em models/ (não versionados por serem binários grandes — o EAST detector tem ~92MB):

Related MCP server: Imagen

Registrar no Claude Code

claude mcp add page-image-mcp -- node /Users/pastorello/Desktop/MCP/dist/index.js

Tools

  • list_pages { url, maxPages } — descobre as páginas do site via sitemap.xml (com fallback para crawl same-origin por links).

  • generate_page_image { url, outDir?, styleHint?, size? } — lê uma página e gera 1 imagem coesa com o conteúdo dela.

  • generate_site_images { url, maxPages?, outDir?, styleHint?, size? } — roda o fluxo completo: descobre páginas + gera 1 imagem por página.

Imagens são salvas em ~/Desktop/MCP/output por padrão.

Como a restrição "sem texto / sem rosto" é aplicada

O prompt enviado ao modelo de geração de imagem (via Draw Things) inclui instruções rígidas, sempre anexadas ao tema da página:

  • proibição explícita de letras, números, palavras, logos, legendas, marcas d'água;

  • proibição de rostos humanos reconhecíveis — pessoas só podem aparecer como silhuetas distantes ou de costas;

  • proibição de UI/screenshots.

Ver src/prompt.ts para o texto exato.

Available Tools

3 tools
generate_page_imageGenerate cohesive images for one pageA

Reads a single web page, extracts its theme/content, and generates two cohesive images representing it (16:9 landscape and 9:16 portrait) via a local Draw Things instance (Flux Schnell, must be running with its API server enabled on http://127.0.0.1:7860 — no cloud dependency, no API key), saved into a folder named after the page title. The prompt forbids text and human faces, and two local offline detectors (OpenCV YuNet for faces, EAST for text) verify each result, retrying with a new seed up to 3 times if either is detected.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL of the page to read
outDirNoBase directory under which the page's folder will be created (defaults to ~/Desktop/MCP/output)
styleHintNoOptional visual style guidance, e.g. 'minimalist flat illustration' or 'moody photography'

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Despite no annotations, the description extensively discloses behavior: local execution, model (Flux Schnell), API endpoint, folder naming, prompt restrictions (no text/faces), offline detectors (OpenCV YuNet, EAST), and retry logic (up to 3 times). This fully compensates for missing annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single informative paragraph that front-loads the main action and key details. It is concise but could be slightly more structured (e.g., bullet points for prerequisites or retry logic) without losing brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While the description covers many behavioral aspects, it lacks explicit mention of return values (e.g., file paths) and error handling (e.g., what happens if all retries fail). Given no output schema, these gaps reduce completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for all three parameters. The description adds some context (e.g., folder named after page title) but does not significantly enhance parameter meaning beyond the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'generates' and the resource 'images for one page' with specific output (two images, 16:9 and 9:16 ratios), distinguishing it from sibling 'generate_site_images' by focusing on a single page.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear prerequisites (local Draw Things instance running with API at http://127.0.0.1:7860) and implies use case (offline image generation from a page), but does not explicitly state when not to use or mention alternatives like generate_site_images for multiple pages.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_site_imagesGenerate cohesive images for an entire siteA

Discovers pages for a site and generates a folder per page (named after the page title), each containing a 16:9 and a 9:16 cohesive image, via a local Draw Things instance (Flux Schnell, must be running with its API server enabled on http://127.0.0.1:7860 — no cloud dependency, no API key), verified against local face and text detectors with automatic retry. Use with a reasonable maxPages to control run time.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesStarting URL of the site
outDirNoBase directory under which each page's folder will be created (defaults to ~/Desktop/MCP/output)
maxPagesNoMaximum number of pages to process
styleHintNoOptional shared visual style guidance across all pages

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It describes the local Draw Things dependency, local face/text detectors, and automatic retry, but does not detail error handling (e.g., if Draw Things is not running) or the outcome of verification failures beyond retry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, structured with the main functionality and a usage note. It is not overly verbose, but the first sentence is lengthy. It is well-organized but could be slightly more concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 4 parameters, no output schema, and no annotations. The description explains the process and constraints, but lacks details on output (e.g., folder and image naming conventions) and does not address potential side effects or prerequisites beyond the local server.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage of parameter descriptions. The description adds minimal extra semantic value beyond what is already in the schema (e.g., defaults, constraints). The usage tip about maxPages is mentioned but not as part of parameter docs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool discovers pages for a site and generates folders with 16:9 and 9:16 cohesive images per page. It distinguishes itself from sibling tools like generate_page_image by focusing on an entire site.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It mentions using a reasonable maxPages to control run time, but does not explicitly explain when to use this tool versus alternatives (e.g., generate_page_image for a single page). The context is implied but not clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_pagesList site pagesA

Discovers pages for a website starting from a URL, preferring sitemap.xml and falling back to a same-origin crawl. Returns a list of page URLs.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesStarting URL of the site
maxPagesNoMaximum number of pages to discover

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description bears full burden. It discloses the two discovery methods (sitemap-first, then crawl) and the output type, but omits details like auth requirements or error handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences that are front-loaded and contain no filler. Every word adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with no output schema, the description adequately explains the return value (list of page URLs) and covers the core behavior. No missing information relative to complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with parameter descriptions. The description adds little beyond implying 'starting from a URL' for the url parameter and 'maximum' for maxPages, so baseline score is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool discovers pages from a URL, specifying the method (sitemap preference with fallback crawl) and output (list of page URLs). It is distinct from siblings which generate images.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives or when not to use it. With sibling tools present, such guidance would be beneficial.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 3 tool updatesv1.0.0
    • First observedgenerate_page_image
    • First observedgenerate_site_images
    • First observedlist_pages

TDQS

A4.2/5.0

Scored across 3 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: generating images for a single page, generating images for multiple pages, and discovering page URLs. No overlap exists.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern (generate_page_image, generate_site_images, list_pages) using snake_case.

Tool Count5/5

Three tools is well-scoped for a focused image-generation server—neither too few nor too many.

Completeness5/5

The tool set covers the full workflow: discover pages, generate images for a single page, and generate images for an entire site. No obvious gaps for its purpose.

Maintenance

ActivityStale
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers