Skip to main content
Glama

Netdisco MCP

完全なNetdisco REST APIをエージェントネイティブなMCPサーバーに変換

Python 3.11+ CI FastMCP MCP Docker License: MIT

81ツール · 動的Swaggerディスカバリ · stdio + Streamable HTTP · ガイダンス優先のエージェントUX · Bearer認証


Netdisco MCPは、稼働中のNetdiscoの swagger.json ドキュメントを完全で検索可能なMCPツールサーフェスに変換します。脆弱な手書きのエンドポイントサブセットは維持しません。起動時に接続されたNetdiscoのバージョンを検出し、Swagger 2.0をOpenAPI 3にアップグレードし、スキーマの非互換性を修復し、安定したツール名を割り当て、サポートされているすべての操作をFastMCPを通じて公開します。

その結果、運用上の質問に答え、デバイスやスイッチポートを検査し、ノードやVLANを検索し、インベントリレポートを実行し、明示的に有効化した場合にはNetdiscoジョブを送信または削除できるMCPサーバーが得られます。

[!IMPORTANT] ライブAPIが真実の情報源です。Netdiscoがエンドポイントを追加すると、ツール数が増加することがあります。このREADMEのカタログは、Netdisco 2.103000 の確認済みスナップショットです。

目次

このプロジェクトが存在する理由

機能

意味

完全なAPIカバレッジ

接続されたNetdiscoインスタンスが提供するすべての操作がMCPツールになります。

アップグレード対応

コンテナを再起動すると、ライブ仕様が再読み込みされ、新しいエンドポイントが検出されます。

エージェント優先のガイダンス

get_guidance が意図的に最初のツールであり、ミドルウェアがそれをスキップするエージェントをリダイレクトします。

機能発見

find_capability は、名前、ルート、タグ、メソッド、説明を検索します。

より安全な探索

読み取り専用モードでは、ツール生成前にPOST、PUT、PATCH、DELETE操作を削除します。

コンテキスト保護

巨大なレスポンスは、リクエストを絞り込む明確なヒントとともに切り詰められます。

柔軟なトランスポート

stdio経由でローカル実行、またはMCP Streamable HTTP経由でリモート実行できます。

リモート認証

Streamable HTTPは、デプロイメント固有のBearerトークンを要求できます。

コンテナ強化

提供されるComposeサービスは、読み取り専用ファイルシステム、no-new-privileges、およびホストポートなしで実行されます。

アーキテクチャ

flowchart LR
    subgraph Clients["MCP clients"]
        ChatGPT["ChatGPT / OpenAI"]
        Codex["Codex"]
        ClaudeCode["Claude Code"]
        ClaudeDesktop["Claude Desktop"]
    end

    Proxy["TLS reverse proxy"]

    subgraph Server["Netdisco MCP"]
        Auth["Bearer authentication"]
        Guide["Guidance gate"]
        Catalog["FastMCP tool catalog"]
        Limit["Response limiter"]
        Adapter["Swagger 2 → OpenAPI 3 adapter"]
    end

    Spec["Netdisco swagger.json"]
    API["Netdisco REST API"]

    ChatGPT --> Proxy
    Codex --> Proxy
    ClaudeCode --> Proxy
    ClaudeDesktop --> Proxy
    Proxy --> Auth
    Auth --> Guide --> Catalog --> Limit
    Adapter --> Catalog
    Spec --> Adapter
    Catalog --> API

起動パイプライン

sequenceDiagram
    participant S as Netdisco MCP
    participant N as Netdisco
    participant A as Swagger adapter
    participant F as FastMCP

    S->>N: GET /swagger.json
    N-->>S: Swagger 2.0 document
    S->>A: Normalize schemas and references
    A->>A: Assign stable operation IDs
    A->>A: Remove mutations when read-only
    A-->>S: OpenAPI 3.0.3 document
    S->>F: Generate and mount tools
    F-->>S: MCP server ready

生産的なエージェントワークフロー

このサーバーは、AIエージェントがネットワーク管理タスクにどのように取り組むべきかについて、意図的に意見を持っています。

