Skip to main content
Glama

Start a manuscript preview

review_manuscript
Idempotent

Use this when the user wants Manusights to review, check or assess a scientific manuscript they attached (PDF, Word, ODT, RTF, TXT, Markdown or LaTeX, up to 75 MB). Starts a pre-submission preview and returns a review_id right away. The preview takes a few minutes, so read it afterwards with get_manuscript_review using the same review_id. While processing, report status only; do not add a preliminary critique. Report only returned findings when ready. Each account can start a limited number of previews per day from connected apps; the result says when the limit is reached. Calling again with the same file and target journal returns the same review instead of starting another. Do not use it to write, rewrite or edit text, for figures or data files, or when no manuscript is attached.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "manuscript": "<manuscript>"
    },
    "name": "review_manuscript"
  }
}

Input Schema

NameRequiredDescriptionDefault
manuscriptYesThe manuscript file the user attached.
target_journalNoThe journal the author plans to submit to, only if the user named one.

Output Schema

NameRequiredDescriptionDefault
previewYes
filenameYes
next_stepYes
review_idYes
created_atYes
full_reviewYes
target_journalYes
check_again_after_secondsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed37 schema fields changed
    • removedOutput schema / properties / check_again_after_seconds / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / check_again_after_seconds / type
      Added value: +[
      +  "number",
      +  "null"
      +]
    • removedOutput schema / properties / created_at / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / created_at / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / filename / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / filename / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / full_review / properties / download_url / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / full_review / properties / download_url / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / full_review / properties / message / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / full_review / properties / message / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / full_review / properties / progress_percent / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / full_review / properties / progress_percent / type
      Added value: +[
      +  "number",
      +  "null"
      +]
    • removedOutput schema / properties / full_review / properties / report_url / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / full_review / properties / report_url / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • changedOutput schema / properties / preview / properties / citations / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "detected": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "flagged": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "matched": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      }
      -    },
      -    "required": [
      -      "detected",
      -      "matched",
      -      "flagged"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "detected": {
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      },
      +      "flagged": {
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      },
      +      "matched": {
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      }
      +    },
      +    "required": [
      +      "detected",
      +      "matched",
      +      "flagged"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / preview / properties / coverage_warning / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / preview / properties / coverage_warning / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / preview / properties / message / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / preview / properties / message / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / preview / properties / readiness_band / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / preview / properties / readiness_band / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / preview / properties / readiness_score / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / preview / properties / readiness_score / type
      Added value: +[
      +  "number",
      +  "null"
      +]
    • removedOutput schema / properties / preview / properties / top_risks / items / properties / location / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / preview / properties / top_risks / items / properties / location / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / preview / properties / top_risks / items / properties / quote / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / preview / properties / top_risks / items / properties / quote / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / preview / properties / top_risks / items / properties / severity / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / preview / properties / top_risks / items / properties / severity / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / preview / properties / top_risks / items / properties / suggested_fix / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / preview / properties / top_risks / items / properties / suggested_fix / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / preview / properties / top_risks / items / properties / summary / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / preview / properties / top_risks / items / properties / summary / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / preview / properties / verdict / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / preview / properties / verdict / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / target_journal / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / target_journal / type
      Added value: +[
      +  "string",
      +  "null"
      +]
  2. Changed3 schema fields changed
    • addedOutput schema / properties / preview / properties / confidence
      Added value: +{
      +  "anyOf": [
      +    {
      +      "enum": [
      +        "low",
      +        "medium",
      +        "high"
      +      ],
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / preview / properties / coverage_warning
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / preview / properties / top_risks / items / properties / suggested_fix
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
  3. First observed

TDQS

A4.9/5.0
Behavior5/5

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

Beyond the annotations (readOnly=false, idempotent=true, openWorld=true), it discloses asynchronous behavior ('returns a review_id right away', 'takes a few minutes'), rate limits per account per day, and that repeating with the same file and target journal returns the same review rather than starting a new one. It also constrains interim behavior ('report status only; do not add a preliminary critique').

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?

Front-loaded with the trigger condition, then layers in async behavior, follow-up tool, interim instructions, limits, idempotency, and exclusions. Every sentence carries an operational constraint or routing detail; nothing is padded.

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?

Output schema exists so return values need not be explained, yet the description still notes review_id is returned immediately and how to retrieve results, plus limit behavior. Combined with the exclusions and async guidance, an agent has everything needed to call this correctly.

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 100%, so the schema already documents both parameters, but the description adds supported file formats (PDF, Word, ODT, RTF, TXT, Markdown, LaTeX) and a 75 MB size limit that the schema does not state. It also implicitly defines target_journal's idempotency role by referencing 'the same file and target journal'.

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 resource ('review, check or assess a scientific manuscript they attached') and scopes it as a pre-submission preview. It is clearly distinguishable from siblings like get_manuscript_review and review_manuscript_text.

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 an explicit trigger ('when the user wants Manusights to review...'), a follow-up path ('read it afterwards with get_manuscript_review using the same review_id'), and explicit exclusions ('Do not use it to write, rewrite or edit text, for figures or data files, or when no manuscript is attached').

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.