Skip to main content
Glama
sjgod1427

PaperPilot

by sjgod1427

PaperPilot

An MCP server that turns a research folder — code, data, figures, notes — into a compiled, submission-ready academic paper. Runs entirely on your machine; nothing is ever uploaded.

Website: sjgod1427.github.io/PaperPilot Download: Latest release

What it does

Point PaperPilot at a research folder and it runs a five-stage pipeline:

  1. Screening — checks the research for issues that would sink a submission (test-set leakage, statistical-validity problems, illegible figures, cross-file numeric mismatches) before writing a word.

  2. Venue resolution — figures out the target venue's real formatting rules and page limits, or helps you pick one.

  3. Structure & drafting — writes the paper into a real LaTeX template, filling every page it's allowed to.

  4. Humanization — rewrites the draft for plain, direct academic prose.

  5. Final QA — checks the compiled paper against the source material for hallucinated claims before calling it done.

Related MCP server: Scholar MCP Server

Using it

Download PaperPilot.exe from the latest release and run it — see INSTALL.md for the full setup for Claude Desktop, claude.ai, or Claude Code. The website walks through the same steps interactively, including a live connection checker.

Repository layout

  • src/paper_writing_pipeline/ — the MCP server (Python, uv-managed).

  • website/ — the marketing/distribution site (Next.js, static export, deployed to GitHub Pages via .github/workflows/deploy-website.yml).

  • tests/ — Python test suite (uv run pytest).

Development

Python side:

uv sync
uv run pytest -q

Website:

cd website
npm install
npm run dev

Available Tools

21 tools
add_template_to_libraryA

Add a new template to the user's library (never writes into the bundled seed dir).

Always sets metadata["id"] to template_id, overriding whatever (if
anything) the caller passed for "id" -- this is what get_template_files
matches on, so a missing or mismatched "id" would silently make the
template unreachable (or crash list_templates() entirely if "id" is
missing), which happened for real once already.
ParametersJSON Schema
NameRequiredDescriptionDefault
filesYes
metadataYes
template_idYes
user_library_dirNo/root/.paperpilot/templates

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It discloses that the tool never writes to the seed dir, always overrides metadata['id'], and explains the consequence of a missing/mismatched id. However, it does not mention whether an existing template with the same id is overwritten, which could be a destructive side effect.

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 concise with a clear first sentence stating the purpose. The second paragraph is slightly verbose due to the historical anecdote, but it remains focused on a critical behavioral detail. Overall structure is effective and front-loaded.

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 key behavioral nuance (id override and seed dir safety) but omits return value, error conditions, and whether existing templates are overwritten. Given the tool's complexity and lack of output schema, this feels incomplete for an agent that needs to handle edge cases.

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 adds meaningful detail for template_id and metadata (explaining the id override), but files and user_library_dir are not elaborated beyond the schema. Since schema coverage is 0%, the description only partially compensates for the missing parameter documentation.

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 — 'Add a new template to the user's library' — and distinguishes it from the bundled seed directory. It also implies the tool's role in relation to get_template_files, making the purpose unambiguous and differentiated from siblings like write_file.

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 by referencing get_template_files and the library location, but it does not explicitly name alternatives or specify when to choose this tool over write_file or list_templates. The guidance is indirect rather than explicit.

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

append_project_fileB

Append to a plain, user-visible file at the project root, creating it if missing.

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYes
filenameYes
project_dirYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the burden of explaining behavior. It does state that content is appended and that the file is created if missing, but it does not mention side effects, permissions, error handling, or restrictions beyond 'plain, user-visible'.

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 wording. The core action and key condition are front-loaded and immediately understandable.

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 behavior and creation fallback, but it omits context such as what happens if project_dir is invalid, whether existing content is preserved, or what the tool returns. Given the simple operation, this is adequate but not complete.

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

Parameters2/5

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

The input schema provides no per-parameter descriptions, and the tool description only indirectly suggests that project_dir is the file location, filename names the file, and content is what gets appended. This is insufficient for fully unambiguous parameter understanding.

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 (append), the target (a plain, user-visible file at the project root), and the fallback behavior (creating it if missing). It is easy to distinguish from sibling write operations because 'append' is explicit.

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 gives no direct guidance about when to choose this tool over alternatives like write_file, write_project_file, or copy_file. The word 'append' implies adding to existing content, but no explicit usage conditions or exclusions are provided.

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

