Skip to main content
Glama
scarletfantasy

pix-mcp

pix_get_core_activity

Read-onlyIdempotent

Identify every process that ran on a specific CPU core to diagnose affinity or contention problems that cause stutter.

Instructions

Everything that ran on one core, whichever process it belonged to.

pix_get_cpu_samples answers "where did this thread's time go". This answers "what was on this core", which is the question behind an affinity or contention problem: a core pinned by another process is a cause of stutter that no amount of looking at the title's own threads will reveal. threads_in_page is the page's own breakdown, and process_id on each row is how to tell whose thread it was.

busiest_process_share names the busiest real process; idle_share_of_page is the part of the page that was process 0, the Windows Idle process, which is the core having nothing to do rather than a competitor for it. A core with a low idle share and a busiest process that is not the title is the contention case.

core is an index; pix_get_timing_summary reports how many this machine had. Empty means either nothing ran there or the capture was taken with cpu_samples disabled.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
coreYes
limitNo
end_timeNo
capture_idYes
start_timeNo
cursor_positionNo
timeout_secondsNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive, and the description goes well beyond them by explaining idle_share_of_page as Windows Idle process 0, the meaning of busiest_process_share, and the empty-result condition (nothing ran or cpu_samples disabled). This contextualizes the operation without contradicting the annotations.

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 front-loaded with a one-sentence summary and every subsequent sentence earns its place by explaining output fields, idle semantics, contention detection, or the meaning of empty results. There is no filler.

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

Completeness4/5

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

For the core concept and output interpretation it is very complete, especially because an output schema exists. However, it does not cover the time-window, limit, pagination, or timeout parameters, and leaves 'core is an index' slightly ambiguous about whether it is zero-based, so it is not fully complete.

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?

With 0% schema description coverage, the description carries the burden for parameter meaning, but it only clarifies 'core' ('core is an index; pix_get_timing_summary reports how many this machine had'). The other six parameters (limit, end_time, start_time, cursor_position, timeout_seconds) receive no semantic explanation beyond their names/types, and cursor_position is left unexplained.

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 opening sentence states the resource and scope precisely: 'Everything that ran on one core, whichever process it belonged to.' It also distinguishes the tool from pix_get_cpu_samples ('where did this thread's time go' vs 'what was on this core') and from threads_in_page, so an agent can tell it apart from siblings.

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

Usage Guidelines5/5

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

It explicitly contrasts with pix_get_cpu_samples and explains the target question behind affinity or contention problems. It also gives a concrete detection rule ('A core with a low idle share and a busiest process that is not the title is the contention case') and points to pix_get_timing_summary for core count.

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