Back to use cases

    Use case / AI AGENTS / Python 3 (optional; the main path is a saved prompt with no code) / Published

    Build an Article Summarizer with No Code Using Desearch MCP

    Paste an article link and get the main points plus each figure with its sentence quoted, using the Desearch MCP extract tool. No code needed.

    Card for Build an Article Summarizer with No Code Using Desearch MCP

    Made by Desearch (desearch.ai).

    This article summarizer is for marketers, founders and writers who need the gist of a long article for a post, a newsletter or a team update. Paste a link into Claude or Cursor with one saved prompt, and you get the main points in plain words plus each figure from the article with its sentence quoted. Your assistant works only from the text Desearch read from the page, so you can check the numbers before you publish.

    The problem

    You found a long article and need the key points and the exact numbers fast. Reading it closely takes time, and copying figures by hand is where mistakes slip in. Asking an assistant to summarize a link is quick, but you cannot see which text it read, so you cannot tell whether a number came from the article. You want a summary you can trace back to the page.

    What the app does

    • Takes one public article link.
    • Reads the page as plain text with the Desearch extract tool (format: "text", js: false). If the page comes back with no content, it tries once more.
    • Stops when the text is under 150 words, such as a login page, instead of guessing.
    • With the saved prompt, gives the topic in one line and 5 main points in plain words, taken from that text only.
    • With the script, prints the opening sentence plus the 4 sentences that share the most words with the rest of the article, quoted as written, with no rewriting.
    • Lists the sentences that carry figures written as digits (amounts, percentages, counts). Bare years are skipped. The script keeps up to 8 of those sentences.
    • Optionally finds other pages with the Desearch ai-search tool. The script shows up to 3 links from other sites. The saved prompt asks for up to 2.

    How it works

    1. Read the page. Your assistant, or the script, calls the extract tool on the hosted Desearch MCP server (https://mcp.desearch.ai/mcp) with format: "text" and js: false.
    2. Check there is enough text. Under 150 words, the saved prompt says "Desearch could not read enough of this page to summarize it" and stops. The script says the page came back nearly empty and does not summarize it.
    3. Summarize from that text only. The saved prompt asks for 5 bullets and a "Numbers mentioned" list, with no facts, numbers or names that are not in the text. The script only picks sentences. It does not rewrite them.
    4. Find other coverage (optional). ai-search with tools: ["web"] and result_type: "ONLY_LINKS", using words from the link. The script then shows up to 3 links from other sites.

    The code

    No code is needed for the saved prompt. For people who want a script, the key is read from a file only (~/.desearch-api-key, or --key-file PATH). read_key in article_summarizer.py (lines 34 to 40):

    PYTHON
    def read_key(path):
        """Read the API key from a file (never from the environment)."""
        with open(path) as f:
            key = f.read().strip()
        if not key:
            raise ValueError(f"key file {path} is empty")
        return key

    The extract and related-search arguments, from the same file (lines 57 to 59 and 72 to 77):

    PYTHON
    def build_extract_args(url):
        """MCP extract arguments: plain text, no JavaScript rendering."""
        return {"url": check_url(url), "format": "text", "js": False}
    PYTHON
    def build_related_args(title):
        """ai-search arguments to find other pages on the same story. No domain filters."""
        t = " ".join((title or "").split())
        if not t:
            raise ValueError("title is empty")
        return {"prompt": f"news and articles about: {t}", "tools": ["web"], "result_type": "ONLY_LINKS"}

    The MCP call, from the same file (lines 234 to 248):

    PYTHON
    async def call_tools(calls, key):
        """Run [(tool, args), ...] in one MCP session; return raw content lists."""
        from mcp import ClientSession
        from mcp.client.streamable_http import streamable_http_client
        from mcp.shared._httpx_utils import create_mcp_http_client
    
        out = []
        async with create_mcp_http_client(headers={"Authorization": key}) as hc, \
                streamable_http_client(MCP_URL, http_client=hc) as streams:
            async with ClientSession(streams[0], streams[1]) as s:
                await s.initialize()
                for tool, args in calls:
                    res = await s.call_tool(tool, args, read_timeout_seconds=180)
                    out.append([c.model_dump(mode="json") for c in res.content])
        return out

    The folder has saved-prompt.md (the no-code version), article_summarizer.py, sample_output.md, sample_summary.md and offline tests in tests/.

    View the code

    Endpoints

    • MCP tool extract
    • MCP tool ai-search

    Example output

    Saved sample from a run on 2026-10-18 at 16:03 Asia/Tbilisi, with --related, stored in sample_output.md. This page shows that stored response. It does not run a live demo.

    Article: https://www.theguardian.com/technology/2026/oct/18/world-bank-artificial-intelligence-developing-economies
    Text Desearch fetched: 616 words
    StepWhat came back
    extract616 words of article text
    Key points5 sentences quoted from the article
    Numbers mentioned2 rows: 40%, and $120bn (£90bn)
    ai-search (web)3 links from other sites

    Two of the quoted figures, exactly as the sample prints them:

    • 40%: "Georgieva warned that over time 40% of jobs worldwide were likely to be either augmented or eliminated by AI, with the impact particularly acute for young people at the start of their careers."
    • $120bn, £90bn: "Donohoe said the World Bank had mobilised $120bn (£90bn) of private capital in the past year using guarantees and other financial instruments, at a time when many countries, including the US and the UK, were cutting their aid budgets."

    The saved prompt sample in sample_summary.md was written from those same 616 words. Its topic line:

    The World Bank wants developing countries to build "small AI" that works on phones and in local languages.

    That sample also quotes a figure the script does not pick up, because it is written as words: "almost a third of rural schools in sub-Saharan Africa lacked electricity and more than two-thirds did not have a consistent internet connection."

    The script sample ends with this line:

    Calls: 1 extract, 1 ai-search ($0.0040)

    Run it yourself

    No code: connect the Desearch MCP server (https://mcp.desearch.ai/mcp) in Claude or Cursor with your API key in the Authorization header, paste saved-prompt.md, and replace <link> with your article link.

    Script:

    BASH
    git clone https://github.com/Desearch-ai/desearch-py-examples && cd desearch-py-examples/article-summarizer-mcp
    python -m venv .venv && . .venv/bin/activate
    pip install -r requirements.txt
    printf '%s' 'YOUR_KEY' > ~/.desearch-api-key && chmod 600 ~/.desearch-api-key   # key from console.desearch.ai
    python article_summarizer.py <link> --related

    Useful flags: --related (one extra ai-search call for other pages on the story), --bullets (key sentences to keep, default 5), --raw raw.json and --from-raw raw.json (save the responses, then rebuild the summary offline with no new calls), --key-file.

    What it costs

    saved-prompt.md records the 2026-10-18 run: the extract call cost $0.0005 on the REST price, and the optional ai-search call cost $0.004. The script sample prints Calls: 1 extract, 1 ai-search ($0.0040). The printed amount is the ai-search cost_usd field. See pricing.

    Ideas to extend it

    • Run it on the articles you plan to share this week and paste the "Numbers mentioned" lists into your newsletter draft.
    • Change the prompt to write the bullets for a specific reader, such as your sales team or investors.
    • Save the raw responses with --raw and rebuild summaries later with --from-raw, with no new calls.
    • Use the saved prompt when you want bullets in plain words, and the script when you want the sentences quoted as written.

    Use with AI agents

    Point an MCP client at the hosted Desearch server. Replace the placeholder with a key from the console. Do not commit the key.

    JSON
    {
      "mcpServers": {
        "desearch": {
          "url": "https://mcp.desearch.ai/mcp",
          "headers": {
            "Authorization": "Bearer <DESEARCH_API_KEY>"
          }
        }
      }
    }

    Prompt you can paste for this example:

    Use the Desearch extract tool on the article link I give you, with format text and js false. If the page returns an error, fewer than 150 words, or a login page, stop and say Desearch could not read enough of this page to summarize it. From that text only, give the topic in one line, 5 main points, and a Numbers mentioned list with each figure and its sentence quoted exactly. Do not add facts, numbers or names that are not in the text. Optionally use ai-search with tools set to web and result_type ONLY_LINKS, and list up to 2 links from other sites on the same story.

    Build your own example.

    Give your agents access to web and social search. Get an API key to start building, or talk to us about your integration.

    Read docs