Librenms MCP
2.5ポイント
4.3K

インストール

以下のコマンドをクライアントにコピーして設定
注意:あなたのキーは機密情報です。誰とも共有しないでください。

🚀 LibreNMS MCP Server

LibreNMS MCP Serverは、PythonベースのModel Context Protocol (MCP)サーバーです。LibreNMSのネットワーク監視データと管理機能に高度でプログラム可能なアクセスを提供します。デバイス、ポート、アラート、在庫、場所、ログなどのLibreNMSリソースを照会、自動化、統合するための最新のAPIを公開しています。このサーバーは読み取りと書き込みの両方の操作をサポートし、強力なセキュリティ機能を備えており、自動化ツール、ダッシュボード、およびカスタムネットワーク管理ワークフローとの統合に適しています。

🚀 クイックスタート

LibreNMS MCP Serverは、Pythonベースのサーバーで、LibreNMSのネットワーク監視データと管理機能にアクセスするためのAPIを提供します。以下のセクションでは、このサーバーの機能、インストール方法、設定方法、利用可能なツール、セキュリティ機能、コントリビューション方法、およびライセンスについて説明します。

✨ 主な機能

コア機能

  • 柔軟なフィルタリングを使用して、LibreNMSのデバイス、ポート、在庫、場所、ログ、およびアラートを照会します。
  • ネットワークトポロジ、デバイスの状態、およびパフォーマンスメトリックを取得します。
  • アラート履歴、イベントログ、およびシステムの健全性にアクセスし、分析します。
  • インターフェイス統計、ポートの状態、およびトラフィックデータを監視します。
  • MACまたはIPアドレスでエンドポイントと接続されたデバイスを追跡します。
  • デバイスグループ、ポートグループ、およびポーラーグループを取得し、管理します。
  • ネットワークサービスとルーティングに関する詳細情報を取得します。

管理操作

  • デバイス、ポート、およびグループを作成、更新、および削除します(有効になっている場合)。
  • アラートルール、通知、およびデバイスメタデータを管理します。
  • 安全な監視のために、すべての書き込み操作を制限する読み取り専用モードを構成します。
  • デバイスとポートの一括操作をサポートします。

高度な機能

  • レート制限とAPIのセキュリティ機能。
  • リアルタイムのネットワーク監視と健全性の追跡。
  • 包括的なロギングと監査トレイル。
  • SSL/TLSサポートと構成可能なタイムアウト。
  • カスタムミドルウェアとユーティリティで拡張可能。

📦 インストール

前提条件

  • Python 3.11から3.14
  • LibreNMSへのアクセス
  • 適切な権限を持つ有効なLibreNMSトークン

PyPIからのクイックインストール

最も簡単な方法は、PyPIからインストールすることです。

# UVを使用することをお勧めします
uvx librenms-mcp

# またはpipを使用する
pip install librenms-mcp

サーバーを実行する前に、LibreNMSインスタンスの環境変数を設定することを忘れないでください。

# 環境設定を作成する
export LIBRENMS_URL=https://domain.tld:8443
export LIBRENMS_TOKEN=your-librenms-token

詳細については、こちらを参照してください。

ソースからのインストール

  1. リポジトリをクローンします。
git clone https://github.com/mhajder/librenms-mcp.git
cd librenms-mcp
  1. 依存関係をインストールします。
# UVを使用することをお勧めします
uv sync

# またはpipを使用する
pip install -e .
  1. 環境変数を設定します。
cp .env.example .env
# .envをLibreNMSのURLとトークンで編集する
  1. サーバーを実行します。
# UVを使用する
uv run python run_server.py

# または直接Pythonで実行する
python run_server.py

# またはインストールされたスクリプトを使用する
librenms-mcp

Dockerを使用する

GitHub PackagesにDockerイメージが用意されており、簡単にデプロイできます。

# 通常のSTDIOイメージ
docker pull ghcr.io/mhajder/librenms-mcp:latest

# Open WebUIで使用するMCPOイメージ
docker pull ghcr.io/mhajder/librenms-mcpo:latest

開発環境のセットアップ

追加のツールを使用した開発のためには、以下の手順を実行します。

# 開発用の依存関係を含めてクローンし、インストールする
git clone https://github.com/mhajder/librenms-mcp.git
cd librenms-mcp
uv sync --group dev

