Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add LuuOW/meridian-mcp --skill exa-searchgit clone --depth 1 https://github.com/LuuOW/meridian-mcpWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/luuow/meridian-mcp/exa-search)<a href="https://agentmods.dev/skills/luuow/meridian-mcp/exa-search"><img src="https://agentmods.dev/badge/skills/luuow/meridian-mcp/exa-search/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/luuow/meridian-mcp/exa-search"><img src="https://agentmods.dev/badge/skills/luuow/meridian-mcp/exa-search.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00031 | $0.00494 |
| Opus 5 | $0.00015 | $0.00247 |
| Sonnet 5 | $0.00006 | $0.00099 |
| Haiku 4.5 | $0.00003 | $0.00049 |
Grade A, and why
exa-search scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 11d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
What it actually says
exa-search
Use this when the task begins with discovery rather than known URLs.
Best Uses
- find authoritative sources for a topic
- discover entities, people, companies, products, or docs pages
- build candidate citation sets before extraction
- rank likely-useful pages for downstream summarization
Required Env
EXA_API_KEY
Output Priorities
Return a compact evidence set:
- title
- url
- snippet
- reason selected
- confidence
Do not fetch full page content unless the task explicitly needs it or the runtime has a lightweight Exa contents endpoint wired.
Query Patterns
import os
import httpx
EXA_API_KEY = os.environ["EXA_API_KEY"]
async def exa_search(query: str, num_results: int = 5) -> dict:
async with httpx.AsyncClient(timeout=30) as client:
resp = await client.post(
"https://api.exa.ai/search",
headers={
"x-api-key": EXA_API_KEY,
"Content-Type": "application/json",
},
json={
"query": query,
"numResults": num_results,
"useAutoprompt": True,
"type": "auto",
},
)
resp.raise_for_status()
return resp.json()
Selection Heuristics
Prefer sources that are:
- primary or official when the task is factual
- recent when the task is temporal
- direct documentation when the task is technical
- high-signal niche sources over generic SEO pages
Avoid
- deep extraction work when URLs are already known
- hostile surfaces that need rendering or proxying
- SERP capture tasks
Hand-off Rules
- Pass chosen URLs to
firecrawl-extractfor content capture. - Escalate to
brightdata-collectiononly if discovery must happen on a blocked or geo-specific surface.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 11d ago First seen · 81 lines · 31 tokens per session scan A fc2e3fec7f6c
exa-search is a skill published in the GitHub repository LuuOW/meridian-mcp (0 stars, last pushed today), licensed MIT. It adds 31 tokens to every session and 494 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
dataset-discovery
Multi-source ML dataset discovery.
bilibili_search
Search for videos on Bilibili using keyword queries generated from user interests.
web-search-tool
Web search tool. Queries the public internet via the Brave Search API. Use when: researching current events, finding documentation, fact-checking, or fetching ranked search results.
Fetch a Reddit post URL via old.reddit.com HTML scraping — the .json API is blocked for unauthenticated requests since May 2026. Returns structured data: post metadata + nested comments (with depth) + unique external links categorized (github/reddit/external). Persists into capstore tables (reddit.posts, .comments…
find-skills
Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. Uses reskill as the package manager.
vector-hybrid-search
Retrieve knowledge from a vector-store collection via the vector-mcp MCP server's vectorsearch tool — semantic (ANN) search, lexical BM25 search, or a hybrid of the two fused with Reciprocal Rank Fusion. Use when the agent must answer a question from an indexed corpus, pull top-k relevant chunks for RAG context, or…