io.github.Desearch-ai/mcp-desearch

Desearch

39 tools: AI/web/X search, TikTok, Facebook, Instagram, YouTube, Reddit, Threads, People/Companies.

Endpointhttps://mcp.desearch.ai/mcp (streamable-http)
Registry version0.8.0
Now39 tools · grade F (21) · pin ts_42d5c29168636e85996dc5ce11d3ad51 · protocol 2025-06-18
First / last listed2026-11-04 02:26 UTC / 2026-11-04 02:26 UTC
Grade over time2026-11-04: F (21), 39 tools

Is this your server? Own a server? ToolFit hosted watch re-checks it every 24 h ($0.25 per 30 days) or 6 h ($0.60) and sends you an HMAC-signed webhook when its tools or grade change: POST https://api.youraitools.co/toolfit/v1/watch. To opt out, see About & opt-out.

Timeline

First listing · 2026-11-04 02:26 UTC
39 tools, grade F (21)

Tools: ai-search x-search web-search web-links-search x-links-search x-posts-by-urls x-post-by-id x-posts-by-user x-post-retweeters x-user-posts x-user-replies x-post-replies extract web-crawl x-trends search-api tiktok facebook instagram youtube reddit threads search fetch people-search people-search-status people-search-pause people-search-resume people-search-cancel people-search-tasks people-profiles people-search-export company-search company-enrich company-search-status company-search-pause company-search-resume company-search-cancel company-search-tasks

Current tools (39)

