TowerWatch Ops Agent MCP Server
Provides the ability to run network speed tests via Speedtest.net.
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., "@TowerWatch Ops Agent MCP Serverquery metrics for latency in last hour"
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.
TowerWatch Ops Agent
An agent layer over TowerWatch ā the network-quality monitoring project ā built to demonstrate the three capabilities an enterprise agent-engineering loop needs: evaluation suites, cost/latency-aware model choice, and tool retrieval. One repo, one coherent story:
"I took my public monitoring project and built the agent layer an enterprise would need around it: an instrumented MCP server with defined SLIs, an eval harness in CI that catches seeded regressions, a cost-aware model router, and semantic tool retrieval with measured selection precision."
At a glance
Domain: TowerWatch's network-monitoring data, exposed as agent tools.
Transport: stdio first; stateless streamable HTTP as a stretch goal.
Observability: OpenTelemetry from the first tool call, into a Prometheus/Grafana stack.
Tool surface: seven tools ā
query_metrics,analyze_window,compare,query_log_events,get_monitor_status,get_runbook,run_speedtest. Contracts indocs/design/.Status: š” Contracts locked, implementation not started ā requirements, tool contracts, and decisions are committed; no code yet. See Status.
Why this project
It fills the gap between "I read about agent evaluation and routing" and "I built and measured it." Every artifact ā eval tables, benchmark numbers, precision@k charts ā is a number personally collected, not a claim from study. The domain is real data from a project the author already owns, so the story is "I extended my own production-style system," not "I did a tutorial."
The build runs under the author's own Agent Collaboration Principles: every phase's definition-of-done is a set of independently checkable artifacts ā a command that runs, a file that exists, a dashboard that renders. No "trust me, it works."
Related MCP server: production-grade-mcp-agentic-system
The three phases
The project is one build in three strictly-sequenced phases. Full specs live in
docs/specs/; the build plan is the index.
Requirements were defined upfront in a planning process and built to as a contract ā
the specs came first, the tool contracts were derived from them, and the
ADRs record every decision that shaped the surface.
Phase | Ships | Spec |
1 | Instrumented MCP server over TowerWatch data + defined SLIs + cross-model cost/latency bench | |
2 | Golden-set + rubric eval harness in CI that catches a seeded regression | |
3 | Cost-aware model router + semantic tool retrieval with measured selection precision | |
Cross-cutting | Agent-facing docs, in-repo skills, ADRs, and a measured onboarding eval ā incremental alongside the phases, never blocking |
Sequence is strict: Phase 2's evals score Phase 3's router. Don't reorder. The cross-cutting layer is the exception ā it lands incrementally and gates nothing.
Repository layout
towerwatch-ops-agent/
āāā README.md # this file ā human-facing
āāā CLAUDE.md # agent-facing anchor (read first if you're an agent)
āāā pyproject.toml # PEP 621 single source of truth ā deps, tooling config
āāā docs/
ā āāā architecture.md # intended shape (stub ā not built yet)
ā āāā specs/ # the governing build plan + 4 requirement specs
ā āāā design/ # locked tool contracts (00ā09) ā authoritative
ā āāā adr/ # architecture decision records
ā āāā production-path.md # personal-scale choices vs. enterprise needs
āāā src/towerwatch_ops_agent/ # package (marker only this pass)
āāā tests/ # pytest suite (marker only this pass)Quick start
Nothing runs yet ā this is a scaffold. These are the intended mechanics once Phase 1 lands, recorded here so the toolchain is unambiguous.
# From repo root. uv manages the environment and lockfile.
uv sync # create .venv, install deps from pyproject.toml
uv run python -m towerwatch_ops_agent # (Phase 1) launch the MCP server over stdioTesting the server interactively (Phase 1) uses the MCP Inspector:
npx @modelcontextprotocol/inspector uv run python -m towerwatch_ops_agentStatus
š” Contracts locked, implementation not started. Requirements, tool contracts, and decisions are complete and committed; no code has been written yet. Present:
Directory skeleton,
pyproject.toml,.gitignore, MIT licenseREADME,
CLAUDE.md(with binding invariants), architecture stubThe build plan and all four requirement specs in
docs/specs/Locked tool contracts ā
docs/design/00ā09: conventions, seven tool docs, skills interfaces, span schemaFixture manifest + eval design ā
10-fixture-manifest.md(curated-export model, provenance, frozen clock, answer key) and11-eval-design.md(positive-control pairing, answer-key timing)ADRs ā
docs/adr/, the decisions behind the tool surfacePR template requesting verification receipts
Deferred (not yet built ā see CLAUDE.md for the phase gates):
Phase 1 ā MCP server, tools, SLIs, cross-model bench
Phase 2 ā eval harness + CI + seeded-regression showpiece
Phase 3 ā model router + semantic tool retrieval
Curated fixture corpus ā the deterministic data behind tests and evals
In-repo skills under
.claude/skills/ādiagnose-rca,evidence-pack, plus the golden-path skills (add-tool,run-evals) created when first walked manuallyMeasured onboarding eval (
docs/onboarding-eval.md) ā first run after Phase 1def_tokens.mdā the tool-def token budget measurement (lands with Phase 1)CI workflow (
.github/workflows/) ā lands with Phase 1, when there's code to lint
For AI assistants
If you're an agent working in this repo, read CLAUDE.md first. It
carries the phase sequence, the stateless-gates working standard, and ā important while
the repo is a scaffold ā an explicit map of what exists versus what is still a stub, so
you don't reason about code that isn't there yet.
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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/kemosabe102/towerwatch-ops-agent'
If you have feedback or need assistance with the MCP directory API, please join our Discord server