glim-mcp — Claude Code skill: live-data research via glim.sh
Runs web search, X/Twitter, Reddit, GitHub, Amazon and YouTube lookups, then hands back a digest with sources attached.
npx skills add aeonfun/aeon --skill glim-mcp -a claude-codeWhat glim-mcp does
The skill answers a single research question from fresh data instead of the model's memory. It talks to the glim.sh/mcp MCP server: web search, full-page extraction, and native access to X/Twitter, Reddit, GitHub, Amazon and YouTube transcripts. Every call spends from a prepaid glim balance, so the sweep stays bounded.
A query is split into 2–4 sub-questions, and tools get picked per sub-question. The cap is 10 calls per run, 25 with --deep; once the budget is gone the skill writes up whatever it already has. Full pages are pulled for the 2–3 sources that actually carry the answer. Delivery is one ./notify -f <file> call holding the answer, the evidence, a link list and a calls: N/<budget> line.
The server is wired up with the Connect button in the dashboard MCP panel; tokens live as MCP_GLIM_TOKEN and MCP_GLIM_OAUTH and get refreshed by a script. With nothing connected, the mcp__glim__* tools aren't callable and the run exits with GLIM_NOT_CONNECTED. An empty balance returns a payment error, and you get partial results marked as partial.
What it helps with
- pull current takes on a topic from X and Reddit
- grab a full article body instead of a search snippet
- find how a repo is being discussed on GitHub
- get a transcript from a YouTube video
- merge scattered sources into one answer with links
Example prompts for the agent
- What are people saying about MCP servers this week?
- Pull the top HN and Reddit takes on <topic> --deep
- Find what X is saying about this library and give me the links
How to install glim-mcp
1Skills CLI (Vercel)
npx skills add aeonfun/aeon --skill glim-mcp -a claude-code2Manually: put the files in place
~/.claude/skills/glim-mcp/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/glim-mcp/
1Skills CLI (Vercel)
npx skills add aeonfun/aeon --skill glim-mcp -a codex2Manually: put the files in place
.agents/skills/glim-mcp/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add aeonfun/aeon --skill glim-mcp -a cursor2Manually: put the files in place
.cursor/skills/glim-mcp/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install aeonfun/aeon glim-mcp2Manually: put the files in place
.github/skills/glim-mcp/SKILL.md1Skills CLI (Vercel)
npx skills add aeonfun/aeon --skill glim-mcp -a gemini-cli2Platform CLI
gemini skills install https://github.com/aeonfun/aeon --path skills/glim-mcpManually: put the files in place
.devin/skills/glim-mcp/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add aeonfun/aeon --skill glim-mcp -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about glim-mcp
How do I install glim-mcp in Claude Code?
Run npx skills add aeonfun/aeon --skill glim-mcp -a claude-code, then connect the glim.sh MCP server with the Connect button in the dashboard panel.
What does glim-mcp do?
It answers one research question from live data — web search, page extraction, X/Twitter, Reddit, GitHub, Amazon and YouTube transcripts — and returns a cited digest.
Why won't the skill run?
The mcp__glim__* tools only show up after the server is connected. If it is connected but calls return 401, refresh OAuth by reconnecting the server in the dashboard.
Source text
SKILL.md · MIT
---
name: glim-mcp
description: Live-data research via the glim.sh MCP - web search, full page extraction, X/Twitter, Reddit, GitHub, Amazon, and YouTube transcripts - synthesized into a cited digest. Pay-per-call from the connected account balance; OAuth Connect via the dashboard MCP panel.
metadata:
title: Glim MCP
mode: read-only
category: basics
var: ""
tags:
- research
- data
- mcp
mcp:
- glim
capabilities:
- external_api
- sends_notifications
---
> **${var}** — the research question or task, e.g. `what are people saying about MCP servers this week` or `pull the top HN + Reddit takes on <topic>`. Append `--deep` for a wider sweep. Required. If empty, log `GLIM_NO_QUERY` and exit cleanly (no notify).
Answer one research question with **live data** through the glim.sh MCP server (`glim.sh/mcp`): web search, full-page extraction, and platform-native access to X/Twitter, Reddit, GitHub, Amazon, and YouTube transcripts. Every call draws from the operator's prepaid glim balance — spend is real, so the sweep is bounded.
## Detection & auth
The server is wired by the dashboard MCP panel's one-click **Connect** (OAuth with `offline_access`; tokens stored as `MCP_GLIM_TOKEN` + `MCP_GLIM_OAUTH`, refreshed each run by `scripts/mcp-oauth-refresh.sh`). Its tools surface as `mcp__glim__*` — discover them from the server; the tool descriptions are the source of truth, don't assume a fixed list.
- **No `mcp__glim__*` tool callable** → the server isn't connected (or its secrets are missing, in which case the workflow logged a `::warning::` and skipped MCP). Log `GLIM_NOT_CONNECTED`, notify once pointing the operator at the dashboard → MCP → Connect glim.sh, and exit.
- **Tools exist but return 401/invalid-token** → the OAuth refresh failed (see `docs/mcp-oauth.md`). Log `GLIM_AUTH_STALE`, notify the operator to re-connect the server once in the dashboard, and exit.
- **Payment-required / insufficient-balance errors** → log `GLIM_NO_BALANCE`, notify the operator to top up their glim account, and exit with whatever partial results already came back (clearly marked partial).
## Steps
### 1. Plan the sweep
Parse `${var}` into 2–4 sub-questions and pick the glim tools that fit each — platform tools (X, Reddit, GitHub, YouTube, Amazon) when the question names a platform or the answer obviously lives there; web search + page extraction otherwise. Don't fan out for its own sake: a question one search answers gets one search.
**Spend budget:** ≤ 10 tool calls per run, ≤ 25 with `--deep`. Count as you go; when the budget is spent, synthesize from what's in hand rather than making "one more" call. This is a hard cap (STRATEGY: stay within configured spend limits).
### 2. Fetch
Run the planned calls. Extract full pages only for the 2–3 sources that actually anchor the answer — search snippets carry most questions. Skip retries beyond one per failed call.
### 3. Synthesize
Write the digest: a 2–3 sentence answer up top, then the supporting evidence grouped by sub-question, each claim traceable to a fetched source. Distinguish observed fact from inference. Include the source URL next to every claim that rests on it.
### 4. Notify
Deliver via `./notify -f <file>` (ordinary Markdown): the answer, the evidence, a `Sources` list of clickable URLs, and a final line `calls: N/<budget>`. This skill is on-demand — a completed run always notifies (unlike monitors, silence isn't signal here).
**Exactly one `./notify` call per run.** Each call overwrites `$AEON_PENDING_DIR/.pending-<skill>.md` (last-writer-wins), which becomes the chain artifact `output/.chains/glim-mcp.md` that `consume:` steps and the feed read — a follow-up "headline" ping would replace the digest with a stub. Everything goes in the single `-f` file.
### 5. Result record
This skill is `read-only`, so the workflow's read-only guard writes its `### glim-mcp` log entry from your captured output; a self-written entry would be a duplicate. Don't append to `memory/logs/` yourself - put this record in your **final output**; the workflow persists it to `memory/logs/` and `output/.chains/glim-mcp.md` on your behalf after the run:
```
### glim-mcp
- Query: <${var}, truncated>
- Result: GLIM_OK | GLIM_NO_QUERY | GLIM_NOT_CONNECTED | GLIM_AUTH_STALE | GLIM_NO_BALANCE | GLIM_ERROR
- Calls: N (budget 10|25) | sources cited: M
```
If the answer is durable knowledge about a tracked topic (a token, a protocol, a watched repo), it can't be folded into `memory/topics/` from a read-only run — surface it clearly in the output so the operator (or a write-mode skill) can persist it to `memory/topics/`.
## Constraints
- Cite or drop: a claim with no fetched source behind it doesn't ship.
- Respect the call budget even when results are thin — say the evidence was thin instead of overspending.
- No paywalled-content laundering: if extraction returns a stub, report the stub, don't reconstruct the article from memory.
© aeonfun · MIT · aeonfun/aeon