Skip to content

MCP/Skills Anti-Pattern Collection

This document organizes common failure patterns in MCP and Skills design and operation, along with how to avoid them.

1. over-MCPization (Excessive Use of MCP)

Symptoms

Implementing internal team knowledge and guidelines as MCP servers.

Problematic Approach

This anti-pattern manifests in several common ways:

❌ Building an MCP server to retrieve team coding standards
❌ Providing design principles as an API
❌ Converting internal workflows into MCP tools

Why This Is a Problem

Over-MCPization creates several operational and maintenance issues:

  • MCP server responsibilities become bloated
  • Increased server operation costs
  • Difficult to customize on the agent side
  • Authentication and deployment become complex

Correct Approach

The proper solution separates team knowledge from external integration:

✅ Internal team knowledge → Define as a Skill
✅ Access to external APIs → Implement as MCP

Decision Criteria: "Is this an external service, or team knowledge?"

2. over-Skillization (Excessive Use of Skills)

Symptoms

Attempting to explain external API calls and real-time data retrieval through Skills.

Problematic Approach

This anti-pattern appears when external services are documented as Skills:

❌ Skill: "How to translate using DeepL" (detailing API call procedures)
❌ Skill: "How to search RFCs" (explaining search API usage)
❌ Skill: "GitHub repository operation procedures"

Why This Is a Problem

Over-Skillization creates several practical challenges:

  • Skills become bloated and complex
  • Difficult to keep up with external system updates
  • Authentication credential management becomes ambiguous
  • Agent cannot execute (reference only)

Correct Approach

Separate external APIs from usage guidelines:

✅ External API integration → Implement as MCP
✅ MCP usage and guidelines → Supplement with Skills

Decision Criteria: "Is dynamic execution required, or is this static knowledge?"

3. Ambiguous Skill Definitions

Symptoms

Skill content is too abstract, preventing the agent from taking concrete actions.

Problematic Approach

Vague Skills lack the specificity needed for reliable execution:

markdown
❌ # Code Review Skill

Code review is important.
Write good code.
Check for bugs.

Why This Is a Problem

Ambiguous Skills lead to inconsistent and unreliable execution:

  • Agent cannot establish decision criteria
  • Execution results vary each time
  • Quality cannot be guaranteed

Correct Approach

Define clear, measurable criteria that guide consistent execution:

markdown
✅ # Code Review Skill

## Checklist

1. Zero ESLint errors
2. No violations of SOLID principles
3. Test coverage at 80% or higher

## Decision Criteria

| Condition             | Action                     |
| --------------------- | -------------------------- |
| ESLint errors present | Correction required        |
| Coverage below 80%    | Request additional tests   |

Countermeasure: Define numerical standards, specific conditions, and clear actions

4. Excessive Coupling with MCP Tool Dependencies

Symptoms

Skills are strongly dependent on specific MCP internal implementations.

Problematic Approach

Coupling Skills to internal MCP details creates fragility:

markdown
❌ # Translation Skill

Use translate-text from deepl MCP version 1.2.3.
Specify "nonewlines" for the split_sentences parameter.
Cache takes effect internally, so the second call is faster.

Why This Is a Problem

Over-specifying MCP details reduces flexibility and portability:

  • Breaks when MCP version is upgraded
  • Dependency on internal implementation is difficult to maintain
  • Cannot be replaced with other MCPs

Correct Approach

Define Skills at the interface level, abstracting away implementation details:

markdown
✅ # Translation Skill

## MCP Usage

| MCP                                   | Purpose          |
| ------------------------------------- | ---------------- |
| deepl (or equivalent translation MCP) | Text translation |

## Workflow

1. Execute translation (formality: formal)
2. Check quality score
3. Re-translate if below threshold

Countermeasure: Describe at the MCP interface level, do not depend on implementation details

5. Violation of Single Responsibility Principle

Symptoms

Packing multiple different responsibilities into a single Skill.

Problematic Approach

Monolithic Skills combine unrelated tasks:

markdown
❌ # Development Skill

## Code Review

...

## Deployment Procedures

...

## Incident Response

...

## New Employee Onboarding

...

Why This Is a Problem

Monolithic Skills create multiple maintenance and usage challenges:

  • Large impact scope when updating
  • Cannot reference only the needed parts
  • Wasteful context consumption increases

Correct Approach

Organize Skills by responsibility, keeping each one focused:

✅ skills/
    ├── code-review/SKILL.md
    ├── deployment/SKILL.md
    ├── incident-response/SKILL.md
    └── onboarding/SKILL.md

Countermeasure: 1 Skill = 1 Responsibility

6. Unmaintained Skills

Symptoms

Skills that are left unchanged after creation, diverging from actual operations.

Problematic Approach

Neglected Skills drift away from operational reality:

❌ Using a Skill created six months ago without changes
❌ Team standards have changed but Skill hasn't been updated
❌ Unknown who the owner is

Why This Is a Problem

Unmaintained Skills undermine agent reliability and decision quality:

  • Agent operates with outdated information
  • Leads to incorrect decisions
  • Decreased reliability

Correct Approach

Establish clear ownership and regular review cycles:

markdown
✅ ---
name: code-review
description: Code review guidelines
owner: @frontend-team
last_reviewed: 2025-01-15

Countermeasures:

Implement these practices to keep Skills current and reliable:

  • Specify an owner
  • Set up a regular review cycle
  • Record the last review date

Anti-Pattern Quick Reference

The following table provides a quick lookup for identifying and addressing each anti-pattern:

PatternSymptomCountermeasure
over-MCPizationConverting internal knowledge to MCPMigrate to Skills
over-SkillizationExplaining external APIs in SkillsMigrate to MCP
Ambiguous SkillsToo abstractClarify with numbers and conditions
Excessive CouplingDependency on MCP internalsDescribe at interface level
Single Responsibility ViolationMultiple responsibilities in 1 SkillSplit Skills
UnmaintainedDivergence from operationsSet owner and review cycle

Released under the MIT License.