mcpField
R
RepeaterBook

RepeaterBook

ローカル
repeaterbook.readthedocs.ioゲーム・エンタメ5今日更新

RepeaterBook について

RepeaterBook Python Clientは、RepeaterBook.comのアマチュア無線中継局を検索する非公式Pythonライブラリ兼MCPサーバーです。無線愛好家や開発者、AIツール向けに、ローカル保存と位置・バンド・デジタルモードによる絞り込みを提供します。

主な機能

  1. 01位置から中継局を検索
  2. 02バンドとデジタルモードで絞り込み
  3. 03SQLiteへのローカル保存
  4. 04同期・検索・個別照会ツール

活用シーン

  1. 01旅行経路沿いの中継局を計画
  2. 02バンドやモードで中継局を検索
  3. 03アマチュア無線中継網を分析

MCP 対応

MCPサーバーは、データ同期、地理検索、中継局の個別照会、ローカルデータ消去のツールをクライアントに公開します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"micaeljarniac-repeaterbook": {
"command": "uvx",
"args": [
"repeaterbook"
],
"env": {
"REPEATERBOOK_APP_TOKEN": "<REPEATERBOOK_APP_TOKEN>",
"REPEATERBOOK_WORKING_DIR": "<REPEATERBOOK_WORKING_DIR>",
"REPEATERBOOK_APP_CONTACT": "<REPEATERBOOK_APP_CONTACT>"
}
}
}
}
起動コマンドuvx repeaterbook
設定が必要な環境変数
REPEATERBOOK_APP_TOKENシークレットPer-user RepeaterBook 'rbuapp_' API token. Required: every export needs an approved token, and the server refuses to start without it. No application registration needed - log in to your RepeaterBook account, open https://www.repeaterbook.com/user/api_apps.php, find 'RepeaterBook Python Client' (App #114), and generate a token for it.
REPEATERBOOK_WORKING_DIRWhere the SQLite database and HTTP cache live. Created if missing; a leading '~' is expanded.
REPEATERBOOK_APP_CONTACTContact address used in the API User-Agent. Leave unset: it defaults to the address registered for App #114, and any other value returns 403 ua_mismatch. Set it only if you registered your own separate application with RepeaterBook.

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

パッケージ
pypirepeaterbook0.13.0

ツール

4

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
modesanyいいえ
stateanyいいえ米国、カナダ、メキシコの州、省、または準州。これらの国では強く推奨されます。API は最大 3500 行しか返さないため、国全体を検索すると通知なく切り捨てられます。それ以外の地域では `region` を使用してください。
regionanyいいえ北米以外の国における地域(データソースが地域情報を提供している場合)。米国、カナダ、メキシコでは `state` を使用してください。
countryanyいいえ国名(例:'United States'、'Switzerland')。'USA' など、曖昧さのない一般的な別名は解決されます。

詳細

Discord

Badges
BuildNox semantic-release PyPI Read the Docs
Testscoverage pre-commit asv
StandardsSemVer 2.0.0 Conventional Commits
Codeuv Ruff Nox Checked with mypy
RepoGitHub issues GitHub stars GitHub license All Contributors Contributor Covenant

RepeaterBook Python Client

非公式プロジェクトです。 RepeaterBook Python Clientは、コミュニティが独立して保守するライブラリおよびMCPサーバーであり、RepeaterBook.comとの提携、承認、または公式サポートを受けていません。「RepeaterBook」は、それぞれの所有者の商標です。公式ウェブサイトおよびAPIについては、https://repeaterbook.com/をご覧ください。

RepeaterBook Python Clientのドキュメントへようこそ!

RepeaterBook Python Clientは、RepeaterBook.com API(世界最大のアマチュア無線中継局データベース)への強力で便利なインターフェースを提供する、非公式のサードパーティ製PythonライブラリおよびModel Context Protocol(MCP)サーバーです。ライブラリとしてプログラムから中継局データをダウンロード、検索、分析したり、付属のMCPサーバーを実行して、AI エージェントやLLMツールに同じ中継局検索機能を提供したりできます。

特長

  • 簡単なAPIアクセス:シンプルな非同期インターフェースで、RepeaterBook.comから中継局データをダウンロードできます
  • 非公式MCPサーバー:中継局の同期、地理的検索、検索、およびローカルデータの消去を、型付きの4つのツールとして任意のMCPクライアントに提供します。MCPサーバーガイドをご覧ください
  • ローカルデータベース:中継局情報をローカルのSQLiteデータベースに保存し、高速に検索できます
  • 地理的検索:距離に基づくフィルタリングを使用して、指定した場所の近くにある中継局を見つけられます
  • バンドフィルタリング:周波数帯(2m、70cmなど)で中継局を検索できます
  • デジタルモードのサポート:DMR、P25、NXDNなどのデジタルモードでフィルタリングできます
  • スマートキャッシュ:API応答を自動的にキャッシュして、負荷を軽減し、パフォーマンスを向上させます
  • 型安全:mypyによる完全な型付けで、優れたIDEサポートを実現します
  • Async/Await:ノンブロッキングI/Oにより、効率的なAPI操作が可能です

クイック例

