A Model Context Protocol server that helps AI generate human-like text without AI slop
talkhuman-mcp has three READ-ONLY tools with acceptable naming and descriptions, but serious gaps in schema completeness, parameter documentation, and error handling. Tool names follow verb_noun convention (get_*, check_*), which is good. Descriptions are present and reasonably detailed (100-150 chars), meeting minimum standards. However, input schemas lack proper type definitions and descriptions for parameters. The 'context' and 'category' parameters have descriptions, but the schema structure itself is not fully formalized in the visible code. No output schemas are documented. Error handling is completely absent, there are no recovery guides, error categorization, or actionable error messages. The tools are simple lookup/analysis functions with minimal state, but the lack of formal schema definitions and error handling patterns significantly impacts production readiness.
Analyze text for AI slop indicators across three categories: Information Utility, Style Quality, and Structure. Returns specific patterns to avoid.
Get comprehensive rules for writing like a human and avoiding AI slop. Use these rules as system-level instructions for any text generation task.
Get examples of common AI slop phrases and patterns to avoid, categorized by type.
Output schemas completely undocumented. LLMs cannot infer what fields to expect in responses from check_for_slop or get_slop_examples. The code shows findings are returned as a string array, but this is not declared in tool metadata.
Input parameter 'text' in check_for_slop has a description, but the schema object structure itself is inferred from code rather than explicitly documented. The inputSchema appears to use Zod definitions (z.string().describe(...)), but formal JSON Schema documentation is missing from tool registration.
No error handling guidance. The check_for_slop tool analyzes text and builds a findings array, but there is no documentation of what happens if analysis fails, what invalid inputs look like, or how to recover. Errors return raw findings without guidance.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 57 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 53 | - | v1 |
The 'category' parameter in get_slop_examples declares an enum of ["phrases", "structure", "tone", "all"], which is excellent for constrained input. However, no error handling documents what happens if an invalid category is passed, or what the response structure looks like for each category variant.
No pagination or result limits documented. check_for_slop returns an array of findings, but there is no indication of maximum result size, pagination strategy, or guidance for handling large texts that may generate many findings.
Parameter descriptions in get_human_writing_rules and get_slop_examples use 'Optional:' prefix instead of simply marking optional in the schema. This is a stylistic inconsistency but does not break functionality.