Skip to main content
Glama
link0-o

PerfLens MCP Server

by link0-o

Server Quality Checklist

58%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v0.2.0

  • Disambiguation4/5

    Most tools target a distinct step in the profiling workflow. The collection-related tools (plan_automatic_collection, execute_collection_plan, collect_project_workload, collect_profile) have some overlap but descriptions clarify their roles. Similarly, list_hotspots/get_hotspot_details and analyze_collection/analyze_profile are distinct in granularity and input type.

    Naming Consistency4/5

    Tool names generally follow a verb_noun pattern (get_, list_, analyze_, compare_), but there is some inconsistency between get_ and list_ for similar retrieval operations, and a mix of specific actions like inspect_ and resolve_. Overall, the pattern is still readable and predictable.

    Tool Count4/5

    18 tools is somewhat heavy but appropriate for the complex performance-analysis domain, covering collection, analysis, browsing, comparison, and source resolution. Each tool serves a distinct purpose, though a few could potentially be merged.

    Completeness4/5

    The tool set covers the core workflow of collection, analysis, result browsing, diagnosis bundle building, and comparison. Minor gaps include lack of a way to list stored artifacts or analyses, and no update/delete operations, but the surface is largely complete for the stated purpose.

  • Average 3.3/5 across 18 of 18 tools scored. Lowest: 2.4/5.

    See the Tool Scores section below for per-tool breakdowns.

    • No community issues in the last 6 months
    • 66 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 Apache 2.0.

  • 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.

  • Add a glama.json file to provide metadata about your server.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.json to the root of your repository:

    {
      "$schema": "https://glama.ai/mcp/schemas/server.json",
      "maintainers": [
        "your-github-username"
      ]
    }

    Then . Browse examples.

  • 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?

    Annotations indicate readOnlyHint=false, but the description says only 'Analyze', which could imply a read-only operation. It does not disclose potential side effects, required state of the artifact, or any other behavioral traits. With no annotation-derived context, this is a significant gap.

    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 front-loaded sentence with no filler. It is concise and to the point, though it may be too terse to be useful.

    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 an output schema and annotations, the description still does not convey what the analysis accomplishes, what outputs it produces, or how it fits with sibling tools. The low parameter count makes it simple, but the missing context leaves the agent guessing.

    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 does not explain what collection_id refers to, how to obtain it, or what types are valid beyond the vague 'record/sched/lock/off-CPU' in the description.

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

    Purpose3/5

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

    The description uses the verb 'Analyze' with a specific resource 'stored record/sched/lock/off-CPU collection artifact', which is more than a tautology. However, it does not distinguish this tool from siblings like analyze_profile or analyze_benchmark, and the nature of the analysis is vague.

    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?

    There is no guidance on when to use this tool vs alternatives. The description does not mention prerequisites, competing tools, or situations where another tool would be more appropriate.

    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?

    Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds 'candidate-only' scope and 'bounded' pagination behavior, which is useful but not extensive. No contradiction with 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 a single, front-loaded sentence with no filler. It is easy to parse and wastes no words, even though the content is vague.

    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?

    Despite the output schema and annotations, the description omits essential context: what analysis_id refers to, what 'candidate-only rules' mean, and how this tool relates to list_hotspots. The tool is not adequately specified for an agent to invoke it confidently.

    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, but it does not explain analysis_id, limit, or cursor. 'Bounded page' hints at pagination but is far too indirect to clarify parameter usage.

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

    Purpose2/5

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

    The description uses the vague phrase 'Apply generic candidate-only rules' but never explicitly states that it classifies hotspots or what a classification page contains. It does not distinguish the tool from sibling tools like list_hotspots or get_hotspot_details.

    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 about when to use this tool versus alternatives. 'Generic candidate-only rules' hints at a scope but does not explain use cases, exclusions, or prerequisites.

    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?

    Annotations already declare the tool as read-only, idempotent, and non-destructive, which covers the main behavioral safety profile. The description adds minor context with 'verified' and 'allowed', implying that the offset must be pre-validated and the file must be whitelisted, but it does not detail error behavior, permissions requirements, or side effects. Since annotations are strong and the description adds some useful nuance, a score of 3 is appropriate.

    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, front-loaded sentence that efficiently states the core action. It is appropriately brief and avoids fluff, but its brevity is at the expense of completeness. For a concise description, it does its job, though it could be slightly expanded without losing efficiency.

    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 that the tool has no schema descriptions and appears to be part of a larger profiling workflow, a one-sentence description is insufficient. It does not explain the role of the tool relative to siblings like 'get_source_context', the prerequisites for using it, or what the output represents. While an output schema exists, the description itself leaves too much undefined for an agent to confidently invoke the tool 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?

    With 0% schema description coverage, the description must compensate for the lack of parameter documentation. It loosely references 'module offset' and 'ELF/debug file', which map to module_offset and binary_path, but it omits any explanation of runtime_address, which is an optional but potentially important parameter. It also does not clarify the meaning of 'verified' or 'allowed' in relation to the inputs, leaving significant semantic gaps.

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

    Purpose3/5

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

    The description states a specific action ('resolve') and a resource ('verified module offset'), but the meaning of 'resolve' is ambiguous—it could mean mapping an offset to a source line, a symbol, or something else. It does not clearly differentiate from sibling tools like 'get_source_context', which likely overlaps in functionality. The phrase 'allowed ELF/debug file' adds context but not enough to fully clarify the tool's purpose.

    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 offers no explicit guidance on when to use this tool versus alternatives like 'get_source_context' or 'analyze_profile'. It does not mention prerequisites, such as verifying the offset or obtaining an allowed file list, nor does it state exclusions or typical use cases. The only implicit guidance is the focus on 'verified' and 'allowed' inputs, which is insufficient.

    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?

    Annotations already declare readOnlyHint=false and idempotentHint=true, which align with 'store' and repeated safe execution. The description adds the transformational aspect ('normalize') and persistence ('store the typed artifact'), but does not disclose details like auto-detection of source_format, potential overwrites, or error 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/5

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

    The description is a single sentence with no wasted words. It front-loads the verb 'Normalize' and includes key qualifiers ('supported', 'typed') that add value without unnecessary length.

    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?

    The tool has 3 parameters with 0% schema coverage and an output schema, but the description provides minimal context. It omits parameter semantics, behavior of format detection, and when to use the tool. Although annotations and output schema reduce the burden, the description remains incomplete for effective invocation.

    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 mentions no parameters. It fails to add meaning to 'path', 'source_format', or 'benchmark_name', and does not compensate for the lack of schema descriptions, leaving the agent without guidance on parameter usage.

    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 a specific verb ('Normalize') and resource ('supported benchmark JSON file'), and the outcome ('store the typed artifact'). It distinguishes from siblings like analyze_profile (profile) and compare_benchmarks (comparison), though it does not explicitly name alternatives.

    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 implies usage when a benchmark JSON file needs normalization, but it provides no explicit guidance on when to use this tool versus alternatives like analyze_profile or collect_profile. There are no exclusions or conditions stated.

    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?

    Annotations already convey idempotency (idempotentHint=true) and non-destructiveness (destructiveHint=false). The description adds 'store JSON' as a behavioral detail, but lacks specifics on where or how storage occurs. No contradiction with annotations.

    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 concise sentence with the verb upfront. However, the term 'allowed' is ambiguous and could be clearer, slightly detracting from the overall structure.

    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's complexity and sibling analysis tools, the description lacks usage prerequisites, storage details, and differentiation from similar tools. It leaves gaps about what 'store JSON' means and what 'allowed' implies, making it incomplete for an agent to select 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 references profile formats matching the source_type enum, but does not explain the required 'path' parameter or the 'auto' default. Added value is minimal since the enum already lists these formats.

    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?

    Description clearly states the tool analyzes profiles (folded, perf-script, perf.data) and stores JSON output. It distinguishes from collection/comparison tools by focusing on analysis, but does not explicitly reference alternatives.

    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 instead of siblings like analyze_benchmark or classify_hotspots. The phrase 'allowed profile' hints at restrictions but is vague, and no alternative tools or exclusions are mentioned.

    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?

    Annotations already indicate idempotentHint=true and destructiveHint=false, and the description does not contradict these. The word 'store' adds context that this operation persists data, but the description does not elaborate on side effects or required permissions beyond what annotations imply.

    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 concise sentence with no redundant words. It is appropriately brief for a tool with only one parameter and no need for lengthy explanation.

    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?

    Despite having an output schema and a simple single-parameter interface, the description is too sparse. It does not explain what the diagnosis artifact contains, when it should be built, or how it relates to sibling analysis tools, leaving the agent uncertain about the overall workflow.

    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?

    The schema defines analysis_id as a required string but the description gives no explanation of what it represents or how to obtain it. With 0% schema coverage in the description, the agent gets no extra semantic help beyond the title 'Analysis Id'.

    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 uses specific verbs 'Build and store' and names the resource 'diagnosis artifact', which conveys the tool's action. It is distinct from sibling tools like analyze_profile or classify_hotspots by focusing on artifact creation, though the term 'evidence-constrained' is somewhat vague.

    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. It does not mention any prerequisites, sequencing relative to other analysis tools, or scenarios where this tool is appropriate.

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

  • Behavior2/5

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

    Annotations indicate idempotent and non-destructive behavior, but readOnlyHint is false, suggesting potential side effects. The description does not clarify whether the tool writes data or what 'condition and impact checks' entail behaviorally. It adds little beyond the annotations and leaves the side-effect profile unclear.

    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 sentence with no redundant wording. It front-loads the core action ('Compare') and is appropriately concise for the information it conveys.

    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 3 parameters, no schema descriptions, and siblings with overlapping functionality, the description is too sparse. It fails to explain return values (though output schema exists), specify edge cases or prerequisites, or provide any operational context beyond a high-level purpose.

    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. The parameter names (baseline_benchmark_id, candidate_benchmark_id, minimum_practical_impact_percent) are somewhat self-explanatory, but the description does not explain the relationship between 'condition and impact checks' and these parameters, nor clarify the meaning of minimum practical impact.

    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 'Compare repeated benchmark values with condition and impact checks' clearly identifies the tool's function as comparing benchmark values, distinguishing it from profile comparison. However, the phrases 'repeated benchmark values' and 'condition and impact checks' are somewhat ambiguous and could be more specific.

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

    Usage Guidelines3/5

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

    The description implies this tool is for comparing benchmark values, but gives no explicit guidance on when to use it instead of sibling tools like compare_profiles or analyze_benchmark. There is no mention of when-not-to-use or alternative tools, leaving the usage context vague.

    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?

    Annotations already declare readOnlyHint and idempotentHint, so the description's job is to add behavioral nuance. 'Bounded page' hints at pagination but does not explain cursor mechanics, default sort order, or limits. This adds some value beyond annotations but leaves significant behavioral traits unspecified.

    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, front-loaded sentence with no unnecessary words. It efficiently communicates the core behavior, achieving maximal conciseness without sacrificing clarity.

    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 5 parameters, an output schema, and several siblings, the description is too sparse. It doesn't explain what hotspots are in this context, how pagination works, or when to use this tool. The output schema covers return values, but the lack of usage context and parameter semantics makes the description insufficient for reliable selection and invocation.

    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%, and the description mentions no parameters. It fails to clarify the meaning of sort_by enumerations (self_percent vs inclusive_percent), category filtering, or cursor pagination. Since the description does not compensate for the lack of parameter documentation, an agent would struggle to invoke correctly.

    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 states the tool's action ('Return'), resource ('hotspots'), and context ('from a stored analysis'), which clearly differentiates it from siblings like get_hotspot_details (specific details) and analyze_profile (different resource). The phrase 'bounded page' implies pagination, but it doesn't explicitly name alternatives. Overall, the purpose is clear but could be more precise with 'list' instead of 'Return'.

    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?

    There is no guidance on when to use this tool versus alternatives like get_hotspot_details or classify_hotspots. No prerequisites or exclusions are mentioned. The description only states what it does, leaving usage decisions to inference from the tool name and schema.

    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?

    The description adds meaningful context beyond the destructiveHint annotation: it explicitly says the executable runs as the MCP user, binds a specific PID, and routes through the restricted Collector broker. This gives insight into side effects and security constraints without contradicting annotations.

    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 dense sentence with no wasted words. Each phrase contributes a meaningful constraint (authorization, MCP user, PID binding, broker), but the heavy jargon reduces readability.

    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 10 parameters, no schema descriptions, and no explanation of output, the description is far from complete. It fails to clarify the meaning of modes, event lists, call graph settings, timing, or output size limits, all of which are likely critical for correct 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?

    With 0% schema description coverage, the description only implicitly explains project_root, executable, and authorization. The many other parameters (mode, events, call_graph, frequency_hz, duration_seconds, max_output_bytes) remain completely undefined, leaving significant semantic gaps.

    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 tool runs and collects a single authorized executable within a project, using the Collector broker. It distinguishes itself from broader collection tools by emphasizing the explicit authorization and the restricted broker, making the purpose concrete.

    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 like collect_profile or plan_automatic_collection. It does not mention exclusions, prerequisites, or scenarios where this tool is preferred.

    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?

    Annotations already indicate the tool is not read-only (readOnlyHint=false), idempotent (idempotentHint=true), and non-destructive (destructiveHint=false). The description adds the behavioral trait 'bounded' and the fact that it 'store[s]' evidence, which aligns with the non-read-only annotation. However, it does not explain what 'bounded' means or detail any side effects beyond storage, so transparency is moderate.

    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 concise sentence that front-loads the core purpose and outcome. Every word contributes meaning, and there is no fluff or repetition. It is well-structured and easy to parse.

    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?

    While an output schema exists (covering return values), the description is incomplete for a tool that stores evidence. It does not clarify what 'bounded' means, where evidence is stored, or whether existing evidence is overwritten. It also fails to differentiate from compare_benchmarks, which is a significant contextual gap given the sibling tools.

    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?

    The schema has 0% description coverage, and the tool description does not compensate. It mentions 'two stored analyses' which loosely maps to baseline_analysis_id and candidate_analysis_id, but it does not explain the meaning of minimum_delta_percent or how these parameters interact. The agent would have limited understanding of the parameter values' roles.

    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 ('Compare two stored analyses') and the outcome ('store bounded profile-difference evidence'). It is specific to profiles, distinguishing it from sibling tools like compare_benchmarks, which likely compares benchmarks. The verb+resource combination is unambiguous and informative.

    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. It does not explicitly name compare_benchmarks or any other sibling tool, nor does it specify conditions like 'use when you need to identify differences between profiles'. The only implied context is that two stored analyses are required, but no exclusions or alternatives are mentioned.

    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?

    Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the agent knows this is a safe read. The description adds the key constraint that it operates 'within one configured allowed workspace', which is a behavioral boundary not captured by annotations. It also says 'bounded source lines', implying it reads a limited range rather than an entire file, adding contextual value.

    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, well-structured sentence that communicates the core function immediately. It is front-loaded with the verb 'Read' and contains no unnecessary words. Every word contributes to the meaning.

    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 is concise but leaves several gaps: no usage differentiation from sibling tools, no parameter semantics beyond what the names imply, and no information about constraints like error handling when workspace_root is not configured. However, the annotations and the presence of an output schema mitigate some of these gaps, making the tool minimally viable but lacking in contextual richness for an agent navigating a complex toolset.

    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 for parameter semantics. The description only gives a high-level idea ('bounded source lines') and does not explain the roles of 'file', 'line', 'before', 'after', or 'workspace_root'. While parameter names are somewhat self-explanatory, the description fails to clarify the relationship between 'line' and the before/after values, or the significance of 'workspace_root' as a security boundary.

    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 uses the specific verb 'Read' and the resource 'bounded source lines', clearly indicating the tool reads a limited range of lines from a file. The clause 'within one configured allowed workspace' adds scope and constraint. However, it does not explicitly distinguish from sibling tools like read_artifact_page or resolve_source, though the 'bounded' and 'workspace' wording hints at its unique purpose.

    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. There is no mention of use cases, exclusions, or references to sibling tools. Users must rely on the name and the brief description alone, which is insufficient for making an informed choice among the many siblings.

    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?

    Beyond the readOnly/idempotent/non-destructive annotations, the description adds meaningful behavioral context: the plan is 'short-lived' and 'PID-bound', and crucially that it does not sample or attach. This helps the agent understand the side-effect-free, planning-only nature. It does not contradict 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 two short sentences, front-loaded with the core action and a clarifying exclusion. Every word contributes; there is no redundancy or filler.

    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?

    For a tool with 7 parameters and zero schema-level descriptions, this two-sentence description is under-specified. It does not explain how this plan relates to execute_collection_plan, what the parameters control, or what the output plan will contain. The output schema exists but does not compensate for missing usage and parameter 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?

    Schema description coverage is 0%, putting the full burden on the description to explain parameter semantics. However, the description mentions no parameter names or guidance, not even the required pid beyond implying it via 'PID-bound'. The many parameters (mode, events, call_graph, frequency_hz, etc.) are left entirely 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 description clearly states the tool's function with a specific verb (create) and resource (short-lived PID-bound collection plan). It also distinguishes itself from siblings by explicitly stating it does not sample or attach, which differentiates it from execution tools like execute_collection_plan or collect_profile.

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

    Usage Guidelines4/5

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

    The phrase 'This does not sample or attach' provides clear context that this tool is for planning only, not actual data collection. While it does not name alternative tools explicitly, the sibling naming conventions (e.g., execute_collection_plan) make the intended workflow reasonably clear. However, it could more explicitly state to use this before execute_collection_plan.

    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?

    Annotations already declare read-only, idempotent, and non-destructive behavior. The description adds meaningful behavior: pagination ('bounded page'), result ranking ('dominant'), and optional symbol filtering. It supplements the annotation-based safety profile without contradicting it.

    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, front-loaded sentence with no filler or repeated schema information. Every word contributes to the core function.

    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 covers the primary return type and optional filter, and the output schema plus annotations reduce the need for return-value details. However, it omits semantics for three of four parameters and gives no broader context about the analysis_id or pagination mechanics, leaving clear gaps.

    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%, and the description only explains `symbol` (optional containing symbol). It does not clarify `limit`, `cursor`, or `analysis_id`, which are left entirely to the schema. The description fails to compensate for the low schema coverage.

    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 uses a specific verb ('Return') and identifies the resource ('bounded page of dominant call paths') plus an optional filter ('containing a symbol'). This clearly distinguishes the tool from sibling hotspot/profile analysis tools.

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

    Usage Guidelines3/5

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

    The description implies usage for paginated call path queries, especially when filtering by symbol, but provides no explicit guidance on when to prefer this tool over alternatives or when not to use it. Usage context is present but not elaborated.

    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?

    Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds the valuable behavioral constraint of the 64 KiB read limit and specifies the artifact format as JSON. It does not contradict 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 a single, front-loaded sentence that directly states the action and key limit with no wasted words.

    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 tool has an output schema and annotations, which cover return format and safety, but the description still omits essential context about pagination semantics (e.g., whether offset is byte-based) and what artifact types are valid. It is minimally complete for a simple read tool but has clear gaps.

    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%, and the description does not explain the meaning of artifact_id, artifact_type, limit, or offset. While parameter names are somewhat self-explanatory, the description fails to compensate for the complete lack of schema documentation, leaving semantics of offset and limit ambiguous.

    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 tool reads a stored JSON artifact with a specific page size limit (64 KiB), using a specific verb and resource. This distinguishes it from sibling tools that analyze or classify hotspots.

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

    Usage Guidelines3/5

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

    The description implies usage for reading artifact data, but it does not explicitly state when to use it versus alternatives, nor does it mention pagination or context for large artifacts. No exclusions or alternative tools are referenced.

    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?

    The description adds useful context beyond the annotations by noting the collection is bounded and requires explicit authorization, which suggests safety constraints. The annotations already declare destructive/non-read-only behavior, so the extra detail is valuable and non-contradictory.

    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 terse sentence that is front-loaded with the action and includes the key safety condition, with no redundant wording.

    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?

    For a complex tool with 13 parameters and zero schema descriptions, this one-sentence description is insufficient to guide correct usage, especially regarding parameter relationships, prerequisites, and the nature of the output. The presence of an output schema does not compensate for the lack of input guidance.

    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?

    The description does not explain any of the 13 input parameters, and the schema has 0% coverage, so the agent has no guidance on how to set pid, output_path, events, etc. The only hint is the mode list, which mirrors the enum and adds little meaning.

    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 (run collection), the specific tools (perf record/stat/sched/lock/off-CPU), and the bounded nature, distinguishing it from sibling collection tools like collect_project_workload and execute_collection_plan.

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

    Usage Guidelines4/5

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

    It explicitly mentions that it should only be used after server and per-call authorization, providing a clear condition for invocation. However, it does not describe when not to use it or name alternative tools, so it stops short of a 5.

    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?

    Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds meaningful context about what the tool returns: 'bounded dominant paths, classifications, and limits,' which goes beyond the annotations without contradicting them.

    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, information-dense sentence that is front-loaded with the action and resource. Every word contributes to the meaning, with no filler or redundancy.

    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?

    Given that the tool has annotations, an output schema, and only three parameters, the description conveys the essential behavior (single hotspot, bounded paths, classifications, limits). It does not explain 'classifications' or 'limits' in detail, but the output schema likely provides that information, so the description is sufficiently complete for a read-only retrieval tool.

    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?

    The input schema has 0% description coverage, placing the burden on the description to explain parameters. The description hints at 'bounded' paths, which likely relates to call_path_limit, but it does not explicitly describe analysis_id or hotspot_id, nor does it clarify the meaning of 'limits.' This leaves the agent under-informed about parameter semantics.

    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 uses a specific verb ('Return') and resource ('one hotspot'), and further clarifies the scope with 'bounded dominant paths, classifications, and limits.' This distinguishes it from sibling tools like list_hotspots (plural) and get_call_paths, making the purpose unmistakable.

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

    Usage Guidelines3/5

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

    The phrase 'one hotspot' implies this tool is for retrieving details for a single hotspot, but it does not explicitly state when to use it over alternatives like list_hotspots or get_call_paths. No exclusions or alternative tool references are provided, so the usage is only implied.

    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?

    Annotations already indicate destructiveHint=true, non-idempotent, and non-read-only. The description adds valuable behavioral context beyond that by noting the 'restricted collector broker' (which implies access restrictions) and 'short-lived and single-use' (which explains the destructive nature: the plan is consumed). This is helpful but could be more explicit about side effects like plan invalidation after execution.

    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 sentence that front-loads the verb and includes only essential qualifiers ('restricted collector broker', 'short-lived', 'single-use'). Every word adds value, and there is no redundancy or irrelevant detail.

    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?

    Given the tool's low complexity (1 parameter, output schema present, annotations present), the description covers the core purpose and constraints. It could mention what the output represents or what 'restricted broker' means in practice, but the existing annotations and output schema fill in enough gaps for an agent to use the tool safely.

    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 coverage is 0% for the only parameter (plan_id). The description mentions 'previously planned' but never explicitly maps to the plan_id parameter, its format, or how to obtain it. It implies the parameter is the plan identifier but does not compensate for the complete lack of schema description, leaving the agent to guess the exact semantics.

    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 uses a specific verb ('Execute') and names the resource ('previously planned PID collection'), clearly distinguishing this from sibling tools like plan_automatic_collection or collect_profile. It also scopes the action to 'one' plan and highlights the 'restricted collector broker', making the tool's function unambiguous.

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

    Usage Guidelines4/5

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

    It states clear context for when to use the tool (when you have a previously planned PID collection) and adds a critical constraint (plans are short-lived and single-use). While it doesn't explicitly name alternatives or exclusions, the implication that planning happens elsewhere (e.g., plan_automatic_collection) is strong enough for an AI agent to infer appropriate usage.

    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?

    Annotations already declare readOnlyHint=true and destructiveHint=false, and the description reinforces this by explicitly stating it performs no sampling or attaching, which adds behavioral specificity about non-invasiveness. No additional side effects or return details are needed given 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?

    Single sentence, front-loaded with the action word, and every phrase adds value (perf, kernel policy, capabilities, collection-mode availability, and the negative scope).

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

    Completeness5/5

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

    For a zero-parameter inspection tool with output schema present and annotations covering safety, this description is complete. It tells the agent exactly what it will learn and what side effects it won't have.

    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?

    The tool has zero parameters, so the description carries the full semantic load. It clearly lists the categories of information available, which is sufficient for a parameterless inspection tool.

    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 uses the specific verb 'Inspect' and enumerates the exact resources (perf, kernel policy, capabilities, collection-mode availability). It also distinguishes itself from collection tools by stating 'without sampling or attaching to a process,' making it clear this is a pre-flight check, not a collection action.

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

    Usage Guidelines4/5

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

    The description implies this tool is for checking collection readiness before actually sampling/attaching, which provides clear usage context. However, it does not explicitly name alternative tools or state when not to use it, so it falls short of a 5.

    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

PerfLens MCP server

Copy to your README.md:

Score Badge

PerfLens MCP server

Copy to your README.md:

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/link0-o/PerfLens'

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