# テストを実行する
uv run pytest

# カバレッジを含めて実行する
uv run pytest --cov=src/

# リンティングとフォーマットを実行する
uv run ruff check .
uv run ruff format .

# 型チェックを実行する
uv run ty check .

# プリコミットフックを設定する
uv run prek install

📚 ドキュメント

環境変数

# LibreNMS接続詳細
LIBRENMS_URL=https://domain.tld:8443
LIBRENMS_TOKEN=your-librenms-token

# SSL設定
LIBRENMS_VERIFY_SSL=true
LIBRENMS_TIMEOUT=30

# 読み取り専用モード
# READ_ONLY_MODEをtrueに設定すると、すべての書き込み操作(put、post、delete)が無効になります
READ_ONLY_MODE=false

# 無効にするタグ
# ツールを無効にするタグのカンマ区切りリスト(デフォルトは空)
# 例: DISABLED_TAGS=alert,bills
DISABLED_TAGS=

# ロギング設定
LOG_LEVEL=INFO

# レート制限(1分あたりのリクエスト数)
# RATE_LIMIT_ENABLEDをtrueに設定すると、レート制限が有効になります
RATE_LIMIT_ENABLED=false
RATE_LIMIT_MAX_REQUESTS=100
RATE_LIMIT_WINDOW_MINUTES=1

# Sentryエラートラッキング(オプション)
# SENTRY_DSNを設定すると、エラートラッキングとパフォーマンス監視が有効になります
# SENTRY_DSN=https://your-key@o12345.ingest.us.sentry.io/6789
# オプションのSentry設定
# SENTRY_TRACES_SAMPLE_RATE=1.0
# SENTRY_SEND_DEFAULT_PII=true
# SENTRY_ENVIRONMENT=production
# SENTRY_RELEASE=1.2.3
# SENTRY_PROFILE_SESSION_SAMPLE_RATE=1.0
# SENTRY_PROFILE_LIFECYCLE=trace
# SENTRY_ENABLE_LOGS=true

# MCPトランスポート設定
# トランスポートタイプ: 'stdio'(デフォルト)、'sse'(Server-Sent Events)、または'http'(HTTP Streamable)
MCP_TRANSPORT=stdio

# HTTPトランスポート設定(MCP_TRANSPORT=sseまたはMCP_TRANSPORT=httpの場合に使用)
# HTTPサーバーをバインドするホスト(デフォルト: すべてのインターフェイスに対して0.0.0.0)
MCP_HTTP_HOST=0.0.0.0
# HTTPサーバーをバインドするポート(デフォルト: 8000)
MCP_HTTP_PORT=8000
# オプションの認証用ベアラートークン(認証なしの場合は空)
MCP_HTTP_BEARER_TOKEN=

利用可能なツール

デバイスと在庫管理ツール

  • devices_list: すべてのデバイスをリストする(オプションのフィルター付き)
  • device_get: 特定のデバイスの詳細を取得する
  • device_add: 新しいデバイスを追加する
  • device_update: デバイスのメタデータを更新する
  • device_delete: デバイスを削除する
  • device_ports: デバイスのすべてのポートをリストする
  • device_ports_get: デバイスの特定のポートの詳細を取得する
  • device_availability: デバイスの可用性を取得する
  • device_outages: デバイスの停止情報を取得する
  • device_set_maintenance: デバイスのメンテナンスモードを設定する
  • device_discover: 提供された資格情報を使用してデバイスを検出または追加する
  • device_rename: 既存のデバイスをリネームする
  • device_maintenance_status: デバイスのメンテナンス状態を取得する
  • device_vlans: デバイスのVLANをリストする
  • device_links: デバイスのリンクをリストする
  • device_eventlog_add: デバイスのイベントログエントリを追加する
  • inventory_device: デバイスの在庫を取得する
  • inventory_device_flat: デバイスのフラットな在庫を取得する
  • devicegroups_list: デバイスグループをリストする
  • devicegroup_add: デバイスグループを追加する
  • devicegroup_update: デバイスグループを更新する
  • devicegroup_delete: デバイスグループを削除する
  • devicegroup_devices: デバイスグループ内のデバイスをリストする
  • devicegroup_set_maintenance: デバイスグループのメンテナンスを設定する
  • devicegroup_add_devices: デバイスグループにデバイスを追加する
  • devicegroup_remove_devices: デバイスグループからデバイスを削除する
  • locations_list: すべての場所をリストする
  • location_add: 場所を追加する
  • location_edit: 場所を編集する
  • location_delete: 場所を削除する
  • location_get: 場所の詳細を取得する
  • location_set_maintenance: 場所のメンテナンスを設定する

