NetPulse
Provides pre-configured dashboards for visualizing network performance and health metrics.
Exposes network telemetry metrics at a /metrics endpoint for Prometheus to scrape and alert on.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@NetPulseGive me a network health summary"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
NetPulse π
An MCP server that exposes live network monitoring data as Resources and diagnostic capabilities as Tools, letting AI assistants query network health conversationally.
NetPulse bridges the gap between traditional network monitoring and AI-powered operations. It implements the Model Context Protocol (MCP) to give AI assistants like Claude real-time access to network telemetry β device status, interface metrics, latency measurements, bandwidth utilization, and active alerts β all through a clean, structured API.
Architecture
graph TB
subgraph "AI Layer"
Claude["Claude Desktop / MCP Client"]
end
subgraph "NetPulse MCP Server"
Server["server.py<br/>FastMCP"]
Resources["Resources<br/>6 data endpoints"]
Tools["Tools<br/>6 diagnostic actions"]
Prompts["Prompts<br/>3 workflow templates"]
Sim["Network Simulator<br/>7 virtual devices"]
Metrics["Prometheus Exporter<br/>/metrics"]
end
subgraph "Observability Stack"
Prom["Prometheus"]
Graf["Grafana"]
end
Claude <-->|MCP Protocol| Server
Server --> Resources
Server --> Tools
Server --> Prompts
Resources --> Sim
Tools --> Sim
Sim --> Metrics
Metrics --> Prom
Prom --> Graf
style Claude fill:#6B48FF,color:#fff
style Server fill:#0EA5E9,color:#fff
style Sim fill:#10B981,color:#fff
style Graf fill:#F59E0B,color:#fffData Flow
Network Simulator generates realistic, time-varying metrics for 7 virtual devices
MCP Resources expose read-only telemetry data (device status, interfaces, latency, bandwidth, topology, alerts)
MCP Tools provide executable diagnostics (ping, traceroute, interface check, config viewer, baseline comparison, interface restart)
MCP Prompts offer guided workflows (health briefing, troubleshooting, capacity planning)
Prometheus + Grafana provide visual dashboards alongside the AI interface
Related MCP server: LogicMonitor MCP Server
Quick Start
1. Clone the repository
git clone https://github.com/yourusername/netpulse.git
cd netpulse2. Launch the full stack
docker compose up -dThis starts:
NetPulse MCP Server on port
8080(SSE transport)Prometheus on port
9091Grafana on port
3000(login:admin/netpulse)
3. Connect Claude Desktop
Add to your Claude Desktop MCP configuration (claude_desktop_config.json):
{
"mcpServers": {
"netpulse": {
"command": "python",
"args": ["-m", "netpulse.server"],
"cwd": "/path/to/netpulse"
}
}
}Or for SSE transport:
{
"mcpServers": {
"netpulse": {
"url": "http://localhost:8080/sse"
}
}
}Now ask Claude: "Give me a network health summary" β and watch it query real telemetry!
MCP Interface Reference
Resources (Read-Only Data)
URI | Description |
| Status of all 7 monitored devices with CPU, memory, temperature |
| Interface metrics for a specific device |
| Latency matrix between all connected endpoints |
| Top 10 bandwidth consumers |
| Network topology as nodes + edges with health status |
| Currently firing alerts with severity |
Tools (Executable Actions)
Tool | Description | Key Parameters |
| Ping a device and get RTT stats |
|
| Trace network path to destination |
|
| Detailed interface diagnostics |
|
| View device running configuration |
|
| Compare current vs historical baseline |
|
| Bounce an interface (requires confirmation) |
|
Prompts (Workflow Templates)
Prompt | Description | Arguments |
| NOC morning briefing workflow | None |
| Guided connectivity diagnosis |
|
| Bandwidth analysis and projections | None |
Configuration
Environment Variables
Variable | Default | Description |
|
| Server bind address |
|
| MCP server port |
|
| Transport mode ( |
|
| Logging level |
|
| Metric polling interval (seconds) |
Device Inventory
Edit src/netpulse/config/devices.yaml to customize the simulated network topology. The default includes 7 devices across 2 data centers and a branch office.
Thresholds
Edit src/netpulse/config/thresholds.yaml to adjust alerting thresholds for CPU, memory, latency, packet loss, bandwidth, and temperature.
Fault Injection (Demo)
Inject faults to demonstrate AI-driven incident detection:
# Take down the WAN link
python -m netpulse.simulators.fault_injector --scenario link_down
# Spike CPU on the core router
python -m netpulse.simulators.fault_injector --scenario cpu_spike
# Simulate interface flapping
python -m netpulse.simulators.fault_injector --scenario interface_flap
# Take down a device
python -m netpulse.simulators.fault_injector --scenario device_down
# Saturate bandwidth
python -m netpulse.simulators.fault_injector --scenario bandwidth_saturationThen ask Claude: "Are there any network issues right now?"
Development
Local Setup
# Create virtual environment
python -m venv .venv
source .venv/bin/activate # or .venv\Scripts\activate on Windows
# Install with dev dependencies
pip install -e ".[dev]"
# Run the server locally (stdio mode)
python -m netpulse.serverRunning Tests
pytest --cov=netpulse --cov-report=term-missingCode Quality
# Linting
ruff check src/ tests/
# Type checking
mypy src/netpulse/Simulated Network Topology
βββββββββββββββ βββββββββββββββ
β core-rtr-01 βββββββββββΊβ core-rtr-02 β
β 10.0.0.1 β 10Gbps β 10.0.0.2 β
β Data Ctr A βbackbone β Data Ctr B β
ββββ¬βββββββ¬βββββ ββββββββ¬ββββββββ
β β β
10G β β 100M 10G β
β β β
βββββββββ΄βββ β βββββββββ΄βββ
βdist-sw-01β β βdist-sw-02β
β 10.0.1.1 β β β 10.0.1.2 β
βββββββ¬βββββ β ββββββββββββ
β β
1G β β
β β
βββββββ΄βββββ β βββββββββββββ
βedge-fw-01β ββββββββββΊβ wan-rtr-01 β
β 10.0.2.1 β WAN β 10.0.4.1 β
ββββββββββββ ββββββββ¬ββββββ
β 1G
ββββββββ΄βββββββ
βaccess-sw-01 β
β 10.0.3.1 β
β Branch Off 1β
βββββββββββββββAuthor
Hind Boukhairat β IoT dev specializing in network monitoring and AIOps, transitioning into AI Integration Engineering. Holder of two MCP certifications from Anthropic/Skilljar (Introduction + Advanced Topics).
NetPulse is part of a portfolio showcasing the intersection of telecom/network operations and AI orchestration.
License
MIT β see LICENSE for details.
Available Tools
6 toolscheck_interfaceB
Get detailed diagnostic information for a specific interface.
Args: device: Hostname of the network device. interface: Interface name (e.g., GigabitEthernet0/0).
| Name | Required | Description | Default |
|---|---|---|---|
| device | Yes | ||
| interface | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only states it 'get detailed diagnostic information' without mentioning side effects, permissions required, or what happens if device is unreachable. Vague.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loads the purpose, and uses a clear structure with Args list. However, it could be slightly more succinct.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists, return value explanation is not needed. But for a 2-parameter tool with no usage guidance, the description is moderately complete but lacks behavioral details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% schema description coverage, the description adds value by explaining both parameters: 'device: Hostname of the network device. interface: Interface name (e.g., GigabitEthernet0/0).' This provides clear format and examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get detailed diagnostic information for a specific interface.' The verb 'get' and resource 'interface' are specific, but it does not explicitly differentiate from sibling tools like ping_device or run_traceroute.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like ping_device or restart_interface. No when-not-to-use or prerequisite conditions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_baselineA
Compare a device's current metric value against its rolling baseline.
Args: device: Hostname of the network device. metric: Metric name (cpu_percent, memory_percent). window: Baseline window (for display context, default '24h').
| Name | Required | Description | Default |
|---|---|---|---|
| device | Yes | ||
| metric | Yes | ||
| window | No | 24h |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavioral traits. It only states the high-level operation, omitting details like what happens on missing device, invalid metric, or whether the operation is read-only. The term 'rolling baseline' is not explained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: one sentence for purpose and three short lines for parameters. No extraneous text, every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the existence of an output schema, the description does not need to detail return values, but it should clarify what 'compare' means (e.g., difference, percentage). The description is minimal and assumes agent knowledge of baselines.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, but the description compensates by adding semantics: device is 'hostname', metric lists allowed values (cpu_percent, memory_percent), window has default and display purpose. This adds needed meaning beyond the schema's type-only fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: comparing a device's current metric value against its rolling baseline. It uses a specific verb ('compare') and resource ('metric value against baseline'), and is distinct from sibling tools like ping_device or get_device_config.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. It does not mention prerequisites, context, or situations where the tool is applicable or not.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_device_configA
Retrieve the running configuration of a network device (read-only).
Args: device: Hostname of the network device. section: Config section (e.g., 'bgp', 'ospf'). Returns full config if empty.
| Name | Required | Description | Default |
|---|---|---|---|
| device | Yes | ||
| section | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It correctly states 'read-only', but does not mention authentication requirements, error handling, rate limits, or impact on the device. The read-only claim is the only behavioral insight, which is sufficient but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: one sentence for purpose plus two bullet-point parameter explanations. Every sentence adds value; no filler. The main action is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity and the presence of an output schema (which likely documents return structure), the description is nearly complete. It covers the core operation and parameter semantics. It omits potential error scenarios or prerequisites, but for a read-only retrieval tool, the missing details are minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no descriptions (0% coverage), but the tool description compensates by explaining each parameter: 'device' as hostname, 'section' with examples ('bgp', 'ospf') and behavior (returns full config if empty). This adds meaning beyond the schema's bare types and titles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Retrieve' and the resource 'running configuration of a network device'. It explicitly marks the operation as 'read-only', which distinguishes it from mutating siblings like restart_interface. The domain (network device) is precise.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains parameters (device and section) and their behavior (e.g., section examples, default full config), but does not provide explicit guidance on when to choose this tool over siblings like compare_baseline or check_interface. Usage context is implied by the tool's purpose, but no when-not or alternative references are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ping_deviceA
Ping a network device and return round-trip time statistics.
Args: target: IP address or hostname to ping. count: Number of ping packets to send (1-20, default 5).
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | ||
| target | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It states the tool pings and returns statistics, but does not mention prerequisites (e.g., network access, permissions) or potential side effects (e.g., timeouts). The core behavior is clear but not fully transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences plus parameter explanations. It is front-loaded with the purpose and contains no superfluous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 parameters, output schema present, no annotations), the description adequately covers purpose, parameter semantics, and expected output (round-trip stats). No critical information is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description compensates by explaining the 'target' parameter as an IP address or hostname and 'count' with a range and default. This adds meaningful context beyond the schema's type and default values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool pings a network device and returns round-trip time statistics. It uses a specific verb ('Ping') and resource ('network device'), distinguishing it from sibling tools like run_traceroute or check_interface.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 run_traceroute or check_interface. The description focuses on parameters but lacks context on selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
restart_interfaceA
Restart (bounce) a network interface. REQUIRES explicit confirmation.
This is a state-modifying action. You MUST set confirm=true to execute. If confirm is false or missing, an impact analysis is returned instead.
Args: device: Hostname of the network device. interface: Interface name to restart (e.g., GigabitEthernet0/0). confirm: Must be explicitly set to true to execute the restart.
| Name | Required | Description | Default |
|---|---|---|---|
| device | Yes | ||
| confirm | No | ||
| interface | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses that it is a state-modifying action, requires confirmation, and details the dual behavior (impact analysis vs. execution) based on the confirm parameter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear header, warnings, and a parameter list. Every sentence provides essential information without redundancy, making it efficient for an AI agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (3 parameters, no annotations), the description is highly complete. It covers purpose, behavior, parameters, and output (impact analysis), even though an output schema exists. No gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% schema description coverage, the description thoroughly explains all three parameters: device, interface, and confirm. It adds meaning by stating the interface format example and that confirm must be explicitly true to execute.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Restart (bounce) a network interface.' It distinguishes this from sibling tools (e.g., check_interface, ping_device) by specifying a state-modifying action that restarts an interface.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly requires explicit confirmation, explains the behavior when confirm is false (impact analysis), and sets clear usage conditions. It does not directly name alternatives but the sibling context provides differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_tracerouteA
Run a simulated traceroute to a network device.
Args: target: IP address or hostname of the destination. max_hops: Maximum number of hops (1-64, default 30).
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | ||
| max_hops | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description labels the traceroute as 'simulated,' hinting it may not be a real network operation, but provides no further behavioral details (e.g., permissions, side effects, rate limits, failure modes). With no annotations, the agent gets minimal transparency beyond the word 'simulated.'
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: one-line purpose followed by parameter docs. Every sentence is necessary. No verbosity, properly front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter tool with an output schema, the description covers basic purpose and params. However, it omits the output format/behavior (even though output schema exists, the description could still hint at what to expect), and the 'simulated' aspect is not explained. Minor gaps prevent full completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds substantial meaning to both parameters: 'target' is clarified as 'IP address or hostname,' and 'max_hops' gets range '(1-64, default 30).' Since the input schema has no descriptions (0% coverage), the description fully compensates for the missing semantic information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Run a simulated traceroute to a network device,' specifying the action (run), resource (traceroute), and scope (network device). The term 'simulated' adds a distinguishing nuance. While it doesn't explicitly differentiate from siblings, the purpose is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., ping_device, check_interface). There is no mention of prerequisites, use cases, or conditions that favor traceroute over other diagnostic tools.
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.
6 tool updates
v0.1.0- First observed
check_interface - First observed
compare_baseline - First observed
get_device_config - First observed
ping_device - First observed
restart_interface - First observed
run_traceroute
TDQS
Each tool has a clearly distinct purpose: ping and traceroute for connectivity tests, interface diagnostics, config retrieval, baseline comparison, and interface restart. No overlap in functionality.
All tool names follow a consistent verb_noun pattern in snake_case (e.g., ping_device, run_traceroute, check_interface), with no mixing of styles or vague verbs.
With 6 tools, the server is well-scoped for network diagnostic and management tasks. Each tool serves a distinct purpose without unnecessary bloat or gaps.
The set covers core network operations: connectivity test, path tracing, interface diagnostics, config retrieval, metric comparison, and a management action. Missing features like device listing or interface statistics are minor gaps for the intended domain.
Maintenance
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
- mttrlyOAuthcom.mttrly
AI-powered incident management and server monitoring via MCP.
MCP server for building and testing AI agents with multi-model experimentation and insights.
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
- SpanlyOAuthcom.spanly
MCP observability. Query live traffic, errors, duration, and alerts from your AI agent.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMCP server for network operations that lets AI assistants interact with Cisco/Juniper network devices through safe, well-defined tools like compliance audits and configuration backups.MIT
- AlicenseAqualityDmaintenanceMCP server enabling AI assistants to interact with your LogicMonitor, providing 125 tools for comprehensive monitoring and management operations.706712AGPL 3.0
- AlicenseNot gradedqualityDmaintenanceAn MCP server that enables AI agents to manage Defined Networking / Managed Nebula infrastructure, supporting tasks like network topology design, host provisioning, and security auditing through natural language.4MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that exposes the 3GPP M1 interface as AI-callable tools, enabling LLM agents to configure 5G Media Streaming sessions through natural language.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/hind77/Netpulse'
If you have feedback or need assistance with the MCP directory API, please join our Discord server