mcpField
N
netlogger-mcp

netlogger-mcp

ローカル
github.com/qso-graphゲーム・エンタメ0今日更新

netlogger-mcp について

netlogger-mcpは、アマチュア無線の運用者やリスナー向けに、MCP対応アシスタントからNetLoggerの情報を利用できるようにします。APIキーなしで現在と過去の交信を調べられ、キャッシュを使いサービスの呼び出し制限を守ります。

主な機能

  1. 01現在運用中のネットを検索
  2. 02ライブのチェックインと現在の交信先を表示
  3. 03過去のネットとチェックインを検索
  4. 04リクエスト用のコールサインを保存
  5. 05応答をキャッシュし呼び出し制限を順守

活用シーン

  1. 01現在運用中のネットを確認
  2. 02ライブ交信のチェックイン局を確認
  3. 03過去のネットのチェックインを振り返る

MCP 対応

NetLoggerの公開ネット情報とチェックイン情報をツールとしてMCPクライアントに提供し、ライブおよび過去の検索に対応します。APIキーは不要です。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"qso-graph-netlogger": {
"command": "uvx",
"args": [
"netlogger-mcp"
]
}
}
}
起動コマンドuvx netlogger-mcp

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypinetlogger-mcp0.3.1

ツール

6

掲載時のツール一覧 · 今日に更新

このツールにパラメーターはありません。

詳細

netlogger-mcp

PyPI MCP Registry

NetLogger 用の MCP サーバーです。現在オンエア中のネット、リアルタイムのチェックインリストと現在交信中の局、過去のネットとそのチェックイン情報を、MCP 対応の AI アシスタントから利用できます。

NetLogger の公開 XML Data Service(API 1.3)のデータを使用します。qso-graph プロジェクトの一部です。API キーは不要です。 コールサインは一度だけ尋ねられます(下記を参照)。

インストール

uvx netlogger-mcp            # run it; nothing to install

ツール

ツール説明主なパラメーター
netlogger_active_nets現在オンエア中のネット:周波数、バンド、モード、ネットコントロール局、ロガー、モニター数name_like
netlogger_checkinsライブ中のネットのチェックインリストと、現在交信中の局server_name, net_name
netlogger_past_nets過去 N 日間に終了したネットと、過去のチェックイン情報に必要なネット IDinterval_days, name_like
netlogger_past_checkins終了したネットのチェックインリストserver_name, net_name, net_id
netlogger_set_callsignコールサインを保存します(初回使用時に一度だけ尋ねられます)callsign
get_version_infoサービスのバージョンと上流仕様のバージョン(稼働環境の識別情報)—

NetLogger とは?

NetLogger は、多くのアマチュア無線ネットで使われているログ記録プログラムです。ネットコントロール局またはロガーがチェックインリストを管理し、誰でもネットの進行状況をリアルタイムで確認できます。サーバーは公開 API を通じて、アクティブなネット、チェックインリスト、過去のネットを公開しています。

コールサイン

NetLogger は、ユーザーを識別できるよう、リクエストごとに問い合わせ元の局を受け取ります。