ポートとポートグループ管理ツール

  • ports_list: すべてのポートをリストする(オプションのフィルター付き)
  • ports_search: ポートを検索する(一般的な検索)
  • ports_search_field: 特定のフィールドでポートを検索する
  • ports_search_mac: MACアドレスでポートを検索する
  • port_get: 特定のポートの詳細を取得する
  • port_ip_info: ポートのIPアドレス情報を取得する
  • port_transceiver: ポートのトランシーバ情報を取得する
  • port_description_get: ポートの説明を取得する
  • port_description_update: ポートの説明を更新する
  • port_groups_list: ポートグループをリストする
  • port_group_add: ポートグループを追加する
  • port_group_list_ports: ポートグループ内のポートをリストする
  • port_group_assign: ポートをポートグループに割り当てる
  • port_group_remove: ポートをポートグループから削除する

アラートとロギングツール

  • alerts_get: 現在および過去のアラートをリストする
  • alert_get_by_id: 特定のアラートの詳細を取得する
  • alert_acknowledge: アラートを承認する
  • alert_unmute: アラートのミュートを解除する
  • alert_rules_list: アラートルールをリストする
  • alert_rule_get: 特定のアラートルールの詳細を取得する
  • alert_rule_add: アラートルールを追加する
  • alert_rule_edit: アラートルールを編集する
  • alert_rule_delete: アラートルールを削除する
  • alert_templates_list: すべてのアラートテンプレートをリストする
  • alert_template_get: 特定のアラートテンプレートを取得する
  • alert_template_create: 新しいアラートテンプレートを作成する
  • alert_template_edit: アラートテンプレートを編集する
  • alert_template_delete: アラートテンプレートを削除する
  • logs_eventlog: デバイスのイベントログを取得する
  • logs_syslog: デバイスのsyslogを取得する
  • logs_alertlog: デバイスのアラートログを取得する
  • logs_authlog: デバイスの認証ログを取得する
  • logs_syslogsink: syslogシンクを追加する

課金ツール

  • bills_list: 請求書をリストする
  • bill_get: 請求書の詳細を取得する
  • bill_graph: 請求書のグラフを取得する
  • bill_graph_data: 請求書のグラフデータを取得する
  • bill_history: 請求書の履歴を取得する
  • bill_history_graph: 請求書の履歴グラフを取得する
  • bill_history_graph_data: 請求書の履歴グラフデータを取得する
  • bill_create_or_update: 請求書を作成または更新する
  • bill_delete: 請求書を削除する

ネットワークと監視ツール

  • arp_search: ARPエントリを検索する
  • poller_group_get: ポーラーグループを取得する
  • routing_ip_addresses: LibreNMSからすべてのIPアドレスをリストする
  • services_list: LibreNMSからすべてのサービスをリストする
  • services_for_device: LibreNMSからデバイスのサービスを取得する
  • service_add: LibreNMSにサービスを追加する
  • service_edit: 既存のサービスを編集する
  • service_delete: サービスを削除する
  • bgp_sessions: BGPセッションをリストする
  • bgp_session_get: 特定のBGPセッションの詳細を取得する
  • bgp_session_edit: BGPセッションを編集する
  • fdb_lookup: 転送データベース(FDB)エントリを検索する
  • ospf_list: OSPFインスタンスをリストする
  • ospf_ports: OSPFポートをリストする
  • vrf_list: VRFをリストする
  • ping: LibreNMSシステムをpingする
  • health_list: ヘルスセンサーをリストする
  • health_by_type: タイプ別にヘルスセンサーをリストする
  • health_sensor_get: ヘルスセンサーの詳細を取得する
  • sensors_list: センサーをリストする
  • switching_vlans: LibreNMSからすべてのVLANをリストする
  • switching_links: LibreNMSからすべてのリンクをリストする
  • system_info: LibreNMSからシステム情報を取得する

