research-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| TAVILY_API_KEY | No | Tavily API key for the consensus web search provider. Get a free key at app.tavily.com. | |
| TWITTERAPI_IO_API_KEY | No | twitterapi.io API key for the social provider (X/Twitter). Get a key from twitterapi.io. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_communityA | Search what real people said, in their own words, across Hacker News, Reddit and X simultaneously. Use this for: complaints and pain points about a product or workflow, how practitioners actually do something, reception of a launch, hiring demand (HN "Who is hiring"), and whether a trend has real users behind it or only press coverage. Prefer this over search_web whenever the question is about lived experience rather than published claims. Web search returns the pages that RANK; this returns what was actually posted, comments included. Args: question: plain-language question or keywords. platforms: subset of ["hn", "reddit", "x"]. Default: all configured. subreddits: REQUIRED for Reddit -- the archive has no global full-text search, only within a subreddit. Reddit is skipped with a clear reason if omitted. ⚠ Pass ONE subreddit per call. The archive is a free service that sustains roughly one search per 30-60s; a call naming several subreddits searches only the first and says so. To cover r/running, r/hyrox and r/Garmin, make three separate calls and expect each to take 10-20s. Batching them returns nothing. since/until: "YYYY-MM-DD" bounds. min_points: HN score floor -- use ~50 to cut noise on broad topics. min_faves: X like floor. Worth setting: X bills per page whether the tweets are useful or not, so filtering junk up front is the main lever on cost. ~10 for niche topics, ~100 for busy ones. sort: "top" (default) ranks X by engagement and skews OLD -- a Top search can return results 1-2 years back. "latest" returns today's posts, but they have near-zero likes because nothing has had time to vote, so min_faves must be dropped when using it. Use "top" for "what is the strongest signal", "latest" for "what is happening right now". include_comments: also search reply bodies, not just posts/stories. Slower and noisier, but where complaints actually live -- the first-person "this plan wrecked my knee" account is a reply, not a thread title. limit: how many results to SHOW per provider. Everything retrieved is stored in the corpus regardless -- this only trims the reply. |
| search_webA | Search the general web for published claims, articles and documentation. This is the CONSENSUS layer: it tells you what the web says, which is not the same as what is true. SEO content farms dominate commercial topics and repeat each other, so a unanimous answer here is weak evidence. Corroborate anything load-bearing with search_community or a structured source. Args: question: the research question. queries: explicit query variants to fan out over. Supply several when the question is broad -- one phrasing returns one slice of the web. domains / exclude_domains: restrict or suppress sources. since: "YYYY-MM-DD". depth: "basic" (1 credit) or "advanced" (costs more, use sparingly). |
| read_discussionA | Read the FULL comment thread under one Reddit post. This is the highest-signal call for complaint mining, and the natural follow-up to search_community. Posts are the question; comments are the answer. A thread titled "non stop injuries from training" carries dozens of first-person accounts -- what the injury was, what plan caused it, what people did instead -- none of which keyword search surfaces individually, because each one is a reply, not a title. One request, up to 25k comments, no keyword matching involved. Prefer this over include_comments: searching comment bodies is the slow throttled path and returns fragments without the thread context that makes them readable. Args: post_url_or_id: a reddit.com/r/.../comments//... URL, or the bare id. limit: max comments to retrieve. |
| search_demandA | Find where money and effort are ALREADY moving on a problem. This is the structured-evidence layer, and the strongest one for judging a business idea. Two sources, two different proofs:
Use this BEFORE search_web on any business question. Published articles describe markets; this shows transactions. Pair with search_community for the complaint in users' own words. Args: question: the problem or domain, in keywords. since: "YYYY-MM-DD" — for GitHub this filters repo CREATION date. min_bids: ignore gigs below this many bidders (weak demand). min_stars: ignore repos below this star count. limit: results per source. |
| corpus_statsA | Report what the local research corpus has accumulated: how many results and searches are stored, the spread across source classes, and the date range covered. Use it to check whether a longitudinal question ("what changed since March") has enough history behind it to be answerable. |
| providers_statusA | List every configured source, its class, and whether credentials are present. Call this when results look thin -- a missing key means a whole source class is silently absent from every search. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 6 tools
Each tool targets a distinct evidence layer: search_community covers lived experience, search_web covers published claims, search_demand covers transactions and workarounds, and read_discussion is an explicit follow-up for thread-level depth. The meta tools (corpus_stats, providers_status) are clearly separated from search operations, so there is no real ambiguity.
The search_* tools are consistently named with a clear verb_noun pattern, and read_discussion follows suit. corpus_stats and providers_status are descriptive and readable but don't follow the verb-first pattern, creating a minor stylistic inconsistency rather than confusion.
Six tools is a well-scoped size for a research assistant. Each tool earns its place: three distinct search layers, one deep-dive reader, and two diagnostic/infrastructure tools that support the search workflow without bloating the surface.
The set covers the core research loop well: finding lived-experience evidence, published claims, demand signals, reading full Reddit threads, checking corpus depth, and diagnosing provider issues. The main gaps are lack of direct arbitrary URL/content fetching and no obvious way to query the accumulated corpus itself beyond stats.