Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者による説明(英語の原文)
Google Images results with source pages, thumbnails and full-resolution URLs, as JSON.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
HASDATA_API_KEY, x-api-key「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
このアドレスはリクエストの header にキーが必要ですが、コネクタを追加するメニューでは設定できません。代わりにClaude Code、Cursor、VS Codeを使ってください。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"google-images": {
"command": "npx",
"args": [
"-y",
"@hasdata/google-images-mcp"
],
"env": {
"HASDATA_API_KEY": "your-value"
}
}
}
}ターミナルでこれを実行します
claude mcp add --transport http google-images 'https://mcp.hasdata.com/mcp?apis=google_images' --header 'x-api-key: your-value'claude mcp add google-images --env HASDATA_API_KEY=your-value -- npx -y @hasdata/google-images-mcp動かす前に、空欄の値を入力してください。
プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"google-images": {
"url": "https://mcp.hasdata.com/mcp?apis=google_images",
"headers": {
"x-api-key": "your-value"
}
}
}
}プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"google-images": {
"command": "npx",
"args": [
"-y",
"@hasdata/google-images-mcp"
],
"env": {
"HASDATA_API_KEY": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"google-images": {
"type": "http",
"url": "https://mcp.hasdata.com/mcp?apis=google_images",
"headers": {
"x-api-key": "your-value"
}
}
}
}プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"google-images": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@hasdata/google-images-mcp"
],
"env": {
"HASDATA_API_KEY": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
このアドレスはリクエストの header にキーが必要ですが、コネクタを追加するメニューでは設定できません。代わりにClaude Code、Cursor、VS Codeを使ってください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
x-api-key 秘密 必須 HTTP headerこの設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
このサーバーのツール一覧はまだ読み取っていません。エンドポイントは順番にチェックしています。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月6日にチェック
レジストリ名はドメイン hasdata.com で確認済みです(レジストリがドメインの所有を確認しています)
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
まだチェックしていません。エンドポイントは順番にチェックしています
まだチェックしていません。エンドポイントは順番にチェックしています
まだチェックしていません。エンドポイントをチェックするときにツール一覧を読み取ります
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
入力が必要なもの:HASDATA_API_KEY, x-api-key
どちらでも使えます。パソコンにインストールしても、クラウド版につないでもかまいません。
GitHubリポジトリの最終更新は–、最新バージョン(1.0.3)がレジストリに届いたのは43 日前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。URLでつながるので、リモートMCPサーバーに対応したアプリ(開発者モードのChatGPTなど)でも使えます。
同じカテゴリには:Spec Driven Development, Remote Desktop Commander, Symantec Cloud DLP AIops
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Governed Symantec Cloud DLP — 14 MCP tools, read-only with audit.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
A hosted Google Images MCP server that gives Claude, Cursor, Windsurf and any other MCP client one read-only Google Images tool. Run an image search with size, colour and type filters and get 100 results a call, each with the page it came from and the full-resolution file URL, as structured JSON, with nothing to host.
It reads the Google Images results page a signed-out visitor sees.
1,000 free credits every month, no card required, which is 100 Google Images calls at the 10-credit rate.
https://mcp.hasdata.com/mcp?apis=google_images
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/google-images-mcp on npm and hasdata-google-images-mcp on PyPI, shown below.
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/mcp?apis=google_images |
| 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.
Claude Code
claude mcp add --transport http google-images "https://mcp.hasdata.com/mcp?apis=google_images" \
--header "x-api-key: HASDATA_API_KEY"
Claude Desktop
Settings, then Connectors, then Add custom connector, then paste https://mcp.hasdata.com/mcp?apis=google_images 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/google-images-mcp package is that launcher, and it reads the key from the environment. Add this to claude_desktop_config.json:
{
"mcpServers": { "google-images": { "command": "npx", "args": ["-y", "@hasdata/google-images-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": { "google-images": { "command": "uvx", "args": ["hasdata-google-images-mcp"], "env": { "HASDATA_API_KEY": "YOUR_KEY" } } } }
Cursor
~/.cursor/mcp.json for every project, or .cursor/mcp.json for one:
{
"mcpServers": { "google-images": { "url": "https://mcp.hasdata.com/mcp?apis=google_images", "headers": { "x-api-key": "HASDATA_API_KEY" } } } }
Windsurf
~/.codeium/windsurf/mcp_config.json. Windsurf calls the field serverUrl, not url:
{
"mcpServers": { "google-images": { "serverUrl": "https://mcp.hasdata.com/mcp?apis=google_images", "headers": { "x-api-key": "HASDATA_API_KEY" } } } }
VS Code
.vscode/mcp.json in the workspace:
{
"servers": { "google-images": { "type": "http", "url": "https://mcp.hasdata.com/mcp?apis=google_images", "headers": { "x-api-key": "HASDATA_API_KEY" } } } }
One call answers each of these, because a page carries 100 results. Paging is only needed past that.
| Tool | What it returns |
|---|---|
hasdata_google_images_images_getImageSearchResults | Each image with title, source page URL, direct image URL, thumbnail, dimensions, source domain, and position. 10 credits a call |
One tool, 10 credits per successful call.
hasdata_google_images_images_getImageSearchResults
One page of Google Images results.
| Parameter | Type | Required | Notes |
|---|---|---|---|
q | string | yes | The search term |
tbs | string | Google's filter string for size, colour and type. See below | |
location | string | Google canonical location for the search | |
uule | string | The encoded location, if you already have one | |
domain | string | Google domain, one of 195, defaults to google.com | |
gl | string | Country code, one of 245 | |
hl | string | Interface language, one of 159 | |
safe | string | active or off | |
filter | number | 1 keeps Google's similar and omitted result filters, 0 drops them | |
deviceType | string | desktop, mobile or tablet | |
ijn | number | Page number, where 0 is the first page |
Returns an imagesResults array. Each entry carries position, title, link to the page hosting the image, source as the site name, thumbnail on Google's CDN, original as the full-resolution file, and originalWidth and originalHeight.
{
"position": 1, "title": "The city skyline of Austin, Texas - Backyard Image", "link": "https://www.backyardimage.com/the-city-skyline-of-austin-texas/", "source": "Backyard Image", "thumbnail": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSOGtSVdgWtQtW1_x8-gi7iQckNHXBQ5FdKqEpCKXsbWg&s=10", "original": "https://www.backyardimage.com/wp-content/uploads/2025/01/2025-01-12-drone-Heap-0015-Pano-Edit.jpg", "originalWidth": 1200, "originalHeight": 615 }
The tbs parameter is Google's own filter string, and several filters combine with commas.
| Filter | Value |
|---|---|
| Large, medium or icon | isz:l, isz:m, isz:i |
| Larger than a size | isz:lt,islt:qsvga for 400×300, through islt:4mp for 2272×1704 |
| Exact size | isz:ex,iszw:1000,iszh:1000 |
| Full colour or black and white | ic:color, ic:gray |
| A specific colour | ic:specific,isc:red, and the other colour names |
| Type | itp:photo, itp:face, itp:clipart, itp:lineart, itp:animated |
The server exposes 5 resources, one per parameter whose accepted values are a fixed list. Reading one is cheaper than learning the vocabulary from a rejected call, and it costs no credits. Each URI is hasdata://google_images/ .
| Parameter | Values | What it selects |
|---|---|---|
domain | 195 | Google domain to use. Default is google.com. |
gl | 245 | The two-letter country code for the country you want to limit the search to. |
hl | 159 | The two-letter language code for the language you want to use for the search. |
safe | 2 | Adult Content Filtering option. |
deviceType | 3 | Specify the device type for the search. |
The list is served without an API key, so a client can read it before a user has signed up.
Plan for these rather than assuming a happy path.
`original` is a third-party URL and it can be dead, hotlink-blocked or slow. It points at the file on whichever site hosts it, so it carries none of Google's availability. Fetch it defensively, and fall back to thumbnail, which is served from Google's CDN.
`thumbnail` is a Google CDN link, not an embedded image. It is a real URL rather than a data URI, so displaying one still costs a request to gstatic.com.
A page carries 100 results, not 10. Cost is per call rather than per result, so one call covering 100 images is the cheapest shape here. Reach for ijn only past the first hundred.
`ijn` starts at zero. Passing 1 gets the second page, not the first.
Dimensions describe the original, not the thumbnail. originalWidth and originalHeight are the file behind original, so a size filter applied locally has to read those rather than measure what you displayed.
`tbs` values are Google's, and an unrecognised one is ignored rather than rejected. A filter that silently does nothing looks the same as a filter that found everything, so check that the results actually narrowed before trusting a tbs string you assembled by hand.
`domain`, `gl` and `hl` are three separate axes. The domain is which Google answers, the country code is where the search comes from, and the language is the interface. Changing one moves the results less than you expect.
Results that carry data also carry a requestMetadata.id worth quoting in support.
The Google Images tool costs 10 credits per successful call. Response size does not change the price, and a call returns 100 results, which makes this one of the cheaper tools in the catalogue per row returned.
The free tier is 1,000 credits every month with no card, which is 100 Google Images 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 $59 a month for 200,000 credits, which is 20,000 calls. The unit price falls with volume, from $1.48 per 1,000 calls on the entry plan to $0.60 on Basic and $0.41 across the Growth tiers. Current figures live on the pricing page.
Your plan also sets concurrency. The free tier allows 5 requests at a time, Startup 5, Basic 15, and the Growth tiers run from 50 to 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 re
冒頭だけを表示しています。続きはリポジトリで読めます