一般的なクエリツール

  • すべての主要なリソース(デバイス、ポート、アラート、ログ、在庫など)に対する柔軟なフィルタリングと検索。

🔧 技術詳細

セキュリティと安全機能

読み取り専用モード

サーバーは、安全な監視のためにすべての書き込み操作を無効にする読み取り専用モードをサポートしています。

READ_ONLY_MODE=true

タグベースのツールフィルタリング

無効にするタグを設定することで、特定のカテゴリのツールを無効にすることができます。

DISABLED_TAGS=alert,bills

レート制限

サーバーは、APIの使用を制御し、乱用を防止するためのレート制限をサポートしています。有効にすると、スライディングウィンドウアルゴリズムを使用してクライアントごとにリクエストが制限されます。 .envファイルで以下の環境変数を設定することで、レート制限を有効にします。

RATE_LIMIT_ENABLED=true
RATE_LIMIT_MAX_REQUESTS=100   # ウィンドウごとに許可される最大リクエスト数
RATE_LIMIT_WINDOW_MINUTES=1   # ウィンドウサイズ(分)

RATE_LIMIT_ENABLEDtrueに設定されている場合、サーバーはレート制限ミドルウェアを適用します。RATE_LIMIT_MAX_REQUESTSRATE_LIMIT_WINDOW_MINUTESを環境に合わせて調整してください。

Sentryエラートラッキングと監視(オプション)

サーバーは、エラートラッキング、パフォーマンス監視、およびデバッグのためにSentryをオプションでサポートしています。Sentryの統合は完全にオプションであり、構成された場合のみ初期化されます。

インストール

Sentry監視を有効にするには、オプションの依存関係をインストールします。

# UVを使用することをお勧めします
uv sync --extra sentry
設定

.envファイルでSENTRY_DSN環境変数を設定することで、Sentryを有効にします。

# 必須: プロジェクトのSentry DSN
SENTRY_DSN=https://your-key@o12345.ingest.us.sentry.io/6789

# オプション: パフォーマンス監視のサンプルレート(0.0 - 1.0、デフォルト: 1.0)
SENTRY_TRACES_SAMPLE_RATE=1.0

# オプション: 個人情報を含める(デフォルト: true)
SENTRY_SEND_DEFAULT_PII=true

# オプション: 環境名(例: "production", "staging")
SENTRY_ENVIRONMENT=production

# オプション: リリースバージョン(設定されていない場合はパッケージから自動検出)
SENTRY_RELEASE=1.2.2

# オプション: プロファイリング - 継続的なプロファイリングのサンプルレート(0.0 - 1.0、デフォルト: 1.0)
SENTRY_PROFILE_SESSION_SAMPLE_RATE=1.0

# オプション: プロファイリング - プロファイリングのライフサイクルモード(デフォルト: "trace")
# オプション: "all", "continuation", "trace"
SENTRY_PROFILE_LIFECYCLE=trace

# オプション: ログキャプチャをパンくずリストとイベントとして有効にする(デフォルト: true)
SENTRY_ENABLE_LOGS=true
機能

有効にすると、Sentryは自動的に以下をキャプチャします。

  • 例外とエラー: 完全なコンテキストを持つすべての未処理の例外
  • パフォーマンスメトリック: リクエスト/レスポンス時間とトレース
  • MCP統合: 詳細なMCPサーバーのアクティビティとインタラクション
  • ログとパンくずリスト: デバッグ用のアプリケーションログとイベントトレイル
  • コンテキストデータ: 環境、クライアント情報、およびリクエストパラメータ
Sentry DSNの取得方法
  1. sentry.ioで無料アカウントを作成します。
  2. 新しいPythonプロジェクトを作成します。
  3. プロジェクト設定からDSNをコピーします。
  4. .envファイルに設定します。
Sentryの無効化

Sentryは完全にオプションです。SENTRY_DSNを設定しない場合、サーバーはSentry統合なしで正常に実行され、監視データは収集されません。

SSL/TLS設定

サーバーは、SSL証明書の検証とカスタムタイムアウト設定をサポートしています。

