プロトタイプ · プレビュー版:公式レジストリのすべてのサーバーを掲載し、30分ごとに同期しています。レビューとアカウント機能は今後のステップで始まります。
PopNx MCPAIを使う人のためのMCPサーバー · やさしい言葉で解説

Pricewatcha

作者:pricewatchaバージョン 0.1.7i★ –iクラウドで動く
レジストリ名io.github.pricewatcha/pricewatcha

インストール

概要

作者による説明(英語の原文)

Track prices & price history on any online shop, with alerts and an API

PopNx MCPの3つの柱

この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。

できること

このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。

  • 接続方法: クラウドで動く
  • トランスポート: Streamable HTTP
  • カテゴリ: その他

インストール

使っているAIアプリを選んで、設定をコピーしてください。

インストールの前に

  • 基本チェック:1項目中1項目に合格
  • 作者のサーバーで動きます。あなたが頼んだ内容は、作者のサーバーを通ります。
  • レジストリには、入力が必要なキーは載っていません。

必要なもの

どのアプリを使っていますか?

上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。

ウェブ、デスクトップ、モバイルのClaudeで使えます:

  1. Settings → Connectors を開く
  2. Add custom connector を押す
  3. 下のアドレスを貼り付けて Add を押す
  4. サインインを求められたら、作者のサービスにサインインする
SettingsConnectors1+ Add2https://…3
https://mcp.pricewatcha.com

ターミナルでこれを実行します

claude mcp add --transport http pricewatcha https://mcp.pricewatcha.com

Cursorで開く

または、設定を自分でコピーする

プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます

{
  "mcpServers": {
    "pricewatcha": {
      "url": "https://mcp.pricewatcha.com"
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

VS Codeで開く

または、設定を自分でコピーする

プロジェクトの .vscode/mcp.json に貼り付けます

{
  "servers": {
    "pricewatcha": {
      "type": "http",
      "url": "https://mcp.pricewatcha.com"
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

ChatGPTがつなげるのは、インターネット上のサーバーだけです:

  1. ウェブ版のChatGPTを開き → Settings → Connectors (Apps)
  2. Create または Add を押す(プランによっては、先に Advanced で Developer mode をオンにする必要があります)
  3. 下のアドレスを貼り付け、名前を付けて保存する
  4. サインインを求められたら、作者のサービスにサインインする
SettingsConnectors1+ Create2https://…3
https://mcp.pricewatcha.com

メニューの名前は、プランや時期によって少し違うことがあります。

選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。

この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。

できること

このサーバーのツール一覧はまだ読み取っていません。エンドポイントは順番にチェックしています。

基本チェックi

誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月6日にチェック

  • ✓ 合格

    作者とリポジトリが一致

    レジストリ名は、リポジトリを所有するGitHubアカウント pricewatcha で確認済みです

  • … 未チェック

    今もメンテナンスされている

    このリポジトリはまだGitHubから読み取っていません

  • … 未チェック

    ライセンスがある

    このリポジトリはまだGitHubから読み取っていません

  • … 未チェック

    エンドポイントが応答する

    まだチェックしていません。エンドポイントは順番にチェックしています

  • … 未チェック

    OAuthでサインイン

    まだチェックしていません。エンドポイントは順番にチェックしています

  • … 未チェック

    ツールの説明に隠れた指示がない

    まだチェックしていません。エンドポイントをチェックするときにツール一覧を読み取ります

その他のほかのサーバーとの比較i

  • このカテゴリのほかの32433件のうち0%よりスターが多い
  • このカテゴリのほかの32433件のうち34%より最近レジストリに公開
  • 基本チェックの結果が、このカテゴリのほかの32433件のうち100%と同じかそれ以上

レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。

よくある質問

Pricewatchaは安全ですか?

当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。

どんなキーやコードが必要ですか?

レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。

パソコンで動きますか、それともクラウドですか?

作者のクラウドで動きます。インストール不要でインターネット経由でつながりますが、送った内容は作者のサーバーを通ります。

今もメンテナンスされていますか?

GitHubリポジトリの最終更新は–、最新バージョン(0.1.7)がレジストリに届いたのは2 か月前です。

どのアプリで使えますか?

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

Remote Desktop Commander

作者:desktop-commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

クラウドで動く★ 211昨日更新
インストール

作者のREADME

READMEを開く

作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。

Pricewatcha API

The Pricewatcha API is the Structured Product Price Intelligence Platform for developers, automation and AI Agents.

The Pricewatcha API derives from the pricewatcha.com application. It provides price tracking, alerts and product intelligence beyond the Pricewatcha dashboard. This repository documents the public HTTP API, OpenAPI schema, official SDKs, MCP server and examples. It does not contain the production web application or scrapers.

Status: Available · Version: v1 · Base URL: https://pricewatcha.com/api/v1

Interactive API keys (browser): Profile & API Keys


Optional: verify connectivity with GET https://pricewatcha.com/api/v1/health. Then pick one of the three paths below.

Quickstart
Path 1: Browse prices (no auth)

Use demo product IDs from the demo catalog or search the catalog:

curl -s "https://pricewatcha.com/api/v1/products/demo_iphone_15_pro"

curl -s "https://pricewatcha.com/api/v1/search?q=iphone+15&limit=10"

Search is case-insensitive token AND (all terms must appear; word order does not matter). Results include the full Pricewatcha catalog, not only URLs submitted via POST /track. Use product_id from search for product and price-history endpoints (prod_* or demo_*).

Path 2: Track a product and get price history
curl -s -X POST "https://pricewatcha.com/api/v1/track" \

-H "Content-Type: application/json" \ -d '{"url": "https://www.backmarket.de/de-de/p/example-product"}'

curl -s "https://pricewatcha.com/api/v1/products/{productId}/price-history"

POST /track returns HTTP 200 with a bounded server-side long-poll (~25s). Use product_id from the response for price history. Optional: send Authorization: Bearer pwk_live_… for higher track, search and product-read quotas.

Fast shops return status: "completed" with the full product in one call. Slow shops return status: "running" with a job_id. Poll GET https://pricewatcha.com/api/v1/jobs/{jobId} until the job is completed or failed. More detail: Async track & poll.

Path 3: Price alert with webhook (API key required)

Create a key in Profile & API Keys, then:

curl -s -X POST "https://pricewatcha.com/api/v1/alerts" \

-H "Authorization: Bearer pwk_live_YOUR_KEY" \ -H "Content-Type: application/json" \ -d '{ "product_id": "prod_a1b2c3d4e5", "notify_on_drop": true, "min_threshold_price": 500.00, "webhook_url": "https://your-n8n-instance.com/webhook/abc", "notify_email": true }'

For authentication and data boundaries, see Authentication and Data boundaries.


Authentication

No credential required for catalog search, product detail, price history and async track/poll. Without a key those endpoints use anonymous rate limits. Send an API key to use the higher per-account track, search and product-read quotas.

Protected API v1 endpoints (alerts, webhooks, authenticated track callbacks) use:

Authorization: Bearer pwk_live_…
CredentialFormatWhen to use
API keypwk_live_…Recommended for scripts, agents, n8n and server integrations. Create in Profile & API Keys.
Login session tokenJWT from POST https://pricewatcha.com/api/auth/loginWebsite UI and headless key bootstrap only

Do not use the login session token for alerts, webhooks or other API v1 calls once you have an API key.

See Access model for which routes are public vs authenticated.


API keys (browser)

Log in and open Profile & API Keys to create and manage API keys in your browser. The full secret is shown once at creation.

For agents without a browser, use headless key bootstrap below.

Using your key on protected endpoints:

curl -s -X POST "https://pricewatcha.com/api/v1/alerts" \

-H "Authorization: Bearer pwk_live_YOUR_KEY" \ -H "Content-Type: application/json" \ -d '{"product_id": "prod_a1b2c3d4e5", "notify_on_drop": true}'


Headless key bootstrap (for agents)

If an agent must obtain API credentials without a browser, authenticate once with the same email and password as on the website, create an API key, then use pwk_live_… for all further calls. This is not a separate agent login: it is the normal Pricewatcha account login exposed as an HTTP endpoint.

How login via API works

POST https://pricewatcha.com/api/auth/login accepts JSON email and password and returns a short-lived access_token (login session token). The Developer page login modal calls the same endpoint; in a script or agent you call it directly with curl or your HTTP client.

  • You need an existing account (register on the site or via POST https://pricewatcha.com/api/auth/register).
  • The email must be verified: otherwise the API returns 403.
  • Wrong credentials return 401.
  • Use access_token only to create keys; for alerts and webhooks use the pwk_live_… key from step 2.

Step 1: Login

curl -s -X POST "https://pricewatcha.com/api/auth/login" \

-H "Content-Type: application/json" \ -d '{"email": "you@example.com", "password": "YOUR_PASSWORD"}'

Response (HTTP 200), AuthResponse:

  • access_token (string): login session token (JWT)
  • token_type (string): always "bearer"
  • user (object): id (string, UUID), email (string), email_verified (boolean)
{

"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", "token_type": "bearer", "user": { "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "email": "you@example.com", "email_verified": true } }

Send the token as Authorization: Bearer in step 2. Session tokens expire; do not store them as the long-term credential for an agent.

Step 2: Create API key

curl -s -X POST "https://pricewatcha.com/api/keys" \

-H "Authorization: Bearer ACCESS_TOKEN_FROM_STEP_1" \ -H "Content-Type: application/json" \ -d '{"name": "agent bootstrap"}'

Response (HTTP 200), CreateApiKeyResponse:

  • id (integer): key ID
  • name (string): label from the request
  • key_prefix (string): first 12 characters of the key (for display)
  • key (string): full secret; returned only on create, not on list
  • is_active (boolean)
  • created_at (string, ISO 8601 datetime)
  • last_used_at (string or null)
  • revoked_at (string or null)
{

"id": 42, "name": "agent bootstrap", "key_prefix": "pwk_live_ab", "key": "pwk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "is_active": true, "created_at": "2026-05-27T14:30:00.123456", "last_used_at": null, "revoked_at": null }

Store key securely. Use it on alerts, webhooks and other protected API v1 endpoints, not the session token from step 1.


API endpoints (overview)
MethodPathAuthDescription
GET/api/v1/health-Health check
GET/api/v1-Discovery and disclaimer
POST/api/v1/track-URL ingestion (long-poll)
GET/api/v1/jobs/{jobId}-Job status
GET/api/v1/products/{productId}-Product intelligence
GET/api/v1/products/{productId}/price-history-History and trend
GET/api/v1/search?q=-Keyword search (limit max 200)
GET/api/v1/openapi.json-Live OpenAPI 3.1
POST/api/auth/login-Login (short-lived session token)
POST/api/keysSession tokenCreate API key
GET / DELETE/api/keys …Session token or keyList / revoke keys
*/api/v1/alerts …API keyPrice alerts
*/api/v1/watchlist / …/watchAPI keyContinuous price watchlist
*/api/v1/webhooks …API keyWebhook subscriptions

Machine-readable contract: openapi/openapi.yaml · Live: GET https://pricewatcha.com/api/v1/openapi.json


Rate limits

Current limits (indicative)

The following limits apply and may change without notice.

ClassEndpointAnonymousAuthenticated (API key)
Track (concurrent)POST /track~2 in-flight jobs~4 in-flight jobs
Track (burst)POST /track~10 jobs / 60s~20 jobs / 60s
Track (hourly)POST /track~40 jobs / hour~120 jobs / hour
Track (daily)POST /track~80 jobs / day~400 jobs / day
Job pollGET /jobs/{id}~40 req/min per clientsame
Search (burst)GET /search~20 req / 60s~40 req / 60s
Search (hourly)GET /search~60 req / hour~180 req / hour
Search (daily)GET /search~200 req / day~1000 req / day
Read (burst)/products, /price-history~60–120 req/min per client~240 req / 60s
Read (hourly)/products, /price-history~180 req / hour~540 req / hour
Read (daily)/products, /price-history~600 req / day~3000 req / day
Health/health and /UnlimitedUnlimited

Send Authorization: Bearer pwk_live_… on POST /track, GET /search, or product reads to use the authenticated tier. Those endpoints remain available without a key at the anonymous limits.

Client identity: anonymous limits are keyed by client IP. Behind Cloudflare the API prefers CF-Connecting-IP over X-Forwarded-For so edge proxy IPs are not treated as distinct clients. The hosted MCP server forwards a stable X-Pricewatcha-Client-Id (OAuth token hash, else connecting-IP hash) with a shared proxy secret so MCP callers are not all bucketed under one egress IP. Authenticated track, search and product-read quotas are keyed by account (owner_id), not IP.

Monitor X-RateLimit-Remaining and honor 429 with exponential backoff. X-RateLimit-Policy names which window the headers refer to (track, track_hourly, track_daily, track_concurrent, job_read, search, search_hourly, search_daily, read, read_hourly, or read_daily).

Track quotas are counted from persisted jobs (api_track_jobs by client key or account), so they apply across multiple app instances. A long-poll that holds the HTTP connection for ~25s still counts as one track job when created — sequential tracks spaced farther apart than 60s will not trip the burst window, but hourly/daily and concurrent caps still apply.

Agents should prefer: start track → poll GET /jobs/{id} with backoff (not every 1–2s) → read product/history once complete. Retrying POST /track with the same URL while that job is still queued/processing reuses the existing job and does not consume another concurrent slot. Jobs left queued/processing longer than the scrape timeout (default 600s) are failed so slots cannot leak across deploys.

Search and product-read quotas are in-memory per app instance (not shared across Railway replicas the way track jobs are). Authenticated callers still get the higher per-account windows. Polling the same catalog queries on a short interval will still trip the hourly/daily search windows.

Exact numbers may change without notice (env overrides: API_V1_TRACK_*, API_V1_TRACK_AUTH_*, API_V1_JOB_READ_*, API_V1_READ_*, API_V1_READ_AUTH_*, API_V1_SEARCH_*, API_V1_SEARCH_AUTH_*).

Headers

When rate limiting is active, responses may include:

HeaderDescription
X-RateLimit-LimitMaximum requests in the window

冒頭だけを表示しています。続きはリポジトリで読めます

PopNxに聞く