flowchart TD
    Start["Start a Netdisco task"] --> Guidance["Call get_guidance"]
    Guidance --> Known{"Know the exact tool?"}
    Known -- No --> Find["Call find_capability"]
    Known -- Yes --> Read["Use search or object GET"]
    Find --> Read
    Read --> Evidence["Inspect current state"]
    Evidence --> Change{"Is a change required?"}
    Change -- No --> Report["Return evidence"]
    Change -- Yes --> Confirm["Confirm target and scope"]
    Confirm --> Mutate["Call mutation tool"]
    Mutate --> Verify["Read current state again"]
    Verify --> Report
  1. 作業セッションの開始時に get_guidance を一度呼び出します。

  2. 正しいツールが明らかでない場合は find_capability を使用します。

  3. 広範なレポートよりも、検索ツールとオブジェクトツールを優先します。

  4. 変更を行う前に現在の状態を検査します。

  5. タイムアウトを失敗と解釈するのではなく、結果の状態を確認します。

完全なツールカタログ

確認済みのNetdisco 2.103000 サーフェスには以下が含まれます:

カテゴリ

ツール数

エージェント支援

2

オブジェクト

31

レポート

34

キュー

5

検索

4

ユーザー

2

一般

3

合計

81

生成されたAPIツールのうち7つはPOST、PUT、DELETEを使用しており、ミューテーションとして扱われます。NETDISCO_READ_ONLY=1 を設定すると、これら7つのツールが削除されます。

[!CAUTION] Netdiscoは GET /logout を公開しており、HTTP GETを使用しているにもかかわらず、現在のAPIキーとセッションを破棄します。メソッドベースの読み取り専用フィルタリングでは、そのエンドポイントをミューテーションとして分類できません。get_logout は破壊的なものとして扱ってください。

エージェント支援ツール

ツール

目的

get_guidance

バンドルされたNetdisco操作ガイドを返し、トピック固有のセクションを強調表示できます。

find_capability

生成された完全なカタログを、タスク、ルート、タグ、HTTPメソッド、または説明で検索します。

メソッド

ツール

Netdisco ルート

目的

DELETE

delete_device_jobs

/api/v1/object/device/{ip}/jobs

デバイスのジョブを削除し、スキップリストをクリアします。フィールドでフィルタリング可能です。

GET

get_device

/api/v1/object/device/{ip}

デバイステーブルから行を返します。

GET

get_device_device_ips

/api/v1/object/device/{ip}/device_ips

デバイスの device_ips 行を返します。

GET

get_device_modules

/api/v1/object/device/{ip}/modules

デバイスのモジュール行を返します。

GET

get_device_neighbors

/api/v1/object/device/{ip}/neighbors

デバイスのレイヤー2隣接関係を返します。

GET

get_device_nodes

/api/v1/object/device/{ip}/nodes

デバイス上で見つかったノードを返します。

GET

get_device_port

/api/v1/object/device/{ip}/port/{port}

device_port テーブルから行を返します。

GET

get_device_port_active_nodes

/api/v1/object/device/{ip}/port/{port}/active_nodes

ポートのアクティブノード行を返します。

GET

get_device_port_active_nodes_with_age

/api/v1/object/device/{ip}/port/{port}/active_nodes_with_age

ポートのアクティブノード行を経過時間データ付きで返します。

GET

get_device_port_agg_master

/api/v1/object/device/{ip}/port/{port}/agg_master

ポートの集約マスターエントリを返します。

GET

get_device_port_last_node

/api/v1/object/device/{ip}/port/{port}/last_node

ポートの最終ノードエントリを返します。

GET

get_device_port_logs

/api/v1/object/device/{ip}/port/{port}/logs

ポートのログ行を返します。

GET

get_device_port_neighbor

/api/v1/object/device/{ip}/port/{port}/neighbor

ポートの隣接エントリを返します。

GET

get_device_port_nodes

/api/v1/object/device/{ip}/port/{port}/nodes

ポートのノード行を返します。

GET

get_device_port_nodes_with_age

/api/v1/object/device/{ip}/port/{port}/nodes_with_age

ポートのノード行を経過時間データ付きで返します。

GET

get_device_port_port_vlans

/api/v1/object/device/{ip}/port/{port}/port_vlans

ポートの port_vlans 行を返します。

GET

get_device_port_power

/api/v1/object/device/{ip}/port/{port}/power

ポートの電力エントリを返します。

GET

get_device_port_properties

/api/v1/object/device/{ip}/port/{port}/properties

ポートのプロパティエントリを返します。

GET

get_device_port_ssid

/api/v1/object/device/{ip}/port/{port}/ssid

ポートの SSID エントリを返します。

GET

get_device_port_vlans

/api/v1/object/device/{ip}/port/{port}/vlans

ポートの VLAN 行を返します。

GET

get_device_port_wireless

/api/v1/object/device/{ip}/port/{port}/wireless

