SurePetcare について
SurePetcareは、SurePetcare機器向けの非公式MCPサーバーです。クラウドAPIを通じてペットの活動を確認し、対応するフラップやハブを操作できます。
主な機能
- 01ペットが屋内か屋外かを確認
- 02ペット情報と機器状態の確認
- 03SureFlapのロック状態の設定
- 04機器名の変更とハブLEDの設定
- 05期間を指定したペット活動の確認
活用シーン
- 01ペットが屋内か屋外かの確認
- 02猫用フラップのロック状態の変更
- 03ペットの位置の手動記録
- 04屋内外の活動状況の確認
MCP 対応
ペットの位置や活動レポート、機器状態、SureFlapのロック、機器名、ハブLEDを操作するMCPツールを公開します。標準入出力モードと、リモート接続向けのHTTPモードがあります。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y mcp-server-surepetcareSUREPETCARE_EMAILEmail address of your SurePetcare accountSUREPETCARE_PASSWORDシークレットPassword of your SurePetcare accountSUREPETCARE_DEVICE_IDStable UUID identifying this client; a random one is generated on each start if omittedローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
8掲載時のツール一覧 · 2 週間前に更新
このツールにパラメーターはありません。
詳細
mcp-server-surepetcare
SurePetcare のクラウド API 用 MCP(Model Context Protocol)サーバーです。ペットの居場所のモニタリング、SureFlap のロック制御、デバイス名の変更、ハブの LED 制御を MCP ツールとして提供します。
免責事項: このプロジェクトは Sure Petcare Ltd. と提携、承認、または何らかの形で関係しているものではありません。ハードウェアやソフトウェアを愛用するユーザーが開発した、独立したコミュニティ製の統合機能です。SurePetcare、SureFlap、SureFeed は Sure Petcare Ltd. の商標です。このパッケージは自己責任でご利用ください。基盤となる API は非公式で、コミュニティによるリバースエンジニアリングを通じて実装されているため、予告なく変更または動作しなくなる場合があります。
ツール
| ツール | 説明 |
|---|---|
list_pets | すべてのペットと現在の居場所(屋内/屋外)を一覧表示します |
get_pet_details | マイクロチップタグ情報を含む、ペットの生データを取得します |
list_devices | ライブのロック状態と外出禁止スケジュールを含む、すべての SurePetcare デバイスを一覧表示します |
set_lock_state | SureFlap の猫用ドアのロック状態を設定します |
rename_device | デバイス名を変更します。明示的に設定されたロックの上書きも再適用するため、名前の変更によってロックが意図せず解除されることはありません |
set_pet_location | ペットの屋内/屋外の状態を手動で設定します(たとえば、ドアを通して出入りさせた場合など) |
set_led_mode | ハブの LED リングの明るさを設定します(オフ/明るい/暗い) |
get_pet_report | 指定した期間におけるペットの屋内/屋外の活動統計を集計して取得します |
ロック状態の値
| 値 | 意味 |
|---|---|
0 | ロック解除(両方向) |
1 | 入室のみ許可 |
2 | 退出のみ許可 |
3 | ロック(両方向) |
LED モードの値
| 値 | 意味 |
|---|---|
0 | オフ |
1 | 明るい |
4 | 暗い |
設定
サーバーを起動する前に、次の環境変数を設定してください。
export SUREPETCARE_EMAIL="[email protected]"
export SUREPETCARE_PASSWORD="yourpassword"
export SUREPETCARE_DEVICE_ID="stable-uuid" # optional, auto-generated if omitted
Claude Desktop での使用
claude_desktop_config.json に追加します。
{
"mcpServers": {
"surepetcare": {
"command": "npx",
"args": ["mcp-server-surepetcare"],
"env": {
"SUREPETCARE_EMAIL": "[email protected]",
"SUREPETCARE_PASSWORD": "yourpassword"
}
}
}
}
リモートでの使用:claude.ai コネクター(HTTP + OAuth)
claude.ai や Claude モバイルアプリからサーバーを使用するには、常時稼働するマシンで HTTP モードを実行し、カスタムコネクターとして追加します。claude.ai はインターネット経由で接続するため、サーバーには公開された https:// URL が必要です。Cloudflare Tunnel または Tailscale Funnel を使えば、ルーターのポートを開放せずに URL を取得できます。ZeroTier や通常の Tailscale などのプライベートオーバーレイネットワークでは不十分です。claude.ai はお使いのデバイスからではなく、Anthropic のサーバーから接続するためです。
HTTP モードはシングルユーザー向けです。Claude を接続すると、サーバーに所有者のパスフレーズを求めるページが表示されます。パスフレーズを知っている人は誰でもクライアントを認証でき、トークンを持つ人は誰でも猫用ドアのロックを解除できます。強力なパスフレーズを選んでください。
npx mcp-server-surepetcare --http # or MCP_TRANSPORT=http
| 変数 | デフォルト | |
|---|---|---|
MCP_PUBLIC_URL | (必須) | claude.ai がサーバーにアクセスする https:// URL |
MCP_OWNER_PASSWORD | (必須) | Claude を認証するためのパスフレーズ。12 文字以上 |
MCP_HOST | 127.0.0.1 | リッスンするインターフェース。Docker イメージでは 0.0.0.0 が設定されます |
MCP_PORT | 3000 | |
MCP_STATE_FILE | ~/.mcp-server-surepetcare/oauth-state.json | 登録済みクライアントとリフレッシュトークンのハッシュを保存し、再起動後も Claude の接続を維持します |
さらに、設定 の SUREPETCARE_* 変数も必要です。SUREPETCARE_DEVICE_ID に固定 UUID を設定してください。設定しない場合、再起動のたびに新しいデバイスとしてログインします。
Docker(例:Raspberry Pi での利用)
各リリースでは、バージョンと latest のタグを付けた ghcr.io/dirkjanfaber/mcp-server-surepetcare を amd64、arm64、arm/v7(32 ビット版 Raspberry Pi OS)向けに公開します。トンネル経由でのみアクセスできるよう、ポートはループバックインターフェイスにのみ公開してください。
# docker-compose.yml
services:
surepetcare-mcp:
image: ghcr.io/dirkjanfaber/mcp-server-surepetcare:latest # or pin a version
restart: unless-stopped
env_file: .env # SUREPETCARE_*, MCP_PUBLIC_URL, MCP_OWNER_PASSWORD
ports:
- "127.0.0.1:3200:3000"
volumes:
- surepetcare-data:/data
volumes:
surepetcare-data:
ドメイン不要の Tailscale Funnel を使う場合は、sudo tailscale funnel --bg 3200 を実行し、tailscale funnel status に表示される URL を MCP_PUBLIC_URL に設定します。
claude.ai はポート 443 でしか接続しないため、Funnel の他のポート(8443、10000)はコネクターでは使えません。このマシン名がすでに別のサーバーに使われている場合は、このサーバー専用の tailnet マシンを用意し、隣に Tailscale コンテナーを配置してください。上記の ports: のマッピングを削除し、MCP_PUBLIC_URL を https://surepet.<tailnet>.ts.net に設定して、以下を追加します。
surepetcare-tailscale:
image: tailscale/tailscale:latest
hostname: surepet
restart: unless-stopped
environment:
TS_HOSTNAME: surepet
TS_AUTHKEY: ${TS_AUTHKEY} # only used for the first login
TS_STATE_DIR: /var/lib/tailscale
TS_SERVE_CONFIG: /config/serve.json
TS_USERSPACE: "true"
volumes:
- surepetcare-tailscale:/var/lib/tailscale
- ./surepet-ts:/config:ro
volumes: の下に surepetcare-tailscale: を追加し、surepet-ts/serve.json を次のように設定します。
{
"TCP": { "443": { "HTTPS": true } },
"Web": {
"${TS_CERT_DOMAIN}:443": {
"Handlers": { "/": { "Proxy": "http://surepetcare-mcp:3000" } }
}
},
"AllowFunnel": { "${TS_CERT_DOMAIN}:443": true }
}
Tailscale 管理コンソールの Settings → Keys で認証キーを生成します。認証キーがない場合、コンテナーに表示されるログインリンクは約 1 分で期限切れになります。ログインすると、マシンはボリュームを通じてログイン状態を維持するため、キーは削除できます。
ドメインを Cloudflare に登録している場合は、Cloudflare Tunnel を使って、代わりに公開ホスト名をサーバーに向けます。Cloudflare Access を前段に配置しないでください。claude.ai はそのログインページを通過できません。
Claude に接続する前に、公開 URL を確認してください。
curl https://<your public host>/.well-known/oauth-authorization-server
issuer が MCP_PUBLIC_URL と一致する JSON が返されるはずです。
docker compose pull && docker compose up -d で更新します。レート制限には、サーバーの前段にあるトンネルからの X-Forwarded-For を対象とする 1 段のプロキシを信頼します。サーバーのポートをインターネットに直接公開しないでください。
Claude の接続
claude.ai で、URL に https://<your public host>/mcp を指定し、Settings → Connectors → Add custom connector を選択します。Claude が自身を登録し、パスフレーズのページを開きます。許可すると、ツールが claude.ai とモバイルアプリに表示されます。
参考資料
- リバースエンジニアリングされた API(PHP):https://github.com/alextoft/sureflap
- Python クライアント(surepy):https://github.com/benleb/surepy
- ローカル MQTT の代替手段(PetHubLocal):https://github.com/PetHubLocal/pethublocal
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。