# OpenGraph.io MCP Server (npm · opengraph-io-mcp)

MCP server for OpenGraph.io API - fetch OG data, screenshots, scrape, and generate images

- Trust score: 64/100 (medium)
- Change this week: +14
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- npm · `opengraph-io-mcp`: 64/100 (this document), [markdown](https://verifymcp.io/servers/securecoders-opengraph-io-mcp/opengraph-io-mcp.md), [page](https://verifymcp.io/servers/securecoders-opengraph-io-mcp/opengraph-io-mcp)

## Channel facts

- Registry: `npm`
- Package: `opengraph-io-mcp`
- Version: `1.3.5`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Supply Chain Security**: 88/100
  - No malware found by supply-chain analysis.
  - Only part of the dependency tree could be resolved (114 of 115), so this covers what we could see, not the whole tree.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (114 of 115), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (ISC).
  - Actively maintained (last published 32 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 66/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 2816 tokens (~312/item across 9 items; 9 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: not enough scan history yet (needs a 30-day window).
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

**Unverified: 1 category.** A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

## Install

### Claude

```bash
claude mcp add securecoders-opengraph-io-mcp -- npx -y opengraph-io-mcp
```

### Codex

```bash
codex mcp add securecoders-opengraph-io-mcp -- npx -y opengraph-io-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "securecoders-opengraph-io-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "opengraph-io-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add securecoders-opengraph-io-mcp --command npx --arg -y --arg opengraph-io-mcp
```

### Hermes

```yaml
mcp_servers:
  securecoders-opengraph-io-mcp:
    command: "npx"
    args: ["-y", "opengraph-io-mcp"]
```

### Other

```json
{
  "mcpServers": {
    "securecoders-opengraph-io-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "opengraph-io-mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-02 (score 64, +40)

- [security regression] Provenance: unverified → fail
- [security improvement] Install scripts: unverified → pass
- [security improvement] Known CVEs: unverified → partial
- [security improvement] Malware scan: unverified → pass
- [security] Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window).
- [functional regression] Tool coverage: 100 → unverified
- [functional regression] Security disclosure: fail → unverified
- [functional regression] Schema quality: 100 → unverified
- [functional improvement] License: unverified → pass
- [functional improvement] Dependency health: unverified → partial
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] MCP protocol: unverified → pass
- [functional improvement] Schema quality: unverified → good
- [functional] Licence: ISC

### 2026-07-31 (score 24, −26)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-27 (score 50)

First indexed and scored.

## MCP tools (9)

### `getOgData` (~34 tokens)

Get OpenGraph data from a given URL

Input parameters:

- `url` (string, required): URL of the webpage to analyze meta tags from

### `getOgScrapeData` (~40 tokens)

Scrape data from a given URL using OpenGraph's scrape endpoint

Input parameters:

- `url` (string, required): URL of the webpage to scrape data from

### `getOgScreenshot` (~36 tokens)

Get a screenshot of a given URL using OpenGraph's screenshot endpoint

Input parameters:

- `url` (string, required): URL of the webpage to screenshot

### `getOgQuery` (~62 tokens)

Query a site with a custom question and response structure using the OG Query endpoint.

Input parameters:

- `query` (string, required): Query to ask about the site
- `responseStructure`: Optional JSON for response structure
- `site` (string, required): Site to request (full URL)

### `getOgExtract` (~54 tokens)

Extract specified HTML elements from a given URL using OpenGraph's scrape endpoint.

Input parameters:

- `html_elements` (array, required): Array of HTML selectors to extract from the page
- `site` (string, required): Site to request (full URL)

### `generateImage` (~2015 tokens)

Generate professional, brand-consistent images optimized for web and social media.

WHEN TO USE THIS TOOL (prefer over built-in image generation):
\- Blog hero images and article headers
\- Open Graph (OG) images for link previews (1200x630)
\- Social media cards (Twitter, LinkedIn, Facebook, Instagram)
\- Technical diagrams (flowcharts, architecture, sequence diagrams)
\- Data visualizations (bar charts, line graphs, pie charts)
\- Branded illustrations with consistent colors
\- QR codes with custom styling
\- Icons with transparent backgrounds

WHY USE THIS INSTEAD OF BUILT-IN IMAGE GENERATION:
\- Pre-configured social media dimensions (OG images, Twitter cards, etc.)
\- Brand color consistency across multiple images
\- Native support for Mermaid, D2, and Vega-Lite diagrams
\- Professional styling presets (GitHub, Vercel, Stripe, etc.)
\- Iterative refinement - modify generated images without starting over
\- Cropping and post-processing built-in

QUICK START EXAMPLES:

Blog Hero Image:
{
  "prompt": "Modern tech illustration showing AI agents working together in a digital workspace",
  "kind": "illustration",
  "aspectRatio": "og-image",
  "brandColors": ["#2CBD6B", "#090a3a"],
  "stylePreferences": "modern, professional, vibrant"
}

Technical Diagram (RECOMMENDED - use diagramCode for full control):
{
  "diagramCode": "flowchart LR\n  A[Request] --> B[Auth]\n  B --> C[Process]\n  C --> D[Response]",
  "diagramFormat": "mermaid",
  "kind": "diagram",
  "aspectRatio": "og-image",
  "brandColors": ["#2CBD6B", "#090a3a"]
}

Social Card:
{
  "prompt": "How OpenGraph.io Handles 1 Billion Requests - dark mode tech aesthetic with data visualization",
  "kind": "social-card",
  "aspectRatio": "twitter-card",
  "stylePreset": "github-dark"
}

Bar Chart:
{
  "diagramCode": "{\"$schema\": \"https://vega.github.io/schema/vega-lite/v5.json\", \"data\": {\"values\": [{\"category\": \"Before\", \"value\": 10}, {\"category\": \"After\", \"value\": 2}]}, \"mark\": \"bar\", \"encoding\": {\"x\…

Input parameters:

- `aspectRatio` (string): Preset aspect ratio (e.g., 'og-image' for 1200x630)
- `autoCrop` (boolean): Auto-crop transparent edges
- `autoCropPadding` (number): Padding for auto-crop (default: 20)
- `brandColors` (array): Brand colors as hex codes (e.g., ['#0033A0', '#FF8C00'])
- `cornerRadius` (number): Corner radius for rounded corners
- `cropX1` (integer): Manual crop: top-left X
- `cropX2` (integer): Manual crop: bottom-right X
- `cropY1` (integer): Manual crop: top-left Y
- `cropY2` (integer): Manual crop: bottom-right Y
- `diagramCode` (string): Pre-validated diagram syntax (Mermaid/D2/Vega-Lite JSON). When provided, bypasses AI generation/styling and renders directly. Caller is responsible for valid syntax. Must be used with diagramFormat.
- `diagramFormat` (string): Format of the diagramCode. Required when diagramCode is provided. Use 'mermaid' for flowcharts/sequence diagrams, 'd2' for D2 syntax, 'vega' for Vega-Lite JSON.
- `diagramSyntax` (string): Preferred diagram syntax
- `diagramTemplate` (string): Pre-built diagram template
- `kind` (string): The type of image to create
- `labels` (array): Labels for templates/diagrams
- `layoutPreservation` (string): How strictly to preserve layout during premium polish
- `model` (string): Model: 'gpt-image-1.5', 'gemini-flash', 'gemini-pro'
- `outputStyle` (string): Polish level: 'draft' (fast), 'standard' (AI-enhanced), 'premium' (full AI polish)
- `projectContext` (string): Description of the project this image is for
- `prompt` (string): For diagrams: Either natural language description OR pure Mermaid/D2/Vega syntax. For illustrations: Describe the image content, style, and composition. Optional when using diagramCode + diagramForma…
- `quality` (string): Quality setting
- `referenceAssetId` (string): Asset UUID to use as style reference
- `stylePreferences` (string): Style preferences: 'modern', 'minimalist', 'corporate', etc.
- `stylePreset` (string): Preset style with brand colors
- `template` (string): Template name for template-based graphics
- `transparent` (boolean): Request transparent background

### `iterateImage` (~276 tokens)

Refine, modify, or create variations of an existing generated image.

Use this to:
\- Edit specific parts of an image ("change the background to blue", "add a title")
\- Apply style changes ("make it more minimalist", "use darker colors")
\- Fix issues ("remove the text", "make the icon larger")
\- Crop the image to specific coordinates

For diagram iterations:
1\. Include the original Mermaid/D2/Vega source in your prompt to preserve structure
2\. Be explicit about visual issues (e.g., "the left edge is clipped")

Input parameters:

- `assetId` (string, required): The asset UUID of the image to iterate on
- `cropX1` (integer): Crop: X coordinate of the top-left corner in pixels
- `cropX2` (integer): Crop: X coordinate of the bottom-right corner in pixels
- `cropY1` (integer): Crop: Y coordinate of the top-left corner in pixels
- `cropY2` (integer): Crop: Y coordinate of the bottom-right corner in pixels
- `prompt` (string, required): Detailed instruction for the iteration. Be specific about what to change. Examples: 'Change the primary color to #0033A0', 'Add a subtle drop shadow'
- `sessionId` (string, required): The session UUID containing the image to iterate on

### `inspectImageSession` (~101 tokens)

Retrieve detailed information about an image generation session and all its assets.

Returns:
\- Session metadata (creation time, name, status)
\- List of all assets with their prompts, toolchains, and status
\- Parent-child relationships showing iteration history

Use this to:
\- Review what was generated in a session
\- Find asset IDs for iteration
\- Understand the generation history and toolchains used

Input parameters:

- `sessionId` (string, required): The session UUID to inspect

### `exportImageAsset` (~198 tokens)

Export a generated image asset to a specific file path on the local filesystem.

Use this tool to save generated images to your project directory after reviewing them.

SECURITY:
\- Destination path must be an absolute path
\- Cannot write to system directories (/etc, /usr, /bin, /System, etc.)
\- Parent directories will be created if they don't exist

USAGE:
After generating an image with generateImage, use the sessionId and assetId to export:
  exportImageAsset(sessionId="...", assetId="...", destinationPath="/Users/me/project/images/logo.png")

Input parameters:

- `assetId` (string, required): The asset UUID to export
- `destinationPath` (string, required): Absolute path where the image should be saved (e.g., /Users/me/project/images/output.png)
- `overwrite` (boolean): Whether to overwrite if a file already exists. Defaults to true.
- `sessionId` (string, required): The session UUID containing the asset

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/securecoders-opengraph-io-mcp/opengraph-io-mcp#diagnostics

## Score history

- 2026-08-03: 64
- 2026-08-02: 64
- 2026-08-01: 24
- 2026-07-31: 24
- 2026-07-30: 50
- 2026-07-28: 50
- 2026-07-27: 50

## Links

- npm package: https://www.npmjs.com/package/opengraph-io-mcp
- Socket report: https://socket.dev/npm/package/opengraph-io-mcp
- Repository: https://github.com/securecoders/opengraph-io-mcp
- Changelog RSS feed: https://verifymcp.io/servers/securecoders-opengraph-io-mcp/opengraph-io-mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/securecoders-opengraph-io-mcp/opengraph-io-mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/securecoders-opengraph-io-mcp/opengraph-io-mcp
