Research MCP Server - 22 Live Tools for AI Agents
Pricing
from $0.000012 / actor start
Research MCP Server - 22 Live Tools for AI Agents
Give Claude, ChatGPT, Cursor or n8n 22 live research tools from one MCP URL: web search, page reading, arXiv, OpenAlex, GitHub, Stack Overflow, Hacker News, Wikipedia, news, SEC filings, IMDb, npm and PyPI, crypto, email checks, TikTok and Google ads, Telegram. Each call bills the scraper it runs.
Pricing
from $0.000012 / actor start
Rating
0.0
(0)
Developer
Dami's Studio
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
2
Monthly active users
2 hours ago
Last modified
Categories
Share
Give Claude, ChatGPT, Cursor or n8n twenty-two live research tools from one MCP URL: papers, code, forums, news, web search and page reading, SEC filings, film and TV records, npm and PyPI packages, crypto prices, email checks, TikTok trends, Telegram channels and two public ad libraries. One Apify token in your client config, no separate API keys.
Know how it bills before you connect it. The server charges nothing per call, but every tool call starts a run of one of our scrapers on your own Apify account, billed at that scraper's own price. An agent that calls tools in a loop keeps starting runs, so cap tool use in your client.
| Input | A tool name and its arguments, sent by your MCP client |
| Output | JSON back to the agent, not a dataset |
| Ceiling | 3 to 250 rows per call, depending on the tool |
| Speed | Roughly 3 to 9 seconds a call, about 10 to 30 for search_and_read. The first call after a quiet spell takes longer while the server wakes |
| Account needed | An Apify account, and its API token in your client config |
| Price | No charge from the server per call or per result. Each call runs the matching scraper on your Apify account, billed at that scraper's per-result price |
🔍 What Research MCP Server does
It speaks MCP, the protocol AI clients use for tools, over HTTP. Your client discovers the tools on connect, your agent picks one, and the server runs the scraper behind that tool and hands its rows back as JSON inside the tool result. A normal run of the Actor prints a notice and searches nothing: the work happens over the connection.
| Tool | What it does | Runs |
|---|---|---|
| search_arxiv | arXiv papers: title, abstract, authors, categories, DOI, abstract and PDF links. Takes arXiv syntax like cat:cs.CL. | arXiv Scraper |
| search_openalex | The OpenAlex scholarly graph: works, citations, authors, institutions, open-access status. | OpenAlex Scraper |
| literature_report | One topic searched on OpenAlex and arXiv at once, one block per source, same field names in both. | The two above |
| search_github | GitHub repositories by keyword: full name, owner, stars, language, description, URL. | GitHub Scraper |
| search_stackexchange | Stack Overflow and the rest of Stack Exchange: title, score, tags, answer count, link. | Stack Overflow Scraper |
| search_hacker_news | Hacker News stories and comments, the front page, Ask HN and Show HN: title, points, author, comment count, URL. | Hacker News Scraper |
| search_devto | DEV Community posts, top, newest or rising, by tag or author: title, link, reactions, comments. No post body. | DEV Community Scraper |
| search_wikipedia | Wikipedia articles matching a search: title, link, a snippet, word count and last edit, in any language edition. | Wikipedia Scraper |
| search_news | Current headlines with real publisher URLs, title, source and published time. | Google News Scraper |
| web_search | Web search results: position, title, link, site name, snippet, date. | Our web search scraper |
| read_page | One public web page as Markdown or plain text, or its links as full addresses. Menus, sidebars and footers are left out. | Website Intelligence Crawler |
| search_and_read | A web search, then the top pages read, each page's text under its result. | The two above |
| search_or_read | One field: a web address is read, anything else is searched. | The same two |
| search_sec_filings | Recent SEC EDGAR filings for a ticker or a full-text query, narrowable to a form type like 10-K. | SEC EDGAR Scraper |
| search_imdb | Films, TV series and people: IMDb ID, year, category, top-billed cast, popularity rank. | IMDb Search Scraper |
| lookup_package | npm or PyPI packages: current version, licence, repository and monthly downloads. Often newer than the model's own knowledge. | Package Registry Scraper |
| crypto_markets | Top cryptocurrency markets by market cap: symbol, price, market cap, 24h volume and change. | CoinGecko Scraper |
| verify_email | Whether an address looks deliverable: syntax, MX records, disposable, role or free provider. Sends no mail. | Email Verifier |
| tiktok_trending_hashtags | The hashtags trending right now, by country and window, with rank, posts and views. | TikTok Trending Hashtags |
| telegram_channel | Recent posts from public Telegram channels: text, views, date, links. | Telegram Channel Scraper |
| google_ads_for_domain | Ads a website runs on Google Search, YouTube, Shopping, Maps and Play, from Google's public transparency records. | Google Ads Transparency Scraper |
| search_tiktok_ads | Ads in TikTok's public ad library by keyword: advertiser, caption, dates, reach, landing page. | TikTok Ads Scraper |
📋 What data you get from each tool call
| What you get | Field |
|---|---|
| Which tool answered | tool |
| How many rows came back | count |
| The rows, trimmed to what an agent can use | results |
| A plain-words line when the source matched nothing, or could not answer | note |
| One block per source on literature_report | blocks |
| The page text, or the reason a page was not read | content, page, pageError, error |
| Rows the source returned outside your filter, left out | removedByCheck |
| A failed call, with the reason | isError |
▶️ How to connect the research tools to Claude, Cursor or ChatGPT
- Open Research MCP Server, then copy your Apify API token from Settings, API & Integrations in the Apify Console.
- Add the server to your MCP client config with the URL and token shown below.
- Restart the client. The twenty-two tools appear.
- Ask for something in plain words and let the agent choose the tool.
- If the very first call times out, send it again. The server sleeps when idle and takes a moment to wake.
💰 How much does it cost to use the research tools?
The server adds no charge per call and none per result. What a call costs is the scraper behind it. Each tool call starts one run of the scraper named in the table above, on your own Apify account and under the token you connected with, billed there at the scraper's own price. A search_arxiv call for 10 papers is a 10-paper run of arXiv Scraper. literature_report and search_and_read each start two runs.
Every tool has a row limit, so the most one call can cost is that limit times the scraper's per-row price. An identical call repeated within about a minute is answered from memory and starts no run. read_page, search_and_read and search_or_read are optional add-ons; today a call to them costs only the runs it starts.
📥 What you give it
Connect with your Apify token as a Bearer header, or as ?token= if your client cannot send headers. Send it one way or the other, not both. If another server in your client already uses names like search_news, add ?toolPrefix=research to the address and every tool is named research_search_news and so on.
{"mcpServers": {"research": {"url": "https://dami-studio--research-mcp-server.apify.actor/mcp","headers": { "Authorization": "Bearer YOUR_APIFY_TOKEN" }}}}
Then ask your agent in ordinary words: "find recent arXiv papers on retrieval-augmented generation", or "what version is react on". It picks the tool. Every argument past the first has a default, and the row limits stop a tool flooding your context:
| Tool | Arguments and limits |
|---|---|
| search_arxiv | query, maxItems up to 50, 10 by default; sort relevance or newest |
| search_openalex | query, maxItems up to 100, 10 by default; fromDate, sort (relevance, newest, most_cited), minCitations |
| literature_report | query, maxPerSource up to 25, 5 by default; fromDate, sort |
| search_github, search_news | query, maxItems up to 100, 10 by default |
| search_hacker_news | query (optional with type or sort), maxItems up to 100, 10 by default; type (story, show_hn, ask_hn, comment, front_page), sort relevance or newest, minPoints, minComments |
| search_stackexchange | query, optional site such as superuser, maxItems up to 100, 10 by default |
| search_wikipedia | query, optional language, maxItems up to 100, 10 by default |
| search_devto | optional tag, username, sort (top, latest, rising), topDays, minReactions, maxItems up to 50, 10 by default |
| web_search | query, maxResults up to 50, 10 by default; country, freshness (day, week, month, year) |
| read_page | url; format markdown, text or links; maxChars up to 100,000, 20,000 by default |
| search_and_read | query, pages up to 5, 3 by default; maxCharsPerPage up to 20,000, 4,000 by default; format, country, freshness |
| search_or_read | input; maxResults for a search, maxChars for a page |
| crypto_markets | optional vsCurrency, maxItems up to 250, 20 by default |
| lookup_package | packageNames for exact lookups, or searchQuery to discover, registry npm or pypi, up to 25 |
| search_sec_filings | tickers for a company's history, or query for full text, optional forms, up to 20, 5 by default |
| search_imdb | query, up to 20, 5 by default |
| verify_email | emails, up to 10 addresses per call |
| tiktok_trending_hashtags | optional region, and periodDays of 7 or 30. Always returns 3 rows |
| telegram_channel | channels, comma or pipe separated, maxItems up to 200, 20 by default |
| google_ads_for_domain | domain such as nike.com; region, platform (SEARCH, YOUTUBE, SHOPPING, MAPS, PLAY), maxItems up to 25, 10 by default |
| search_tiktok_ads | query; countries, dateFrom, dateTo, status, maxItems up to 25, 10 by default |
| Every tool | optional timeoutSecs, 10 to 120, 30 by default |
| The nine tools that pass rows through, and the paper tools | optional compact for shorter rows; the paper tools also take normalize for the same field names everywhere |
| Field | Default | What it is |
|---|---|---|
info | none | The one field on the Actor page itself. Usage notes only, nothing to fill in. |
📤 What you get back
A tool result is one JSON text block: which tool answered, how many rows, and the rows. This is a real search_wikipedia call from 3 October 2026, with the source's row passed through unchanged. It started one Wikipedia Scraper run, which charged one page.
{"tool": "search_wikipedia","count": 1,"results": [{"ok": true,"mode": "search","pageid": 2696619,"title": "Web scraping","url": "https://en.wikipedia.org/?curid=2696619","snippet": "Web scraping, web harvesting, or web data extraction is data scraping used for extracting data from websites. Web scraping software may directly access","wordcount": 4123,"size": 34836,"timestamp": "2026-09-19T09:13:04Z"}]}
Most tools trim their rows to the fields an agent can use. The nine that pass the source's row through as it is take compact: true for a shorter one, with long text cut to about 300 characters.
A plain run of this Actor, outside the connection, writes exactly one row saying so:
{"ok": true,"kind": "mcp-server-info","message": "This actor is an MCP server. Enable Standby for it, then point your AI agent / MCP client at the actor's Standby URL to call the tools below. A normal run only prints this notice","toolCount": 22}
🧾 Reading the output
| Result | How to spot it | What it means |
|---|---|---|
| Rows | count above zero and a results array | The source answered. |
| Empty | count: 0 and a note saying no matches | The source ran and matched nothing. |
| Could not look | count: 0 and a note naming a code, such as RATE_LIMITED | The source did not answer this time. Try again in a minute. |
| Page not read | ok: false and an error in words | The page was not HTML, blocked by robots.txt, or did not load. |
| Failure | isError: true and Tool <name> failed: ... or did not run: ... | The call did not complete, or a value was refused before anything ran. |
The tools added in October 2026 tell "nothing matched" apart from "could not look". The fourteen older tools cannot always: on those, a zero that surprises you is worth one retry after a minute, since identical calls are answered from memory for about that long.
💡 What people use it for
- A coding agent that checks the live version and licence of a package before recommending it, instead of guessing from training data.
- A research assistant that runs literature_report on a topic, then narrows it with search_openalex by date and citations.
- A finance agent pulling a company's recent filings by ticker rather than summarising an article about them.
- Anything where the answer changed after the model's training cut-off: today's news, today's prices, today's trending tags.
🚧 What it does not do
- It is not a bulk scraper. Row limits per call run from 3 to 250 and exist to protect the agent's context. For thousands of rows, run the scrapers in the table directly.
- No streaming. A call returns once, complete, or it fails.
- No writes anywhere. Every tool reads.
- HTML pages only. read_page does not read plain text files, PDFs or pages that only fill in through scripts.
- No search operators. web_search refuses
site:and the like; usefreshnessfor a date window. - arXiv has no date filter or citation sort here. Use search_openalex for those.
tiktok_trending_hashtagsalways returns 3 rows, hashtags only, and anyperiodDaysother than 30 gives the 7-day window.- SEC answers are thin today. They name the company, ticker, accession number and description, not the form type, filing date or document link. SEC EDGAR Scraper itself returns all of those.
- No titles-only or people-only IMDb search.
search_imdbreturns both, so leavetypeout. - It is not an official tool of any platform or company named on this page. Dami's Studio is independent and is not affiliated with or endorsed by any of them.
🧭 Which research tool do you need?
| If you want | Use |
|---|---|
| Live research tools inside Claude, Cursor, ChatGPT or n8n | This one |
| Thousands of arXiv papers as a dataset, not ten in a chat | arXiv Scraper |
| Papers with full abstracts and citation counts, in bulk | OpenAlex Scraper |
| Whole websites read page by page, not one page in a chat | Website Intelligence Crawler |
| Full Wikipedia article text, not search snippets | Wikipedia Scraper |
| GitHub repositories and users as a dataset | GitHub Scraper |
❓ Questions people ask
Which AI clients can connect to it?
Anything that speaks MCP over HTTP. Claude Desktop, Claude Code, Cursor, ChatGPT and n8n have been used with it, at https://dami-studio--research-mcp-server.apify.actor/mcp. Coding assistants can load our skill file.
Do I need an API key for each source?
No. One Apify token in your client config is the whole setup.
What does a tool call cost me?
The price of the scraper it runs, for the rows it returns, on your own Apify account. The server adds nothing per call. Check the scraper's Store page for its price, and the run itself in your Apify Console under Runs.
Why was the first call slow?
The server sleeps when nobody is using it and takes a few seconds to wake. After that, each new call still starts a scraper run, so expect seconds.
Is it legal to use what the tools return?
Every tool reads public sources only. Some results, such as Telegram messages or Hacker News comments, carry people's names, which GDPR and similar laws cover. Apify's write-up on the legality of web scraping is a good starting point, and we are not lawyers.
🆘 If something breaks
Open the Issues tab on the actor page. Send the tool name, the arguments your agent used and what came back. A failed call quotes the reason in its own message, which is usually enough to name the problem.