whats-running-mcp
Server Quality Checklist
Latest release: v0.1.6
- Disambiguation5/5
Each tool targets a distinct aspect of system state: daemons for persistent services, system_stats for machine health, listening_ports for network listeners, and agent_sessions for AI processes. The aggregate tool whats_running is explicitly designed to combine these, so there is no ambiguity between specific tools.
Naming Consistency4/5All tool names use lowercase snake_case and are noun phrases describing their data (daemons, system_stats, listening_ports, agent_sessions). The one outlier is whats_running, which is a phrase rather than a simple noun, but it still follows the same formatting and is easily distinguishable.
Tool Count5/5With five tools, the server is well-scoped for its monitoring purpose. Each tool covers a specific area, and the aggregate whats_running tool adds value by providing a single-call snapshot without bloating the count.
Completeness4/5The server covers the key areas of system state: daemons, system stats, listening ports, and AI agent sessions, with a combined snapshot. Minor gaps exist, such as a general process list or memory usage details, but these are not core to the defined scope and can be worked around.
Average 4.1/5 across 5 of 5 tools scored. Lowest: 3.5/5.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 25 commits in the last 12 weeks
- Last stable release on
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI is passing
This repository is licensed under MIT License.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
This repository includes a glama.json configuration file.
This server has been verified by its author.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure, but it only lists output metrics. It does not state that the operation is read-only, whether root privileges are required, or how the data is returned. This lack of context is a notable gap for an unannotated tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise line that front-loads all essential information. Every word adds value, and there is no wasted text or repetition of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, zero-parameter tool, the description covers the core output adequately. However, it omits details like units (e.g., load average 1/5/15 min, disk free in bytes vs. percent), which could slightly reduce completeness in the absence of an output schema. Still, it is appropriate for the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so the baseline score is 4. There are no parameter semantics to describe, and the description appropriately focuses on what the tool returns rather than on input configuration.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly enumerates the exact metrics provided (load average, uptime, root-disk free space), making the tool's purpose distinct from siblings like daemons or listening ports. However, it lacks an explicit verb such as 'retrieve' or 'show', so it reads as a noun phrase rather than a direct action statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied by the listed system metrics, but there is no explicit guidance on when to choose this tool over siblings, nor any mention of prerequisites or exclusions. It does hint at system health checks but falls short of clear usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that the tool reads actual loaded state (not configured) and distinguishes behavior across macOS and Linux. It also mentions the optional case-insensitive substring filter. It falls short of describing return format or permissions, but for a read-only listing tool, the provided behavioral detail is solid and exceeds a basic description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that clearly states the tool's purpose, platform behavior, and optional filter parameter. Every word earns its place; there is no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (one optional param, no output schema), and the description provides essential context: platform-specific behavior, current-state scope, and filtering. It does not need to explain return values in detail due to the low complexity. The only minor gap is not specifying what fields are shown per service, but that is not required for tool selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers the 'filter' parameter fully, so the baseline is 3. The description adds value by clarifying the filter is case-insensitive and applies to the service label, which is not stated in the schema. This extra semantic detail justifies a score above baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states this tool lists persistent services currently loaded, specifying platform-specific mechanisms (launchctl on macOS, systemd user services on Linux). It uses a specific subject ('Persistent services actually loaded right now') and differentiates itself from siblings like 'whats_running' by focusing on daemons and services rather than generic processes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does 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 versus alternatives. It does not mention sibling tools like 'whats_running' or 'listening_ports' or explain when one should choose this over them. The only contextual hint is 'actually loaded right now', implying it shows active services, but no explicit when-to-use or when-not-to-use instructions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of explaining behavior. It discloses that it reads ps/lsof directly, never touches transcripts or docs, and that patterns are configurable via WR_AGENT_PATTERNS. This gives essential insight into how the tool operates, though it omits details like required permissions or edge-case behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences long, all of which are informative and contribute to understanding the tool. It front-loads the primary purpose ('List AI-agent processes actually running') and avoids any filler or redundancies.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with one optional boolean parameter and no output schema, the description covers the essential aspects: purpose, data source, session distinction, and configuration. It doesn't detail the return structure, but that omission is acceptable given the straightforward nature of the tool and the lack of output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage for the only parameter, include_detached, with a clear description of its meaning. The tool description implies the detached/orphan distinction but does not directly explain the parameter's effect. Since the schema is thorough, the baseline of 3 applies, and the description adds no additional parameter-specific meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'List AI-agent processes actually running right now' with concrete examples (Claude Code, Codex, Aider). It distinguishes itself from siblings by focusing specifically on AI agents and reading from ps/lsof, rather than generic system stats or daemons.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool: to see currently running AI-agent processes, distinguishing terminal-attached from detached ones. It doesn't explicitly name alternatives, but the scope is specific enough to imply when it would be appropriate, and there are no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It accurately conveys that this is a read-only live snapshot and emphasizes freshness, but it does not describe the return format, potential payload size, or any edge cases. The read-only nature is implied by 'snapshot' but not explicitly stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loads the core value ('Full live snapshot in one call'), and immediately lists the covered categories. Every word earns its place with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter snapshot tool, the description sufficiently covers what the tool returns (the four categories) and when to use it. It does not describe the exact output structure, but the enumerated categories give an agent enough context to invoke the tool and interpret the response at a high level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and an empty schema, so no parameter semantics are needed. The description appropriately focuses on the output rather than inputs, which is the baseline expectation for a parameterless tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
Description defines the tool as a 'Full live snapshot in one call' and explicitly enumerates the included domains (agent sessions, TCP listeners, loaded daemons, system stats). This clearly distinguishes it from the sibling tools, each of which covers only a single domain.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly recommends using the tool 'at session start to ground yourself in what is ACTUALLY live instead of stale memory,' which provides a clear invocation context. It does not explicitly state when not to use it or name alternative tools, but the 'full snapshot' phrasing implies that narrower tools exist for focused queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does a decent job: it reveals the tool uses lsof, covers only LISTEN-state TCP ports, and includes owning process and PID. The claim 'nothing hidden, nothing assumed' signals reliability, though it omits potential permission/privilege requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two punchy sentences. The first sentence states the core function and output; the second adds usage context and a trust guarantee. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple, no-parameter tool with no output schema. The description fully covers what the tool returns (ports, process, PID) and why you'd use it (checking if a service is up), making it complete for its complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema has no properties. Baseline for 0 params is 4. The description adds no parameter-specific info because none are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists all TCP ports in LISTEN state with owning process and PID (using lsof). It is specific about the resource (listening ports) and action, and the phrase 'The definitive answer to is service X actually up?' distinguishes it from sibling tools by focusing on service availability via port listening.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool: to definitively check if a service is up by inspecting listening ports. It does not explicitly mention when not to use it or name alternative tools, but the use case is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md:
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/stcmain/whats-running-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server