Unofficial Pangram terminal client providing AI detection and plagiarism checks via MCP tools
Server has 17 tools with basic naming and descriptions, but significant quality gaps. Tool names follow verb_noun convention (detect_, check_, analyze_, get_, wait_, submit_, list_, search_, history_*) which is good. However, descriptions are minimal (10-50 chars) and lack context for LLM selection. Input schemas are present but sparse, most parameters have only type and description, no enums or constraints. No output schemas documented. Error handling and recovery guidance absent. Security concerns: update_config accepts arbitrary object without validation. No pagination on list_* tools. Composition issues: history_rerun and history_delete are destructive but lack confirmation patterns.
Perform combined AI detection and plagiarism analysis on text
Check text for plagiarism
Check for available updates to the Pangram CLI
Detect AI-generated content in text
Retrieve the status of a bulk analysis job
Retrieve results from a completed bulk analysis job
Retrieve the status of an analysis task
Clear all history entries
Descriptions are too brief (10-50 chars) and lack context for LLM tool selection. Examples: 'Detect AI-generated content in text' does not explain when to use this vs analyze_text, or what the output contains.
No output schemas documented. LLMs cannot plan downstream calls or extract required fields. Unknown what detect_text, analyze_text, get_bulk_results return, structure, field names, types all opaque.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 44 | 2026-07-28+ | v2 |
Delete a history entry
Retrieve a specific history entry
List analysis history entries
Rerun an analysis from history
Search analysis history entries
Submit a bulk analysis job with multiple items
Update Pangram CLI configuration
Wait for a bulk analysis job to complete
Wait for an analysis task to complete
Destructive tools (history_delete, history_clear) lack confirmation or dry-run patterns. An LLM could accidentally delete all history without safeguards.
update_config accepts arbitrary object without validation, type constraints, or field documentation. LLMs cannot know what config keys are valid or what values they accept.
No pagination on list_* tools (history_list). Large result sets will blow context window.