ruru-owntracks-mcp
v1.0.0
Published
MCP server for OwnTracks — exposes owner location as tool and resource
Downloads
15
Maintainers
Readme
ruru-owntracks-mcp
OwnTracks Recorder からオーナーの現在地を取得する MCP サーバー。
ツール
| ツール | 説明 |
|--------|------|
| get_location | オーナーの現在地を取得。device を指定すると特定デバイスに絞り込む |
出力例:
35.6812° N, 139.7671° E — 1丁目, 神南, 渋谷区, 東京都, 150-0041, 日本 (精度: 10m, 3分前)リソース
| リソース | URI | 説明 |
|----------|-----|------|
| owner_location | owntracks://owner/location | オーナーの現在地 JSON(EnvironmentObserver の定期取得用) |
レスポンス形式:
{
"lat": 35.6812,
"lon": 139.7671,
"address": "1丁目, 神南, 渋谷区, 東京都, 150-0041, 日本",
"accuracy_m": 10,
"timestamp": 1713200000,
"topic": "owntracks/username/devicename"
}セットアップ
1. OwnTracks Recorder の起動
# docker-compose 等で起動
docker run -d \
-p 8083:8083 \
-v ~/.owntracks:/store \
owntracks/recorder2. Cloudflare Tunnel の設定
~/.cloudflared/config.yml に追記:
ingress:
- hostname: owntracks.example.com
service: http://localhost:8083
- service: http_status:404DNS: owntracks.example.com に Tunnel 向けの CNAME レコードを追加。
3. iPhone アプリの設定
OwnTracks アプリを HTTP モードで設定:
| 項目 | 値 |
|------|----|
| モード | HTTP |
| URL | https://owntracks.example.com/pub |
| 認証 | Basic Auth(下記 OWNTRACKS_HTTP_USER / OWNTRACKS_HTTP_PASSWORD と同じ値) |
環境変数
| 変数名 | 必須 | 説明 |
|--------|------|------|
| OWNTRACKS_RECORDER_URL | 必須 | OwnTracks Recorder の URL(例: http://localhost:8083) |
| OWNTRACKS_USERNAME | | OwnTracks アプリの username(絞り込み用。空 = 全ユーザー) |
| OWNTRACKS_DEVICE | | デバイス名(絞り込み用。空 = 全デバイス) |
| OWNTRACKS_HTTP_USER | | Recorder の Basic Auth ユーザー名 |
| OWNTRACKS_HTTP_PASSWORD | | Recorder の Basic Auth パスワード |
使い方
tools:
mcp_servers:
- name: owntracks
transport: stdio
command: node
args: ["/path/to/ruru-owntracks-mcp/dist/index.js"]
env:
OWNTRACKS_RECORDER_URL: "http://localhost:8083"
OWNTRACKS_USERNAME: "<username>"
OWNTRACKS_DEVICE: ""
OWNTRACKS_HTTP_USER: "<username>"
OWNTRACKS_HTTP_PASSWORD: "<pass>"開発
npm install
npm run dev # 開発サーバー起動
npm run typecheck # 型チェック
npm run check # lint
npm run build # ビルド