Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

glim.sh

REMOTE · GLIM.SH

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

Available components

−1 this week 84 Trust /100

Last scanned (58 minutes ago)

Scores higher than 89% of remote servers

Reachable. Last reached 5 Nov 2026.

Category Search and Retrieval

Trust breakdown (7 categories)

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. How we score → Why this is hard to score →

Endpoint Security74
Transport & Reachability100
Schema Quality & AI Usability76
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 5182 tokens (~272/item across 19 items; 13 tools + 6 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management92
  • Stability check failed: schema churn in the 30 days we've observed: 1 tool removals, 0 breaking changes, 0 auth/transport breaks, 0 additions. See how to fix → Fail
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 13 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 15 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 4 Nov 26 −1
    • Stability: pass → fail ▼ security
    • A breaking change shipped without a version bump: still 1.0.0 ▼ security
    • Tool “glim_detect_ai” was removed ▼ security
  • 24 Oct 26 −3
    • HSTS header: pass → fail ▼ security
    • Tool “glim_github_search” rewrote its description, which is the text the model reads security
    • “glim_github_search” reworded the description of “query” cosmetic
  • 28 Sept 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 25 Sept 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 24 Sept 26 0
    • “glim_web_fetch” reworded the description of “selector” cosmetic

    1 cosmetic change on this day. Switch on “Show cosmetic changes” to see it.

  • 9 Sept 26 0
    • Schema quality: good → excellent functional
  • 29 Aug 26 0
    • Tool “glim_detect_ai” rewrote its description, which is the text the model reads security
    • Schema quality: excellent → good functional
    • “glim_detect_ai” reworded the description of “format” cosmetic
    • “glim_detect_ai” reworded the description of “text” cosmetic
    • “glim_detect_ai” dropped the optional parameter “tier” cosmetic
  • 28 Aug 26 0
    • Tool “glim_github_get” rewrote its description, which is the text the model reads security
    • Tool “glim_github_search” rewrote its description, which is the text the model reads security
    • “glim_github_get” reworded the description of “ref” cosmetic
    • “glim_github_search” reworded the description of “kind” cosmetic
    • “glim_github_search” reworded the description of “query” cosmetic
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Probed https://glim.sh/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=glim.sh CN=YE1,O=Let's Encrypt,C=US 23 Oct 2026 21 Jan 2027 ECDSA 256 ECDSA-SHA384 5fb1308bfc3e2c3d24339eb6927f4a016bc
SANs: glim.sh
CN=YE1,O=Let's Encrypt,C=US (CA) CN=Root YE,O=ISRG,C=US 3 Sept 2025 2 Sept 2028 ECDSA 384 ECDSA-SHA384 5ddd70dd31f801c85c186a7a04b80afe
CN=Root YE,O=ISRG,C=US (CA) CN=ISRG Root X2,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 ECDSA-SHA384 872165fc34b6e5fba8add5b3705fb53a
CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) CN=ISRG Root X1,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 SHA256-RSA 6c8f1dc727c7117f7baf853ac980f9cd

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of glim.sh. — Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
sh. present 34349 8 Verified
glim.sh. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://glim.sh/mcp Verified 200
http (plaintext) http://glim.sh/mcp HTTPS enforced 308 https://glim.sh:443/mcp
MCP tools · 13 exposed · ~4,901 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
glim_amazon_get ~288

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.

NameTypeReqDescription
formatstring–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…
refstringyesFull 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…

No output schema declared.

No examples provided.

glim_amazon_search ~406

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.

NameTypeReqDescription
category_slugstring–Amazon bestsellers category slug, e.g. 'electronics' (.com), 'elektronik' (.de), 'electronique' (.fr). Invalid slugs return 'not_found' - retry with a correct slug.
formatstring–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_paidboolean–Include sponsored ad results (default: dropped)
include_suggestedboolean–Include 'people also searched for' suggestions (default: dropped)
min_reviewsinteger–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.
pageinteger–Page number (1-20)
querystring–Free-text keyword query (mutually exclusive with category_slug)
sort_bystring–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.
tldstring–Amazon marketplace: com | co.uk | de | fr | es | it

No output schema declared.

No examples provided.

glim_github_get ~396

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, /discussions/N -> discussion (with threaded replies), /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).

