MCP server for Originality.ai — AI detection, plagiarism checking, fact verification, readability analysis, grammar checking, and SEO optimization
Server has 5 tools with complete input schemas and descriptions. Naming follows verb_noun convention (originality_scan, originality_batch_scan, originality_scan_url, originality_get_scan_results, originality_get_credit_balance). Descriptions are present and substantive (100-200 chars typical). However, output schemas are not documented, LLMs cannot predict response structure. Parameter descriptions are good but lack format constraints (e.g., no min/max for content length, no guidance on URL format). Error handling is minimal: client.ts throws generic API errors without recovery guidance. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite all tools being read-only. Batch tool is well-designed but lacks pagination/limit guidance for large result sets.
Process multiple content scans in a single request. Each item uses the same scan options. More efficient than individual scans for bulk content.
Retrieve the current account credit balance. Use this to check how many credits are available before running scans.
Retrieve previously stored scan results by scan ID. Only works for scans that had storeScan set to true.
Run a comprehensive content scan for AI detection, plagiarism, fact checking, readability, grammar/spelling, and SEO optimization. Requires plain text content. Each enabled check consumes credits.
Scan content from a URL. The API fetches the content from the provided URL and runs the same checks as a regular scan. Useful for analyzing published web pages.
Output schemas not documented. LLMs cannot predict response structure (fields, types, pagination). Handlers return raw API responses without shaping.
Error handling is generic. client.ts throws 'Originality API error {status}: {text}' without recovery guidance. LLMs cannot determine if error is retryable, user-fixable, or fatal.
No tool annotations. All tools are read-only but lack readOnlyHint. Batch tool is idempotent but lacks idempotentHint. Annotations help LLMs reason about safety and retry logic.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | 2026-07-28+ | v2 |
Parameter constraints missing. 'content' has no length limits; 'title' has no length guidance. 'optimizerQuery' and 'optimizerCountry' lack format examples. Unbounded strings invite invalid LLM inputs.
Batch tool lacks pagination/limit guidance. No mention of max items per batch, result count limits, or how to handle large result sets. Can cause context window exhaustion.