Bing MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Bing MCP ServerSearch for 'best hiking trails in California' with market US and language English"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Bing MCP Server
A hosted Model Context Protocol (MCP) server that gives Claude, Cursor, Windsurf and any other MCP client one read-only Bing tool. Run a Bing search from a chosen country, market, language and device, and get the organic results, the ad block and the Copilot answer as structured JSON, with no Azure subscription and nothing to host.
It reads the Bing results page a signed-out visitor sees.
1,000 free credits every month, no card required, which is 100 Bing calls at the 10-credit rate.
https://mcp.hasdata.com/api/mcp?apis=bing
Contents
Related MCP server: cloudflare-search
What you need
An MCP client and a HasData API key from the dashboard, free to create with no card, and the free tier covers about 100 calls a month at the 10-credit rate. This is a remote server, so the simplest path is a URL and an x-api-key header, with no container to run. A client that only speaks stdio reaches it through a thin launcher, published as @hasdata/bing-mcp on npm and hasdata-bing-mcp on PyPI, shown below.
Quick start
The server URL is the same for every client. We run it hands-on in Claude Code and Claude Desktop. The other blocks follow each client's own documented format for a remote server.
Field | Value |
URL |
|
Transport | HTTP, streamable |
Auth header |
|
Clients with OAuth support can add the same URL as a connector and sign in without putting a key in a config file.
claude mcp add --transport http bing "https://mcp.hasdata.com/api/mcp?apis=bing" \
--header "x-api-key: HASDATA_API_KEY"Settings, then Connectors, then Add custom connector, then paste https://mcp.hasdata.com/api/mcp?apis=bing and sign in.
For the config-file route, Claude Desktop loads only local (stdio) servers, so it reaches a remote server through a stdio launcher. The @hasdata/bing-mcp package is that launcher, and it reads the key from the environment. Add this to claude_desktop_config.json:
{
"mcpServers": {
"bing": {
"command": "npx",
"args": ["-y", "@hasdata/bing-mcp"],
"env": { "HASDATA_API_KEY": "YOUR_KEY" }
}
}
}For Python instead of Node, swap the launcher for the PyPI package, which uvx runs without a manual install:
{
"mcpServers": {
"bing": {
"command": "uvx",
"args": ["hasdata-bing-mcp"],
"env": { "HASDATA_API_KEY": "YOUR_KEY" }
}
}
}~/.cursor/mcp.json for every project, or .cursor/mcp.json for one:
{
"mcpServers": {
"bing": {
"url": "https://mcp.hasdata.com/api/mcp?apis=bing",
"headers": { "x-api-key": "HASDATA_API_KEY" }
}
}
}~/.codeium/windsurf/mcp_config.json. Windsurf calls the field serverUrl, not url:
{
"mcpServers": {
"bing": {
"serverUrl": "https://mcp.hasdata.com/api/mcp?apis=bing",
"headers": { "x-api-key": "HASDATA_API_KEY" }
}
}
}.vscode/mcp.json in the workspace:
{
"servers": {
"bing": {
"type": "http",
"url": "https://mcp.hasdata.com/api/mcp?apis=bing",
"headers": { "x-api-key": "HASDATA_API_KEY" }
}
}
}Example prompts
Search Bing for python web scraping tutorials and list the top ten sources.
Who is advertising against the query "best crm software" on Bing right now?
What does Bing Copilot answer for this query, and which pages does it cite?
Run this query from Germany in German and compare the results with the US ones.
Show me pages Bing indexed for this query in the past week.
Search this query as a mobile user and tell me whether the ranking differs from desktop.
One call answers each of these. Paging to the second and third page of results takes one more call each.
Tools
One tool, 10 credits per successful call.
Get Bing search results
hasdata_bing_serp_getSearchResults
One Bing results page.
Parameter | Type | Required | Notes |
| string | yes | The search term |
| string | Free-text origin, such as | |
| string | GPS origin. Takes precedence over | |
| string | Market, one of 38, such as | |
| string | Country, one of 36, such as | |
| string | Interface and preferred result language, one of 39 | |
| string |
| |
| string |
| |
| string | A Bing filter string, such as | |
| number | Result offset, |
Returns organicResults always, plus ads and copilotSearch when the page carries them.
An organic result has position, title, link, displayedLink, source and snippet.
{
"position": 1,
"title": "10 Best CRM Software Of 2026 – Forbes Advisor",
"link": "https://www.forbes.com/advisor/business/software/best-crm-software/",
"displayedLink": "https://www.forbes.com › advisor › business › software › best-crm-software",
"source": "Forbes",
"snippet": "Compare top CRM options to find the best fit for your needs and budget, and explore features, pricing and support using the links below."
}ads appears on commercial queries and carries position, blockPosition, title, link, source, displayedLink, description and sitelinks. Six ads came back for best crm software and none for weather.
copilotSearch appears when Bing puts its AI answer on the page. It holds textBlocks, a sequence of typed blocks where a heading carries a snippet and a list carries an array of them, and references, the pages the answer cites.
{
"textBlocks": [
{
"type": "heading",
"snippet": "Top CRM software in 2026 includes Agentforce Sales, HubSpot Sales Hub, Pipedrive, Zoho CRM, and ActiveCampaign, each excelling in sales automation, pipeline management, and customer engagement."
},
{ "type": "heading", "snippet": "Top CRM Options" },
{ "type": "list", "list": [{ "snippet": "Agentforce Sales (formerly Salesforce Sales Cloud) – Best for highly customizable..." }] }
],
"references": []
}Errors and failure paths
Plan for these rather than assuming a happy path.
The result count is not ten and does not hold still. The same query returned 6 organic results on one call and 14 on another, because Bing decides how much of the page to give to ads and to Copilot. Read the array length rather than assuming a page size, and do not compute a rank position by multiplying page number by ten.
ads and copilotSearch are absent rather than empty when the page has neither. Test for the key before you read it. A query like weather came back with organic results alone.
An ad link is a Bing click tracker, not the advertiser's URL. It points at bing.com/aclk with the destination encoded inside. Read displayedLink for the domain that was advertising, and treat the tracker as a click-through rather than as a page address.
lat and lon override location. Sending all three silently ignores the free text. Send one or the other.
mkt, cc and setLang are three separate axes. The market decides which Bing index answers, the country code decides the origin, and the language decides the interface and the preferred result language. Setting only one moves the results less than you expect.
filters is a raw Bing filter string. The date options are documented, ex1:"ez1" for the past day through ex1:"ez3" for the past month. For anything else, run the search in a browser and copy the parameter out of the Bing URL, because the values are Bing's rather than ours.
Paging is by offset, and pages overlap a little. first: 11 is the second page. Consecutive pages shared one result out of six in our checks, which is Bing being Bing rather than a fault. Deduplicate by link when you merge pages.
Results that carry data also carry a requestMetadata.id worth quoting in support.
Pricing, free tier and limits
The Bing tool costs 10 credits per successful call. Response size does not change the price.
The free tier is 1,000 credits every month with no card, which is 100 Bing calls at the base rate. It renews with the billing cycle, so a low-volume agent runs on the free tier indefinitely.
Paid plans start at $49 a month for 200,000 credits, which is 20,000 calls. The unit price falls with volume, from $2.45 per 1,000 calls on the entry plan to $1.00 on Business, $0.84 on Growth and $0.74 on the largest high-volume plans.
Your plan also sets concurrency. The free tier allows 1 request at a time, Startup 15, Business 30, Growth 50, and the high-volume plans run from 200 to 1,500. Retry on the 429 with a backoff in anything unattended, because an agent that sweeps a keyword list will reach the ceiling before you do.
A request that comes back non-200 is not billed. A successful call that finds nothing is still a call.
How it compares
Microsoft retired the Bing Search APIs on 11 August 2025, and the old endpoints now answer 410. Developers are routed to Grounding with Bing Search in Azure AI Agent Service, which is a different product rather than a renamed endpoint.
Grounding with Bing Search | This server | |
Eligibility | An Azure subscription and an agent resource | An API key |
What you get | A grounded model answer with citations | The results page, parsed |
Ad block | Not returned | Returned when present |
Ranking positions | Not the point of the product |
|
Display requirements | Bound by the grounding terms | Yours to check |
Cost model | Per grounding call, billed through Azure | Credits |
The row that decides it is what you are asking for. Grounding is built to feed a model an answer, and rank tracking, ad monitoring and SERP comparison need the page itself. When you want an answer rather than a ranking, the Azure route is the one Microsoft supports.
FAQ
Is there an official Bing MCP server?
Microsoft does not publish one for search results. This one is maintained by HasData and reads public Bing pages.
What is a Bing MCP server?
An MCP server exposes tools an AI client can call. This one turns a Bing results page into JSON an agent can reason over, without a browser or a scraping library in your stack.
Do I need an Azure subscription or a Bing API key?
No. The only credential is your HasData key.
Why do I get fewer than ten results?
Because Bing gives part of the page to ads and to the Copilot answer, and what is left is what you get. Six and fourteen both came back for the same query on different calls.
Does it return the Copilot answer?
When Bing shows one, yes, as copilotSearch with its text blocks and references. It is absent on queries where Bing does not generate an answer.
How do I search from another country?
Set cc for the country and mkt for the market, and add setLang when you also want the interface and result language to change. location or lat/lon narrows the origin further, to city level.
Can I use this together with other HasData APIs?
Yes. One key covers everything, and one endpoint serves them all through the apis parameter. Point a client at ?apis=bing,google_serp to get both tool sets in one connection, or at mcp.hasdata.com/api/mcp for the full catalogue.
Is HasData affiliated with Microsoft or Bing?
No. HasData is an independent service and is not affiliated with, endorsed by, or sponsored by Microsoft. Bing is a trademark of its respective owner. The tools work with publicly available data only, and you are responsible for using the results in line with Bing's terms and the law that applies to you.
Compliance and personal data
A results page returns titles, links and snippets from third-party sites, so what comes back depends on what you searched for. A query naming a person returns pages about that person, which makes the response personal data even though the tool has no concept of one. Keep that in mind before you store result sets from name queries, and check your own obligations.
HasData links
Bing Search API, the REST endpoint behind this tool
Other HasData MCP servers: Google Search, DuckDuckGo, Google Maps, Google Trends, Google Flights, YouTube, TikTok, Instagram, Amazon, Walmart, Shopify, Yelp, Yellow Pages, Zillow, Redfin, Airbnb, Booking.com, Indeed, Glassdoor.
Development
The launcher is a thin stdio bridge to the remote server, so there is nothing to build.
npm install
HASDATA_API_KEY=your_key_here npm testThe tests in test/ assert the tool contract, the part that can break without a commit here. They check that ?apis=bing returns the one expected tool, that its name has not changed, that it still requires q and carries a description, that the targeting enums this README lists are still offered, and that the key in use is actually accepted. That last check calls the tool for real and costs 10 credits, which is the price of a canary that can fail for the right reason.
One test asserts that a live commercial query still returns organic results carrying position and link. This README documents the result count as variable, so a test that pinned a count would fail for the wrong reason, and one that only listed tools would pass while the parser returned nothing.
The contract suite also runs weekly on a schedule, because the upstream tool list can change without anyone touching this repository.
Contributing
A tool table, a response sample or a documented behaviour that does not match reality is worth an issue. There is a template for exactly that. Pull requests are welcome for the same, and for anything in the launcher.
License
MIT, see LICENSE.
Available Tools
1 toolhasdata_bing_serp_getSearchResultsbing_serp: GET /AInspect
Get Bing Search Results
Fetches Bing SERPs for a query with geo targeting (location/lat/lon), market (mkt), country (cc), safesearch (off/moderate/strict), interface language (setLang), time/custom filters, device type, and pagination (first offset). Returns organic results (title, url, snippet, displayed url, position), related searches, answer boxes/knowledge panels, and pagination metadata. Use for SEO rank tracking, SERP feature monitoring, Bing-specific visibility audits, and training/eval data for search agents.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Specify the search term for which you want to scrape the SERP. | |
| cc | No | The two-letter country code for the country to search from. | |
| lat | No | GPS latitude for the search origin. | |
| lon | No | GPS longitude for the search origin. | |
| mkt | No | The two-letter country code for the country to search from. | |
| first | No | This parameter specifies the number of search results to skip and is used for implementing pagination. For example, a value of 1 (default) indicates the first page of results, 11 refers to the second page, and 21 to the third page. | |
| filters | No | Allows applying various filters to narrow search results, including date-based options: - `ex1:"ez1"` – past 24 hours - `ex1:"ez2"` – past week - `ex1:"ez3"` – past month For complex filters, run a Bing search and copy the filters parameter from the URL. | |
| setLang | No | The language of the user interface and preferred result language. Accepts a two-letter language code (e.g. `en`, `de`) or a locale/script variant (e.g. `en-gb`, `zh-hans`, `pt-br`). | |
| location | No | Defines the search’s origin location as free text (e.g. `Austin, Texas`). It is resolved to coordinates to localize the results. For realistic results, set location at the city level. If both `lat` and `lon` are provided, they take precedence and `location` is ignored. If omitted, the proxy’s location may be used. | |
| deviceType | No | Specify the device type for the search. | |
| safeSearch | No | Adult Content Filtering option. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of explaining behavior. It discloses what the tool returns: organic results with title, URL, snippet, displayed URL, position, related searches, answer boxes/knowledge panels, and pagination metadata. It does not mention rate limits, authentication, or error behavior, but for a read-only search fetch the disclosed behavior is reasonably complete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, starting with the tool's core purpose and then covering capabilities, return values, and use cases without redundancy. Every sentence adds value, and the structure is easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 11 parameters and no output schema, the description does well by summarizing return fields and listing all major parameter groups. It does not detail exact response structures or edge cases, but the combination of full schema coverage and the return-value overview gives an agent enough context to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents every parameter individually. The description adds grouping context (e.g., 'geo targeting (location/lat/lon), market (mkt), country (cc)') but does not introduce semantic detail beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Fetches Bing SERPs for a query' with a specific verb and resource, and enumerates the key capabilities like geo targeting, market, safesearch, and pagination. It also names concrete use cases (SEO rank tracking, Bing-specific visibility audits), making it easy to distinguish from the many sibling search tools for Google, DuckDuckGo, and other engines.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear application contexts: 'Use for SEO rank tracking, SERP feature monitoring, Bing-specific visibility audits, and training/eval data for search agents.' This implies when to choose Bing SERP over alternatives, though it does not explicitly name sibling tools or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
v1.0.0- First observed
hasdata_bing_serp_getSearchResults
TDQS
Scored across 1 tool
With only one tool, there is no possibility of confusing it with another operation. The tool's purpose is clearly stated as fetching Bing search results.
The single tool name follows a readable provider-prefix plus action pattern, but it mixes snake_case segments with camelCase. Since there is only one tool, the inconsistency is minor and does not create practical confusion.
One tool is at the thin end of the spectrum. It is acceptable for a narrowly scoped Bing SERP endpoint, but a server named 'Bing MCP Server' feels minimal with only a single operation.
The tool covers core Bing web search well with geo, language, safe search, and pagination options. However, it lacks separate tools for news, image, video, or other Bing verticals, leaving some broader search use cases uncovered.
Maintenance
Related MCP Connectors
Live AI-native web search with citations. One tool for every MCP client. Flat per-request pricing.
Official SerpApi MCP server for Google, Bing, and other search engines.
Agent-driven search: build, import, tune, search, and score result quality — all over MCP.
Multi-engine search for AI agents. Trust scoring, local corpus, MCP-native. Self-hostable, BYOK.
Related MCP Servers
AlicenseAqualityAmaintenanceDirect access to 40+ scraping and search tools. Extract structured data from Google (Search, Maps, Trends), Amazon, Airbnb, Social Media, and any web page directly into your AI agent.8425MIT- AlicenseBqualityFmaintenanceAggregated search API service that provides real-time web search capabilities for AI assistants via MCP.21543GPL 3.0
- FlicenseNot gradedqualityBmaintenanceEnables querying Microsoft's Bing Copilot AI to retrieve structured answers, citations, and brand mention checks as JSON, designed for AEO/GEO monitoring.-
- AlicenseAqualityAmaintenanceA hosted MCP server that returns DuckDuckGo search results as structured JSON, with ranked organic results, separate ads, AI answers, and 37 region/language targets for any MCP client.214626MIT