Skip to main content
Glama

shareglow-mcp

MCP server for Shareglow: scan link previews, generate Open Graph images, create short links with their own preview, and read click stats from any MCP client.

It is a thin client of the Shareglow REST API (/v1). Your API key is passed straight through, so plan limits and rate limits apply unchanged. The server holds no credentials of its own.

Hosted endpoint

https://mcp.getshareglow.com/mcp
Authorization: Bearer sk_live_...

Transport: Streamable HTTP. Create an API key at https://app.getshareglow.com/developer.

Related MCP server: picoli-mcp

Tools

Tool

Description

scan_url

Scan a public web page and report its link-preview (Open Graph / Twitter Card) metadata, previews per platform, and issues with fix suggestions.

generate_og_image

Render a 1200x630 Open Graph image from a template id (see list_templates) and text params such as title and subtitle. Returns the permanent image URL and whether it was cached. Optional exp (Unix seconds, paid plans) makes the signed URL expire.

create_template_from_url

Use AI to design a new OG image template from a website's brand (logo, colors, fonts) taken from a URL. Returns the layout id, the variables to pass, and the extracted brand kit. Counts against the plan's AI quota.

list_templates

List the OG image templates the workspace can render (built-in and custom) with id, name, version and dimensions.

create_short_link

Create a short link with its own link preview. Optional custom slug and optional A/B variants (title, description, imageUrl or templateId). Returns id, shortUrl and variants.

get_link_stats

Get click analytics for a short link by id: totals plus breakdowns by day, country, device, browser and referrer. Optional from/to dates (YYYY-MM-DD).

refresh_preview

Force social platforms to re-fetch a page's link preview after you changed its OG tags or image: bumps the og:image cache-buster, re-scrapes Facebook, and returns the LinkedIn Post Inspector link and the X cache note.

Client setup

Claude Code

claude mcp add --transport http shareglow https://mcp.getshareglow.com/mcp \
  --header "Authorization: Bearer sk_live_..."

Claude Desktop

Claude Desktop reaches remote servers through mcp-remote. Add to claude_desktop_config.json:

{
  "mcpServers": {
    "shareglow": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://mcp.getshareglow.com/mcp", "--header", "Authorization:${AUTH}"],
      "env": { "AUTH": "Bearer sk_live_..." }
    }
  }
}

Or skip the remote and use the stdio server below.

Cursor

~/.cursor/mcp.json:

{
  "mcpServers": {
    "shareglow": {
      "url": "https://mcp.getshareglow.com/mcp",
      "headers": { "Authorization": "Bearer sk_live_..." }
    }
  }
}

Local stdio (any client)

{
  "mcpServers": {
    "shareglow": {
      "command": "npx",
      "args": ["-y", "shareglow-mcp"],
      "env": { "SHAREGLOW_API_KEY": "sk_live_..." }
    }
  }
}