netlogger-mcp/<version> (KI7MT; +https://github.com/qso-graph/netlogger-mcp)

バージョンはインストール済みのものです。ここに記述するのではなく、パッケージから読み取ります。

初回使用時に、アシスタントがコールサインを尋ねて保存します。尋ねられるのは一度だけです。自分で設定するには、NETLOGGER_MCP_CALLSIGN=KI7MT を使用します。

コールサインは settings.json に保存されます。保存場所は、Linux では ~/.config/netlogger-mcp/、macOS では ~/Library/Application Support/netlogger-mcp/、Windows では %APPDATA%\netlogger-mcp\ です。

良き隣人ポリシー

NetLogger は寄付で運営される単一サーバーのサービスで、各コールの頻度を制限しています。この制限を守るため、以下の対策を行っています。

対策詳細
NetLogger のコール制限GetActiveNets は 1 分あたり 1 回、GetCheckins は 1 分あたり 3 回、GetPastNets は 1 分あたり 1 回、GetPastNetCheckins は 1 分あたり 10 回です。リクエストの送信前に確認し、送信後に確認することはありません。
ユーザーごとの共有予算実行するすべてのコピー(Claude Desktop、Claude Code、スクリプトなど)で、settings.json の隣にあるロックファイルを介して予算を共有します。
回答の共有取得済みの回答もすべてのコピーで共有します。そのため、制限に達したコピーにはエラーの代わりに、別のコピーが最近取得した回答とその経過時間が返されます。
レスポンスのキャッシュアクティブなネットは 60 秒、チェックインは 20 秒、過去のネットは 60 秒、過去のチェックインは 1 時間キャッシュされます。名前による絞り込みで追加のコールが発生することはありません。
回答の経過時間各回答には as_of_utc(回答が返された時刻)と age_seconds(データの経過秒数)が含まれるため、データの取得時刻は as_of_utc から age_seconds を引いた時刻です。
エラーより古い回答を優先制限に達した場合、新しいリクエストを送信する代わりに、最後の回答とその経過時間を返します。
429 エラー時のバックオフいずれかのコールで「リクエストが多すぎます」が返された場合、少なくとも 1 分間、すべてのコールを停止します。NetLogger がそれ以上の時間を求めた場合は、その時間に従います。
過去のネットの期間7 日を超える期間の過去のネットを取得するには、名前による絞り込みが必要です。これはサーバーを保護するための NetLogger のルールです。
リクエストのタイムアウトタイムアウトは 15 秒です。
User-Agent ヘッダーすべてのリクエストに、このプロジェクト名とコールサインが含まれるため、NetLogger の運営者は誰が問い合わせているかを確認できます。

バンドと周波数

NetLogger のバンドと周波数は、ロガーが入力した内容そのものです(「40M」、「75M」、「DMR」、「7033」、「3918 KHz」、「147.030 91.5」、「TG 3141」など)。入力どおりに返されます。それに加えて、テキストを確実に読み取れる場合に限り、frequency_mhz、band_adif(ADIF 3.1.7 のバンド列挙に基づく ADIF バンド)、tone_hz、talkgroup が返されます。アマチュアバンド以外の周波数(GMRS など)には、band_adif は付きません。

プライバシー

NetLogger のチェックインデータには住所と ZIP コードが含まれ、過去のネットには、それを開いたユーザーの IP アドレスが含まれています。これらが返されることは一切ありません。

クイックスタート

MCP クライアントの設定

netlogger-mcp は、MCP 対応のクライアントであればどれでも動作します。サーバー設定を追加して再起動してください。ツールが自動的に表示されます。

Claude Desktop

claude_desktop_config.json(macOS では ~/Library/Application Support/Claude/、Windows では %APPDATA%\Claude\)に追加します。

{
  "mcpServers": {
    "netlogger": {
      "command": "uvx",
      "args": ["netlogger-mcp"]
    }
  }
}
Claude Code

.claude/settings.json に追加します。

{
  "mcpServers": {
    "netlogger": {
      "command": "uvx",
      "args": ["netlogger-mcp"]
    }
  }
}
ChatGPT Desktop
{
  "mcpServers": {
    "netlogger": {
      "command": "uvx",
      "args": ["netlogger-mcp"]
    }
  }
}
Cursor

.cursor/mcp.json(プロジェクトレベル)または ~/.cursor/mcp.json(グローバル)に追加します。

{
  "mcpServers": {
    "netlogger": {
      "command": "uvx",
      "args": ["netlogger-mcp"]
    }
  }
}
VS Code / GitHub Copilot

ワークスペースの .vscode/mcp.json に追加します。

{
  "servers": {
    "netlogger": {
      "command": "uvx",
      "args": ["netlogger-mcp"]
    }
  }
}
Gemini CLI

~/.gemini/settings.json(グローバル)または .gemini/settings.json(プロジェクト)に追加します。

{
  "mcpServers": {
    "netlogger": {
      "command": "uvx",
      "args": ["netlogger-mcp"]
    }
  }
}
質問する

「現在交信中のネットはありますか?」

「80m のネットは実施中ですか?」

「郡の ARES ネットにチェックインしたのは誰ですか? 現在交信中なのは誰ですか?」

「過去 3 日間に実施されたネットはどれですか?」

「昨夜のネットのチェックインを見せてください。」

Python ライブラリとして使用する

同じコードは AI なしでも、同じ制限とキャッシュを使って動作します。ライブラリからコールサインを尋ねることはできないため、渡す必要があります。

from netlogger_mcp.netlogger import NetLoggerSource

nl = NetLoggerSource(callsign="KI7MT")
for net in nl.active_nets()["nets"]:
    live = nl.checkins(net["server"], net["name"])
    print(net["name"], "up now:", live["pointer_callsign"])

アプリでは、ADIF の PROGRAMID と PROGRAMVERSION を使ってアプリ名を指定することもできます。NetLoggerSource(callsign="KI7MT", program_id="MyLogger", program_version="1.0")。

ネットワーク接続なしでのテスト

NETLOGGER_MCP_MOCK=1 netlogger-mcp

MCP Inspector

netlogger-mcp --transport streamable-http --port 8014

開発

git clone https://github.com/qso-graph/netlogger-mcp.git
cd netlogger-mcp
uv sync --group dev
uv run pytest

ライセンス

GPL-3.0-or-later。adif_band.json は ADIF 3.1.7 のバンド列挙で、ADIF Developers Group の成果物(adif.org.uk)を変更せずに含めています。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。