Skip to main content
Glama
0PValencia

@0pvalencia/academic-linter-mcp

Official
by 0PValencia

Server Quality Checklist

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

  • Disambiguation4/5

    Each tool has a clear target: lint_structure processes document structure, lint_text_placeholders processes plain text, and compact_headings_view formats structure output. Some overlap exists in placeholder detection, but the different input types make the tools distinguishable.

    Naming Consistency3/5

    The two linting tools follow a consistent lint_ prefix, but compact_headings_view breaks the pattern with an adjective-led name. The mixture of verb prefixes and noun phrases is readable but not fully consistent.

    Tool Count5/5

    With 3 tools, the set is within the well-scoped range of 3-15. Each tool serves a distinct purpose and there is no redundancy, making the count appropriate for the server's niche.

    Completeness3/5

    The server covers structural linting and placeholder detection, but the 'academic-linter' name implies broader linting (citations, references, grammar) that is missing. The compact_headings_view utility is helpful but does not fill that gap.

  • Average 3.5/5 across 3 of 3 tools scored. Lowest: 2.9/5.

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

    • No community issues in the last 6 months
    • 2 commits in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI status not available
  • 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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It states what is analyzed but does not mention whether the tool mutates anything, whether it requires permissions, what the return format is, or how it handles errors. The verb 'Analiza' hints at read-only behavior, but this is not explicit enough.

    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 immediately states the purpose and then gives an input spec. There is no filler or redundancy; it could be slightly richer with output info, but as written it is appropriately concise.

    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?

    With no output schema and no annotations, the description should cover return semantics, but it does not. It sufficiently detailed the input shape, yet the agent is left without information about what the lint results look like or how to interpret them, which is a significant gap for an 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 schema describes structureJson and leaves expectNumberedChapters with only a default value, so coverage is partial. The description adds valuable shape details for structureJson — '{ headings: [{text, namedStyleType, startIndex?, endIndex?}] }' — going beyond the schema's generic 'JSON stringificado' note. However, expectNumberedChapters remains unexplained in both schema and description.

    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 starts with 'Analiza headings, numeración, placeholders y posibles problemas APA' — a specific verb and target resource that clearly identify this as a structural lint/analysis tool. It covers a distinct set of concerns (headings, numbering, APA issues) but does not explicitly differentiate its scope from sibling tools like lint_text_placeholders or compact_headings_view.

    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 explicit when-to-use guidance or alternatives. It implies that input should come from get_document_structure, but it doesn't state when to prefer this tool over its siblings or what conditions make it applicable.

    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?

    With no annotations, the description carries the full burden for behavioral disclosure. It states that the tool detects placeholders but does not mention whether it is read-only, what it returns, or any side effects. The list of detected patterns is useful, but important behavioral details are missing.

    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 efficiently conveys the tool's purpose. Every word adds value: it lists explicit patterns and gives a practical example, with no filler or repetition.

    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 simple tool with no output schema and no annotations, the description should explain the return value. It only says what is detected, not whether the tool returns a list, a count, or a boolean. The example with read_document provides some context, but the lack of output semantics leaves the tool incomplete.

    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 schema provides only the parameter name 'text' with a string type and minLength. The description adds meaning by indicating that the input should be plain text and ties it to a use case like read_document. However, it does not explain the expected format or whether the text is a single string of arbitrary length.

    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: detecting specific placeholder patterns like [...], TODO, TBD, XXX, and lorem ipsum in plain text. It names the resource (text) and the action (detect), and the example with read_document helps distinguish it from sibling tools focused on structure or headings.

    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 clear context by specifying that it operates on plain text, with an example use case (read_document). It does not explicitly mention when not to use it or name alternative tools, but the example and the tool name make the intended usage clear.

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

  • Behavior3/5

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

    With no annotations, the description carries the full burden. It describes the conversion behavior and output format, but does not disclose edge cases (e.g., invalid JSON handling), whether the operation is read-only, or any side effects. It adds useful context (reduces payload) but lacks depth.

    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 long, front-loaded with the action, and contains no filler. Every sentence adds value: the first defines the transformation and output, the second explains the use case and benefit.

    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 one-parameter tool with no output schema, the description provides the input source, output format, and intended benefit. It is fairly complete, though it leaves some field semantics (e.g., what 'LEVEL' and 'start-end' represent) implicit. This is acceptable given the tool's simplicity.

    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 description mentions the input as 'get_document_structure JSON', which identifies the expected source of the `structureJson` parameter, but does not elaborate on its structure or constraints. With 0% schema description coverage, this partial explanation is helpful but not fully compensatory.

    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 ('Convierte') and resource ('get_document_structure JSON'), and specifies the exact output format (`[start-end] LEVEL "texto"`). This clearly distinguishes it from sibling tools like lint_structure and lint_text_placeholders, which have different purposes.

    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 gives clear context for when to use the tool: 'Ideal para agentes (evita JSON de 100KB+)'. It implies it is for reducing large JSON payloads, and the sibling tools are linters, so no confusion arises. However, it does not explicitly state when not to use it or mention alternative tools.

    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

academic-linter-mcp MCP server

Copy to your README.md:

Score Badge

academic-linter-mcp 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/0PValencia/academic-linter-mcp'

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