NameTypeReqDescription
formatstring–Output encoding. 'text' (default): compact human-readable text, fewer tokens (file returns raw content). 'json': machine-readable JSON.
pageinteger–Page number
per_pageinteger–Results per page
refstringyesGitHub URL or 'owner/repo' shorthand. A repo URL or owner/repo returns metadata + README; /pull/N -> PR (with comments + changed files), /issues/N -> issue, /discussions/N -> discussion (with threade…

No output schema declared.

No examples provided.

glim_github_search ~1,091

Search GitHub repositories, conversations (issues+PRs), discussions, 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:. Without repo:/org: a rare literal scans every repo and can end as an incomplete zero - add repo:/org:/language: before retrying it, never resend it unchanged. 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. kind='discussions': GitHub Discussions, a SEPARATE index from issues/PRs - a question answered there never appears under conversations, so reach for it when a repo does its Q&A in Discussions; supports repo:/org:/author:/is:answered plus category: (the repo's own category name, needs a repo: scope), up to 10 results per page, no sort:. 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:answered/category: -> discussions, is:/label: -> conversations, path:/symbol://regex/ -> code, stars:/topic: -> repos, else repos); a conversations search with no matches is retried as discussions and says so. Returns compact text by default; pass format='json' for full structured data.

NameTypeReqDescription
formatstring–Output format. 'text' (default): compact human-readable previews, fewer tokens. 'json': full structured data for machine parsing.
kindstring–What to search: 'repos', 'conversations' (issues+PRs), 'discussions' (GitHub Discussions - a separate index from issues/PRs), or 'code' (literal/regex/symbol search across 2.8M+ public GitHub repos).…
pageinteger–Page number
per_pageinteger–Results per page
querystringyesSearch 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…
repostring–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…

No output schema declared.

No examples provided.

glim_reddit_get ~255

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

NameTypeReqDescription
comment_depthinteger–Max nesting depth (post refs only)
comment_limitinteger–Max comments (post refs only)
comment_sortstring–Comment sort. Post refs only: subreddit/user listings always hydrate a fixed 2 top-level comments sorted by top.
cursorstring–Pagination cursor from a prior subreddit response's next_cursor
formatstring–Output format. 'text' (default): compact human-readable view, fewer tokens. 'json': full structured data for machine parsing.
include_commentsboolean–Include recent comments for user refs
include_postsboolean–Include recent posts for user refs
limitinteger–Max subreddit posts (1-10), each with full content + top comments
refstringyesPost ID or URL, subreddit ref (r/programming or reddit.com/r/programming), or user ref (u/spez or reddit.com/user/spez)
sortstring–Listing post sort
timestring–Listing time range

No output schema declared.

No examples provided.

glim_reddit_search ~289

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.

NameTypeReqDescription
cursorstring–Pagination cursor from a prior response's next_cursor
end_datestring–Only posts before this date (YYYY-MM-DD)
formatstring–Output format. 'text' (default): compact human-readable view, fewer tokens. 'json': full structured data for machine parsing.
limitinteger–Max posts (1-10), each with full content + top comments
querystringyesSearch query (e.g. 'subreddit:programming machine learning')
sortstring–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_datestring–Only posts on or after this date (YYYY-MM-DD)
timestring–Time range

No output schema declared.

No examples provided.

glim_telegram_get ~325

Fetch a public Telegram channel or post - no account or API key involved. Channel refs (@handle, handle, t.me URL) return channel info + recent posts newest-first with views, reactions, media, polls, and link previews; pass query to search within the channel's full history, and page older posts with before=<next_cursor>. Post refs (t.me/<channel>/<id>) return that post plus its most recent discussion comments. Media URLs are Telegram CDN links that expire within hours - fetch promptly, never store. Only channels with a public web preview work (most public channels); private channels and groups are not accessible.

NameTypeReqDescription
afterstring–Return posts newer than this message id
beforestring–Return posts older than this message id (from next_cursor)
commentstring–Post refs: center the comment window on this comment id
formatstring–Output format. 'text' (default): compact human-readable view, fewer tokens. 'json': full structured data for machine parsing.
include_commentsboolean–Post refs: include discussion comments (Telegram serves a small window of the most recent; walk older ones via comment=<oldest returned id>)
limitinteger–Max posts for channel refs (1-100)
querystring–Search within the channel's full history (channel refs only)
refstringyesPublic channel (@handle, handle, or t.me/<channel> URL) or post (t.me/<channel>/<id> or '<channel>/<id>')

No output schema declared.

No examples provided.

glim_telegram_search ~171

Search Telegram: discovers public channels by name/topic (directory lookup) and finds indexed public post/channel pages (semantic web index scoped to t.me). Telegram has no global full-text search, so treat results as discovery: find the right channel here, then use glim_telegram_get(ref=<handle>) for its live posts or glim_telegram_get(ref, query=...) to search within that channel's full history.

NameTypeReqDescription
formatstring–Output format. 'text' (default): compact human-readable view, fewer tokens. 'json': full structured data for machine parsing.
kindstring–'channels': channel directory lookup. 'posts': indexed t.me post pages. 'all' (default): both.
querystringyesSearch query (topic, channel name, keyword)

No output schema declared.

No examples provided.

glim_twitter_get ~329

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.

NameTypeReqDescription
cursorstring–Profile refs only: pagination cursor from next_cursor
expand_urlsboolean–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.
formatstring–Output format. 'text' (default): compact human-readable view, fewer tokens. 'json': full structured data for machine parsing.
includearray–Tweet refs only: also fetch 'replies' and/or 'quotes'
include_mentionsboolean–Profile refs only: include the mentions timeline
include_repliesboolean–Profile refs only: include replies in the timeline
refstringyesTweet 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…

No output schema declared.

No examples provided.

glim_twitter_search ~367

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.

NameTypeReqDescription
cursorstring–Pagination cursor from previous search. Ranking is strongest on page 1 - paged results under sort:'top' trend toward recency (upstream behavior).
end_datestring–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_urlsboolean–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.
formatstring–Output format. 'text' (default): compact human-readable view, fewer tokens. 'json': full structured data for machine parsing.
querystringyesSearch query with operators (e.g. 'from:elonmusk AI min_faves:100 within_time:7d')
sortstring–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_datestring–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)

No output schema declared.

No examples provided.

glim_web_fetch ~324

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.

NameTypeReqDescription
formatstring–Output format. 'markdown' (default) clean article text; 'html' raw cleaned HTML; 'json' the structured SSR blob (TikTok / Pinterest / YouTube) instead of article text.
selectorstring–CSS selector to scope the result. An anchor-id selector (e.g. a docs anchor like '#usage') that lands on a heading expands to its whole section; other selectors return the matched elements themselves.
urlstringyesURL to fetch

No output schema declared.

No examples provided.

glim_web_search ~268

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.

NameTypeReqDescription
exclude_domainsarray–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']).
formatstring–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_domainsarray–Restrict results to these domains (e.g. ['arxiv.org'])
published_within_daysinteger–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.
querystringyesSearch query

No output schema declared.

No examples provided.

glim_youtube_get ~392

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.

NameTypeReqDescription
formatstring–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_codestring–ISO 639-1 language code (e.g. 'en', 'de', 'fr')
originstring–'uploader_provided' for human captions (default), 'auto_generated' for YouTube auto-captions.
refstringyesYouTube video URL or 11-char video id (e.g. https://youtu.be/dQw4w9WgXcQ, https://www.youtube.com/watch?v=dQw4w9WgXcQ, or dQw4w9WgXcQ)

No output schema declared.

No examples provided.

Install

How do I install the glim.sh MCP server?

glim.sh is a hosted endpoint at https://glim.sh/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · glim.sh

# add to Claude Code
claude mcp add --transport http sh-glim-glim 'https://glim.sh/mcp'
Common questions

What is the glim.sh MCP server?

glim.sh is an MCP server listed in the public MCP registry as sh.glim/glim. Give your agent live data from Twitter, Reddit, the web and GitHub. No API keys, no scraping stack. This page covers its hosted endpoint (https://glim.sh/mcp).

Is the glim.sh MCP server safe to use?

glim.sh scores 84 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the glim.sh MCP server expose?

glim.sh exposes 13 tools: glim_twitter_search, glim_twitter_get, glim_reddit_search, glim_reddit_get, glim_web_search, and 8 more. Their descriptions and schemas cost roughly 4,901 tokens of context every time the server is loaded.

Does the glim.sh MCP server require authentication?

No. We connected to glim.sh without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

Is the glim.sh MCP server still maintained?

glim.sh is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.