RepeaterBook APIトークンが必要です。 アプリケーション登録は不要です。このライブラリはすでにRepeaterBook Python Client(App #114)として登録されています。RepeaterBookにログインし、API Applicationsを開いて、App #114を見つけ、トークンを生成してください。その後、REPEATERBOOK環境変数として設定します(例:export REPEATERBOOK="rbuapp_...")。ライブラリのデフォルトのUser-Agentを使用してください。詳しくは認証ガイドをご覧ください。

import asyncio
import os
from repeaterbook import RepeaterBook, Repeater
from repeaterbook.services import RepeaterBookAPI
from repeaterbook.models import ExportQuery, Status
from repeaterbook.utils import LatLon, Radius
from repeaterbook.queries import filter_radius, square, band, Bands
import pycountry

async def find_nearby_repeaters():
    # Download repeater data
    api = RepeaterBookAPI(app_token=os.environ["REPEATERBOOK"])
    brazil = pycountry.countries.get(name="Brazil")
    repeaters = await api.download(query=ExportQuery(countries={brazil}))

    # Store in local database
    rb = RepeaterBook()
    rb.populate(repeaters)

    # Find DMR repeaters within 50km of São Paulo
    sao_paulo = LatLon(lat=-23.5505, lon=-46.6333)
    radius = Radius(origin=sao_paulo, distance=50)

    nearby = rb.query(
        square(radius),
        Repeater.dmr_capable == True,
        Repeater.operational_status == Status.ON_AIR,
        band(Bands.CM_70)  # 70cm band
    )

    filtered = filter_radius(nearby, radius)

    # Display results (filter_radius returns repeaters sorted by distance)
    from haversine import haversine
    for rep in filtered[:5]:
        distance = haversine(radius.origin, (rep.latitude, rep.longitude), unit=radius.unit)
        print(f"{distance:.1f}km - {rep.frequency:.4f} MHz - {rep.callsign}")

asyncio.run(find_nearby_repeaters())

クイック例(MCP)

AI エージェントからRepeaterBookを操作したい場合は、非公式MCPサーバーを mcpエクストラ経由でrepeaterbook-mcpコンソールスクリプトとして実行できます。MCP クライアントからuvxを指定すれば、事前のインストールは不要です。

{
  "mcpServers": {
    "repeaterbook": {
      "command": "uvx",
      "args": ["--from", "repeaterbook[mcp]", "repeaterbook-mcp"],
      "env": {
        "REPEATERBOOK_WORKING_DIR": "~/.repeaterbook",
        "REPEATERBOOK_APP_TOKEN": "rbuapp_..."
      }
    }
  }
}

REPEATERBOOK_APP_TOKENには、上記のApp #114トークンを指定します。このトークンがないと サーバーは起動しません。

これにより、安定したソース非依存の中継局仕様を返す4つのツール(sync_repeaters、search_repeaters、 get_repeater)と、ローカルストアおよび応答キャッシュを消去するclear_local_dataを利用できます。ツールの全リファレンス、フィルターの語彙、 設定オプションについては、**MCPサーバーガイド**をご覧ください。

ドキュメント

ドキュメント全文を読む

上流 API の詳細については、RepeaterBook.com の公式API ドキュメントをお読みください。

ユースケース

  • AI エージェントとアシスタント:LLM が MCP 経由で会話形式で中継局を検索できるようにします
  • 旅行計画:旅行ルート沿いの中継局を検索します
  • 緊急通信:緊急通信に対応した中継局を特定します
  • 無線機の設定:DMR などのデジタル無線機向けにコードプラグを生成します
  • 通信範囲の分析:通信範囲の地図や統計情報を作成します
  • ネットワーク分析:中継局ネットワークとインフラを分析します
  • モバイルアプリ:中継局ディレクトリアプリケーションを構築します
  • 調査:アマチュア無線中継局の傾向や分布を分析します

関連プロジェクト

関連項目

インストール

PyPI

repeaterbook は PyPI で入手できます:

# With uv (recommended)
uv add repeaterbook

# With pip
pip install repeaterbook

# With Poetry
poetry add repeaterbook
MCP サーバー

MCP サーバーは mcp extra に含まれています。ほとんどの MCP クライアントでは、インストール手順なしで uvx 経由で起動できます:

# Run on demand, no install (what MCP clients should use)
uvx --from "repeaterbook[mcp]" repeaterbook-mcp

# Or install it persistently
uv tool install "repeaterbook[mcp]"

# Or add it as a project dependency
uv add "repeaterbook[mcp]"
pip install "repeaterbook[mcp]"
GitHub

GitHub からコードの最新バージョンを直接インストールすることもできます:

# With uv
uv add git+https://github.com/MicaelJarniac/repeaterbook

# With pip
pip install git+https://github.com/MicaelJarniac/repeaterbook

# With Poetry
poetry add git+https://github.com/MicaelJarniac/repeaterbook

要件

  • Python 3.11 以降
  • 依存関係は自動的にインストールされます:
    • aiohttp - 非同期 HTTP クライアント
    • anyio - 非同期互換レイヤー
    • attrs - 不変の設定クラス
    • haversine - 距離の計算
    • loguru - 構造化ログ
    • pycountry - 国/地域コード
    • pydantic - データ検証
    • sqlmodel - 型安全な SQL ORM
    • tqdm - プログレスバー
    • yarl - URL の処理
  • オプションの mcp extra を指定すると、fastmcp、pydantic-settings、 および pydantic[email](EmailStr の連絡先設定用)もインストールされます

コントリビューション

プルリクエストを歓迎します。大きな変更を行う場合は、まず issue を作成して、変更したい内容についてご相談ください。

必要に応じてテストも更新してください。

詳しくはCONTRIBUTINGをご覧ください。

貢献者 ✨

Micael Jarniac
Micael Jarniac

🐛 💻 🖋 🔣 📖 💡 🤔 🚇 🚧 📆 💬 🔬 👀 🔧 ⚠️ 📓
ada mancini
ada mancini

🐛 🤔 📓
aaronjbrown
aaronjbrown

💻 📖 🤔 ⚠️
Erica Morton
Erica Morton

🐛 💻 📖 🔬 ⚠️

ライセンス

MIT

このプロジェクトは、MicaelJarniac/crustypy テンプレートを使用して作成されました。

コメント

MCP は初めてですか?

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

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