ポートのワイヤレスエントリを返します。

GET

get_device_port_vlans_cd8cf56

/api/v1/object/device/{ip}/port_vlans

デバイスの port_vlans 行を返します。

GET

get_device_ports

/api/v1/object/device/{ip}/ports

デバイスのポート行を返します。

GET

get_device_power_modules

/api/v1/object/device/{ip}/power_modules

PoE モジュールのステータスと集約ポート統計を返します。

GET

get_device_powered_ports

/api/v1/object/device/{ip}/powered_ports

デバイスの給電ポート行を返します。

GET

get_device_ssids

/api/v1/object/device/{ip}/ssids

デバイスの SSID 行を返します。

GET

get_device_vlans

/api/v1/object/device/{ip}/vlans

デバイスの VLAN 行を返します。

GET

get_device_wireless_ports

/api/v1/object/device/{ip}/wireless_ports

デバイスのワイヤレスポート行を返します。

GET

get_vlan_nodes

/api/v1/object/vlan/{vlan}/nodes

VLAN 内で見つかったノードを返します。

PUT

update_device_arps

/api/v1/object/device/{ip}/arps

デバイス上で見つかった ARP エントリを保存するジョブをキューに入れます。

PUT

update_device_nodes

/api/v1/object/device/{ip}/nodes

デバイス上で見つかったノードを保存するジョブをキューに入れます。

メソッド

ツール

Netdisco ルート

レポート

GET

get_report_device_deviceaddrnodns

/api/v1/report/device/deviceaddrnodns

DNS エントリのない IP アドレス。

GET

get_report_device_devicebylocation

/api/v1/report/device/devicebylocation

ロケーションごとにグループ化されたインベントリ。

GET

get_report_device_devicednsmismatch

/api/v1/report/device/devicednsmismatch

デバイス名と DNS の不一致。

GET

get_report_device_deviceinventory

/api/v1/report/device/deviceinventory

デバイスインベントリ。

GET

get_report_device_devicemultipleaddresses

/api/v1/report/device/devicemultipleaddresses

複数のアドレスを持つデバイス。

GET

get_report_device_devicepoestatus

/api/v1/report/device/devicepoestatus

Power over Ethernet ステータス。

GET

get_report_device_devicesharedaddresses

/api/v1/report/device/devicesharedaddresses

複数のデバイスで見つかった IP アドレス。

GET

get_report_device_devicesmissingmodeloros

/api/v1/report/device/devicesmissingmodeloros

モデルまたは OS データが欠落しているデバイス。

GET

get_report_device_portutilization

/api/v1/report/device/portutilization

ポート使用率。

GET

get_report_device_recentlyaddeddevices

/api/v1/report/device/recentlyaddeddevices

最近追加されたデバイス。

GET

get_report_ip_duplicateprivatenetworks

/api/v1/report/ip/duplicateprivatenetworks

重複したプライベートネットワーク。

GET

get_report_ip_ipinventory

/api/v1/report/ip/ipinventory

IP インベントリ。

GET

get_report_ip_subnets

/api/v1/report/ip/subnets

サブネット使用率。

GET

get_report_node_nodemultiips

/api/v1/report/node/nodemultiips

複数のアクティブ IP アドレスを持つノード。

GET

get_report_node_nodesdiscovered

/api/v1/report/node/nodesdiscovered

LLDP または CDP によって発見されたノード。

GET

get_report_port_duplexmismatch

/api/v1/report/port/duplexmismatch

不一致のデュプレックス設定。

GET

get_report_port_halfduplex

/api/v1/report/port/halfduplex

半二重モードで動作しているポート。

GET

get_report_port_portadmindown

/api/v1/report/port/portadmindown

管理上無効にされたポート。

GET

get_report_port_portblocking

/api/v1/report/port/portblocking

スパニングツリーによってブロックされたポート。

GET

get_report_port_portmultinodes

/api/v1/report/port/portmultinodes

複数のノードが接続されたポート。

GET

get_report_port_portserrordisabled

/api/v1/report/port/portserrordisabled

エラー無効ポート。

GET

get_report_port_portssid

/api/v1/report/port/portssid

ポート SSID インベントリ。

GET

get_report_port_portswithmostvlans

/api/v1/report/port/portswithmostvlans

最も多くの VLAN を運ぶポート。

GET

get_report_port_portvlanmismatch

/api/v1/report/port/portvlanmismatch

VLAN 設定の不一致。

GET

get_report_vlan_devicevlancount

/api/v1/report/vlan/devicevlancount

デバイスごとの VLAN 数。

GET

get_report_vlan_vlaninventory

/api/v1/report/vlan/vlaninventory

VLAN インベントリ。

GET

get_report_vlan_vlanmultiplenames

/api/v1/report/vlan/vlanmultiplenames

複数の名前を持つ VLAN。

GET

get_report_vlan_vlansneverconfigured

/api/v1/report/vlan/vlansneverconfigured

認識されているが設定されたことのない VLAN。

GET

get_report_vlan_vlansonlyuplinks

/api/v1/report/vlan/vlansonlyuplinks

アップリンクにのみ見つかった VLAN。

GET

get_report_vlan_vlansunused

/api/v1/report/vlan/vlansunused

使用されていない VLAN。

GET

get_report_wireless_apchanneldist

/api/v1/report/wireless/apchanneldist

アクセスポイントチャネル分布。

GET

get_report_wireless_apclients

/api/v1/report/wireless/apclients

アクセスポイントクライアント数。

GET

get_report_wireless_apradiochannelpower

/api/v1/report/wireless/apradiochannelpower

アクセスポイント無線チャネルと電力。

GET

get_report_wireless_ssidinventory

/api/v1/report/wireless/ssidinventory

SSID インベントリ。

メソッド

ツール

Netdisco ルート

目的

GET

get_queue_backends

/api/v1/queue/backends

アクティブな Netdisco バックエンド名を一覧表示。

GET

get_queue_jobs

/api/v1/queue/jobs

オプションのフィルター付きでキュー内のジョブを返す。

GET

get_queue_status

/api/v1/queue/status

ステータスごとにグループ化されたジョブ数を返す。

POST

create_queue_jobs

/api/v1/queue/jobs

Netdisco キューにジョブを送信。

DELETE

delete_queue_jobs

/api/v1/queue/jobs

オプションのフィルターでキュー内のジョブとスキップリストエントリを削除。

メソッド

ツール

Netdisco ルート

目的

GET

search_device

/api/v1/search/device

デバイスを ID、アドレス、ロケーション、モデル、OS、ベンダー、その他の属性で検索。

GET

search_node

/api/v1/search/node

アクティブおよびアーカイブされた観測を含むノードを検索。

GET

search_port

/api/v1/search/port

説明とポート特性でスイッチポートを検索。

GET

search_vlan

/api/v1/search/vlan

VLAN を検索。

メソッド

ツール

Netdisco ルート

目的

GET

get_users

/api/v1/users

ロールとトークンステータスを持つユーザーを一覧表示。

POST

create_user

/api/v1/user

トークンのみのサービスアカウントをプロビジョニングし、API トークンを発行または無効化。

メソッド

ツール

Netdisco ルート

目的

GET

get_statistics

/api/v1/statistics

最新の Netdisco 統計行を返す。

GET

get_logout

/logout

現在の API キーとセッションクッキーを破棄します。これには破壊的な副作用があります。

POST

create_login

/login

Netdisco API キーを取得。

クイックスタート

必要条件

  • Python 3.11 以降

  • 到達可能な swagger.json を持つ Netdisco インスタンス

  • 永続的な Netdisco API トークン、またはサポートされているユーザー名/パスワード資格情報

  • コンテナデプロイメント用の Docker および Docker Compose

ローカル開発

git clone https://github.com/omichelbraga/netdisco-mcp.git
cd netdisco-mcp
cp .env.example .env

.env に必要な値を設定:

NETDISCO_URL=https://netdisco.example.net
NETDISCO_API_TOKEN=replace-with-a-permanent-netdisco-token

ライブ仕様をインストール、検証、実行:

uv sync --extra dev
uv run netdisco-mcp --check
uv run netdisco-mcp

デフォルトのトランスポートは stdio です。

Docker Compose

提供されている Compose ファイルは、共有外部ネットワーク mcp-edge を想定しており、ホストポートを公開しません。

docker network create mcp-edge
docker compose up --build -d

mcp-edge 上のリバースプロキシは、次の場所でサービスに到達できます:

http://netdisco-mcp:8000/mcp

設定リファレンス

設定項目

デフォルト値

目的

NETDISCO_URL

必須

NetdiscoインスタンスのベースURL。

NETDISCO_SPEC_URL

$NETDISCO_URL/swagger.json

ライブのSwagger/OpenAPI URLを上書きします。

NETDISCO_API_TOKEN

未設定

上流APIに送信されるNetdisco API認証情報。

NETDISCO_AUTH_SCHEME

Bearer

認証スキーム。プレフィックスなしのトークンにはrawを使用します。

NETDISCO_USERNAME

未設定

オプションのNetdisco Basic認証ユーザー名。

NETDISCO_PASSWORD

未設定

オプションのNetdisco Basic認証パスワード。

NETDISCO_TLS_VERIFY

1

Netdisco TLS証明書を検証します。

NETDISCO_TIMEOUT

30

上流リクエストのタイムアウト(秒)。

NETDISCO_READ_ONLY

0

1に設定すると、POST、PUT、PATCH、DELETEツールを削除します。

NETDISCO_GUIDANCE_GATE

1

通常のツール使用前にガイダンスを要求します。

NETDISCO_GUIDANCE_TTL

1800

ガイダンスアクティビティウィンドウ(秒)。

NETDISCO_MAX_RESPONSE_CHARS

50000

切り捨て前の最大ツール応答サイズ。

NETDISCO_MCP_TRANSPORT

stdio

stdioまたはstreamable-httpstdinhttpはエイリアスとして受け入れられます。

NETDISCO_MCP_HTTP_HOST

127.0.0.1

Streamable HTTPのバインドアドレス。

NETDISCO_MCP_HTTP_PORT

8000

プロセスまたはコンテナ内のリスニングポート。

NETDISCO_MCP_BEARER_TOKEN

未設定

設定時にHTTPトランスポートが必要とする静的ベアラートークン。

[!WARNING] NETDISCO_API_TOKENはサーバーをNetdiscoに対して認証します。 NETDISCO_MCP_BEARER_TOKENはMCPクライアントをこのサーバーに対して認証します。これらは 異なる信頼境界を保護するため、同じ値を共有してはなりません。

MCPクライアントの接続

Claude Code

claude mcp add --transport http --scope user \
  netdisco-mcp https://netdisco-mcp.example.net/mcp \
  --header "Authorization: Bearer <mcp-bearer-token>"

接続を確認します:

claude mcp get netdisco-mcp

Codex

MCPベアラートークンをNETDISCO_MCP_BEARER_TOKENに保存し、次のエントリを追加します ~/.codex/config.tomlへ:

[mcp_servers."netdisco-mcp"]
url = "https://netdisco-mcp.example.net/mcp"
bearer_token_env_var = "NETDISCO_MCP_BEARER_TOKEN"
default_tools_approval_mode = "prompt"

公式のCodex MCP設定を参照してください 追加のタイムアウト、許可リスト、承認制御について。

Claude Desktop

Claude Desktopは含まれている認証済みstdioプロキシを使用できます。このプロキシは リモートベアラートークンをDesktopが送信するMCPプロトコルメッセージから分離し、 上流に接続するときのみ追加します。

fastmcp install claude-desktop \
  src/netdisco_mcp/desktop_proxy.py:mcp \
  --name netdisco-mcp \
  --with-editable . \
  --env NETDISCO_MCP_URL=https://netdisco-mcp.example.net/mcp \
  --env NETDISCO_MCP_BEARER_TOKEN=<mcp-bearer-token>

インストール後にClaude Desktopを再起動します。

OpenAI Responses API

import os

from openai import OpenAI

client = OpenAI()

response = client.responses.create(
    model="gpt-5.6",
    input="Call get_guidance, then summarize the Netdisco device inventory.",
    tools=[
        {
            "type": "mcp",
            "server_label": "netdisco",
            "server_url": "https://netdisco-mcp.example.net/mcp",
            "authorization": os.environ["NETDISCO_MCP_BEARER_TOKEN"],
            "require_approval": "always",
        }
    ],
)

print(response.output_text)

authorizationフィールドは公式の リモートMCPツール契約に従います。require_approvalalwaysに設定しておくことはこのサーバーに適切です。 なぜなら、そのライブカタログには変更ツールが含まれる可能性があるからです。

汎用MCPクライアント

{
  "mcpServers": {
    "netdisco-mcp": {
      "type": "http",
      "url": "https://netdisco-mcp.example.net/mcp",
      "headers": {
        "Authorization": "Bearer <mcp-bearer-token>"
      }
    }
  }
}

セキュリティモデル

flowchart LR
    Client["Authenticated MCP client"]
    Edge["TLS reverse proxy"]
    MCP["Netdisco MCP bearer verifier"]
    Credential["Internal Netdisco credential"]
    Netdisco["Netdisco authorization"]

    Client -- "MCP bearer token" --> Edge
    Edge -- "preserved Authorization header" --> MCP
    MCP -- "approved tool call" --> Credential
    Credential -- "separate API token" --> Netdisco

