# glim.sh (remote · glim.sh)

Give your agent live data from Twitter, Reddit, the web and GitHub. No API keys, no scraping stack.

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

## Components

- remote · `glim.sh`: 76/100 (this document), [markdown](https://verifymcp.io/servers/sh-glim-glim/glim.md), [page](https://verifymcp.io/servers/sh-glim-glim/glim)

## Channel facts

- Endpoint: `https://glim.sh/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, 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.

- **Endpoint Security**: 80/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 75/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 4323 tokens (~254/item across 17 items; 11 tools + 6 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **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.

## Install

### Claude

```bash
claude mcp add --transport http sh-glim-glim https://glim.sh/mcp
```

### Codex

```toml
[mcp_servers.sh-glim-glim]
url = "https://glim.sh/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "sh-glim-glim": {
      "type": "remote",
      "url": "https://glim.sh/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add sh-glim-glim --url https://glim.sh/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  sh-glim-glim:
    url: "https://glim.sh/mcp"
```

### Other

```json
{
  "mcpServers": {
    "sh-glim-glim": {
      "type": "http",
      "url": "https://glim.sh/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## 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-03 (score 76, +1)

No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-31 (score 75, +4)

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

### 2026-07-30 (score 71, 0)

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

### 2026-07-29 (score 71, +1)

No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-28 (score 70, +1)

No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-27 (score 69, 0)

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

### 2026-07-26 (score 69)

First indexed and scored.

## MCP tools (11)

### `glim_twitter_search` (~367 tokens)

Twitter Search

Search Twitter/X. Returns a compact human-readable list by default; pass format='json' for full structured data. Use glim_twitter_get(ref) for full thread context. Use docs://search-operators for reference.

Input parameters:

- `cursor` (string): Pagination cursor from previous search. Ranking is strongest on page 1 - paged results under sort:'top' trend toward recency (upstream behavior).
- `end_date` (string): Only tweets before this time. YYYY-MM-DD (inclusive through end of day UTC) or ISO 8601 datetime with Z/offset (e.g. 2026-04-13T14:30:00Z)
- `expand_urls` (boolean): When true, auto-crawl entity URLs and attach crawled_content to tweets. Off by default: responses can grow by up to 4KB per expanded URL. Use glim_web_fetch(url) for targeted crawls instead.
- `format` (string): Output format. 'text' (default): compact human-readable view, fewer tokens. 'json': full structured data for machine parsing.
- `query` (string, required): Search query with operators (e.g. 'from:elonmusk AI min_faves:100 within_time:7d')
- `sort` (string): Sort by relevance or recency: "top" (most engaged tweets matching the query - best for "what's the conversation about X") or "latest" (newest first - best for monitoring/recency). Default: "top".
- `start_date` (string): Only tweets on or after this time. YYYY-MM-DD (UTC midnight) or ISO 8601 datetime with Z/offset (e.g. 2026-04-13T14:30:00Z)

### `glim_twitter_get` (~329 tokens)

Fetch Tweet or User

Fetch a tweet or a user from one reference. A tweet URL (incl. handle-less /i/status/<id>) returns the tweet with full thread context, parent, and optional replies/quotes; a profile URL (https://x.com/<handle>) returns the user with recent tweets. Prefer full URLs - if you only have a numeric id, pass it as a quoted string. Returns a compact human-readable view by default; pass format='json' for full structured data.

Input parameters:

- `cursor` (string): Profile refs only: pagination cursor from next_cursor
- `expand_urls` (boolean): When true, auto-crawl entity URLs and attach crawled_content to tweets. Off by default: responses can grow by up to 4KB per expanded URL. Use glim_web_fetch(url) for targeted crawls instead.
- `format` (string): Output format. 'text' (default): compact human-readable view, fewer tokens. 'json': full structured data for machine parsing.
- `include` (array): Tweet refs only: also fetch 'replies' and/or 'quotes'
- `include_mentions` (boolean): Profile refs only: include the mentions timeline
- `include_replies` (boolean): Profile refs only: include replies in the timeline
- `ref` (string, required): Tweet URL or profile URL. A tweet URL (incl. /i/status/<id>) returns the tweet + thread; a profile URL (https://x.com/<handle>) returns the user + recent tweets. Prefer full URLs - if you only have a…

### `glim_reddit_search` (~289 tokens)

Reddit Search

Search Reddit posts. Each result comes with full post content and its top comments, so a single search usually answers the question without follow-up. Compact human-readable text by default; pass format='json' for full structured data. Use glim_reddit_get(ref) for a single post's complete comment tree. Page with cursor (response gives next_cursor when more exist). See docs://reddit-search.

Input parameters:

- `cursor` (string): Pagination cursor from a prior response's next_cursor
- `end_date` (string): Only posts before this date (YYYY-MM-DD)
- `format` (string): Output format. 'text' (default): compact human-readable view, fewer tokens. 'json': full structured data for machine parsing.
- `limit` (integer): Max posts (1-10), each with full content + top comments
- `query` (string, required): Search query (e.g. 'subreddit:programming machine learning')
- `sort` (string): Sort order. Keep 'relevance' (default) for question or topic queries - it ranks by how well posts match your query. 'top'/'hot' rank by score/recency and largely ignore the query text, so use them on…
- `start_date` (string): Only posts on or after this date (YYYY-MM-DD)
- `time` (string): Time range

### `glim_reddit_get` (~255 tokens)

Reddit Get

Fetch a Reddit post, subreddit, or user by ref. Posts return comments; subreddits and users return profile metadata plus recent activity.

Input parameters:

- `comment_depth` (integer): Max nesting depth (post refs only)
- `comment_limit` (integer): Max comments (post refs only)
- `comment_sort` (string): Comment sort. Post refs only: subreddit/user listings always hydrate a fixed 2 top-level comments sorted by top.
- `cursor` (string): Pagination cursor from a prior subreddit response's next_cursor
- `format` (string): Output format. 'text' (default): compact human-readable view, fewer tokens. 'json': full structured data for machine parsing.
- `include_comments` (boolean): Include recent comments for user refs
- `include_posts` (boolean): Include recent posts for user refs
- `limit` (integer): Max subreddit posts (1-10), each with full content + top comments
- `ref` (string, required): Post ID or URL, subreddit ref (r/programming or reddit.com/r/programming), or user ref (u/spez or reddit.com/user/spez)
- `sort` (string): Listing post sort
- `time` (string): Listing time range

### `glim_web_search` (~268 tokens)

Web Search

Semantic web search powered by Exa. Returns titles, URLs, and the top query-relevant excerpt per result. Compact text by default; pass format='json' for full structured data incl. all excerpts per result. Use glim_web_fetch(url) for full page content. Matching is semantic, so a query with no real match still returns ten nearest-neighbour results rather than zero - judge relevance from the excerpts, not from the result count.

Input parameters:

- `exclude_domains` (array): Exclude results from these domains. Useful for filtering noisy aggregators or SEO farms when you've seen them dominate results (e.g. ['pinterest.com', 'quora.com']).
- `format` (string): Output format. 'text' (default): compact human-readable list, fewer tokens. 'json': the same results as structured data (title, url, snippet, score, published_date, author).
- `include_domains` (array): Restrict results to these domains (e.g. ['arxiv.org'])
- `published_within_days` (integer): Restrict to results published within the last N days. Skip this for broad queries - it excludes pages without publish-date metadata. Common values: 1, 7, 30, 365.
- `query` (string, required): Search query

### `glim_web_fetch` (~289 tokens)

Web Fetch

Fetch a single web page and extract clean content. Auto-tier server-side: handles SSR (Next.js, Nuxt, TikTok, Pinterest, YouTube), SPA shells, PDFs, paywall detection, residential-proxy escalation, and stealth profiles for TikTok / Instagram / Pinterest / YouTube. Returns clean markdown (default) with a YAML frontmatter header (url, outcome, total_chars). Read 'outcome' to classify the result (success | teaser | thin_content | paywall | bot_challenge | consent_wall | login_wall | rate_limited | timeout | transient_upstream | unsupported_target | not_found | error). Large pages (>80k chars) are truncated inline with truncated_chars + a download_full_url to the complete extraction (expires ~1h). Permanently unsupported (outcome=unsupported_target, cost=0 upstream): Bluesky search, Instagram post/reel and tag/explore pages (profiles work), Pinterest search, g2.com, Truth Social, Xiaohongshu. Threads and Instagram profile pages ARE supported.

Input parameters:

- `format` (string): Output format. 'markdown' (default) clean article text; 'html' raw cleaned HTML; 'json' the structured SSR blob (TikTok / Pinterest / YouTube) instead of article text.
- `selector` (string): CSS selector to scope extraction
- `url` (string, required): URL to fetch

### `glim_github_search` (~773 tokens)

GitHub Search

Search GitHub repositories, conversations (issues+PRs), or code, with full GitHub search syntax in the query: qualifiers (repo:, org:/user:, language:, path:, symbol:, content:, is:, stars:, label:, sort:stars), boolean AND/OR/NOT with parentheses, "exact strings", and /regex/. kind='repos': MINIMAL distinctive keywords - the project/library name only ('rtk', 'react query'); every extra word must ALL match and buries the canonical repo - filter with qualifiers, not prose. kind='code': ONE literal code pattern as it appears in files ('useState('), an "exact string", a /regex/, or symbol:name to find definitions, across 2.8M+ public repos; narrow with repo:/language:/path:. Not supported in code search: license:, enterprise:, is:vendored, is:generated. kind='conversations': returns compact previews - use glim_github_get for full content; sort: REPLACES relevance ranking (words match anywhere incl. comments), omit it for best matches. Set repo='owner/name' to scope to one repository (works with any kind; with repos it routes to conversations). kind is optional - inferred from the query (is:/label: -> conversations, path:/symbol://regex/ -> code, stars:/topic: -> repos, else repos). Returns compact text by default; pass format='json' for full structured data.

Input parameters:

- `format` (string): Output format. 'text' (default): compact human-readable previews, fewer tokens. 'json': full structured data for machine parsing.
- `kind` (string): What to search: 'repos', 'conversations' (issues+PRs), or 'code' (literal/regex/symbol search across 2.8M+ public GitHub repos). Optional - inferred from the query: is:/label:/author: implies convers…
- `page` (integer): Page number
- `per_page` (integer): Results per page
- `query` (string, required): Search query in full GitHub search syntax: qualifiers (repo:owner/name, org:/user:, language:, path: with globs, symbol:, content:, is:, stars:>N, label:, sort:stars), boolean AND/OR/NOT with parenth…
- `repo` (string): Scope to one repository. Accepts 'owner/name', a github.com URL, or a partial 'owner/' (code). Works with any kind; setting it with kind=repos routes the search to conversations, since repo-name sear…

### `glim_github_get` (~374 tokens)

GitHub Get

Fetch GitHub data from a single ref. GitHub URL or 'owner/repo' shorthand. A repo URL or owner/repo returns metadata + README; /pull/N -> PR (with comments + changed files), /issues/N -> issue, /blob/<ref>/<path> -> file (raw.githubusercontent.com URLs work too), /tree/<ref>[/<path>] -> file tree (optionally scoped to a subdirectory), /commit/<sha> -> one commit with diff, /commits[/<ref>/<path>] -> history (optionally for one file), /branches, /releases (or /releases/tag/<tag> | /releases/latest -> one release), /topics/<name> -> top repos with that topic (by stars).

Input parameters:

- `format` (string): Output encoding. 'text' (default): compact human-readable text, fewer tokens (file returns raw content). 'json': machine-readable JSON.
- `page` (integer): Page number
- `per_page` (integer): Results per page
- `ref` (string, required): GitHub URL or 'owner/repo' shorthand. A repo URL or owner/repo returns metadata + README; /pull/N -> PR (with comments + changed files), /issues/N -> issue, /blob/<ref>/<path> -> file (raw.githubuser…

### `glim_amazon_search` (~406 tokens)

Amazon Search

Pass exactly ONE of {query} or {category_slug}. Searches Amazon (com|co.uk|de|fr|es|it) and returns ranked hits with buybox price (gross + VAT-excluded net), ratings, review counts, and ASINs. Drill down with glim_amazon_get(ref). Set sort_by='most_reviewed' (with min_reviews to filter junk) for a trust-weighted re-rank within the current page. Compact text by default; pass format='json' for full structured data.

Input parameters:

- `category_slug` (string): Amazon bestsellers category slug, e.g. 'electronics' (.com), 'elektronik' (.de), 'electronique' (.fr). Invalid slugs return 'not_found' - retry with a correct slug.
- `format` (string): Output format. 'text' (default): compact human-readable view, fewer tokens. 'json': the same hits as machine-readable JSON. Text already carries every field except `image_url`, which only json return…
- `include_paid` (boolean): Include sponsored ad results (default: dropped)
- `include_suggested` (boolean): Include 'people also searched for' suggestions (default: dropped)
- `min_reviews` (integer): Drop hits with fewer than N reviews. Pair with sort_by='most_reviewed' for a trust-weighted result. Applied client-side to organic/paid/suggested.
- `page` (integer): Page number (1-20)
- `query` (string): Free-text keyword query (mutually exclusive with category_slug)
- `sort_by` (string): Server-side sort, except 'most_reviewed' which re-ranks the current page client-side by review count desc (rating tiebreaker). Pair 'most_reviewed' with min_reviews to skip thinly-reviewed items.
- `tld` (string): Amazon marketplace: com | co.uk | de | fr | es | it

### `glim_amazon_get` (~288 tokens)

Amazon Product

Fetch Amazon product detail from a full product URL (the marketplace - com|co.uk|de|fr|es|it - is read from the URL host; pass the url field from a glim_amazon_search result, or any /dp/<ASIN> page URL). Returns title, buybox price (gross + VAT-excluded net), stock, delivery estimate, rating, top reviews, and an 'other sellers' summary (count + floor price). Text mode (default) returns a compact view with offers_summary {buybox, lowest_new, lowest_used} - pass format='json' for full structured data incl. the offers[] listing and images.

Input parameters:

- `format` (string): Output format. 'text' (default): compact human-readable view, fewer tokens. 'json': the same product as machine-readable JSON, plus the fields text omits: the full `offers[]` list (text summarizes it…
- `ref` (string, required): Full Amazon product URL - pass the `url` from a glim_amazon_search result, or any /dp/<ASIN> product page URL. The URL carries the marketplace (amazon.de, amazon.co.uk, ...), so no separate region is…

### `glim_youtube_get` (~392 tokens)

YouTube Transcript

Fetch a YouTube video transcript from a video URL or 11-char id. The transcript is cleaned server-side: deduplicated, tags/HTML stripped, with coarse [m:ss] timestamps - roughly a tenth the size of the raw captions. Default format='text' returns it inline (when it fits ~40K chars / ~10K tokens) so a single call gives you the text directly; long-form videos fall back to a download_url note. Pass format='json' for the same transcript plus transcript metadata (video_id, canonical url, language, origin, size) and a presigned download_url - for batch/programmatic use. Default origin='uploader_provided' (human captions); falls back to 'auto_generated' automatically if missing (counts as 2 upstream calls). Cached 7 days server-side.

Input parameters:

- `format` (string): Output format. 'text' (default): the cleaned transcript inline as plain text (omitted with a download_url note when it exceeds the ~40K-char inline cap). 'json': the same cleaned transcript plus tran…
- `language_code` (string): ISO 639-1 language code (e.g. 'en', 'de', 'fr')
- `origin` (string): 'uploader_provided' for human captions (default), 'auto_generated' for YouTube auto-captions.
- `ref` (string, required): YouTube video URL or 11-char video id (e.g. https://youtu.be/dQw4w9WgXcQ, https://www.youtube.com/watch?v=dQw4w9WgXcQ, or dQw4w9WgXcQ)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/sh-glim-glim/glim#diagnostics

## Score history

- 2026-08-03: 76
- 2026-08-02: 75
- 2026-08-01: 75
- 2026-07-31: 75
- 2026-07-30: 71
- 2026-07-29: 71
- 2026-07-28: 70
- 2026-07-27: 69
- 2026-07-26: 69

## Links

- Remote endpoint: https://glim.sh/mcp
- Repository: https://github.com/glim-sh/glim-mcp
- Website: https://glim.sh/
- Changelog RSS feed: https://verifymcp.io/servers/sh-glim-glim/glim/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/sh-glim-glim/glim/changelog.json
- HTML version of this page: https://verifymcp.io/servers/sh-glim-glim/glim