LIBRENMS_VERIFY_SSL=true    # SSL証明書の検証を有効にする
LIBRENMS_TIMEOUT=30         # 接続タイムアウト(秒)

トランスポート設定

サーバーは、MCPプロトコルの複数のトランスポートメカニズムをサポートしています。

STDIOトランスポート(デフォルト)

デフォルトのトランスポートは、標準入出力を使用して通信します。これは、ローカルでの使用やstdin/stdoutを介して通信するツールとの統合に最適です。

MCP_TRANSPORT=stdio
HTTP SSEトランスポート(Server-Sent Events)

ネットワークベースのデプロイメントでは、Server-Sent Eventsを使用したHTTPを利用できます。これにより、MCPサーバーをHTTP経由でリアルタイムストリーミングでアクセスできます。

MCP_TRANSPORT=sse
MCP_HTTP_HOST=0.0.0.0        # すべてのインターフェイスにバインドする(または特定のIP)
MCP_HTTP_PORT=8000           # リッスンするポート
MCP_HTTP_BEARER_TOKEN=your-secret-token  # オプションの認証トークン

ベアラートークンを使用したSSEトランスポートを使用する場合、クライアントはリクエストにトークンを含める必要があります。

curl -H "Authorization: Bearer your-secret-token" http://localhost:8000/sse
HTTP Streamableトランスポート

HTTP Streamableトランスポートは、リクエスト/レスポンスのストリーミングを伴うHTTPベースの通信を提供します。これは、Web統合やHTTPエンドポイントを必要とするツールに最適です。

MCP_TRANSPORT=http
MCP_HTTP_HOST=0.0.0.0        # すべてのインターフェイスにバインドする(または特定のIP)
MCP_HTTP_PORT=8000           # リッスンするポート
MCP_HTTP_BEARER_TOKEN=your-secret-token  # オプションの認証トークン

ストリーマブルトランスポートとベアラートークンを使用する場合:

curl -H "Authorization: Bearer your-secret-token" \
     -H "Accept: application/json, text/event-stream" \
     -H "Content-Type: application/json" \
     -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' \
     http://localhost:8000/mcp

: HTTPトランスポートでは、jsonrpcidフィールドを含む適切なJSON-RPC形式が必要です。また、サーバーは一部の操作にセッションの初期化を要求する場合があります。 FastMCPトランスポートの詳細については、FastMCPドキュメントを参照してください。

🤝 コントリビュート方法

  1. リポジトリをフォークします。
  2. 機能ブランチを作成します(git checkout -b feature/amazing-feature)。
  3. 変更を加えます。
  4. テストを実行し、コードの品質を確保します(uv run pytest && uv run ruff check .)。
  5. 変更をコミットします(git commit -m 'Add amazing feature')。
  6. ブランチにプッシュします(git push origin feature/amazing-feature)。
  7. プルリクエストを開きます。

📄 ライセンス

このプロジェクトはMITライセンスの下で公開されています。詳細については、LICENSEファイルを参照してください。

代替品

V
Vestige
Vestigeは認知科学に基づくAI記憶エンジンで、予測誤差ゲート、FSRS - 6間隔反復、記憶の夢など29の神経科学モジュールを実装することで、AIに長期記憶能力を提供します。3D可視化ダッシュボードと21のMCPツールを備え、完全にローカルで動作し、クラウドは必要ありません。
Rust
5.9K
4.5ポイント
M
Moltbrain
MoltBrainは、OpenClaw、MoltBook、Claude Code用に設計された長期記憶層プラグインで、自動的にプロジェクトのコンテキストを学習し、思い出すことができます。スマートな検索、観察記録、分析統計、永続的なストレージ機能を提供します。
TypeScript
6.9K
4.5ポイント
B
Bm.md
機能豊富なMarkdown排版ツールで、様々なスタイルテーマとプラットフォーム対応をサポートし、リアルタイム編集プレビュー、画像エクスポート、API統合機能を提供します
TypeScript
6.1K
5ポイント
S
Security Detections MCP
Security Detections MCPは、Model Context Protocolに基づくサーバーで、LLMがSigma、Splunk ESCU、Elastic、KQL形式を含む統一されたセキュリティ検出ルールデータベースをクエリできます。最新のバージョン3.0は自律型検出エンジニアリングプラットフォームにアップグレードされ、自動的に脅威インテリジェンスからTTPを抽出し、カバレッジのギャップを分析し、SIEMネイティブ形式の検出ルールを生成し、テストを実行して検証できます。プロジェクトには71以上のツール、11の事前構築されたワークフロープロンプト、および知識グラフシステムが含まれ、複数のSIEMプラットフォームをサポートしています。
TypeScript
5.8K
4ポイント
P
Paperbanana
Python
8.2K
5ポイント
B
Better Icons
20万以上のアイコンの検索と検索を提供するMCPサーバーとCLIツールで、150以上のアイコンライブラリをサポートし、AIアシスタントと開発者が迅速にアイコンを取得して使用できるように支援します。
TypeScript
8.5K
4.5ポイント
A
Assistant Ui
assistant-uiは、生産レベルのAIチャットインターフェイスを迅速に構築するためのオープンソースのTypeScript/Reactライブラリで、組み合わせ可能なUIコンポーネント、ストリーミング応答、アクセシビリティなどの機能を提供し、複数のAIバックエンドとモデルをサポートしています。
TypeScript
7.9K
5ポイント
A
Apify MCP Server
Apify MCPサーバーは、モデルコンテキストプロトコル(MCP)に基づくツールで、AIアシスタントが数千の既成のクローラー、スクレイパー、自動化ツール(Apifyアクター)を通じて、ソーシャルメディア、検索エンジン、電子商取引などのウェブサイトからデータを抽出できるようにします。OAuthとSkyfireプロキシ支払いをサポートしており、HTTPSエンドポイントまたはローカルのstdio方式でClaude、VS CodeなどのMCPクライアントに統合できます。
TypeScript
7.1K
5ポイント
E
Edgeone Pages MCP Server
EdgeOne Pages MCPは、MCPプロトコルを通じてHTMLコンテンツをEdgeOne Pagesに迅速にデプロイし、公開URLを取得するサービスです。
TypeScript
23.4K
4.8ポイント
C
Context7
Context7 MCPは、AIプログラミングアシスタントにリアルタイムのバージョン固有のドキュメントとコード例を提供するサービスで、Model Context Protocolを通じてプロンプトに直接統合され、LLMが古い情報を使用する問題を解決します。
TypeScript
80.1K
4.7ポイント
G
Gmail MCP Server
Claude Desktop用に設計されたGmail自動認証MCPサーバーで、自然言語でのやり取りによるGmailの管理をサポートし、メール送信、ラベル管理、一括操作などの完全な機能を備えています。
TypeScript
18.1K
4.5ポイント
B
Baidu Map
認証済み
百度マップMCPサーバーは国内初のMCPプロトコルに対応した地図サービスで、地理コーディング、ルート計画など10個の標準化されたAPIインターフェースを提供し、PythonとTypescriptでの迅速な接続をサポートし、エージェントに地図関連の機能を実現させます。
Python
36.3K
4.5ポイント
G
Gitlab MCP Server
認証済み
GitLab MCPサーバーは、Model Context Protocolに基づくプロジェクトで、GitLabアカウントとのやり取りに必要な包括的なツールセットを提供します。コードレビュー、マージリクエスト管理、CI/CD設定などの機能が含まれます。
TypeScript
23.0K
4.3ポイント
U
Unity
認証済み
UnityMCPはUnityエディターのプラグインで、モデルコンテキストプロトコル (MCP) を実装し、UnityとAIアシスタントのシームレスな統合を提供します。リアルタイムの状態監視、リモートコマンドの実行、ログ機能が含まれます。
C#
27.2K
5ポイント
M
Magic MCP
Magic Component Platform (MCP) はAI駆動のUIコンポーネント生成ツールで、自然言語での記述を通じて、開発者が迅速に現代的なUIコンポーネントを作成するのを支援し、複数のIDEとの統合をサポートします。
JavaScript
20.1K
5ポイント
S
Sequential Thinking MCP Server
MCPプロトコルに基づく構造化思考サーバーで、思考段階を定義することで複雑な問題を分解し要約を生成するのに役立ちます。
Python
30.9K
4.5ポイント
AIBase
智啓未来、あなたの人工知能ソリューションシンクタンク
© 2026AIBase