MCP server for Bing search: organic results, the ad block and the Copilot answer, with geo, market and language targeting. No Azure subscription. 1,000 free credits every month.
- ✓Open-source license (MIT)
- ✓Actively maintained (<30d)
- ✓Clear description
- ✓Topics declared
- ✓Documented (README)
git clone https://github.com/HasData/bing-mcp{
"mcpServers": {
"bing-mcp": {
"command": "node",
"args": ["/path/to/bing-mcp/dist/index.js"]
}
}
}MCP Servers overview
# Bing MCP Server
<!-- mcp-name: com.hasdata/bing -->
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
```
[](https://glama.ai/mcp/servers/HasData/bing-mcp)
[](https://github.com/HasData/bing-mcp/actions/workflows/contract.yml)
[](https://mcp.hasdata.com/api/mcp?apis=bing)
[](#tools)
[](https://www.npmjs.com/package/@hasdata/bing-mcp)
[](https://pypi.org/project/hasdata-bing-mcp/)
[](LICENSE)
## Contents
- [What you need](#what-you-need)
- [Quick start](#quick-start)
- [Example prompts](#example-prompts)
- [Tools](#tools)
- [Errors and failure paths](#errors-and-failure-paths)
- [Pricing, free tier and limits](#pricing-free-tier-and-limits)
- [How it compares](#how-it-compares)
- [FAQ](#faq)
- [HasData links](#hasdata-links)
- [Development](#development)
- [Contributing](#contributing)
- [License](#license)
## What you need
An MCP client and a HasData API key from the [dashboard](https://app.hasdata.com/sign-up?utm_source=github&utm_medium=syndication&utm_campaign=bing-mcp), 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 | `https://mcp.hasdata.com/api/mcp?apis=bing` |
| Transport | HTTP, streamable |
| Auth header | `x-api-key: HASDATA_API_KEY` |
Clients with OAuth support can add the same URL as a connector and sign in without putting a key in a config file.
<details>
<summary><b>Claude Code</b></summary>
```bash
claude mcp add --transport http bing "https://mcp.hasdata.com/api/mcp?apis=bing" \
--header "x-api-key: HASDATA_API_KEY"
```
</details>
<details>
<summary><b>Claude Desktop</b></summary>
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`:
```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:
```json
{
"mcpServers": {
"bing": {
"command": "uvx",
"args": ["hasdata-bing-mcp"],
"env": { "HASDATA_API_KEY": "YOUR_KEY" }
}
}
}
```
</details>
<details>
<summary><b>Cursor</b></summary>
`~/.cursor/mcp.json` for every project, or `.cursor/mcp.json` for one:
```json
{
"mcpServers": {
"bing": {
"url": "https://mcp.hasdata.com/api/mcp?apis=bing",
"headers": { "x-api-key": "HASDATA_API_KEY" }
}
}
}
```
</details>
<details>
<summary><b>Windsurf</b></summary>
`~/.codeium/windsurf/mcp_config.json`. Windsurf calls the field `serverUrl`, not `url`:
```json
{
"mcpServers": {
"bing": {
"serverUrl": "https://mcp.hasdata.com/api/mcp?apis=bing",
"headers": { "x-api-key": "HASDATA_API_KEY" }
}
}
}
```
</details>
<details>
<summary><b>VS Code</b></summary>
`.vscode/mcp.json` in the workspace:
```json
{
"servers": {
"bing": {
"type": "http",
"url": "https://mcp.hasdata.com/api/mcp?apis=bing",
"headers": { "x-api-key": "HASDATA_API_KEY" }
}
}
}
```
</details>
## 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`](https://docs.hasdata.com/apis/bing/serp?utm_source=github&utm_medium=syndication&utm_campaign=bing-mcp)
One Bing results page.
| Parameter | Type | Required | Notes |
| :--- | :--- | :--- | :--- |
| `q` | string | yes | The search term |
| `location` | string | | Free-text origin, such as `Austin, Texas`. Resolved to coordinates |
| `lat` / `lon` | string | | GPS origin. Takes precedence over `location` |
| `mkt` | string | | Market, one of 38, such as `en-gb` or `de-de` |
| `cc` | string | | Country, one of 36, such as `gb` or `de` |
| `setLang` | string | | Interface and preferred result language, one of 39 |
| `safeSearch` | string | | `off`, `moderate` or `strict` |
| `deviceType` | string | | `desktop`, `mobile` or `tablet` |
| `filters` | string | | A Bing filter string, such as `ex1:"ez2"` for the past week |
| `first` | number | | Result offset, `1` for the first page, `11` for the second |
Returns `organicResults` always, plus `ads` and `copilotSearch` when the page carries them.
An organic result has `position`, `title`, `link`, `displayedLink`, `source` and `snippet`.
```json
{
"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.
```json
{
"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 alWhat people ask about bing-mcp
What is HasData/bing-mcp?
+
HasData/bing-mcp is mcp servers for the Claude AI ecosystem. MCP server for Bing search: organic results, the ad block and the Copilot answer, with geo, market and language targeting. No Azure subscription. 1,000 free credits every month. It has 0 GitHub stars and its last recorded update is dated 2026-09-10.
How do I install bing-mcp?
+
You can install bing-mcp by cloning the repository (https://github.com/HasData/bing-mcp) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.
Is HasData/bing-mcp safe to use?
+
Our security agent has analyzed HasData/bing-mcp and assigned a Trust Score of 95/100 (tier: Verified). See the full breakdown of passed checks and flags on this page.
Who maintains HasData/bing-mcp?
+
HasData/bing-mcp is maintained by HasData. The last recorded GitHub activity is dated 2026-09-10, with 0 open issues.
Are there alternatives to bing-mcp?
+
Yes. On ClaudeWave you can browse similar mcp servers at /categories/mcp, sorted by popularity or recent activity.
Deploy bing-mcp to your cloud
Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.
Maintain this repo? Add a badge to your README
Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.
[](https://claudewave.com/repo/hasdata-bing-mcp)<a href="https://claudewave.com/repo/hasdata-bing-mcp"><img src="https://claudewave.com/api/badge/hasdata-bing-mcp" alt="Featured on ClaudeWave: HasData/bing-mcp" width="320" height="64" /></a>More MCP Servers
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
An open-source AI agent that brings the power of Gemini directly into your terminal.
Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface
The fastest path to AI-powered full stack observability, even for lean teams.
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl!