Skip to main content
Glama
davidlin2k

POX MCP Server

by davidlin2k

POX MCP サーバー

概要

POX SDNコントローラを介してネットワーク制御および管理機能を提供する、モデルコンテキストプロトコル(MCP)サーバー実装です。このサーバーは、POXのモジュラーアーキテクチャを通じて、Pythonベースのネットワークプログラミング、OpenFlowデバイス管理、自動ネットワーク分析を可能にします。教育環境、ネットワークプロトタイピング、SDN研究に最適です。

Related MCP server: F5 MCP Server

コンポーネント

リソース

サーバーは 2 つの動的リソースを公開します。

  • pox://network-config : 包括的な POX コントローラ設定メモ

    • アクティブなPOXコンポーネントとその構成を追跡します

    • ネットワークトポロジとフロールールを記録する

    • 発見されたネットワークの洞察を維持する

  • pox://topology : リアルタイムネットワークトポロジビュー

    • アクティブな OpenFlow データパス (スイッチ) を表示します

    • マップは場所と接続をホストします

    • リンクステータスとポートマッピングを表示します

プロンプト

サーバーは、次の 3 つの特殊なプロンプトを提供します。

  • pox-network-manager : POX コントローラー管理用の対話型プロンプト

    • 必須引数: topic - 焦点を当てるネットワーク制御の側面

    • POXコンポーネントとモジュールの構成を支援します

    • ネットワークポリシーの実装をガイドします

    • ネットワーク構成メモと統合

  • simple-hub : POX を使用した基本的な L2 ハブ実装

    • 必須引数: dpid - データパス識別子

    • POXのイベント駆動型プログラミングを実演します

    • 基本的なパケット処理とフラッディングを示します

    • POXのコアメカニズムを説明する

  • learning-switch : L2学習スイッチの実装

    • 必須引数: dpid - データパス識別子

    • POXのテーブル管理を紹介します

    • MAC学習と転送を実装

    • POXのパケット処理能力を実証する

ツール

サーバーは 5 つのコア ツールを提供します。

データパス管理ツール

  • get_switches

    • 接続されているすべてのOpenFlowデータパスを一覧表示する

    • 入力不要

    • 戻り値: アクティブなPOX制御スイッチの配列

    • 接続ステータスと機能が含まれます

  • get_switch_desc

    • 詳細なデータパス情報を取得する

    • 入力:

      • dpid (文字列): データパス識別子

    • 返品: POX管理スイッチの詳細と機能

フロー管理ツール

  • get_flow_stats

    • POXフロー統計を取得する

    • 入力:

      • dpid (文字列): データパス識別子

      • match (オブジェクト、オプション):POXマッチ構造

      • table_id (文字列、オプション): OpenFlowテーブルID

      • out_port (文字列、オプション): 出力ポートフィルター

    • 戻り値: パケット数を含むPOXフロー統計

  • set_table

    • POXフローテーブルを構成する

    • 入力:

      • dpid (文字列): データパス識別子

      • flows (配列): POXフロー仕様

    • 戻り値: フローテーブルの更新確認

分析ツール

  • append_insight

    • POX 構成メモにネットワーク分析情報を追加する

    • 入力:

      • insight (文字列): ネットワークの観察または分析

    • 戻り値: インサイト追加確認

    • pox://network-config リソースを更新します

Claude Desktopでの使用

紫外線

{
  "mcpServers": {
    "pox": {
      "command": "uv",
      "args": [
        "--directory",
        "parent_of_servers_repo/servers/src/mcp_server_pox",
        "run",
        "server.py"
      ],
      "env": {
        "POX_SERVER_URL": "http://localhost:8000"
      }
    }
  }
}

ライセンス

このMCPサーバーはMITライセンスに基づいてライセンスされています。つまり、MITライセンスの条件に従って、ソフトウェアを自由に使用、改変、配布することができます。詳細については、プロジェクトリポジトリのLICENSEファイルをご覧ください。

貢献

貢献を歓迎します!プルリクエストの送信、バグの報告、新機能の提案など、お気軽にお寄せください。

Available Tools

5 tools
append_insightC

Add a network insight to the configuration memo

ParametersJSON Schema
NameRequiredDescriptionDefault
insightYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description must disclose behaviors. It only says 'Add' but omits details like idempotency, side effects, or whether insights are appended or overwritten.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, efficient and front-loaded. However, it could include more context without becoming verbose, so it's not perfect.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description should cover behavior and parameter details. It only covers purpose, leaving gaps in understanding post-conditions and usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%. The parameter name 'insight' is vague; the description says 'network insight' but does not clarify format, constraints, or examples, failing to add value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action 'Add a network insight' and the target 'configuration memo'. It distinguishes from sibling tools like get_flow_stats (retrieval) and set_table (setting table), as this is the only tool for appending insights.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives, no prerequisites, and no context about scenarios like whether the memo must exist beforehand.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_flow_statsC

Get flow statistics from a switch

ParametersJSON Schema
NameRequiredDescriptionDefault
dpidYes
matchNo
table_idNo
out_portNo

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must fully disclose behavioral traits. It only implies a read operation ('Get') but does not mention if it is expensive, requires authentication, or any side effects. This is insufficient for safe selection.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short (one sentence), which might seem concise, but it fails to convey necessary information. It does not earn its place because it adds little value beyond the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 4 parameters, no output schema, and no annotations, the description is severely incomplete. It does not explain return values, parameter constraints, or how to use the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not add meaning to any of the 4 parameters (dpid, match, table_id, out_port). The agent receives no help understanding parameter roles beyond their names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Get flow statistics from a switch' clearly states the action (get) and resource (flow statistics from a switch), distinguishing it from siblings like get_switch_desc or get_switches. However, it could be more specific about what statistics are included.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool vs alternatives, such as prerequisites, conditions, or when not to use it. The description lacks any contextual usage advice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_switch_descC

Get detailed information about a specific switch

ParametersJSON Schema
NameRequiredDescriptionDefault
dpidYes

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, and the description does not disclose behavioral traits like side effects, required permissions, or data sensitivity. It implies a read operation but does not confirm safety or discuss response structure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, which is concise but lacks structure. It does not waste words but also does not provide rich detail. Acceptable for a simple tool, but could be improved.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity (one parameter, no output schema), the description fails to specify what 'detailed information' encompasses or any return format. Sibling tools are not referenced to complete the context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description adds no meaning to the 'dpid' parameter. It does not explain what 'dpid' represents or how to obtain it, leaving the agent to infer from the tool name.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and resource 'detailed information about a specific switch', which distinguishes it from the sibling tool 'get_switches' (likely for listing all switches). However, it could be more specific about what 'detailed information' includes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, such as comparing with 'get_switches' or 'get_flow_stats'. No preconditions or caveats are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_switchesA

Get a list of all connected OpenFlow switches

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Despite no annotations, the description implies a safe read operation, but lacks details on potential failures (e.g., no connected switches) or rate limits. The transparency is adequate for a simple list tool but not thorough.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with no superfluous information, perfectly sized for the simplicity of the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description lacks return value details (e.g., structure of each switch), which is notable since there is no output schema. However, the tool's simplicity and zero parameters mitigate the gap somewhat.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With zero parameters and schema coverage at 100%, the description adds no parameter details but none are needed. The baseline of 4 applies per guidelines.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('get a list') and the resource ('all connected OpenFlow switches'), differentiating it from sibling tools like get_flow_stats or get_switch_desc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives, such as when detailed switch descriptions are needed via get_switch_desc.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_tableC

Set the flow table on a switch

ParametersJSON Schema
NameRequiredDescriptionDefault
dpidYes
flowsYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description should disclose behavioral traits. It only states 'set' but doesn't clarify side effects (e.g., whether existing flows are overwritten), idempotency, authentication needs, or what happens to unmatched flows. This lack of transparency could lead to unintended consequences.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, front-loaded with the key action. It is concise, but the brevity sacrifices critical detail. While it avoids verbosity, it could include more essential information without becoming overly long.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has two parameters (one complex), no output schema, and no annotations, the description is too sparse. It does not address input formats, behavioral effects, or return values, leaving significant gaps for the agent to interpret correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It mentions 'dpid' as a switch identifier and 'flows' as flow entries, but provides no format details (e.g., dpid syntax, flow object structure). The flows parameter is an array of objects with no defined properties, leaving the agent unable to construct valid input.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'set' and the resource 'flow table on a switch', which distinguishes it from sibling tools that perform read or append operations. However, it lacks detail on the scope (e.g., whether it replaces all flows or merges), so it falls short of a perfect 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No usage context or guidance is provided. The description does not indicate when to use this tool versus alternatives (e.g., for initial configuration vs. incremental updates), nor does it mention prerequisites or limitations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 5 tool updatesv0.1.0
    • First observedappend_insight
    • First observedget_flow_stats
    • First observedget_switch_desc
    • First observedget_switches
    • First observedset_table

TDQS

B3.2/5.0
Disambiguation5/5

Each tool targets a distinct operation: listing switches, getting switch details, getting flow stats, setting the flow table, and appending an insight. No overlapping purposes.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case (append_insight, get_*, set_table), making them predictable and easy to understand.

Tool Count5/5

With 5 tools, the server is well-scoped for its purpose of OpenFlow switch management. The number falls within the ideal range and each tool provides necessary functionality.

Completeness3/5

The set covers basic operations like querying and setting but lacks tools for deleting or modifying flow rules, or managing switch connections, leaving notable gaps for full lifecycle management.

Maintenance

ActivityInactive
ResponsivenessUnresponsive

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

  • The Google GKE MCP server is a managed Model Context Protocol server that provides AI applications with tools to manage Google Kubernetes Engine (GKE) clusters and Kubernetes resources. It exposes a structured, discoverable interface that allows AI agents to interact with GKE and Kubernetes APIs, enabling them to inspect cluster configurations, retrieve Kubernetes resource YAMLs, monitor operations like cluster upgrades, diagnose issues, and optimize costs—all without needing to parse text output or use complex kubectl commands.

  • The Telnyx MCP server is an official implementation of the Model Context Protocol that enables AI clients (like Claude Desktop, Cursor, and OpenAI Agents) to interact with Telnyx's telephony, messaging, and AI assistant APIs. It provides comprehensive capabilities including making and managing phone calls, sending SMS/MMS messages, purchasing and configuring phone numbers, creating AI assistants with custom instructions, managing cloud storage buckets, scraping and embedding website content, and handling integration secrets. The server exists as both a local implementation and a remotely hosted version, allowing developers to integrate real-world communication infrastructure directly into AI applications.

  • The OpenMesh MCP Server provides decentralized, permissionless cloud infrastructure that integrates AI assistants with Web2 and Web3 applications without middlemen. It offers intelligent service discovery to identify MCP servers, acts as a universal proxy for routing requests to discovered services, implements performance optimization through usage feedback, and provides automatic fault tolerance with alternative services when servers become unavailable.

  • The BigQuery remote MCP server is a fully managed service that uses the Model Context Protocol to connect AI applications and LLMs to BigQuery data sources. It provides secure, standardized tools for AI agents to list datasets and tables, retrieve schemas, generate and execute SQL queries through natural language, and analyze data—enabling direct access to enterprise analytics data without requiring manual SQL coding.

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol server that provides programmatic access to ONOS SDN controller's network management capabilities, enabling device control, topology management, and analytics through ONOS's REST API.
    6
    GPL 3.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol server that enables management of F5 devices through natural language commands, allowing users to create, update, list, and delete network objects like virtual servers, pools, and iRules via the iControl REST API.
    13
    MIT
  • F
    license
    A
    quality
    D
    maintenance
    A Model Context Protocol server that enables LLMs to manage network topologies, labs, nodes, and configurations in the EVE-NG network emulation platform through a standardized interface.
    26
    14
    -
  • A
    license
    A
    quality
    F
    maintenance
    A Model Context Protocol server that provides network packet capture and analysis capabilities through Wireshark/tshark integration, enabling AI assistants to perform network security analysis and troubleshooting.
    4
    35
    MIT

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/davidlin2k/pox-mcp-server'

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