プロジェクトが提供するセキュリティ制御:

  • 設定されたMCPベアラートークンの定数時間比較。

  • 別個のMCPクライアントとNetdisco上流認証情報。

  • オプションのメソッドベース読み取り専用ツールフィルタリング。

  • 操作ツール使用前のガイダンスミドルウェア。

  • モデルコンテキストを保護するための応答サイズ制限。

  • デフォルトでNetdiscoのTLS検証。

  • 提供されたComposeファイルにホストポートなし。

  • 読み取り専用コンテナファイルシステムとno-new-privileges

推奨される本番環境制御:

  • リバースプロキシで信頼できるTLSを終端する。

  • 両方の認証情報をシークレットマネージャーまたはPortainerシークレット環境に保存する。

  • 定義されたスケジュールおよび偶発的な開示後に認証情報をローテーションする。

  • Netdisco認証情報を最小限必要なロールに制限する。

  • 変更ツールに対して承認プロンプトを有効にしておく。

  • リバースプロキシアクセスログとNetdiscoジョブ履歴を確認する。

  • 検出専用デプロイメントにはNETDISCO_READ_ONLY=1を使用する。

ツール生成の仕組み

Netdisco 2.103000はSwagger 2.0を公開し、FastMCPはOpenAPI 3を消費します。 アダプターは、サポートされている操作を削除せずに以下の変換を実行します:

  1. Swagger参照をOpenAPI components参照に書き換えます。

  2. ボディパラメータとフォームパラメータをOpenAPIリクエストボディに変換します。

  3. パラメータタイプ情報をスキーマに移動します。

  4. Netdiscoプロパティレベルのrequiredフラグを修復します。

  5. ブール値、整数、配列のデフォルト値を正規化します。

  6. レスポンススキーマをメディアタイプコンテンツエントリに変換します。

  7. 決定論的で人間が読める操作IDを割り当てます。

  8. 元のHTTPメソッドとルートをすべてのツール説明に追加します。

  9. 読み取り専用モードが有効な場合、書き込みメソッドを削除します。

2つのルートが同じフレンドリ名を受け取る場合、決定論的な7文字の ダイジェストが追加されます。これにより、get_device_port_vlans_cd8cf56のような名前が説明され、 完全なAPIサーフェスが衝突なく保たれます。

リポジトリレイアウト

netdisco-mcp/
├── src/netdisco_mcp/
│   ├── __main__.py          # CLI and transport startup
│   ├── auth.py              # MCP bearer-token verification
│   ├── config.py            # Environment-driven settings
│   ├── desktop_proxy.py     # Authenticated Claude Desktop proxy
│   ├── guidance.py          # Guidance loading and enforcement
│   ├── server.py            # FastMCP assembly and tool mounting
│   ├── spec.py              # Swagger normalization and tool catalog
│   └── data/GUIDANCE.md     # Operating instructions for AI agents
├── tests/                   # Configuration, auth, and spec tests
├── compose.yaml             # Internal-network container deployment
├── Dockerfile
└── pyproject.toml

開発とテスト

テストスイートを実行します:

uv run pytest

トランスポートを開始せずに接続されたライブAPIを検証します:

NETDISCO_URL=https://netdisco.example.net \
NETDISCO_API_TOKEN=<netdisco-api-token> \
uv run netdisco-mcp --check

チェックはAPIバージョンカバレッジ、読み取り/書き込み操作数、総MCP ツール数、タグを報告します。テストはトランスポートエイリアス、ベアラー検証、Swagger- to-OpenAPI変換、安定した名前、リクエストボディ、スキーマ修復、読み取り専用 フィルタリング、機能発見をカバーします。

貢献

  1. リポジトリをフォークし、焦点を絞ったブランチを作成します。

  2. 動作変更に対するテストを追加します。

  3. 代表的なSwaggerフィクスチャに対して完全なテストスイートを実行します。

  4. 認可されたNetdiscoインスタンスに対してnetdisco-mcp --checkを実行します。

  5. ユーザーから見える動作と検証を説明するプルリクエストを開きます。

Netdisco認証情報、MCPベアラートークン、内部URL、または キャプチャされたインフラストラクチャデータをコミットしないでください。

ライセンス

MITライセンスの下で公開されています。

-
license - not tested
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/omichelbraga/netdisco-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server