What your AI can do with BRONTIR
A plain-language tour of the capabilities and tools your agent gets over MCP — no setup jargon.
Turn the entire public web into a structured, citable, always-fresh knowledge base for your AI agents.
BRONTIR is a research backend that connects to your AI assistant over MCP and gives it what plain web search can’t: deep access to the real content of live sites, meaning-aware extraction, and a durable memory it can search and cite. Where built-in tools return snippets that vanish after a turn, BRONTIR builds a permanent corpus you can return to, search inside, and cite down to the exact line.
What it can do
Reach any public page
Give it any public link and get back clean, readable content. News articles, blogs, documentation, company sites, landing pages — any public HTTP(S) URL is accepted and turned into structured text ready for analysis.
Deep, platform-aware extraction
For the most popular platforms it uses specialized extraction that understands each platform’s structure, not a generic page dump:
- Video — transcripts and metadata (YouTube and more), so your agent can analyze a video without watching it.
- Social — posts, comments and metadata from Reddit, X/Twitter, Facebook, Instagram, TikTok, LinkedIn, Threads, Bluesky, Pinterest, Twitch, Snapchat and Truth Social.
- Places — from a map link: the full place card — address, category, rating breakdown, opening hours, popular times, price level, services, attributes and photo categories — together with its customer reviews, the owner’s replies to them, and the themes that recur across them. Ask for them and the updates the business publishes on its own profile — announcements, offers, news — come back alongside; they are off unless asked for, and many places have published none.
- Reviews — from a Trustpilot company page or a Tripadvisor listing: the summary with its overall score, the star breakdown where the site keeps one, and the reviews themselves with the business’s replies. Say in plain language how many to collect and which ones — the newest, or the ones at a particular star rating.
- App stores — from a Google Play or App Store link: the store listing — publisher, category, price, current version, update date — together with its user reviews. Each country runs its own store, and the link decides which one is read.
- Products — from an Amazon, Walmart or Google Shopping link: the listing in full — title, price and any reduction, availability, who sells it and who ships it, the seller’s own description, the specification table, the other sizes, colours and styles of the same product — together with the other sellers offering it and what each charges, and the reviews the page itself carries. One national store per link, and its prices, availability and language are that country’s. Two things worth knowing: Amazon serves its full review list only to signed-in visitors, so what comes back is the handful the store chose to show rather than a cross-section of buyer opinion; and a Google Shopping listing opens only while it is still on that storefront’s first page for the same terms — once it drops off it is reported as gone rather than guessed at.
- Homes — from a Zillow link: one home as the site holds it — what it is asking or renting for, or what it last sold for, alongside the site’s own estimate of its value and its rent; beds, baths, floor area, lot size, home type and year built; the full address, the tax assessed value and property tax rate, monthly homeowners’ association dues, how long it has been listed and who is listing it. Where the listing publishes them, the record also carries the seller’s own written description, the specification of features and construction, the price history event by event, years of tax history, and the assigned schools with their ratings and distances. Homes for sale, to rent, recently sold and off the market, across the United States and Canada, in the currency of the listing. One home per link: a city’s listings, a search page, a rental community or an agent’s profile addresses something other than one home and is read as an ordinary web page instead.
- Hotels — from a Google Hotels property link: the address and telephone number, star class, the guest rating with the full star-by-star spread, the amenities, the room types an advertiser lists, every booking site quoting it with each one’s nightly and total rate, the topics reviewers bring up, and the landmarks nearby. The rates belong to one set of nights, which the answer states — everything else on the card is the same whichever nights are priced. No review text and no photographs.
- Markets — from a Google Finance link: the quoted price and the company’s own reported figures — revenue, operating expense, net income, margins, earnings per share, EBITDA, assets, liabilities, equity, cash flow and more — each against the same period a year earlier, across recent quarters and financial years, in the currency the company reports in and over its own fiscal periods. The symbol is the only way in: there is no search by company name, and the card carries no price history, news, analyst estimates or dividends.
- Patents — from a Google Patents link: the whole document — every claim word for word, the technical description, the priority, filing and publication dates, the current legal status and adjusted expiry, the classification codes, the family with each national filing’s status, and the prior art it cites alongside the later documents citing it. What comes back varies by office, and the document says which parts are absent. The publication number is the only way in; there are no legal opinions, licensing terms or litigation records here.
- Researcher profiles — from a Google Scholar author link: name, affiliation and stated interests, total citations, h-index and i10-index both all-time and over a recent window, the citations received in every year on record, and up to two hundred works with their own citation counts — plus co-authors, each with a link to their own profile. No abstracts and no full text: follow a work’s link to read it.
- Ads — from a link to a single ad in the Facebook, TikTok, LinkedIn or Google ad library: the wording of every version of that ad, the countries it ran in with each country’s own start and end dates, the page it sends people to, and the account that posted it — wherever the platform publishes them. Ask for it and the creative is described in words too: what the picture shows, its colours, and the text burned into it. Image and video addresses on these platforms expire, so each one is stamped with the moment it stops opening.
- Code — from a GitHub link: a repository with its description, stars, forks, license, languages, latest release and latest commit, its top-level files and its README in full; a file’s full text, or a folder with the last commit that touched each entry; an issue or pull request with its labels, linked pull requests, branches, size of the change, checks, reviews and its comments in order, up to five hundred; lists of issues and pull requests filtered by the site’s own search text, commit histories by branch, path or author, releases with their notes and files, contributors and forks; profiles of users and organizations with their repositories, stars, followers and members; trending pages, topics and GitHub’s own search. A link to one page of a list answers with the rows that page shows. A single commit, a comparison and a pull request’s changed files are read as web pages, so their diffs come back too.
- Documents — text extracted from PDFs by direct link.
- Sitemaps and feeds — a sitemap becomes the list of pages it holds, grouped by section, with last-modified dates and language versions; a sitemap index lists its child sitemaps; an RSS, Atom or RDF feed comes back entry by entry with links, dates, authors and text.
- Images — pictures are described in text, so visual content becomes searchable, quotable and analyzable. Works both for images inside posts and for a direct link to a picture.
Search and discover
Don’t have exact URLs? Run a search and let the platform find sources for you:
- Web — organic results with related queries, from two independent indexes rather than one. Run the same question through both and roughly three quarters of what the second returns is missing from the first: it leans towards independent specialist sites where the first leans towards the large discussion platforms, so they are worth running together rather than one instead of the other.
- Web mentions — where a phrase turns up across the web, one page per site: the passage it sits in, the date the page carries where it has one, how much of the web links to the site, and, where the passage is long enough to read, how an automatic reader scored its wording. It reads a standing index of page text rather than a search engine, so it reaches millions of pages deep instead of stopping at a first page of results. It is at its strongest on subjects and terms: asked for a bare brand name it shows where those words appear, which is largely catalogues and shops. Every result is a different site, the subject’s own included, and the phrase is held to the wording given. It can be narrowed to one kind of page — news, blogs, forums, shops, organisations — or to pages whose own title carries the phrase.
- News — what is being published about a subject right now: up to a hundred articles from one query, each with its publisher, the exact time it went out and a link to the publisher’s own page rather than to an aggregator. Headlines only — open an article to read what it says.
- Research & patents — scholarly articles, preprints and theses with how often each has been cited, and for any one of them what cites it and which other versions exist. Patents and applications alongside, narrowed by holder, inventor, filing date, office or legal status, each with the offices it stands in force in. Neither carries full text: open a result to read the paper or the patent itself.
- Products & prices — what a search brings up in a store: the product, its price, its star rating and the badges the store puts on it. Amazon reads one national store at a time — twenty-two of them, each with its own catalogue, currency and language; Walmart is the United States store; Google Shopping covers one country’s storefront and the shops it indexes, so prices from two of them are not comparable, and some storefronts publish ratings without their decimal part, which the results show as a floor and say they have done. A result is a listing, not the product page, so it carries no description, seller or review text — open the listing for those — and Walmart intermittently answers with every price missing, which the results say plainly rather than leaving it to read as free goods.
- Stays & flights — the hotels and holiday rentals listed for a place, with nightly and total price, star class, guest rating and the topics reviewers raise; and the flights on one route on one day, with airline and flight number, both airports and their times, stops, aircraft, cabin and price alongside what the route usually costs. Every price belongs to specific nights or to a single departure day rather than to the property or the route in general: name the dates, or a sample stay and a midweek departure about a month out are priced and reported with the results. Fares are one-way only, so they are outbound prices; flights are searched by airport, and a city is read as the airports serving it, which the results name. A hotel can be opened for its full card; a flight cannot — it has no page anywhere, so everything known about each option is already in the result.
- Jobs — openings gathered from job boards, aggregators and employers’ own career pages, with the employer, where the job is based, the kind of employment and the pay where it is stated. Two things worth knowing before you ask: a search covers one country at a time, and some countries are not covered at all — Australia, Ireland and Mexico among them; and about three links in four lead to a job board re-posting the role rather than to the employer.
- Maps & local — places, businesses and points on the map, down to a single listing.
- Business listings — every business of a given kind in a given place, selected from a standing table of map records rather than ranked by a search engine: name, address, categories, rating and its star breakdown, review count, phone, website, opening hours, price band, service and accessibility attributes, and the keywords customers mention in reviews. Up to a thousand in one answer, each a separate address, held to one city or country and to a minimum rating, ordered by score or by review count; permanently closed businesses are removed. This selects by condition and has no notion of relevance: wording that names neither a kind of business nor a business returns nothing rather than a best effort. Russia and Belarus are not covered.
- Video — find clips with filters for upload date, quality and exact match.
- Social — search by keyword, community, hashtag or author, with date filters.
- Companies & reviews — find a company on Trustpilot by name or line of business, with its star rating and how many reviews it stands on.
- Travel & hospitality — restaurants, hotels, attractions and tours as Tripadvisor ranks them in a named city, district, park or country.
- Apps — search the Google Play and App Store catalogues, or browse a Play category’s ranked listing. Each country has its own store, so which apps exist, how they rank and what they cost all follow the market you name.
- Ads — what a brand is advertising right now on Facebook and Instagram, TikTok, LinkedIn or Google. Search by the words inside the ads, or list everything a named advertiser is running, then open any single ad to read it in full. No platform publishes what an advertiser spends; how often an ad was seen, and who saw it, are disclosed only in the markets whose rules require that, and each platform’s list of those markets is its own.
How a search is run is described in plain words too — a country, a language, an area or coordinates, how recent results should be — so there is no per-source filter syntax to learn.
Measure search visibility
Beyond what a page says, your agent can ask how a site or a whole market performs in search:
- Keyword demand — how often a phrase is searched in a given country and language, how that moved over the past year, what advertisers pay per click, how hard the top results are to displace, and whether searchers want to learn, compare, buy or navigate. Start from a phrase, a subject, a website, or an exact list of phrases to price side by side.
- Rankings — what terms a site ranks for and in which positions, which of its pages and sections earn the traffic, what that traffic is worth, which sites compete with it and how far the overlap goes.
- Backlinks — who links to a site, section or single page, with the wording used, how strong and how trustworthy the linking sources look, when each link appeared and whether it is still live.
- Search interest — how much people search for something and how that has moved: one term, or up to five compared side by side, across a window from the past hour to every month back to 2004, or which of a country’s own regions search for it most — in web searching, or in image, news, shopping or video searching instead. Two limits to know before you ask: every report is about one country and there is no worldwide figure, and the numbers are relative — 100 is the busiest point inside the window asked about, so they show shape and comparison, never how many searches there were.
- Domain profiles — when a domain was registered and when it expires, who registered it, what the site is built with (CMS, store platform, analytics, payments, CRM), the contacts and social links it publishes, and the size of its unpaid and paid search presence.
Questions are asked in the same plain language as everything else — no field names, operators or query syntax. Large reports come back as a summary plus a line index, so your agent reads only the parts it needs.
Extraction by meaning, not raw dump
Every search and every fetch carries a plain-language objective — what you actually care about. The platform doesn’t just download a page; it separates signal from noise, splitting results into relevant and off-topic and surfacing the key parts of long material. You get an answer to your question, not a pile of HTML.
Persistent, citable memory
Everything gathered is stored as durable records in your workspace — not ephemeral text dropped into a single turn:
- Re-readable — every result from
advanced_web_searchandadvanced_web_fetchis kept as a citable record you can open again later, long after the turn that produced it. - Exact citations — pull the precise line ranges you care about from a specific version of a record, and get answers backed by per-record, line-level citations.
- Search inside your corpus — keyword and regular-expression search across everything you’ve collected, with context around each match.
Research agents
Intelligent helpers work on top of the collected data:
- Batch fetch dozens of links in one call, processed in parallel with clean per-item error handling.
- Structured questions over your corpus — get a ready answer, a set of supporting citations, or both at once.
- Search fan-out — run a series of searches across different platforms in a single task.
Real-time results
Long research doesn’t make you wait for all-or-nothing. Partial results stream in as they arrive: first findings show up immediately, so your agent can react on the fly, branch into new directions, and stop as soon as it has enough.
The tools your agent gets
| Tool | What it does |
|---|---|
advanced_web_search |
Discover sources across Google, DuckDuckGo, Google News, Google Scholar, Google Patents, Google Jobs, Google Maps, YouTube, Reddit, TikTok, Threads, Amazon, Walmart, Google Shopping, Google Hotels, Google Flights, Trustpilot, Tripadvisor, Google Play, the App Store and the Facebook, TikTok, LinkedIn and Google ad libraries, plus a standing index of page text for web mentions and a standing table of business listings — run one query across several sources at once. |
advanced_web_fetch |
Pull clean, structured content from any public URL — many at a time — with platform-aware extraction for video, social, places, reviews, app stores, products, homes, hotels, market data, patents, researcher profiles, ads, PDFs and images. |
seo_metrics |
Answer search-visibility questions — keyword demand, rankings and competitors, backlinks, domain profiles, search interest over time — asked in plain language. |
ask_collected_records |
Ask a question over the records you’ve gathered and get an answer with per-record, line-level citations. |
read_collected_records |
Read any collected record by reference — a specific version, or just the exact line range you need. |
grep_collected_records |
Search your whole corpus by keyword or regex, with surrounding context. |
get_task_results |
Stream and collect results from longer research tasks as they complete. |
Sources you can work with
- Web & search — Google and DuckDuckGo as two independent indexes, websites, product pages
- Mentions across the web — a standing index of page text: where a phrase turns up, one page per site, with the passage, its date and how its wording scores
- News & coverage — Google News: publishers, publication times and links to the publishers’ own pages
- Research & patents — Google Scholar with citation counts and researcher profiles, Google Patents with holders, filing dates, legal status and the full text of a patent
- Products & prices — Amazon in any of twenty-two national stores, Walmart in the United States, Google Shopping per country — searched as listings, opened as full product pages
- Travel & stays — Google Hotels and Google Flights, priced for the nights or the departure day the search names
- Homes & property — Zillow: homes for sale, to rent, recently sold and off the market, in the United States and Canada
- Code — GitHub: repositories, files, issues, pull requests, commit histories, releases, profiles, topics and searches
- Markets & finance — Google Finance: the quote and the company’s published figures, opened by symbol
- Jobs & hiring — Google Jobs, one country per search; some countries are not covered, Australia, Ireland and Mexico among them
- Search visibility — keyword demand, rankings and competitors, backlinks, domain profiles, search interest over time
- Maps & local — Google Maps places with their reviews and, on request, the updates a business posts on its own profile; plus business listings selected by category, place and rating, up to a thousand at a time
- Reviews & ratings — Trustpilot companies, Tripadvisor restaurants, hotels and attractions
- App stores — Google Play and the Apple App Store, per country
- Video & creators — YouTube, TikTok, Twitch
- Social platforms — Reddit, X/Twitter, Instagram, Facebook, LinkedIn, Threads, Bluesky, Pinterest, Snapchat, Truth Social
- Ads & creatives — the Facebook, Instagram, TikTok, LinkedIn and Google ad libraries
- Documents & files — PDFs, tables, images
Why it beats plain web search
| Plain web search | BRONTIR |
|---|---|
| Snippets that vanish after the answer | A permanent corpus you can return to |
| Only what made it into the snippet | Full content of pages, videos, posts, PDFs and images |
| No way to cite a specific spot | Citations precise to the line |
| Starts from scratch each time | A cached, re-readable corpus you can search and cite |
| One generic parser | Platform-specific extraction for each source |
| A crowd of tools weighing the agent down | A lightweight toolkit — a few simple tools with dozens of sources behind them, keeping your agent fast and focused |
| Every result looks equally important | Each source comes with a short summary and a relevance note, so your agent skips the noise |
| Whole pages burned through the context window | Your agent reads only the parts that matter — each task finishes faster and costs less |
Getting started
- Create an account — free, no card required. You get free credits to explore right away.
- Connect your client — add the hosted BRONTIR MCP endpoint to your AI client and authorize with OAuth. Nothing to install. Step-by-step instructions for each client are in Connecting your client below.
- Ask for data — find, extract, compare, summarize or structure public data, directly in your chat.
Connecting your client
BRONTIR is a hosted, streamable MCP server. There is nothing to install and nothing to run locally. You point your client at a single URL:
https://research.brontir.com/api/mcp
The same URL is waiting in your account under Connect your agent, ready to copy. Most clients sign you in with OAuth: your Google account, nothing to paste. A client without OAuth support authenticates with an API key you create in your account.
Each client below also has a page of its own that walks through every screen with screenshots: Claude · Codex · Claude Code · Codex CLI · Cursor · VS Code · Cline · Grok · Antigravity · Kiro · Any other client.
Always restart your client after connecting. Restart the desktop app, or reload the page in a web client. Clients read the tool list once at startup, so until they restart the agent often can’t see the new tools even though the connector already shows as connected. This one step prevents most setup problems.
Claude Desktop and Claude Web
Both apps share the same screens, so the steps are identical. Claude calls a remote MCP server a custom connector.
-
Open Customize in the left sidebar. It opens as a full page with its own tabs, starting on Skills: switch to Connectors, the next tab along.
-
The Connectors tab opens on Discover, a catalog of ready-made connectors, with Yours, your own list, beside it. Either one works: press Add at the top right, then choose Add custom connector, the only item in the menu.
-
The dialog asks for two things, then press Continue:
- Name: anything you like; we suggest
researchorwebtools. This is the name your agent will see. - MCP server URL: the MCP endpoint above.
- Name: anything you like; we suggest
-
On the next screen Claude reads the settings off the server and pre-selects them, both marked Detected: Authentication → Sign in now and OAuth client → Register automatically. Leave both as they are and press Add at the bottom of the dialog. Request headers sit under Advanced and stay empty.
One thing to avoid: don’t switch the OAuth client to Use Claude’s published identity. This server doesn’t accept that form of client and the sign-in stops there. Older builds word the same options differently, Always required and a client-ID option that registers one automatically, and older ones still show a single combined dialog with optional OAuth Client ID / Client Secret fields; leave those empty.
-
The new connector’s page opens, reading You’re not connected to research yet. Press Connect there. It opens a browser tab; if the browser shows a Claude sign-in form, sign in with the same account as the app and carry on.
-
Claude first asks Finish connecting a connector?, an anti-phishing check rather than an error: press Continue connecting. The BRONTIR Authorize access page then shows that Claude is requesting access: press Approve. On the Connected page that follows, let the browser open Claude (Open), press Open desktop app, or switch back to the app yourself.
-
Restart Claude. Quit and reopen the desktop app, or reload the page in Claude Web. Skipping this is by far the most common reason the tools never show up.
-
Optional but recommended: on the connector’s page, open the Tool permissions dropdown, which reads Needs approval, and choose Always allow, so Claude doesn’t ask for confirmation on every research call. It applies at once, with nothing to save.
-
Also recommended: open Settings from the account menu (your name at the bottom of the sidebar, or
Ctrl + ,), go to Account, add one line to Instructions for Claude and press Save changes. Claude defaults to its own web search; this line puts your connected tools in play instead, in every chat:Prefer connected MCP tools over the built-in web search when looking things up
Added this server before? Claude keeps a removed connector’s sign-in on your account, so the re-added connector may open already connected. Skip to the tool permissions.
Claude Code
Claude Code signs in with OAuth as well, so no API key is needed.
-
In your terminal, add the server:
claude mcp add --transport http --scope user research https://research.brontir.com/api/mcpThe name,
researchhere, is what your agent will see.--scope usermakes the server available in every project; leave it out to add it to the current project only. -
Start Claude Code and run
/mcp. It warns on the way in that one MCP server needs authentication. A session that was already open when you added the server has to be restarted first. -
Choose
researchand press Enter, then choose Authenticate and press Enter. Your browser opens; if it doesn’t, the screen prints the sign-in link. -
On the BRONTIR Authorize access page, press Approve. Back in Claude Code the screen reads Authentication successful. Connected to research. From the shell,
claude mcp login researchruns the same sign-in without opening Claude Code. -
To see what the agent got, run
/mcpagain and chooseresearch→ View tools: seven read-only tools. -
Recommended: append one line to
~/.claude/CLAUDE.md, the user memory Claude Code reads in every project, so it reaches for the connected tools before its built-in search:Prefer connected MCP tools over the built-in web search when looking things up
Already connected in Claude Desktop or Claude Web? Then there’s nothing to add here: a connector on your Claude account shows up in Claude Code by itself, as long as you signed in to Claude Code with that same account rather than an API key. claude mcp list tells you before you add a second one.
Codex
These steps are for the ChatGPT desktop app. It has two modes, ChatGPT and Codex, and MCP servers work in Codex mode: the ChatGPT chat can’t use them, so the tools never show up there. Codex comes with every ChatGPT plan, Free included. Settings are shared by both modes, so the setup below works from either.
-
Click your avatar, the round badge with your initials at the foot of the narrow strip of icons along the left edge, and choose Settings.
Ctrl + ,(⌘ + ,on macOS) opens Settings without the menu. -
Choose Plugins, the first entry under Integrations at the bottom of the Settings list, below the long Personal group. Scroll the list if your window is short.
-
The Plugins page opens on its Apps tab: switch to MCPs, the tab beside it. Then, top right, Add ▾ → Add MCP server.
-
Fill in the Connect to a custom MCP form:
- Name: anything you like; we suggest
researchorwebtools. This is the name your agent will see. - Type: switch to Streamable HTTP. The default, STDIO, is for servers running on your own machine; while it is selected the form has no URL field at all.
- URL: the MCP endpoint above.
- Leave Bearer token env var, Headers and Headers from environment variables empty. You sign in with OAuth instead.
Press Save.
- Name: anything you like; we suggest
-
Back in the Servers list, press Authenticate on the row you just created. Leave the Auto menu beside it as it is: it picks the sign-in method this server supports.
-
The BRONTIR Authorize access page opens in your browser and shows that Codex is requesting access. Sign in with your Google account if you’re asked, and press Approve.
-
Authenticate and the Auto menu leave the row. Check that the toggle next to the server is on, then restart the app so it picks up the new tool list.
-
Recommended: open Settings → Personalization and, under Custom instructions, open the Codex instructions row. It opens an editor of its own: paste one line and press Save at the top right. The editor is
~/.codex/AGENTS.md, the same file the Codex CLI reads. Codex defaults to its own browsing tool; this line puts your connected tools in play instead, in every chat:Prefer connected MCP tools over the built-in web search when looking things up
-
Switch the app to Codex mode: open the menu at the top of the sidebar (it reads ChatGPT in ChatGPT mode) and choose Codex. Start a new chat there. The Work tab of ChatGPT mode can use the tools too, since Work chats run on Codex; the Chat tab can’t.
-
If the agent still prefers its own browsing tool, see Troubleshooting below.
One setup covers the whole Codex family. The desktop app’s Codex mode, the Codex CLI and the IDE extension read the same MCP configuration, ~/.codex/config.toml, so a server you add in one of them shows up in the others.
Codex CLI
The command-line Codex is a separate install: the installer script, npm install -g @openai/codex, or Homebrew. Having the desktop app doesn’t give you the codex command.
-
Add the server:
codex mcp add research --url https://research.brontir.com/api/mcp -
Codex spots the OAuth support and opens the sign-in in your browser straight away, so there is no second command to run. If it says login may be required instead, run
codex mcp login research. -
On the BRONTIR Authorize access page, press Approve. The terminal reads Successfully logged in.
-
codex mcp listshows the server with status enabled and auth OAuth. Inside the TUI,/mcplists what’s connected; a session that was already open has to be restarted before it sees the new tools. -
Recommended: append one line to
~/.codex/AGENTS.md, which Codex reads in every session, so it reaches for the connected tools before its built-in browsing:Prefer connected MCP tools over the built-in web search when looking things up
This also connects the desktop app’s Codex mode and the IDE extension: all three read the same configuration, and the app’s Codex instructions edit the same AGENTS.md.
Cursor
-
Open Customize in the sidebar, then the MCPs tab.
-
Press the New MCP Server row and choose User, which covers every project. Cursor opens
~/.cursor/mcp.jsonwith an empty skeleton in it, the same file you can edit by hand (.cursor/mcp.jsoninside a project covers that project alone). Replace the skeleton with:{ "mcpServers": { "research": { "url": "https://research.brontir.com/api/mcp" } } }No transport field is needed: the
urlis what marks it as a remote server. -
Save the file (
Ctrl + S,⌘ + Son macOS). Cursor picks the server up the moment the file is written: it appears on the MCPs tab under Needs Attention, with no restart needed. -
Press Authenticate on its row. The BRONTIR Authorize access page opens in your browser: sign in with your Google account if you’re asked and press Approve. The page that follows reads Authorization complete; its Open prompt only brings Cursor’s window forward.
-
The row turns green and reads 7 tools enabled. Open it to switch individual tools off, or to sign out again.
-
Recommended: on the Rules tab of Customize, add a new user rule with one line. Cursor reaches for its own search first; this rule puts your connected tools in play instead, in every chat:
Prefer connected MCP tools over the built-in web search when looking things up
The Cursor CLI reads the same file: agent mcp list shows the server, agent mcp login research signs you in.
VS Code
-
Run MCP: Add Server from the Command Palette (
Ctrl + Shift + P,⇧ + ⌘ + Pon macOS). -
Answer its prompts one at a time: choose HTTP (the other option, Command (stdio), is for servers on your own machine), paste the MCP endpoint above, type
researchover the generated server id (this is the name your agent will see), and choose Global, for every workspace. -
VS Code then asks which global configuration to use: keep the default, Copilot Global. It writes the server into
~/.copilot/mcp-config.jsonand opens the file:{ "mcpServers": { "research": { "type": "http", "url": "https://research.brontir.com/api/mcp", "tools": ["*"] } } }User Configuration, the
mcp.jsonearlier versions wrote to, is still offered there and marked deprecated. Workspace instead of Global writes.vscode/mcp.jsonin the open folder, in VS Code’s own format:{ "servers": { "research": { "type": "http", "url": "https://research.brontir.com/api/mcp" } } }. -
The server doesn’t start by itself. Run MCP: List Servers, choose
research(it reads Stopped) and choose Start Server. -
Three confirmations come before the browser opens, and all three are expected: Trust in the Trust and run dialog (it says “was updated” for a new server too), Allow, for the server definition to authenticate, and Open, to let VS Code open the sign-in page in your browser.
-
On the BRONTIR Authorize access page, sign in with your Google account if you’re asked and press Approve. The browser then offers to open VS Code; Open only brings the editor forward.
-
Run MCP: List Servers again:
researchreads Running, and the server log VS Code opened ends in Discovered 7 tools. In chat the tools sit under Configure Tools, the tools icon in the chat box, in a group named after the server. After a VS Code restart the server may read Stopped again: Start Server brings it back with no prompts. Manage Trusted MCP Servers, in the Accounts menu, is where you revoke access later. -
Recommended: run Chat: Configure Instructions & Rules, choose New instruction file, then User Data, the global file VS Code reads in every workspace. Name it (
researchdoes) and replace the template it writes with:--- applyTo: '**' --- Prefer connected MCP tools over the built-in web search when looking things up.
Cline
-
Press Customize, the wrench icon at the top of the Cline panel. Open the MCP tab and press Add Remote Server.
-
Server Name:
research. Server URL: the MCP endpoint above. Transport Type: Streamable HTTP. Press Add Server. -
The server shows an error with an Authenticate button under it. Press it, sign in with your Google account and press Approve.
-
Start a new task. A task that was already open may not see the new tools.
-
Prefer the JSON? Press Edit Configuration under Customize → MCP and add:
{ "mcpServers": { "research": { "type": "streamableHttp", "url": "https://research.brontir.com/api/mcp" } } }The
typematters here: without it, or spelled differently (streamable-http,http), Cline falls back to the legacy SSE transport, which doesn’t work with this server. The file is~/.cline/data/settings/cline_mcp_settings.json, shared with the Cline CLI.
An older Cline has an MCP Servers icon instead of Customize: its Remote Servers tab has the same form, and Authenticate shows on the Configure tab. In the Cline CLI, cline mcp add research https://research.brontir.com/api/mcp --transport http adds the server, and Authorize OAuth in the cline mcp menu runs the browser sign-in.
Grok
- Open grok.com/connectors.
- Press New Connector and choose Custom.
- Paste the MCP endpoint above as the server URL.
- Sign in with your Google account when the BRONTIR Authorize access page opens, then press Approve. If the sign-in window never opens, or closes straight away, allow pop-ups for grok.com and add the connector again; a private window can block it too.
- Grok discovers the tools and uses them in conversations. If they don’t show up, start a new chat.
On Grok Business and Enterprise a team admin has to add the connector first, in the console at console.x.ai under Grok Business → Connectors, before anyone on the team can use it.
Grok Build, the command-line agent, takes the same endpoint: grok mcp add --transport http research https://research.brontir.com/api/mcp. The sign-in opens in your browser on first use, or press i on the server row in /mcps. If a call fails, grok mcp doctor research says why.
Antigravity
-
In the Antigravity app, press Settings at the bottom left, then Customizations. Under Installed MCP Servers, press Open MCP Config, or open
~/.gemini/config/mcp_config.jsonyourself. In the Antigravity IDE the same file opens from the agent side panel: … → MCP Servers → Manage MCP Servers → View raw config. -
Add the server and save. If the file already lists servers, put
researchinside itsmcpServers:{ "mcpServers": { "research": { "serverUrl": "https://research.brontir.com/api/mcp" } } }Recent versions take
urlas well, butserverUrlworks on every version, the command-line agent included. -
Press Refresh next to Add MCP: the list doesn’t reload by itself. The server shows an Unauthorized error until you sign in: press Authenticate next to it. In the IDE, that is under Agent Settings (
Ctrl + ,/⌘ + ,) → Customizations. -
Sign in with your Google account and press Approve. Copy the authorization code the next page shows, paste it into the box under the server and press Submit. A Sign out button next to the server means you’re connected.
-
If the server doesn’t appear, restart Antigravity, and check the file is valid JSON with a single
mcpServersobject.
“Unauthorized” and no Authenticate button? Some Antigravity versions fail the browser sign-in for remote servers: the server stops at calling "initialize": Unauthorized, and its menu offers only Restart and Disable. Connect with an API key instead. Create one on the API keys panel of your account and add it as a header:
{ "mcpServers": { "research": { "serverUrl": "https://research.brontir.com/api/mcp", "headers": { "Authorization": "Bearer nai_…" } } } }
The command-line agent takes the same header: agy mcp add -H "Authorization: Bearer nai_…" research https://research.brontir.com/api/mcp.
Kiro
-
Open the command palette and run Kiro: Open user MCP config (JSON) (or the workspace variant). MCP support has to be enabled once in Settings.
-
Add the server:
{ "mcpServers": { "research": { "url": "https://research.brontir.com/api/mcp", "oauthScopes": [] } } }oauthScopesis empty on purpose: without it Kiro asks for a set of scopes we don’t issue, and the sign-in fails. -
Save. Kiro reconnects on its own and opens the authorization page in your browser: sign in with your Google account and press Approve.
-
The MCP servers tab in the Kiro panel shows the connection and lists the tools. No restart needed.
Any other MCP client
OpenClaw, Hermes, or anything else that speaks the streamable MCP protocol.
- On the API keys panel of your account, create a key and copy it. The full key is shown only once.
- Point the client at the MCP endpoint above, using the streamable HTTP transport.
- Send the key as a bearer token:
Authorization: Bearer nai_… - Restart the client so it picks up the new tool list.
A client that only runs local (stdio) servers can still connect through a small local bridge such as mcp-remote, which runs on Node.js. Give the client the command npx mcp-remote https://research.brontir.com/api/mcp --header "Authorization:${AUTH_HEADER}" and set AUTH_HEADER to Bearer nai_… in that server’s environment.
Troubleshooting
The connector is connected, but the agent doesn’t see the tools
Restart the client first: quit and reopen the desktop app, or reload the page in a web client. Clients cache the tool list at startup and won’t discover a freshly added connector until they restart.
If the tools are still missing after a restart, start a new chat (a new task in Cline). An already-open conversation can keep the tool list it was created with, so a fresh chat is the reliable fallback. In Claude, the connector’s ⋮ menu also has Refresh tools list. In VS Code, check that the server reads Running under MCP: List Servers: after a restart it can sit at Stopped until you choose Start Server.
You pressed Approve, but the client still shows the connector as not connected
The authorization did go through; the client simply hasn’t refreshed its own state. Restart the desktop app, or reload the page in Claude Web, and the connector will show as connected.
If it still looks disconnected after a restart, open the connector again and press Connect (Authenticate in most other clients) once more, then approve again; the second pass takes effect immediately.
The agent ignores BRONTIR and uses its built-in web search instead
This happens when the model already has a browsing tool of its own and falls back to habit. Any of the following fixes it. The first is instant, the rest make it permanent:
- Name the tools in your prompt. Instead of “look this up”, write “use advanced_web_search and advanced_web_fetch from the research MCP”. Referring to the connector and the tool names directly is the most reliable nudge.
- Add a standing instruction to the agent’s memory so you don’t have to repeat it every time.
- Put it in the client’s instruction settings, for example: “For any web research, use the BRONTIR MCP tools (advanced_web_search, advanced_web_fetch, read_collected_records, grep_collected_records, ask_collected_records). Do not use built-in web search.” Where each client keeps it:
- Claude Web and Claude Desktop: Settings → Account → Instructions for Claude.
- Codex: Settings → Personalization → Codex instructions, which is
~/.codex/AGENTS.md. The Codex CLI reads the same file. - Claude Code:
~/.claude/CLAUDE.md, read in every project. - Cursor: a user rule on the Rules tab of Customize.
- VS Code: an instructions file. Run Chat: Configure Instructions & Rules and choose User Data, so it applies in every workspace.
- Cline: a global rule, a Markdown file in
Documents/Cline/Rules. - Grok: its custom instructions, which apply to every chat.
- Antigravity: a global rule under Rules (+ Global), which writes it to
~/.gemini/GEMINI.md. - Kiro: a global steering file in
~/.kiro/steering/.
- For coding agents, put the same rule in the repository’s
CLAUDE.mdorAGENTS.md. It then applies to every session in that project. - Turn the built-in tools off. In Claude you can disable web search in the chat’s tool settings, which leaves the connector as the only research path.
BRONTIR. The entire public web, as one structured knowledge base.
