@0pvalencia/academic-linter-mcp
OfficialProvides tools for linting academic documents in Google Docs, including structure validation (APA style), compact heading views, and placeholder detection.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@@0pvalencia/academic-linter-mcpLint the current document structure for APA formatting issues"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@0pvalencia/academic-linter-mcp
MCP linter académico (APA/estructura) para JSON de Google Docs.
Cursor / Claude / VS Code
Local (recomendado si clonas el repo)
{
"mcpServers": {
"academic-linter": {
"command": "node",
"args": ["/ABSOLUTE/PATH/TO/academic-linter-mcp/dist/cli.js"]
}
}
}Tras clonar: npm install && npm run build.
npx (sin clonar)
{
"mcpServers": {
"academic-linter": {
"command": "npx",
"args": ["-y", "@0pvalencia/academic-linter-mcp"]
}
}
}Si abres este repo en Cursor y usas
npx, hace faltanpm install && npm run buildpara que el bin local exista. Sin eso,npxfalla conacademic-linter-mcp: not foundy el MCP se queda cargando.
Related MCP server: @node2flow/google-docs-mcp
Install / run
npx -y @0pvalencia/academic-linter-mcpLocal
npm install
npm run build
npm startTools
Tool | Uso |
| JSON de |
| Vista compacta de headings |
| Busca |
Complementa @0pvalencia/google-documents-mcp.
License
MIT
Available Tools
3 toolscompact_headings_viewVista compacta de headingsA
Convierte get_document_structure JSON en líneas [start-end] LEVEL "texto". Ideal para agentes (evita JSON de 100KB+).
| Name | Required | Description | Default |
|---|---|---|---|
| structureJson | Yes |
TDQS
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.
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.
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.
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.
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.
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.
lint_structureLint estructura académicaC
Analiza headings, numeración, placeholders y posibles problemas APA. Input: JSON de get_document_structure o { headings: [{text, namedStyleType, startIndex?, endIndex?}] }.
| Name | Required | Description | Default |
|---|---|---|---|
| structureJson | Yes | JSON stringificado de get_document_structure o lista de headings | |
| expectNumberedChapters | No |
TDQS
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.
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.
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.
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.
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.
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.
lint_text_placeholdersBuscar placeholders en textoA
Detecta [...], TODO, TBD, XXX, lorem ipsum en un texto plano (p. ej. read_document).
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes |
TDQS
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.
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.
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.
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.
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.
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.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
3 tool updates
v0.1.1- First observed
compact_headings_view - First observed
lint_structure - First observed
lint_text_placeholders
TDQS
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.
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.
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.
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.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Document-to-Markdown MCP server — convert PDF, Office and HTML into LLM-ready Markdown.
MCP Spec Compliance MCP — audits any MCP server.json against the official Model Context Protocol
MCP server for generating rough-draft project plans from natural-language prompts.
Hosted MCP server: convert PDFs to clean, LLM-ready Markdown with tables, formulas and OCR.
Related MCP Servers
- AlicenseBqualityCmaintenanceAn MCP server for reading, editing, and validating Microsoft Word documents with specialized support for track changes, comments, and footnotes. It enables structural auditing, heading extraction, and precise OOXML-level document manipulation through natural language tools.10043MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for Google Docs — create, read, edit, format, and manage documents through 26 tools via the Model Context Protocol.211MIT
- FlicenseNot gradedqualityCmaintenanceProvides lightweight documentation review tools including issue detection, readability scoring, style checking, and document summarization for integration with MCP-compatible clients.-
- AlicenseNot gradedqualityCmaintenanceAn MCP server that enables LLM agents to read, understand, and fill DOCX templates while preserving formatting like bold labels and fonts. It exposes tools for document upload, AST inspection, editing, and validation.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/0PValencia/academic-linter-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server