ai-searchAI search and analysis on web using Desearch AI
params: prompt*, tools, date_filter, start_date, end_date, result_type, include_domains, exclude_domains, model
x-searchSearch X (Twitter) using Desearch AI. Optional filters narrow by user, date, language, verification, media, and engagement. Sort stays Top.
params: query*, count, user, start_date, end_date, lang, verified, blue_verified, is_quote, is_video, is_image, min_retweets, min_replies, min_likes
web-searchSERP-style web search using Desearch. Returns ranked titles, links, and snippets.
params: query*, start
web-links-searchSearch the web for links using Desearch. Only the web source is accepted.
params: prompt*, tools, count
x-links-searchAI search for X (Twitter) post links using Desearch. Returns links from posts that match the prompt.
params: prompt*, count
x-posts-by-urlsFetch full X (Twitter) posts for a list of post URLs.
params: urls*
x-post-by-idFetch a single X (Twitter) post by its ID.
params: id*
x-posts-by-userSearch X (Twitter) posts by a specific user, with an optional keyword query.
params: user*, query, count
x-post-retweetersList users who retweeted an X (Twitter) post. Pass cursor to page through more users.
params: id*, cursor
x-user-postsRetrieve a user's X (Twitter) timeline posts by username. Pass cursor to page through more posts.
params: username*, cursor
x-user-repliesFetch posts and replies by an X (Twitter) user, with an optional keyword query.
params: user*, count, query
x-post-repliesFetch replies to an X (Twitter) post, with an optional keyword query.
params: post_id*, count, query
extractExtract a public URL and return its content as plain text, markdown or HTML using Desearch. Markdown keeps headings, lists and tables. Text is the page's main content; set full_page for every section, such as opening hours or fee tables. A js_required error means the page needs js: true; blocked means the site refused or showed a bot check. Preferred over web-crawl for new integrations. API docs:
params: url*, format, js, wait, full_page
web-crawlCrawl a public URL and return its content as plain text or HTML on the legacy Desearch /web/crawl route. The SDK marks webCrawl deprecated in favor of extract; this tool stays for parity with that route. Prefer extract for new integrations. API docs: https://www.desearch.ai/docs/guide/apis/extract-api
params: url*, format, js, wait, full_page
x-trendsRetrieve trending topics on X (Twitter) for a location by its WOEID using Desearch.
params: woeid*, count
search-apiSearch the web with the Desearch Search API and return ranked pages, each with its title, URL, publication date when known, and the passage that best matches the query. Set page_text to add each page's full text. Returns { results, cost_usd, usage_count, service, currency }. Use search for titles and links only, and web-search for SERP-style snippets.
params: query*, mode, count, start_date, end_date, highlights, page_text
tiktokRead public TikTok data with Desearch. Set action and that action's arguments. search (query; optional count, sort, cursor): videos that match a keyword. post (id): one video by its ID. profile (username): one profile. profile_posts (username; optional count, cursor): a user's videos. comments (video_id; optional count, cursor): a video's comments. hashtag (tag; optional count, cursor): videos wit
params: action*, query, sort, id, username, video_id, tag, region, count, cursor
facebookRead public Facebook data with Desearch. Set action and that action's arguments. search (query; optional count, cursor) and hashtag (tag; optional count, cursor) return Meta Ad Library ads that match, not organic posts. post (id): one public post. profile (profile_id): a page or profile by ID or public handle. profile_posts (profile_id; optional count, cursor): its posts. comments (post_id; option
params: action*, query, id, profile_id, post_id, tag, count, cursor
instagramRead public Instagram data with Desearch. Set action and that action's arguments. search (query; optional count): profiles that match, one page with no cursor. media (id): one post by shortcode, numeric ID, or URL. profile (username): one profile. profile_posts (username; optional count, cursor): a user's posts. comments (shortcode; optional count, cursor): a post's comments. hashtag (tag; optiona
params: action*, query, id, username, shortcode, tag, count, cursor
youtubeRead public YouTube data with Desearch. Set action and that action's arguments. search (query; optional type, upload_date, sort_by, duration, cursor): videos, Shorts, live streams, channels, and playlists that match a keyword; each result has a type. video (id): one video or Short by ID or URL, with its channel, counts, chapters, and caption languages. transcript (video_id; optional language): its
params: action*, query, type, upload_date, sort_by, duration, id, video_id, language, order, handle, sort, cursor
redditRead public Reddit data with Desearch. Set action and that action's arguments. search (query; optional sort, timeframe, cursor): posts across all subreddits that match a keyword. subreddit (name): a subreddit's description, rules, and weekly activity; the name is case-sensitive ('AskReddit', not 'askreddit'). subreddit_posts (name; optional sort, timeframe, cursor): its posts. post (id): one post
params: action*, query, sort, timeframe, name, id, post_id, cursor
threadsRead public Threads data with Desearch. Set action and that action's arguments. search (query; optional start_date, end_date): one page of posts that match a keyword. search_users (query): accounts that match a username or name. profile (username): one profile with bio, followers, and links. profile_posts (username): the account's latest public posts (Threads shows only the most recent ones). post
params: action*, query, start_date, end_date, username, id
searchSearch the public web and return titles and links. Use fetch with a result URL to read the page.
params: query*
fetchRead a public page as text. Pass a URL returned by search.
params: id*
people-searchStart a paid job billed to the user's Desearch balance: find people on X, YouTube, LinkedIn, or TikTok who match a plain-language description. Returns a task_id at once, with the task's status and reserved_cost_usd. Cost: the call reserves count times the platform's per-person price at the time of the call (reserved_cost_usd; prices at https://desearch.ai/pricing). When the search ends you pay onl
params: platform*, query*, count, min_score, exclude, idempotency_key, metadata, min_followers, max_followers, min_subscribers, max_subscribers, verified_only, require_contact, countries, keywords, exclude_keywords
people-search-statusStatus, progress, and cost of one People Search task, plus a page of the people found so far: name, handle, url, platform, audience, location, fit score, why they matched, contacts, and links. Free: it reads a search you already started and runs no new search. Cost fields are reserved_cost_usd and, once the search ended, final_cost_usd. People come from public profiles and posts on the search's pl
params: task_id*, cursor, limit, include_people
people-search-pausePause a People Search task and return its updated status. Free: it charges and refunds nothing. A queued search pauses at once; a running one finishes its current batch first (status pausing, then paused). Pausing loses no data: the people found so far stay readable with people-search-status, and the search keeps its progress. Billing does not change: the reservation made when the search started s
params: task_id*
people-search-resumeResume a paused People Search task and return its updated status. Free. The search continues from where it stopped, keeping the people already found, with no new charge: the cost already spent is carried forward and the original reservation still covers it. Works only on a paused search, within 7 days of pausing; a search in any other state, including one the API cancelled after 7 days paused, ret
params: task_id*
people-search-cancelCancel a People Search task. Free. The search stops for good; you pay only for the people it already delivered and the rest of the reservation is returned. People found so far stay readable for 30 days. This cannot be undone.
params: task_id*
people-search-tasksYour People Search tasks, newest first, with status, counts, cost, why each ended search stopped (completion_reason, coverage_limited), and the metadata labels set on people-search. Free; it lists your own tasks, not the people they found (read those with people-search-status or people-profiles). Use it to find a task_id (filter by metadata to find the searches of one campaign), or to see which se
params: platform, status, limit, cursor, metadata
people-profilesEveryone your own People Searches found on one platform, one entry per person: their best-scoring result (name, handle, url, audience, location, fit score, why they matched, public contacts, and links) and the search that found them (found_by). Free: it reads only people your earlier searches found, runs no new search, and queries no outside source. That data came from public profiles and posts, w
params: platform*, q, sort, limit, cursor, has, min_audience, max_audience, min_score, location, verified
people-search-exportThe people your own People Searches found, as CSV or JSON Lines text: one search (task_id), or everyone found on one platform (platform, with the same q, sort, and filters as people-profiles). Free: it reads people your earlier searches found and runs no new search. The reply is a note with the row count, then the file text cut at a row boundary to max_rows rows and 50,000 characters; the note say
params: task_id, platform, format, q, sort, has, min_audience, max_audience, min_score, location, verified, max_rows
company-searchStart a paid job billed to the user's Desearch balance: find companies on the web that match a plain-language description, and collect each one's public contact data. Returns a task_id at once, with the task's status and reserved_cost_usd. Cost: the call reserves count companies at the Company Search per-company price at the time of the call (reserved_cost_usd; prices at https://desearch.ai/pricin
params: query*, count, min_score, exclude, countries, require, roles, infer_emails, verify_emails, idempotency_key, metadata
company-enrichStart a paid job billed to the user's Desearch balance: collect public contact data for companies you already know, by domain. Send 1-200 domains or URLs; each is reduced to its host without www., lowercased, and deduplicated, and the task reads every one. Returns a task_id at once, with the task's status and reserved_cost_usd. You get one company per domain with the same fields as company-search
params: domains*, roles, infer_emails, verify_emails, idempotency_key, metadata
company-search-statusStatus, progress, and cost of one Company Search or Company Enrich task, plus a page of the companies delivered so far: domain, name, url, location, fit score (null for Company Enrich) and why it matched, primary_email and primary_contact, public emails, phones, and social profiles with the page each came from (source_url), leaders with their roles, title, LinkedIn profile, and emails (each with i
params: task_id*, cursor, limit, include_companies
company-search-pausePause a Company Search or Company Enrich task and return its updated status. Free: it charges and refunds nothing. A queued task pauses at once; a running one finishes its current batch first (status pausing, then paused). Pausing loses no data: the companies delivered so far stay readable with company-search-status, and the task keeps its progress. Billing does not change: the reservation made wh
params: task_id*
company-search-resumeResume a paused Company Search or Company Enrich task and return its updated status. Free. The task continues from where it stopped, keeping the companies already delivered, with no new charge. Works only on a paused task, within 7 days of pausing; a task in any other state, including one the API cancelled after 7 days paused, returns 409. Poll company-search-status for the new companies.
params: task_id*
company-search-cancelCancel a Company Search or Company Enrich task. Free. The task stops for good; you pay only for the companies it already delivered (a task cancelled before it starts costs nothing) and the rest of the reservation is returned. Companies delivered so far stay readable for 30 days. This cannot be undone.
params: task_id*
company-search-tasksYour Company Search and Company Enrich tasks, newest first, with status, counts, cost, why each ended task stopped (completion_reason, coverage_limited), and the metadata labels set on company-search or company-enrich. Free; it lists your own tasks, not the companies they found (read those with company-search-status). People Search tasks are not listed here (see people-search-tasks). Use it to fin
params: type, status, limit, cursor, metadata

Entries describe changes in tool definitions. They are not statements about a server, its quality or its author. The grade measures how the tool definitions fit model providers (token cost, schema compatibility, confusable names) as scored by the ToolFit engine at the time of the listing. JSON: append .json. Opt-out: how or hello@youraitools.co.