The key can also be passed as --api-key sk_live_.... SHAREGLOW_API_URL points the server at another REST base (default https://app.getshareglow.com).

Errors and limits

  • Each tool needs the key scope of its REST call. A key without it gets 403 insufficient_scope.

  • REST 401, 402, 403 and 429 become MCP tool errors (isError: true) that carry the API's message.

  • URLs are validated before forwarding (http/https, no private or local hosts).

  • Tool results are truncated at 20,000 characters. The API key is redacted from every result and error.

Local development

npm install
npm run typecheck
npm test
npm run build
npm run dev          # Streamable HTTP on PORT (default 8791)
npm run dev:worker   # Cloudflare Worker via wrangler dev

Node 22 or newer is required.

License

MIT, see LICENSE.

Available Tools

7 tools
create_template_from_urlAInspect

Use AI to design a new OG image template from a website's brand (logo, colors, fonts) taken from a URL. Returns the chosen layoutId (a built-in template id usable with generate_og_image), the variables to pass, and the extracted brand kit. Counts against the plan's AI quota.

NameRequiredDescriptionDefault
urlYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations only supply openWorldHint=true, so the description carries the rest: it discloses that this is an AI-driven, non-deterministic operation and warns that it 'counts against the plan's AI quota' — valuable cost information an agent needs before invoking. It doesn't say whether a template is persisted, what happens on extraction failure, or whether the call is idempotent, leaving some gaps.

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?

Three compact sentences, front-loaded with purpose, then return values, then the quota caveat. No filler and nothing repeated from structured fields.

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?

With no output schema, the description correctly spells out what comes back (layoutId, variables, extracted brand kit) and how the layoutId connects to generate_og_image. Combined with the quota warning, an agent has everything needed to call this correctly for a one-parameter tool.

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

Parameters4/5

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

Schema coverage is 0% and the single 'url' param is undocumented in the schema, so the description must compensate. It does clarify the semantic meaning of the URL — the website whose brand (logo, colors, fonts) will be extracted — but adds no format/length/edge-case guidance beyond the schema's uri and maxLength constraints.

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?

States a specific verb and resource ('design a new OG image template') plus the input source ('from a website's brand ... taken from a URL'), and it explains the artifact produced (layoutId usable with generate_og_image). An agent can distinguish this from generate_og_image, list_templates, or scan_url without opening any schema.

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?

It makes the triggering condition clear (you have a website URL and want a branded template designed) and names generate_og_image as the downstream consumer of the returned layoutId. It stops short of stating when NOT to use it (e.g. vs list_templates for existing templates or scan_url for plain extraction), so it is clear context without explicit exclusions.

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

generate_og_imageAInspect

Render a 1200x630 Open Graph image from a template id (see list_templates) and text params such as title and subtitle. Returns the permanent image URL to put in og:image, and whether it was already cached. Optional exp (Unix seconds, paid plans) makes the signed URL expire; leave it out for an og:image URL.

NameRequiredDescriptionDefault
expNo
paramsNo
templateIdYes

TDQS

A4.4/5.0
Behavior4/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 discloses the return shape (permanent image URL plus cached flag), the caching behavior, and the paid-plan gating and URL-expiry semantics of exp. It omits auth requirements, latency of rendering, and side effects of generating an asset, keeping it from a 5.

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?

Three sentences, dense with no filler, and front-loaded with the core render action before the return values and the exp caveat. Every clause carries usable information.

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

Completeness4/5

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

With no output schema and no annotations, the description does the work of explaining both the returned URL/cached flag and the exp behavior, which is what an agent needs to call it correctly. A bit more on permissions or the allowed params keys would make it fully complete for a nested-object tool.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate, and it does: templateId is tied to list_templates, params is described as free-form text params (title, subtitle), and exp is explained as Unix seconds with paid-plan gating and expiry consequences. The unbounded key space of params is only illustrated by example, not fully characterized.

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?

States a specific verb (Render) and resource (1200x630 Open Graph image) plus the required input (template id). It names the sibling list_templates for obtaining a template id, so an agent can tell it apart from create_template_from_url without opening either schema.

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?

Gives clear guidance on the templateId source (see list_templates) and explicit when-to-use for the optional exp param ('leave it out for an og:image URL'). It stops short of naming alternatives or exclusion cases for the tool itself, so it is clear context rather than full routing.

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

list_templatesA
Read-only
Inspect

List the OG image templates the workspace can render (built-in and custom) with id, name, version and dimensions. Call this before generate_og_image to pick a templateId.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already establish this as a read-only operation, so the bar is lower. The description goes further by disclosing the return contents (id, name, version, dimensions) and the built-in/custom scope, which matters since there is no output schema. It does not cover pagination or auth, so not a 5.

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 sentences, no filler. The result contents come first and the prerequisite workflow hint is front-loaded second.

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?

With zero parameters and no output schema, the description supplies everything an agent needs: what is listed, what fields come back, and the sequencing relative to generate_og_image.

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

Parameters4/5

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

The tool takes no parameters (0 params), so the baseline is 4. Nothing in the description is needed to explain input, and it correctly does not attempt to.

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?

Specific verb (List) plus resource (OG image templates) with scope qualifiers (built-in and custom) and the returned fields. It is clearly distinguishable from generate_og_image, which it names.

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

Usage Guidelines5/5

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

States the exact call ordering: invoke this before generate_og_image, and why (to pick a templateId). That is an explicit when-to-use with the relevant alternative named.

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

refresh_previewAInspect

Force social platforms to re-fetch a page's link preview after you changed its OG tags or image: bumps the og:image cache-buster, re-scrapes Facebook, and returns the LinkedIn Post Inspector link and the X cache note.

NameRequiredDescriptionDefault
urlYes

TDQS

A4.1/5.0
Behavior4/5

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

Only openWorldHint is annotated, so the description carries most of the burden, and it does disclose real side effects: cache-buster mutation, a Facebook re-scrape, and the returned LinkedIn/X artifacts. It omits auth requirements and any platform rate-limit or failure caveats, which matter for a tool that hits Facebook's scraper.

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?

A single dense sentence with the action front-loaded and consequences in a colon-delimited list, so nothing is wasted. It is slightly run-on, bundling the action, side effects, and return values into one clause chain.

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

Completeness4/5

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

With no output schema, the description usefully previews what comes back (LinkedIn Post Inspector link, X cache note), which an agent otherwise could not infer. What remains missing is auth/permission context for the external platforms, a real gap for an open-world tool.

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?

One parameter with 0% schema description coverage, so the description must compensate. It implies the input is the page URL whose preview is being refreshed ('a page's link preview'), which gives useful context, but adds nothing about format expectations beyond what the schema's uri format already enforces.

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?

States a specific verb and resource ('Force social platforms to re-fetch a page's link preview') and enumerates the concrete effects (cache-buster bump, Facebook re-scrape). It is clearly distinguishable from siblings like generate_og_image, which produces an image rather than invalidating a cached preview.

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?

Gives an explicit trigger condition: 'after you changed its OG tags or image.' That is clear when-to-use guidance. It stops short of naming a when-not condition or an alternative tool, so it falls short of a 5.

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

scan_urlA
Read-only
Inspect

Scan a public web page and report its link-preview (Open Graph / Twitter Card) metadata, previews per platform, and issues with fix suggestions. Use it to answer 'why does my link preview look wrong?'.

NameRequiredDescriptionDefault
urlYes

TDQS

A3.9/5.0
Behavior3/5

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

The readOnlyHint and openWorldHint annotations already establish that this is a safe external fetch, and 'public web page' is consistent with that. The description adds that output includes per-platform previews and fix suggestions, but says nothing about crawling limits, timeouts, auth requirements, or idempotency, so it adds only modest context.

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 sentences with no waste: capability statement first, then the use case. Everything is front-loaded and each clause carries information an agent can act on.

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 single-parameter read-only scanner, the description names the analyzed inputs, the output categories (metadata, per-platform previews, issues with fixes), and the question it answers. Nothing needed to call it correctly is missing, and there is no output schema implying more detail was expected.

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 description coverage is 0%, so the description must carry the url parameter, and it only implies one constraint: the page must be public. It does not explain acceptable formats, whether redirects are followed, or why the 2048-character cap exists, so it partially but not fully compensates for the schema gap.

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

Purpose4/5

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

The description gives a specific verb and resource ('Scan a public web page') plus the exact artifacts produced (Open Graph / Twitter Card metadata, per-platform previews, issues with fixes). That scope separates it from siblings like refresh_preview and get_link_stats, though it never names an alternative explicitly.

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?

It supplies a concrete usage context ('Use it to answer why does my link preview look wrong?'), which is a real routing signal for an agent. It stops short of stating when not to use it or which sibling to prefer for related tasks such as refreshing or generating previews.

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. 7 tool updatesv0.1.0
    • First observedcreate_short_link
    • First observedcreate_template_from_url
    • First observedgenerate_og_image
    • First observedget_link_stats
    • First observedlist_templates
    • First observedrefresh_preview
    • First observedscan_url

TDQS

A4/5.0

Scored across 7 tools

Disambiguation4/5

Most tools have clearly distinct purposes: scanning a page, rendering an image, listing templates, creating a template, creating a short link, reading stats, and refreshing previews. The main potential overlap is between scan_url and refresh_preview, since both concern link previews, but the descriptions distinguish diagnosis from cache invalidation.

Naming Consistency5/5

All tool names use snake_case and follow a verb-first pattern such as scan_url, list_templates, create_short_link, and get_link_stats. The few longer names like generate_og_image and create_template_from_url remain readable and consistent with the convention.

Tool Count5/5

Seven tools is well-scoped for a link-preview and OG-image service. Each tool covers a distinct step in the workflow, and there is no obvious redundancy or padding.

Completeness3/5

The core workflow is covered: scan previews, list/create templates, generate images, create short links, view stats, and refresh previews. However, lifecycle operations are thin for short links and templates, with no list/update/delete tools for either resource, which limits management beyond initial creation.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    F
    maintenance
    Enables URL shortening, click tracking, and analytics for AI agents via the picoli.site API.
    5
    25 npm
    2
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Zero-signup link-preview API that returns clean metadata (title, description, image, etc.) from any public URL. No API key required.
    2
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables AI agents to shorten URLs, manage links, and track click analytics through 8 first-class tools, designed for use with Claude Desktop, Cursor, and other MCP clients.
    9
    19 npm
    MIT