Skip to main content
Glama
ei-nakamura
by ei-nakamura

Server Quality Checklist

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

  • Disambiguation4/5

    Most tools have distinct purposes like analyzing concerns, dead code, or screen mappings. However, a few tools like analyze_impact, introspect_model, and dependency_graph may overlap in scope, though descriptions help differentiate them.

    Naming Consistency4/5

    All tools follow the consistent prefix 'rails_lens_' and use snake_case. The naming pattern mixes verb-object (analyze_impact, extract_concern_candidate) with noun phrases (dead_code, dependency_graph), but the overall style is predictable.

    Tool Count3/5

    With 19 tools, the count is in the borderline range (16-25). For a comprehensive Rails analysis server, the breadth is justified, but some tools could potentially be merged without losing clarity.

    Completeness5/5

    The tool set covers a wide range of Rails analysis needs: models, schema, routes, migrations, callbacks, dependencies, dead code, test mapping, screen mapping, and more. There are no obvious gaps for the intended purpose of understanding and refactoring Rails applications.

  • Average 3.4/5 across 19 of 19 tools scored. Lowest: 2.2/5.

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

    • No community issues in the last 6 months
    • 0 commits in the last 12 weeks
    • No stable releases found
    • 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.

  • 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

  • Behavior3/5

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

    Annotations already provide readOnlyHint=true and idempotentHint=true, so the safety profile is clear. The description adds no behavioral context beyond that, but does not contradict annotations. A score of 3 is appropriate as minimal value is added.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness2/5

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

    The description is extremely short (one phrase), but it sacrifices informativeness for brevity. It is not front-loaded with key details; it merely restates the tool's name.

    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 complexity of tracing callback chains and the presence of an output schema, the description should explain what the trace reveals (e.g., order, dependencies). It lacks completeness for a tool with two required parameters and no parameter documentation.

    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%, meaning the schema provides no descriptions for model_name or lifecycle_event. The description does not clarify these parameters (e.g., what 'lifecycle_event' values are valid), failing to compensate for the schema gap.

    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 'コールバック連鎖トレース' (Callback chain trace) is essentially a translation of the tool name, providing no specific verb or resource. It fails to distinguish from sibling tools like rails_lens_data_flow or rails_lens_dependency_graph, which could also involve tracing.

    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 on when to use this tool versus alternatives. There is no mention of prerequisites, context, or exclusions, leaving the agent to infer usage from the name alone.

    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 that the tool is read-only, idempotent, and non-destructive. The description adds no further behavioral context, but it does imply a read operation via 'generation'. Given high annotation coverage, this is adequate.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness2/5

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

    The description is extremely concise (a single phrase), but it is under-specified, lacking necessary detail. Conciseness should not come at the cost of 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 complexity of dependency graphs and the presence of an output schema (unseen), the description is incomplete. It does not explain what the graph represents, how depth affects it, or how to interpret the output.

    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?

    The description does not mention any parameters. With 0% schema description coverage, the description must compensate, but it completely ignores the parameters, leaving the agent confused about 'entry_point', 'depth', and 'format'.

    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 clearly states it generates a dependency graph, but it lacks specificity about what kind of dependencies (e.g., Rails model/class relationships) and does not differentiate from sibling tools like 'circular_dependencies' or 'data_flow'.

    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. There are no exclusions, prerequisites, or context clues about appropriate usage scenarios.

    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 readOnlyHint=true and destructiveHint=false, so the description adds value by specifying the output content (MRO, ancestor chain, method owner). However, it omits other behavioral aspects like performance or response structure.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness3/5

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

    The description is a single sentence, which is concise but too brief given the tool has three parameters. It is front-loaded with the main purpose, but omits essential parameter details, making it under-specified.

    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, the description lacks explanation of parameters and does not provide enough context for correct invocation. The tool has one required parameter and two optional ones, but the description offers no hints on how to use them.

    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?

    With 0% schema description coverage, the description must compensate by explaining parameters, but it fails to mention any of the three parameters (model_name, method_name, show_internal). The schema only provides names, 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 the tool returns MRO, ancestor chain, and method owner for a model. It uses a specific verb ('返す') and resource ('メソッド解決順序'), but does not differentiate from siblings like rails_lens_introspect_model, which may also return model 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?

    The description provides no guidance on when to use this tool versus alternatives (e.g., rails_lens_introspect_model). It does not mention prerequisites or typical use cases.

    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 provide readOnlyHint, idempotentHint, and destructiveHint. The description adds context that it returns gem-specific influences, which is useful but minimal. No additional behavioral details like error handling or response structure are provided.

    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 that front-loads the core purpose. However, it lacks structure for readability (e.g., bullet points) and additional details could be added without losing conciseness.

    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 the presence of many siblings, the description is incomplete. It does not explain how to use the optional gem_name parameter or provide examples. The output schema likely covers return values, but invocation guidance is missing.

    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 does not mention any parameters or their meanings. The tool has two parameters (model_name required, gem_name optional), but the description offers no guidance on how to use them.

    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 that the tool returns gem methods, callbacks, and routes affecting a model. It uses a specific verb and resource, but does not explicitly differentiate it from sibling tools like rails_lens_introspect_model or rails_lens_trace_callback_chain.

    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 on when to use this tool versus alternatives. The description does not mention prerequisites, constraints, or scenarios where this tool is preferred over siblings.

    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=true, idempotentHint=true, and destructiveHint=false, indicating a safe, read-only operation. The description adds no further behavioral details (e.g., how results are returned or limitations). With annotations covering the safety profile, the description's lack of additional context is adequate but not excellent.

    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 extremely concise (a single phrase). While it is front-loaded and has no unnecessary words, it is almost too terse, sacrificing informativeness for brevity. A slightly longer description could improve clarity without losing conciseness.

    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 three parameters, one required, and an output schema, along with a large set of sibling tools, the description is insufficient. It does not explain what 'references' means, the scope of search, or how results are structured. The output schema exists but its content is not provided; the description should compensate but doesn't.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The input schema has descriptions for all three parameters ('Search type', 'Search query', 'Search scope'), so schema coverage is effectively 100% despite context indicating 0%. The tool description does not add any extra meaning beyond what the schema provides, meeting the baseline of 3.

    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 'コード参照検索' (code reference search) indicates the tool finds references but doesn't specify what kind (e.g., method, model, constant). It is not a tautology and provides a general purpose, but lacks specificity to distinguish it from sibling tools like rails_lens_explain_method_resolution or rails_lens_dead_code.

    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. Sibling tools include many search-like tools (e.g., rails_lens_explain_method_resolution, rails_lens_dead_code), and the description offers no context for choosing this one.

    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 read-only, idempotent, non-destructive behavior. The description adds that the tool analyzes concern internals, which is consistent but does not provide additional behavioral context beyond 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 a single, front-loaded sentence with no wasted words. It efficiently communicates the core purpose.

    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 an output schema existing, the description fails to explain the sole input parameter. For a tool with many siblings, more context about the analysis scope and output would be beneficial.

    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 coverage is 0%, and the description does not explain the 'concern_name' parameter. It does not add format, constraints, or examples, leaving the agent with no guidance beyond the parameter name.

    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 is specific: it states the tool analyzes Rails Concerns, focusing on include relationships and methods. It clearly distinguishes from sibling tools like 'analyze_impact' or 'data_flow'.

    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 on when to use this tool versus alternatives. The single sentence does not provide context about when not to use it or mention any 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 indicate read-only, idempotent, non-destructive behavior. The description adds the analysis order but does not elaborate on return values, side effects, or other behaviors beyond 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?

    Two sentences clearly define purpose and analysis order with no redundancy. Front-loaded with the main purpose.

    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?

    Given the tool's complexity and presence of an output schema, the description provides minimal context beyond purpose. Parameter usage and output format are not described, but the schema covers parameters adequately.

    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 parameters. The input schema includes descriptions for each property, so the description adds no value for parameter understanding.

    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 visualizes data flow from HTTP request to DB storage, specifying the analysis order. It distinguishes the tool from siblings by its broad scope, though not explicitly.

    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 mentions the analysis order but provides no guidance on when to use this tool versus sibling tools like 'rails_lens_trace_callback_chain' or alternatives, nor any 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?

    Annotations already provide readOnly, idempotent, non-destructive hints. The description adds that it detects callback mutual updates and bidirectional associations, which is helpful for understanding scope. No contradictions 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 sentence that effectively summarizes the tool's purpose. It is front-loaded with the main action. However, it lacks additional structure or context that would further improve clarity.

    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?

    While the tool has an output schema, the description only mentions Mermaid visualization, omitting that JSON output is also available. For a circular dependency detector, this is a notable gap. The description is adequate but not fully complete.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The tool description does not describe any parameters, but the input schema provides full descriptions for both 'format' and 'entry_point' with defaults and optionality. Since schema coverage is high, baseline of 3 is appropriate.

    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 detects circular dependencies between models and visualizes them with Mermaid diagrams, distinguishing it from related siblings like dependency_graph or dead_code. However, it only covers visualization in Mermaid, missing the JSON output option.

    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 on when to use this tool versus alternatives such as dependency_graph or trace_callback_chain. No mention of prerequisites or context, leaving the agent to infer 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, idempotentHint=true, destructiveHint=false, so the safety profile is clear. The description adds behavioral context by detailing the three modes and their outputs (e.g., 'returns all files', 'returns all screens'). This adds value beyond annotations.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness3/5

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

    The description is concise with two paragraphs and minimal filler. However, it lacks a structured breakdown of parameters or return formats. It earns its place but could be more organized.

    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 main modes and their return types (files, screens, ledger), which is adequate for the primary use cases. But given the 9 parameters and lack of output schema detail, it may not address all edge cases or parameter combinations.

    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 explains how to use each mode (e.g., URL/controller for mode1, file path for mode2) but does not describe parameters like 'format', 'locale', 'group_by', 'include_api', or 'method_name' in detail. This is insufficient given the 9 parameters.

    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 provides bidirectional mapping between screens and source code, listing three specific modes. The verb '提供する' and resource '画面とソースコードの双方向マッピング' make purpose unambiguous. However, it does not explicitly distinguish from sibling tools, though the screen-mapping focus is evident from the name.

    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 second paragraph gives explicit usage guidance: 'Before changing screens, use this tool to check impact range.' This tells when to use. However, there is no when-not-to-use or alternatives mentioned, limiting completeness.

    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 read-only, idempotent, non-destructive behavior. The description adds valuable context about the specific data returned (schema, indexes, foreign keys, migration history) and that it provides warnings and templates, which goes beyond annotation hints.

    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 sentence that concisely captures the tool's purpose. It is front-loaded with the key outputs. Slightly more structure (e.g., listing items) could improve readability, but it is efficient.

    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 main outputs but does not explain how the operation parameter influences the returned data. An output schema exists, so return values don't need elaboration, but the role of 'operation' in customization is missing.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The input schema already provides clear descriptions for both parameters (operation and table_name). The description does not add parameter-level meaning beyond what is in the schema. With high schema coverage, a baseline of 3 is appropriate.

    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 it returns table schema, indexes, foreign keys, and migration history, with warnings and templates. It is specific about the resource (table) and the action (returning context). However, it does not explicitly differentiate from sibling tools like rails_lens_get_schema or rails_lens_introspect_model, which may overlap somewhat.

    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 on when to use this tool versus alternatives. It does not mention prerequisites, conditions, or when it should be avoided. The description only states what it does, not when it is appropriate.

    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. Description adds that results include deletion safety with confidence, going beyond the structured metadata to explain behavioral output.

    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 in Japanese efficiently conveys the tool's purpose without extraneous words. Front-loaded with key action verbs.

    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?

    Covers main functionality and output meaning, but could mention that output schema provides structured results. Given output schema exists, description is sufficiently complete for a detection tool.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Main description has 0% parameter coverage, but input schema provides clear descriptions for scope, confidence, and model_name. Description does not add further meaning beyond schema.

    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?

    Description clearly states the tool detects unused methods, callbacks, and scopes, with confidence reporting. This specific verb-resource structure distinguishes it from sibling tools like data flow or dependency analysis.

    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 on when to use vs alternatives like rails_lens_find_references or rails_lens_trace_callback_chain. The description is purely functional without usage context.

    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 provide readOnlyHint=true, idempotentHint=true, and destructiveHint=false. Description adds valuable context about analyzing cohesion and providing evidence, which enhances transparency beyond 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.

    Conciseness4/5

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

    A single concise sentence that front-loads the purpose. No unnecessary words, but could be slightly more structured (e.g., break into steps). Still efficient.

    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 an output schema exists, the description does not need to detail return values. It mentions 'konsho' (evidence) which is helpful. However, it omits prerequisites (e.g., that the model must exist and be a Fat Model). Overall adequate for a read-only analysis 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?

    Schema description coverage is 0% (though schema itself has parameter descriptions). The tool description adds no additional meaning beyond what the schema already provides for model_name and min_cluster_size. Does not explain parameter format, constraints, or usage context.

    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?

    Description clearly states it analyzes Fat Model methods by cohesion and presents Concern extraction candidates with evidence. Uses specific verb-resource pairing and distinguishes from siblings like rails_lens_analyze_concern which deals with existing concerns.

    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?

    No explicit when-to-use or when-not-to-use guidance. However, from sibling context, it is implied that this tool is for extracting new concern candidates while others analyze existing concerns. Missing explicit alternatives or 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?

    Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, establishing a safe, read-only profile. The description adds no additional behavioral context beyond the verb 'get', which aligns with the annotations. No contradictions; the description is neutral but not informative beyond 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, concise sentence with no wasted words. It is front-loaded and perfectly sized for a tool with no parameters.

    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 no parameters and an output schema (not shown), the description is nearly complete. It could benefit from mentioning that it returns the full schema structure, but the context of the sibling tools and annotations make it sufficiently clear. The output schema likely provides the necessary details.

    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 input schema has zero parameters and 100% coverage via schema description. According to the rubric, when there are 0 parameters, the baseline is 4. The description does not need to elaborate on parameters, and no value is added or lost.

    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 'RailsアプリのDBスキーマ情報を取得' clearly specifies the verb 'get' and the resource 'DB schema information' for a Rails application. It is specific and distinct from the sibling tools, which focus on analysis, dependencies, or code inspection rather than schema retrieval.

    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. With 18 sibling tools, the lack of usage context or prerequisites leaves the agent without decision support. The description merely states what it does without any conditional or exclusionary information.

    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 already declare the tool is read-only, idempotent, and not destructive. The description adds no additional behavioral context, such as whether models are fetched live or cached, if the list includes all models (e.g., system vs. application models), or performance implications. Given the annotations, a higher score would require extra value beyond 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 concise sentence in Japanese that directly states the purpose. It is front-loaded and contains no extraneous information. Every word earns its place.

    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?

    The description is sufficient for a simple list tool with no parameters and an output schema present. It clearly states what the tool retrieves. However, it could be more complete by clarifying whether the list includes all models or only those in certain namespaces, but the presence of an output schema mitigates this gap.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The tool has no parameters (schema coverage 100%). The description correctly mentions no parameters, so it doesn't need to add meaning beyond the schema. Baseline score of 3 is appropriate.

    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 name 'list_models' and description 'Railsアプリのモデル一覧を取得' clearly state the tool's purpose: retrieving a list of models in a Rails application. It uses a specific verb (list) and resource (models), and distinguishes from siblings like 'introspect_model' (single model) and 'get_schema' (database schema).

    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 usage when a list of all models is needed. While no explicit guidance on when not to use is given, the context of sibling tools (e.g., 'introspect_model' for details) makes the use case clear. No alternatives or exclusions are stated, but the tool's simplicity and uniqueness make this acceptable.

    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 read-only, idempotent, non-destructive. Description adds that the tool returns an execution command, providing extra behavioral context beyond 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 that front-loads the action and output. No extraneous content; every word is necessary.

    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 existence of an output schema (not shown here), description does not need to detail return values. It adequately describes the tool's purpose and main behavior, though could mention the Rails-specific context.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema already provides descriptions for both parameters ('target' and 'include_indirect') with examples. Description does not add further parameter details beyond what the schema specifies.

    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?

    Description clearly states verb (検出する/detect) and resource (テストファイル/test files), and specifies output (実行コマンドを返す/return execution command). It distinguishes from sibling tools like rails_lens_analyze_concern or rails_lens_dependency_graph.

    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 explicit when-to-use or when-not-to-use guidance. No mention of alternatives among siblings. Usage is implied only from the purpose.

    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 already indicate readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds minimal behavioral context beyond 'returns all routing in JSON'. No additional traits like rate limits or auth needs are disclosed.

    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, front-loaded with the purpose, and contains no wasted words or redundancy.

    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 tool with zero parameters, annotations, and an output schema, the description is complete. It tells the agent exactly what the tool does and the format of its output.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema coverage is 100% (no parameters), so baseline is 3. The description does not add parameter info because none exist. It adequately covers the tool's function.

    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 returns all Rails routing in JSON format, with a specific verb ('returns'), resource ('all routing'), and output format ('JSON'). It distinguishes itself from siblings as the only tool dedicated to routes.

    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?

    While there is no explicit when-to-use or when-not-to-use guidance, the tool is straightforward (no parameters, read-only). The context implies it should be used to inspect routing, and the description is clear enough for an AI agent.

    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 idempotentHint=true, so the description adds value by specifying the type of analysis (impact across multiple areas). It does not contradict annotations and provides behavioral context beyond the structured fields.

    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 in Japanese that conveys the core purpose efficiently. Every word is necessary, no fluff.

    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 annotations cover safety and idempotency, parameters are well-documented in schema, and an output schema exists (not shown), the description sufficiently adds the analysis scope. It is complete for a non-destructive analysis tool.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The input schema includes descriptions for all three parameters (target, model_name, change_type). The tool description does not add any additional meaning beyond what the schema already provides, so baseline score of 3 is appropriate.

    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 analyzes impact range when changing columns or methods, and explicitly lists covered aspects (callbacks, validations, views, mailers). This distinguishes it from sibling tools like find_references or trace_callback_chain, which have narrower scopes.

    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 when planning a column/method change, but does not explicitly state when to use this tool vs alternatives (e.g., find_references for simple references). No exclusions or prerequisites 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 provide readOnlyHint=true and destructiveHint=false. The description adds context by detailing what the tool returns (dependencies like associations, callbacks, etc.) and the usage purpose, which goes beyond the annotations. It does not describe any additional behavioral traits, but the annotations already cover safety. Score 4.

    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 sentences: the first states the function, the second gives usage advice. No wasted words, front-loaded with the key action. Perfectly concise and structured.

    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 an output schema (so return values are documented elsewhere) and annotations are present, the description is sufficiently complete. It covers what the tool does, when to use it, and lists the dependency types. It could mention the optional 'sections' parameter briefly, but overall it is adequate for this complexity. Score 4.

    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 input schema provides descriptions for both parameters (model_name with example, sections with default). The tool description adds value by listing the types of dependencies (associations, callbacks, etc.), which gives meaning to what 'sections' might include. Despite context signals indicating 0% schema description coverage, the actual schema has descriptions, so the bar is lowered. The tool description enhances understanding beyond the schema, justifying a 4.

    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 that the tool returns all dependencies of a model (associations, callbacks, etc.), which is specific and actionable. However, it does not explicitly differentiate from sibling tools like rails_lens_analyze_impact or rails_lens_dependency_graph, so a score of 4 is appropriate.

    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 provides explicit usage guidance: 'Before changing a model, be sure to check the scope of impact with this tool.' This tells the agent when to use it. It does not mention when not to use it or alternatives, so it scores 4.

    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 show idempotentHint=true and destructiveHint=false. The description adds detail that the tool can invalidate either a specific tool's cache or all caches, which is beyond what annotations provide. No contradictions.

    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 short sentence in Japanese, front-loaded with the main action and parameter nuance. No wasted words.

    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 a simple tool with one optional parameter and an output schema, the description is minimally adequate. It covers the essential behavior. Could mention return value briefly, but output schema exists.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters5/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 0%, so the description bears full burden. It explains the single parameter 'tool_name' well: when omitted, the action targets all caches; when specified, it targets that tool's cache. This adds significant meaning beyond the schema.

    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 explicitly states the action (manually invalidate cache) and the resource (cache, optionally scoped to a tool). This distinguishes it from all sibling tools, which are analytical in nature.

    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 indicates when to use (to manually invalidate cache) and provides a conditional usage note (if tool_name is omitted, invalidate all caches). It does not discuss alternatives or when not to use, but the context 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

rails-lens MCP server

Copy to your README.md:

Score Badge

rails-lens 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/ei-nakamura/rails-lens'

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