Agentic-MCP-Skill

Agentic-MCP, Progressive MCP client with three-layer lazy loading. Validates AgentSkills.io pattern for efficient token usage. Use MCP without pre-install & wasting full-loading

β˜… 22 TypeScript Updated 1/21/2026
View on GitHub β†’

Agentic-MCP with Skill

AgentSkill for MCP - Three-layer progressive disclosure validates AgentSkills.io pattern for efficient MCP token usage

Agentic-MCP ε°ι’εœ–

Website Node.js Version

English | 繁體中文


Design Intent

Proven AgentSkills Pattern

In the AgentSkills.io ecosystem, Progressive Disclosure combined with Script linkage has been validated as effective:

The impact of this pattern is significant and substantial.

Current MCP Skill Dilemma

Despite this, many Skills using MCP still face two extreme options:

Option 1: Install MCP directly in Claude Code, Skill only guides AI to call MCP

Option 2: Write custom scripts yourself

This Skill's Goal

Validate whether AgentSkills.io pattern applies to improving MCP usage

This concept validation attempts to port AgentSkills' successful pattern to the MCP domain:

  1. Can AgentSkills architecture apply to MCP server management?
  2. Is three-layer progressive disclosure effective in MCP scenarios?
  3. Is Socket-based daemon architecture more practical than direct MCP usage?

Experimental Nature

This is not a mature product, but an experiment:

Important Disclaimer

This is a very early, rushed AI-assisted demo version with current goals:

Not recommended for production use. Expect many issues and optimization opportunities. If you find any problems or have suggestions, please open an Issue or contribute a PR.


Core Concepts

Three-Layer Progressive Disclosure

Like AgentSkills, you don't need to load everything at once:

Layer 1: Know which servers are available

Load only basic info (name, version, status)
Usage: ~50-100 tokens
Use case: Check availability, choose server

Layer 2: Know what tools this server provides

Load tool list (names + brief descriptions)
Usage: ~200-400 tokens
Use case: Browse available tools, decide what to use

Layer 3: Load only the tools you need

Load complete input format for specific tool
Usage: ~300-500 tokens/tool
Use case: Before calling tool

Why This Approach

Assume an MCP server has 20 tools, you only need 2:

Loading Method Token Usage Description
Load All 6,000 20 tools Γ— 300 tokens
Three-Layer Progressive 850 Metadata(50) + List(200) + 2 tools(600)
Savings 86% Only load what you need

Development Status

Future Plans

Based on concept validation results, future directions include:

Short-term Goals

Mid-term Goals

This project's direction depends on:

Feedback and suggestions welcome.


Quick Start

Prerequisites

1. Install from npm (Recommended)

# Install globally
npm install -g @cablate/agentic-mcp

# Verify installation
agentic-mcp --version

# Start daemon
agentic-mcp daemon start

2. Configure

Edit mcp-servers.json in the project root:

{
  "servers": {
    "playwright": {
      "description": "Browser automation tool for web navigation, screenshots, clicks, form filling, and more",
      "type": "stdio",
      "command": "npx",
      "args": ["@playwright/mcp@latest", "--isolated"]
    }
  }
}

3. Start Daemon

node dist/cli/index.js daemon start --config <config-path>

4. Test Connection

# Check daemon health
agentic-mcp daemon health

# Layer 1: Check server status
agentic-mcp metadata playwright

# Layer 2: List available tools
agentic-mcp list playwright

# Layer 3: View specific tool format
agentic-mcp schema playwright browser_navigate

5. Call Tool

agentic-mcp call playwright browser_navigate --params '{"url": "https://example.com"}'

Testing

This project uses Vitest for testing with the following test suites:

Running Tests

# Run tests in watch mode
npm test

# Run tests once
npm run test:run

# Run with coverage report
npm run test:coverage

Test Structure

tests/
β”œβ”€β”€ unit/
β”‚   β”œβ”€β”€ client.test.ts       # ProgressiveMCPClient tests (12 tests)
β”‚   β”œβ”€β”€ socket-client.test.ts # SocketClient tests (7 tests)
β”‚   └── cli/
β”‚       └── commands.test.ts  # CLI command tests (6 tests)

Current Coverage

Test coverage focuses on core modules (client.ts, socket-client.ts). Daemon integration tests are deferred to future work.

Test Philosophy

This project follows a pragmatic progressive approach:


Usage Examples

Web Automation

Automate browser operations using Playwright MCP server:

# 1. Navigate to website
agentic-mcp call playwright browser_navigate --params '{"url": "https://www.apple.com/tw"}'

# 2. Take screenshot
agentic-mcp call playwright browser_take_screenshot

# 3. Click element
agentic-mcp call playwright browser_click --params '{"element": "Mac link", "ref": "e19"}'

Hot Reload Configuration

Reload after modifying mcp-servers.json without restarting daemon:

agentic-mcp daemon reload

Response example:

βœ“ Configuration reloaded
  Old servers: playwright_global
  New servers: playwright_global, filesystem_global

Architecture

System Architecture

+-----------------------------+
|     AI / CLI Layer          |
|  (CLI commands)              |
|  - agentic-mcp metadata      |
|  - agentic-mcp list          |
|  - agentic-mcp schema        |
|  - agentic-mcp call          |
+-----------+-----------------+
            | Socket (newline-delimited JSON)
            v
+-----------------------------+
|   MCP Daemon (Long-Running)  |
|  - Maintain persistent MCP   |
|    connections               |
|  - Socket communication      |
|  - Manage shared sessions    |
|  - Support Hot Reload        |
+-----------+-----------------+
            | MCP Protocol
            v
+-----------------------------+
|        MCP Servers           |
|  - playwright (browser)      |
|  - filesystem (files)        |
|  - github (Git)              |
|  - custom servers            |
+-----------------------------+

Configuration

MCP Servers Configuration

Edit mcp-servers.json:

{
  "servers": {
    "playwright": {
      "description": "Browser automation tool for web navigation, screenshots, clicks, and form filling",
      "transportType": "stdio",
      "command": "npx",
      "args": ["@playwright/mcp@latest", "--isolated"]
    }
  }
}

Configuration Notes:


Resources


This is a concept validation project, feedback welcome