Skip to content

Bob Research Tools

by bob.assimilatethis.com · remote · no sign-in to list tools · v1.1.6 · published by com.assimilatethis.bob

Paid web research, news, prediction-market evidence, company briefs and fact-checks (x402 USDC)

Changes · 4

8 tools: 4 change things and 4 only read.

Scanned Oct 21, 2026

1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http research-tools https://bob.assimilatethis.com/mcp

Findings

Matches of fixed checks, with the text they matched.

1 warn
  • The server marks "web.search" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}; The name "web.search" says "search": a word for reading.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

8 tools

Changes things 4Claude Code: ask
  • research.answerAnswers one open research question from the live web in at most 80 words with up to 3 source URLs, returned as {answer, sources}, usually in 4 to 9 seconds.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Answers one open research question from the live web in at most 80 words with up to 3 source URLs, returned as {answer, sources}, usually in 4 to 9 seconds. Use it for a synthesized answer; use web.search for raw links or research.factcheck to verify a claim. Name the people, places and dates the question depends on, and ask one question per call: several in one call get one blended answer. Read-only. Paid per call with x402, up to 60 calls a minute per client; a call that fails, times out or hits capacity is not charged. For several questions, make one call per question: calls are independent and can run in parallel.

    Annotations the server declares

    • title: Research a question
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • research.factcheckChecks one factual claim against the live web and returns {verdict, explanation, sources}, where verdict is supported, contradicted or unclear, usually in 4 to 9 seconds.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Checks one factual claim against the live web and returns {verdict, explanation, sources}, where verdict is supported, contradicted or unclear, usually in 4 to 9 seconds. Write the claim as a plain statement such as 'The Eiffel Tower is in Berlin' and split a compound claim into separate calls. Use research.answer for open questions. For several claims, call once per claim. Read-only. Paid per call with x402; a failed call is not charged.

    Annotations the server declares

    • title: Fact-check a claim
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • research.marketBuilds an evidence brief for a prediction-market question (Kalshi, Polymarket or similar) from the live web: {question, as_of, summary, evidence_for, evidence_against, key_dates, r…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Builds an evidence brief for a prediction-market question (Kalshi, Polymarket or similar) from the live web: {question, as_of, summary, evidence_for, evidence_against, key_dates, resolution_notes, sources}, usually in 5 to 8 seconds. Pass the question as the market words it, including its date or threshold (for example 'by Dec 31, 2026' or 'above 4.5%'). It reports evidence and what decides resolution; it gives no probability, forecast or trading advice. Use research.answer for general questions. Read-only. Paid per call with x402; if it cannot answer in time the call fails and is not charged.

    Annotations the server declares

    • title: Research a prediction-market question
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • web.searchRuns a web search and returns ranked results as {query, results: [{title, url, snippet}]}.1 finding

    Why it is in this group

    • The name "web.search" says "search": a word for reading.
    • The description's first verb is "run": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "web.search" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}; The name "web.search" says "search": a word for reading.

      What this check looks for
    Description, as the server wrote it
    Runs a web search and returns ranked results as {query, results: [{title, url, snippet}]}. Use it for raw links to read yourself; use research.answer for a written answer. Plain phrases work as well as keywords; since and until (YYYY-MM-DD) limit results to a publish-date range, which suits recent news. Needs an x402 payment per call; if the search fails or finds nothing, you are not charged.

    Annotations the server declares

    • title: Search the web
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
Only reads 4Claude Code: allow
  • page.extractReturns the main text of one public web page as clean markdown, unchanged and not summarized, up to 8,000 characters, as {url, markdown, truncated}, usually in 2 to 5 seconds.No findings

    Why it is in this group

    • The description's first verb is "return": a word for reading.
    Description, as the server wrote it
    Returns the main text of one public web page as clean markdown, unchanged and not summarized, up to 8,000 characters, as {url, markdown, truncated}, usually in 2 to 5 seconds. Pass the address of the specific page, not a site's home page; pages that need a login cannot be read, and longer pages are cut and flagged truncated. Use page.summarize for a short version. To read several pages, or to crawl a topic, get the addresses from web.search and call this once per address. Read-only. Paid per call with x402, up to 60 calls a minute per client; a failed call is not charged.

    Annotations the server declares

    • title: Extract a web page
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • page.summarizeCondenses one public web page into an 80-word summary with up to 4 key points, returned as {url, summary, key_points}, usually in 3 to 6 seconds.No findings

    Why it is in this group

    • The name "page.summarize" says "summarize": a word for reading.
    Description, as the server wrote it
    Condenses one public web page into an 80-word summary with up to 4 key points, returned as {url, summary, key_points}, usually in 3 to 6 seconds. The page is fetched live, so the summary reflects it now; pages behind a login or paywall may return little. Pass the address of the specific page, not a site's home page. Use page.extract for the page's own text. Read-only. Paid per call with x402; if the page cannot be read in time the call fails and is not charged.

    Annotations the server declares

    • title: Summarize a web page
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • research.companyReturns a short sourced brief on one company as {company, summary, what_it_does, facts, recent, sources}, usually in 5 to 8 seconds.No findings

    Why it is in this group

    • The description's first verb is "return": a word for reading.
    Description, as the server wrote it
    Returns a short sourced brief on one company as {company, summary, what_it_does, facts, recent, sources}, usually in 5 to 8 seconds. Pass a website address such as stripe.com to avoid name clashes; a bare name resolves to the best-known company with that name and the summary says when the name is ambiguous. Facts such as founding year, location, size, funding or leadership appear only when the sources state them, and conflicting figures are reported as the most recent one with its date. Read-only. Paid per call with x402; if the company cannot be described in time the call fails and is not charged.

    Annotations the server declares

    • title: Brief on a company
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • web.newsReturns recent news on one topic, person, company or event as {query, window_days, summary, developments: [{headline, date, source}]}: a summary of about 50 words and up to 4 dated…No findings

    Why it is in this group

    • The description's first verb is "return": a word for reading.
    Description, as the server wrote it
    Returns recent news on one topic, person, company or event as {query, window_days, summary, developments: [{headline, date, source}]}: a summary of about 50 words and up to 4 dated developments, newest first, usually in 3 to 7 seconds. A short topic or name works better than a full question; days sets the look-back from today (1 to 30, default 7), so a quiet topic needs a larger value. Use web.search for raw links. Read-only; only what the dated results support is returned. Paid per call with x402; if nothing recent is found the call fails and is not charged.

    Annotations the server declares

    • title: Recent news on a topic
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.1.6. Values in angle brackets are yours to fill in.

claude mcp add --transport http research-tools https://bob.assimilatethis.com/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__research-tools__page_summarize",
      "mcp__research-tools__page_extract",
      "mcp__research-tools__web_news",
      "mcp__research-tools__research_company"
    ],
    "ask": [
      "mcp__research-tools__research_answer",
      "mcp__research-tools__research_factcheck",
      "mcp__research-tools__web_search",
      "mcp__research-tools__research_market"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as research-tools. Review it before you use it.