MCP server for autopunk-media-skills — use 400+ journalism AI skills from any MCP client
This server provides 6 read-only tools for browsing journalism/media skills and agents. Tool naming follows verb_noun conventions (list_, get_, search_) which is good. However, most tools lack detailed parameter descriptions, output schemas are not documented, and error handling guidance is minimal. All tools are READ_ONLY which simplifies security but limits utility. The server reads from YAML frontmatter in markdown files, which is functional but not formally exposed to the LLM. Parameter descriptions exist but are terse (e.g., 'Filter by category (e.g. 'editing', 'research')', 56 chars, below the 72 char baseline for param annotations). No error recovery guidance is present. The codebase does not show explicit output schema documentation, forcing LLMs to infer what fields will be returned.
Get the full content of a specific agent by name
Get the full content of a specific skill by name
List all agents with their metadata
List all skill categories with their metadata
List all skills, optionally filtered by category or subcategory
Search skills by keyword across name, description, tags, and content
Output schemas not documented. No explicit definition of what fields list_skills(), get_skill(), search_skills() etc. return. LLMs cannot plan downstream tool chaining or extract the right fields. Code shows YAML frontmatter extraction (meta, body) but the response structure is not specified.
Parameter descriptions lack format constraints and examples of valid values. 'Filter by category (e.g. 'editing', 'research')' provides examples but no enum, pattern, or validation rule. No explicit documentation of what happens if an invalid category is passed.
Error handling and recovery guidance absent. If search_skills() returns no results, or get_skill() is called with a non-existent skill name, the code does not specify how to handle or guide the LLM. No error messages shown in schema or description.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 54 | 2026-07-28+ | v2 |
Tool descriptions are brief (55-70 chars) and lack context for WHEN to use each tool. 'List all skills, optionally filtered by category or subcategory' (77 chars) is functional but does not explain when to use list_skills vs search_skills. No guidance on 'Call list_categories first to discover available categories.'
Pagination not implemented or documented. list_skills() and list_agents() could return hundreds of items, but the tool definition shows no page, limit, or offset parameters. Code shows walkDir() reading all files recursively, risking context window explosion.
Tool definitions inferred from code inspection rather than explicit schema registration visible in index.js. While tools are registered via McpServer.tool() (standard SDK pattern), the input and output schemas are defined via Zod in code but not embedded in visible schema documentation for external verification.