cleanup_rendered_pagesB

Remove the rendered page-image folder once it's no longer needed.

ParametersJSON Schema
NameRequiredDescriptionDefault
pdf_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

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

The description conveys the destructive nature ('Remove') but lacks details about permanence, recursive deletion, error handling, or side effects. With no annotations, the description carries the burden, offering only basic transparency.

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 filler. It efficiently conveys the core action and condition, achieving high clarity with minimal words.

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 is part of a PDF rendering workflow, but the description does not connect it to sibling tools like render_pdf_pages. It lacks information about the expected relationship between pdf_path and the folder, making it incomplete for effective use.

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 parameter pdf_path is required but the description does not explain its role. Since schema coverage is 0%, the description fails to compensate; users must infer that pdf_path identifies the PDF whose rendered folder should be removed, which is not explicit.

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 action clearly: 'Remove the rendered page-image folder'. It specifies the resource and a condition ('once it's no longer needed'), which distinguishes it from read/write/list tools. However, it doesn't explicitly explain how the pdf_path parameter maps to the folder, leaving minor ambiguity.

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 'once it's no longer needed' provides some guidance on when to use it, but it's vague and doesn't reference alternatives or concrete triggers (e.g., after render_pdf_pages). No explicit comparison with sibling tools is given.

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

compile_latexA

Compile main.tex in project_dir with Tectonic.

pdf_path is None if compilation failed to produce a PDF. log_text always
contains the full compiler output so the caller can diagnose and fix the
source before retrying.
ParametersJSON Schema
NameRequiredDescriptionDefault
project_dirYes

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral disclosure burden. It usefully reveals that pdf_path is None on failure and that log_text always contains full compiler output, giving the agent diagnostic guidance. It does not discuss side effects, but for a compile operation 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.

Conciseness5/5

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

Two sentences with no filler. The first sentence states the core action and the second adds essential failure/diagnostic behavior. Information is front-loaded and every sentence 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?

For a simple one-parameter compile tool with no output schema, the description covers the critical return behaviors: failure signaling via pdf_path and diagnostic availability via log_text. It could be slightly more explicit about the success value of pdf_path, but it is otherwise complete.

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?

Schema coverage is 0%, so the description must compensate. It does by clarifying that project_dir is the directory containing main.tex to compile. This adds meaningful semantics beyond the bare 'Project Dir' schema label.

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 states a specific action ('Compile main.tex'), the target location ('in project_dir'), and the tool used ('with Tectonic'). This clearly distinguishes it from sibling file/read/write/render 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 purpose makes the intended use obvious, but the description does not explicitly state when to prefer this tool over alternatives or mention any exclusions. Usage context is implied rather than stated.

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

copy_fileA

Copy a file byte-for-byte -- for binary files (figures, PDFs) that read_file/write_file can't safely round-trip since they decode as UTF-8 text. Use this to bring a figure from research_folder into project_dir so the paper references it with a relative path, not an absolute path pointing outside the project -- a real gap found in practice: without this, a paper compiled fine but only by \includegraphics-ing a figure from its original external location, which isn't a self-contained submission package.

ParametersJSON Schema
NameRequiredDescriptionDefault
dest_pathYes
source_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

The description clearly discloses the key behavioral trait: copying is byte-for-byte and does not perform UTF-8 decoding, which is essential for binary safety. It does not mention overwrite behavior, error handling, or return value, but the core side effect—creating a copy at the destination—is evident.

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 first sentence gets straight to the point, and the subsequent rationale is relevant. The final explanatory clause about a 'real gap found in practice' is slightly verbose and could be trimmed, but overall the description is not overly long and uses a logical structure.

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 straightforward copy operation, the description provides sufficient context: why binary copying is needed, when to use it, and the desired end state of a self-contained submission. It omits details about return values and failure modes, but these are not critical for a simple two-parameter copy 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 parameter names source_path and dest_path are self-explanatory, and the description's use of research_folder and project_dir provides some contextual mapping. However, the schema has 0% description coverage, and the description does not formally define each parameter's expected format or constraints, leaving some reliance on naming conventions.

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 opens with a specific verb and object—'Copy a file byte-for-byte'—and immediately contrasts it with read_file/write_file, making the tool's unique purpose clear. It also gives a concrete use case (bringing a figure into the project directory), which removes ambiguity.

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

Usage Guidelines5/5

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

The description explicitly states when to use this tool: for binary files like figures and PDFs that read_file/write_file cannot safely round-trip. It also explains the intended workflow—copying from research_folder into project_dir to enable relative paths—so the agent knows the exact situation 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.

final_qa_promptC

Stage 4 instructions: whole-paper consistency/hallucination/venue-fit check.

ParametersJSON Schema
NameRequiredDescriptionDefault
venue_nameYes
project_dirYes
max_roundtripsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of disclosing side effects. It mentions only that it provides 'instructions' for a check, without stating whether it reads/writes files, modifies project content, or is read-only. This leaves the tool's behavioral footprint ambiguous.

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 concisely conveys the tool's purpose and scope. It packs key terms—'Stage 4,' 'whole-paper,' 'consistency/hallucination/venue-fit'—without unnecessary 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?

Given the tool has three parameters and no output schema, the description leaves out critical context such as what the instructions produce, whether they modify the paper, and how the parameters affect the check. The brief phrase 'instructions' does not sufficiently explain the tool's operation or expected result.

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 schema has 0% parameter coverage, and the description does not explain any of the three parameters. 'venue_name' is only loosely implied by 'venue-fit,' while 'project_dir' and 'max_roundtrips' are not addressed at all. The description fails to compensate for the missing schema descriptions.

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 identifies the tool as 'Stage 4 instructions' for a 'whole-paper consistency/hallucination/venue-fit check,' which conveys its primary function. It distinguishes itself from earlier-stage prompts by mentioning 'Stage 4' and 'whole-paper,' though it does not use an explicit action verb.

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 'Stage 4' label implies it should be used after earlier stages in the workflow, but it does not explicitly state when to use it versus the sibling prompts or when not to use it. It names the checks performed, giving some context, but lacks direct guidance on sequencing or alternatives.

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

get_template_filesB

Return {filename: content} for the files that belong in a new paper project.

Excludes metadata.json and reference-only PDFs. Binary assets (images) are
base64-encoded; everything else is plain text.
ParametersJSON Schema
NameRequiredDescriptionDefault
template_idYes
user_library_dirNo/root/.paperpilot/templates

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior3/5

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

The description discloses useful behavioral details: it excludes metadata.json and reference-only PDFs and specifies encoding for binary assets. However, it does not mention whether the tool is read-only, potential errors, or any side effects, leaving some behavioral aspects implicit.

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 concise and well-structured, using a single sentence to convey the core purpose and a short follow-up for exclusions and encoding. No extraneous information is included.

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 return format and special handling of files, but it lacks context about error conditions, the meaning of 'reference-only PDFs', and parameter details. Given the tool's simplicity, it is reasonably complete but leaves some 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?

The parameter names (template_id and user_library_dir) are somewhat self-explanatory, but the description does not elaborate on their meaning or how they affect the returned files. With no parameter descriptions in the schema, the description adds little explanatory value beyond the names.

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 a mapping of filenames to content for a new paper project, which is a specific verb and resource. It does not explicitly distinguish itself from sibling tools like list_templates, but the purpose is unambiguous.

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 does not provide guidance on when to use this tool over alternatives such as list_templates or read_resource. It only describes what it returns, not the conditions or contexts in which it should be chosen.

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

humanization_promptC

Stage 3 instructions: batched parallel paragraph rewrite + correction pass.

ParametersJSON Schema
NameRequiredDescriptionDefault
batch_sizeNo
max_retriesNo
project_dirYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2/5.0
Behavior2/5

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

The description discloses that it performs batched parallel rewriting and a correction pass, which gives some insight into behavior. However, it does not state what files or content are modified, whether it is destructive, or any side effects. With no annotations, this limited information is insufficient.

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 extremely concise, which is efficient, but it is a fragment rather than a well-structured sentence. It lacks clear organization or sections, making it feel incomplete despite being brief.

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 description is too sparse to be complete. It does not mention what the tool returns, how it uses the output schema, or any important context about the rewriting/correction process. Given the existence of an output schema and three parameters, more context is needed to use the tool correctly.

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 explain any of the parameters. batch_size, max_retries, and project_dir are listed but their purposes and expected values are not described. Since there are no parameter descriptions, the agent cannot properly construct arguments.

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 clear action ('rewrite + correction pass') and identifies it as 'Stage 3 instructions,' but it is vague about the specific input, output, and scope. It does not clearly differentiate itself from other prompt tools like structure_drafting_prompt or final_qa_prompt beyond the stage number.

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

Usage Guidelines1/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. The description mentions 'Stage 3' but does not explain the overall pipeline, what conditions trigger this stage, or how it relates to sibling prompt tools. The user is left to infer usage.

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

list_directoryA

List every file under a directory, recursively, as absolute paths.

Used to discover what's actually in a research folder without already knowing the file names -- directories themselves are not included, only files.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

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

The description discloses key behaviors: lists recursively, returns absolute paths, excludes directories. Since no annotations are provided, this description carries the burden and covers the important aspects of the operation, though it does not mention edge cases like sorting or hidden files.

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 concise sentences with no redundancy. The first states what it does, the second explains the use case and reinforces the 'files only' nuance. Well-structured and to the point.

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 list operation, the description is sufficiently complete: it states the output format (absolute paths) and the exclusion of directories. The presence of an output schema likely details the return type, so the description need not repeat that.

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 single parameter 'path' is described indirectly as 'a directory' in the first sentence. While the schema provides no description, the tool description clarifies that the path must refer to a directory, giving essential context for the parameter.

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 verb 'List' and the resource 'directory', with specific behavior: recursive, absolute paths, files only. It effectively distinguishes itself from read_file and other sibling tools that operate on individual files.

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 provides a clear use case: 'Used to discover what's actually in a research folder without already knowing the file names.' It implies the alternative situation (if you need file contents, use read_file), though it does not explicitly contrast with sibling tools.

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

list_templatesA

Return metadata for every template in the library (seed + user-added).

Optionally filtered by paper_type ("conference", "journal", "survey").
ParametersJSON Schema
NameRequiredDescriptionDefault
paper_typeNo
user_library_dirNo/root/.paperpilot/templates

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

The description uses 'Return metadata,' which implies a read-only operation, but it does not explicitly state that no files are modified or that the operation has no side effects. With no annotations present, the description carries the full burden and only partially satisfies 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 concise, consisting of two clear sentences with no redundant wording. The main purpose and the optional filter are stated upfront in a compact and readable way.

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 adequate for a simple listing operation, but it does not clarify the role of user_library_dir or mention any relationship to sibling template-management tools. The presence of an output schema reduces the need to describe return values, but parameter gaps remain.

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?

Only paper_type is semantically explained in the description. The user_library_dir parameter appears in the schema with a default and path format, but its meaning and relationship to the operation are not described at all, leaving half of the parameters under-documented.

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 metadata for all templates in the library, including seed and user-added templates, and mentions the optional paper_type filter. This makes the primary purpose obvious and distinct from file-level operations like get_template_files.

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 indicates optional filtering by paper_type but does not explicitly explain when to use this tool versus sibling tools such as get_template_files or add_template_to_library. Some usage is implied, but no direct guidance or exclusions are provided.

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

read_fileA

Read a text file at any local path on the machine this server runs on.

For a client that has no local filesystem access of its own (e.g. a browser-based chat session reaching this server through a tunnel), this is how it reads research materials, main.tex, or anything else -- a client with its own file tools (Claude Code) can use those instead, but this must work the same way for clients that can't.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of explaining behavior, but it does not mention error handling, permissions, encoding, binary-file rejection, or what happens if the path is invalid. The description only says it reads a text file, leaving several behavioral aspects undocumented.

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 mostly concise and front-loads the core purpose, but the final clause 'but this must work the same way for clients that can't' is somewhat redundant with the earlier conditional sentence. Still, it is not overly verbose.

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 is simple with one parameter and an output schema, so the description does not need to detail return values, but it omits important contextual details like error behavior and whether binary files are supported. It is adequate but not fully complete for an agent deciding whether to invoke it.

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 only parameter, 'path', has no schema description, and the tool description only adds that it is 'any local path on the machine.' It does not clarify absolute vs. relative paths, path restrictions, or file-type handling, so the semantics are only partially explained.

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 ('Read a text file'), the target resource ('at any local path on the machine'), and distinguishes it from sibling tools like read_image by specifying text files. This makes the tool's purpose immediately obvious.

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

Usage Guidelines5/5

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

The description explicitly explains when to use this server-side tool versus a client's own file tools, saying 'For a client that has no local filesystem access of its own... this is how it reads... a client with its own file tools (Claude Code) can use those instead.' This provides clear usage context.

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

read_imageA

Read an image file (a figure, or a rendered PDF page) so the calling client can actually see it, not just receive a path string.

Only for genuine image files -- for a PDF page, call render_pdf_pages
first to get PNG paths, then read those here.
ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

TDQS

A4.7/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden. It discloses that the output is actual image data (not a path string), and it clarifies the tool does not handle PDFs directly. It does not explicitly mention side effects, but the read-only nature is implied by 'Read' and the context.

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 concise and well-structured. The first sentence states the core purpose, and the second sentence provides critical usage boundaries. No unnecessary 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?

The description provides all necessary context for an agent to choose and invoke this tool correctly: what it does, what input it expects, and the required workflow when dealing with PDF pages. It also distinguishes it from related tools in the sibling list.

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 schema provides no description for the 'path' parameter, so the description must compensate. It does so by explaining the parameter refers to an image file, including figures or rendered PDF pages, and specifically mentions PNG paths from render_pdf_pages. This gives sufficient context for the single parameter.

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 an image file so the client can actually see it, not just receive a path string. It explicitly distinguishes this tool from render_pdf_pages, making its purpose unambiguous.

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

Usage Guidelines5/5

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

It gives explicit guidance on when to use the tool ('only for genuine image files') and when to use an alternative (call render_pdf_pages first, then read the PNG paths). This is direct and actionable.

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

read_project_fileB

Read a plain, user-visible file previously written at the project root.

ParametersJSON Schema
NameRequiredDescriptionDefault
filenameYes
project_dirYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior3/5

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

No annotations exist, so the description carries the disclosure burden. It adds useful constraints ('plain', 'user-visible', 'previously written', 'project root') and states the read operation, but it does not disclose error behavior, encoding, or what happens when the file does not exist.

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?

A single sentence with no filler; every word contributes to defining the operation and its scope.

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?

For a simple two-parameter read tool with an output schema, the basic call shape is inferable. However, the description omits usage boundaries versus read_file and leaves parameter semantics mostly to the schema, making it adequate but not complete.

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

Parameters2/5

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

Schema description coverage is 0%, and neither filename nor project_dir has field documentation. The description only clarifies that project_dir refers to the project root, leaving filename semantics entirely implicit.

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?

States a specific verb ('Read') and resource ('plain, user-visible file... at the project root'), which distinguishes it from a general read_file and binary read_image. It does not explicitly name sibling alternatives, so it stops short of a 5.

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 is provided. 'Previously written at the project root' implies a scope, but the description does not mention read_file, read_resource, or any exclusion for arbitrary paths.

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

read_resourceB

Read a previously written piece of pipeline handoff state.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_dirYes
resource_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It indicates a read operation, which is inherently non-destructive, but it does not mention behavior for missing resources, error handling, or side effects. For a simple read tool, this is adequate but not thorough.

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 unnecessary words. It efficiently conveys 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?

The output schema is not provided, and the description does not mention the return format, possible errors, or how the resource is located relative to other tools. This leaves gaps in understanding what the agent will get back and how to handle edge cases.

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 provides only parameter names and types with no descriptions, and the description does not explain what project_dir and resource_name represent beyond the vague 'pipeline handoff state'. The meaning of these parameters is largely left to inference, making it difficult for an agent to know exactly what values to supply.

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 verb 'Read' and the object 'pipeline handoff state', which distinguishes it from write_resource. However, it could more explicitly differentiate from read_project_file, as both involve reading from the project directory.

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 'previously written piece' implies the tool is for reading resources created by write_resource, but it does not explicitly state when to prefer this over read_project_file or other sibling tools. More direct guidance would improve clarity.

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

render_pdf_pagesA

Render every page of pdf_path to a PNG, one file per page.

Clears any previously rendered pages first so a shorter re-render
never leaves stale pages behind from an earlier iteration.
ParametersJSON Schema
NameRequiredDescriptionDefault
pdf_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior5/5

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

The description explicitly discloses the side effect of clearing previously rendered pages first, which is important for an agent to understand the tool's full behavior. Since no annotations are present, the description carries the full burden and meets it well.

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 compact sentences, with the primary action first and the side-effect detail second. No unnecessary 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?

With only one parameter and no output schema, the description covers the essential behavior, including the side effect of clearing old pages. There is no missing information needed for basic usage.

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 'pdf_path' with type string and no description. The tool description mentions 'pdf_path' but adds only that it is rendered, not details about path format, file system context, or whether it is relative to a working directory. The name is self-explanatory but the description does not elaborate further.

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: 'Render every page of pdf_path to a PNG, one file per page.' It specifies the resource (pdf_path) and the exact output format, distinguishing it from unrelated sibling tools like list_directory or copy_file.

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 does not explicitly say when to use this tool versus alternatives, such as cleanup_rendered_pages. However, the note about clearing stale pages implies it is suitable for re-rendering after changes, but this is not stated as explicit guidance.

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

screening_promptD

Stage 0 instructions: pre-flight screening of a research folder.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_dirYes
research_folderYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

D1.8/5.0
Behavior2/5

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

With no annotations and a minimal description, the tool's behavior is largely opaque. 'Pre-flight screening' implies a read-only check with no destructive actions, but this is not stated. There is no mention of side effects, whether it modifies files, what it returns, or any permissions or prerequisites needed. The description does not contradict annotations (since none exist), but it also discloses almost nothing about the tool's actual behavior.

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 extremely brief, consisting of a single short sentence. While this is concise, it is so terse that it sacrifices clarity. It is front-loaded with the 'Stage 0 instructions' label, but that phrase adds little meaning. The description could be longer without becoming verbose, so the conciseness is not well-balanced with informativeness.

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

Completeness1/5

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

Given the simplicity of the tool (two string parameters, no output schema), one might argue less context is needed. However, the description is so vague that an agent cannot determine what 'screening' means, what inputs are expected, what outputs are produced, or how this step fits into a larger workflow. The lack of any behavioral or usage context makes it incomplete for reliable tool 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?

The two parameters, 'project_dir' and 'research_folder,' have no descriptions in the schema. Their names suggest they are directory paths, but the relationship between them is unclear (e.g., is research_folder a subdirectory of project_dir?). The description does not clarify the purpose or format of either parameter, leaving their semantics mostly to guesswork.

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 states 'Stage 0 instructions: pre-flight screening of a research folder,' which gives a vague sense of a checking or verification step but does not specify what the screening entails, what it verifies, or what outcome it produces. The verb 'screening' is imprecise and the resource ('research folder') is generic, leaving the purpose ambiguous.

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

Usage Guidelines1/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 any of the sibling tools. The name 'screening_prompt' suggests it might be a preliminary step, but the description does not explicitly indicate when it should be invoked, what conditions warrant its use, or how it relates to other file/resource operations. No alternatives are mentioned.

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

structure_drafting_promptD

Stage 2 instructions: draft the paper, then compile/inspect/fix until clean.

ParametersJSON Schema
NameRequiredDescriptionDefault
max_retriesNo
project_dirYes
template_idYes
research_folderYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

D1.9/5.0
Behavior2/5

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

The description mentions a compile/inspect/fix loop, implying file modifications and external commands, but it does not disclose what files are written, whether it overwrites content, or what side effects might occur. No annotations (e.g., destructiveHint) are present, so the description carries the full burden, which it fails to meet.

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, direct sentence with no unnecessary words or tangential information. It is well-structured and easy to parse, though its brevity contributes to the lack of detail in other dimensions.

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

Completeness1/5

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

Given the complexity of drafting a paper, compiling it, and iterating on fixes, the description is grossly incomplete. It does not specify the drafting methodology, how to incorporate research_folder or template_id, what constitutes 'clean', or what the output schema contains. An agent would have no idea how to execute this tool effectively.

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 input schema provides no descriptions (0% coverage), and the description does not explain any of the four parameters (project_dir, template_id, research_folder, max_retries). There is no information about how these parameters are used or what values are expected, leaving the agent completely in the dark.

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 states the action ('draft the paper') and a follow-up loop ('compile/inspect/fix until clean'), but lacks context about what paper, what template, or how it differs from sibling prompts like screening_prompt or humanization_prompt. The phrase 'Stage 2 instructions' is unexplained, making the purpose ambiguous.

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

Usage Guidelines1/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. It does not mention any conditions, prerequisites, or comparisons with sibling tools, leaving the agent without direction on selection.

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

venue_resolution_promptD

Stage 1 instructions: paper type/venue capture and template resolution.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_dirYes
domain_summaryYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

D1.3/5.0
Behavior1/5

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

With no annotations, the description must disclose side effects, read/write behavior, or output format. It does none of this, leaving the agent to guess whether the tool prompts, stores, or resolves data.

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 brief but not effectively concise; it is vague and lacks actionable structure. It reads more like a label than a useful tool description.

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

Completeness1/5

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

The description is incomplete for correct invocation: no output behavior, no parameter roles, no expected side effects, and no relation to the other pipeline prompts. A user cannot reliably predict what will happen.

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 schema provides no descriptions for project_dir or domain_summary, and the description does not clarify how they are used. Schema coverage is 0%, so the description must compensate, but it does not.

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 says 'Stage 1 instructions' and mentions 'paper type/venue capture and template resolution,' but it does not clearly state what the tool actually does, what it returns, or how it behaves. It is too vague to distinguish from the other prompt-stage tools.

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

Usage Guidelines1/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 sibling prompt tools such as screening_prompt, structure_drafting_prompt, humanization_prompt, or final_qa_prompt. 'Stage 1' implies sequencing but does not explain the decision criteria or workflow context.

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

write_fileB

Write (creating or overwriting) a text file at any local path.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
contentYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

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

The description explicitly notes that the tool creates or overwrites a file, indicating a mutating side effect. However, it does not detail potential consequences (e.g., no backup, no confirmation) or file permissions, leaving some behavioral aspects implicit.

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 directly conveys the tool's function without padding 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?

The description is sufficient for the tool's simple nature, covering the core action and parameters. It omits details about return values or error cases, but these are not critical given the tool's direct write operation.

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 parameter names 'path' and 'content' are self-explanatory, and the description clarifies that content is text and path is local. However, there is no explicit description of how content is handled (e.g., encoding, whether newline is added) or path formatting requirements, leaving some ambiguity.

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 writes a text file, creating or overwriting, at a local path. It distinguishes from sibling tools like write_project_file or write_resource by mentioning 'any local path'.

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

Usage Guidelines1/5

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

The description does not provide guidance on when to use this tool over alternatives such as write_project_file or append_project_file. No explicit conditions or preferences are mentioned.

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

write_project_fileA

Create or fully overwrite a plain, user-visible file at the project root.

Unlike write_resource (hidden internal handoff state under
.pipeline_state/), this is for deliverables the scholar is meant to read
directly, e.g. venue.md or approach.md.
ParametersJSON Schema
NameRequiredDescriptionDefault
contentYes
filenameYes
project_dirYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden. It clearly states the overwrite behavior and the file type/location, which is sufficient for typical file-write operations. No additional side effects are mentioned, but none are expected.

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, directly states the purpose, and includes the key contrast with write_resource—no redundant or irrelevant information.

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 file-write operation, the description provides sufficient context: the action, the file nature, and the location. The presence of an output schema (though not shown) means return details are not required. Minor gaps like error handling or directory creation are not critical for this 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 schema has no parameter descriptions (0% coverage) and the description does not explain the contents or roles of filename, content, or project_dir. Since schema coverage is low, the description was expected to compensate but does not.

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 ('Create or fully overwrite') and the resource ('a plain, user-visible file at the project root'), and explicitly contrasts it with write_resource for hidden internal state, making its purpose unambiguous.

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 explicitly distinguishes this tool from write_resource, but does not differentiate it from the sibling write_file, which could also write files. Thus, guidance on when to use this tool versus write_file is missing.

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

write_resourceC

Write a piece of pipeline handoff state (e.g. a screening report) for a project.

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYes
project_dirYes
resource_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior2/5

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

No annotations (readOnlyHint, destructiveHint) are present, and the description only says 'Write' without explaining side effects, overwrite behavior, or whether existing files are replaced. The behavioral implications are implicit at best.

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, compact sentence that conveys the essential purpose without extraneous words. 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?

The description lacks important context such as return value, error behavior, whether the resource is created or updated, or how it differs from similar tools. Given the moderate complexity and presence of sibling tools, more detail would be needed for confident 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?

The schema provides no descriptions for content, project_dir, or resource_name, and the tool description adds no detail about their format, allowed values, or relationships. Parameter meanings must be inferred from names alone.

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 a clear verb ('Write'), a specific resource type ('pipeline handoff state'), and a scope ('for a project'), with an example ('e.g. a screening report'). It distinguishes the tool from generic file writers, though it doesn't explicitly contrast with write_project_file or append_project_file.

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 about when to use this tool instead of alternatives like write_project_file or append_project_file. The description mentions 'pipeline handoff state' but doesn't clarify the intended use case or boundary conditions.

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.

  1. 21 tool updatesv0.1.0
    • First observedadd_template_to_library
    • First observedappend_project_file
    • First observedcleanup_rendered_pages
    • First observedcompile_latex
    • First observedcopy_file
    • First observedfinal_qa_prompt
    • First observedget_template_files
    • First observedhumanization_prompt
    • First observedlist_directory
    • First observedlist_templates
    • First observedread_file
    • First observedread_image
    • First observedread_project_file
    • First observedread_resource
    • First observedrender_pdf_pages
    • First observedscreening_prompt
    • First observedstructure_drafting_prompt
    • First observedvenue_resolution_prompt
    • First observedwrite_file
    • First observedwrite_project_file
    • First observedwrite_resource

TDQS

C2.7/5.0

Scored across 21 tools

Disambiguation3/5

Several file-related tools overlap in purpose: read_file, read_project_file, and read_resource, as well as write_file, write_project_file, and write_resource, have similar semantics and only descriptive context separates them. The prompt and template tools are more clearly distinct.

Naming Consistency3/5

Most tools use snake_case and many follow verb_noun (e.g., list_directory, read_file, write_resource), but several pipeline prompt tools are bare noun phrases (screening_prompt, venue_resolution_prompt, structure_drafting_prompt, humanization_prompt, final_qa_prompt), breaking the consistent action-oriented pattern.

Tool Count3/5

With 21 tools, the surface falls in the 16-25 'heavy' range. The count is inflated by exposing each pipeline stage prompt as a separate tool rather than one parameterized prompt tool, though the tools are still coherent for the server's purpose.

Completeness3/5

The toolset covers file, template, rendering, and pipeline handoff operations well, but notable lifecycle operations are missing: no delete/removal for project files, templates, or resources, and template management is limited to listing, getting, and adding.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    C
    quality
    B
    maintenance
    Enables academic literature management through PDF import, hybrid search, knowledge graph construction, and automated literature review generation. Combines full-text search with semantic vector search for comprehensive paper analysis.
    55
    -
  • A
    license
    A
    quality
    C
    maintenance
    A local academic tool that enables searching across nine academic sources, downloading PDFs, and performing AI-powered analysis of research papers. It also supports generating citation networks and recommending papers based on local workspace code.
    7
    15 PyPI
    95
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Provides local academic literature search and writing support by querying OpenAlex, arXiv, and Crossref, downloading open-access PDFs, extracting IMRaD sections, and appending BibTeX references.
    4
    2
    MIT