Skip to main content
Glama
Guslaier

MCP-skill-library-dynamic

by Guslaier

Skill Library MCP Server

An enterprise-grade Model Context Protocol (MCP) server for automatically discovering, indexing, and serving 580+ AI Skill Guidelines and Engineering Best Practices. Features an Omni-Search Multi-Dimensional Taxonomy Engine, Semantic Query Expansion, Fuzzy Matching, Weighted Relevance Scoring, PM2 Daemon Management, an interactive TUI Control Dashboard, OAuth Token Lifecycle Management, and a Persistent AI Session Memory Store.


Quick Start

1. Install and Build

npm install
npm run build

2. Launch Interactive Control Dashboard (TUI)

npm run menu

Note: Navigate using Arrow Keys (Up / Down) + Enter or press numeric shortcut keys [0-6] directly. Mouse tracking is disabled to guarantee native terminal copy/paste.


Related MCP server: docubridge

IMPORTANT: First-Time Setup and Taxonomy Sync

IMPORTANT

When setting up the server for the first time, or after adding/cloning new skills, you must instruct the AI to synchronize and organize the taxonomy metadata to enable full Omni-Search capabilities.

Example AI Prompt:

"Please call sync_skills and organize all uninitialized skills using update_skill_metadata."

The 7-Step AI Librarian Workflow:

  1. sync_skills: Rescan local skill directories to discover newly added skills immediately without restarting the server.

  2. explore_taxonomy: Inspect the current breakdown of Domains, Occupations, Categories, and the uninitialized skills count (noninit_count).

  3. find_skills({ category: "noninit", limit: 100 }): Retrieve unclassified skills page by page.

  4. Analyze Skill: Identify target domains and occupations based on the skill purpose.

  5. Create or Reuse Taxonomy: Reuse existing domain/occupation names if applicable, or create broad new ones (e.g. gaming, finance, healthcare).

  6. Define Specific Tags: Assign specific technology and problem keywords (e.g. ["ecs", "dots", "burst", "optimization"]).

  7. update_skill_metadata: Write updates directly to the local SKILL.md frontmatter and the master registry simultaneously.


Omni-Search and Taxonomy Discovery Architecture

Skill Library MCP utilizes a 4-dimensional taxonomy model paired with an intelligent relevance engine:

Dimension

Description

Example Values

domain

Target industry or broad domain

gaming, finance, healthcare, ecommerce, education

occupation

Target role or persona

game-developer, backend-developer, data-scientist, qa-engineer

category

Technical classification

frontend, backend, database, devops, ai-ml, testing, security

tags

Specific technologies, libraries, or problem areas

typeorm, postgres, playwright, jwt-auth, memory-leak, ecs

3-Layer Search Intelligence:

  1. Semantic Query Expansion: Automatically expands search terms to include domain synonyms and related keywords (e.g. searching game expands to [game, gaming, gamedev, unity, unreal, godot]).

  2. Fuzzy String Matching: Tolerates typographical errors and partial spellings using string similarity metrics (e.g. gamming, postgre, optimizaton).

  3. Weighted Scoring and 40% Relative Cutoff:

    • Dynamically scores candidates (Exact Name: +15, Tag match: +10-12, Domain match: +8, Category match: +4).

    • Automatically filters out candidates scoring below 40% of the top match score to eliminate noise and save token usage.


MCP Client Configuration

Add to your IDE configuration (mcp_config.json):

{
  "mcpServers": {
    "skill-library": {
      "url": "http://localhost:8787/sse",
      "headers": {
        "Authorization": "Bearer <YOUR_API_TOKEN>"
      }
    }
  }
}

(Generate Bearer Tokens from option [3] API Keys and Auth in npm run menu)


2. Local Stdio Mode (Direct Process Spawn)

{
  "mcpServers": {
    "skill-library": {
      "command": "node",
      "args": ["<ROOT_DIR>/dist/index.js"],
      "env": {
        "SKILLS_DIR": "<ROOT_DIR>/.agents/skills",
        "SKILL_LIBRARY_DATA_DIR": "<ROOT_DIR>/.data"
      }
    }
  }
}

(Replace <ROOT_DIR> with the absolute path to the project directory, e.g. C:/Users/admin/Desktop/skill-library-mcp)


Available MCP Tools and Role Permissions (RBAC)

The server enforces Role-Based Access Control (RBAC):

Category

Tool Name

Permission Role

Description

Discovery and Search

find_skills

Public AI

Omni-Search with weighted scoring, fuzzy matching, multi-dimensional filters, and pagination.

list_skills

Public AI

Browse skills with pagination (limit, page) and category filtering.

explore_taxonomy

Public AI

View taxonomy summary (Domains, Occupations, Categories) and unclassified (noninit) counts.

fetch_skill_rule

Public AI

Fetch full markdown guidelines and best practices for a skill.

get_skill_info

Public AI

Get detailed file breakdown and metadata for a skill.

Management and Sync

sync_skills

Public AI

Rescan local folders and rebuild taxonomy cache without server restart.

update_skill_metadata

Public AI

Assign Domain, Occupation, Category, and Tags with auto-canonicalization.

install_skill

Public AI

Install skills from repository, URL, or custom markdown content.

uninstall_skill

Public AI

Remove a skill from the library.

AI Sessions

session_create

Admin Only

Persist arbitrary JSON session state with TTL expiration.

session_get

Admin Only

Retrieve stored session data by name.

session_list

Admin Only

List all active sessions (auto-purges expired records).

session_delete

Admin Only

Delete session record.

Auth and Keys

oauth_generate_key

Admin Only

Issue new API tokens with custom roles and TTL expiration.

oauth_regen_key

Admin Only

Re-issue new token for an existing key ID.

oauth_delete_key

Admin Only

Delete an API key permanently.

oauth_validate_key

Admin Only

Verify token validity, expiration, and associated role.

oauth_list_keys

Admin Only

List stored API key metadata and usage audit logs.

System Status

system_status

Admin Only

View network IPs (Tailscale/LAN/Localhost) and recent activity logs.

service_list

Admin Only

List all registered and active background services (read-only).


PM2 Background Daemon Management

The project includes built-in PM2 orchestration for running as a background service:

# Start server daemon in background
npm run pm2:start

# View process table, memory usage, and uptime
npm run pm2:status

# Stream realtime logs
npm run pm2:logs

# Restart or stop the daemon
npm run pm2:restart
npm run pm2:stop

Mandatory AI Agent System Prompt

To ensure AI agents utilize this system effectively, include this protocol in your system prompt or custom rules:

CRITICAL DIRECTIVE: YOUR VERY FIRST ACTION BEFORE DOING ANYTHING ELSE MUST BE TO CALL THE find_skills TOOL.

You are equipped with the Skill Library MCP (Dynamic Skills and Best Practice Registry).
Before analyzing the request, reading files, or planning, you MUST strictly follow this 3-step protocol:
1. Discover (find_skills({ query: "<task_or_framework>", domain: "<domain>", occupation: "<role>" }))
2. Ensure Available and Load Rules (fetch_skill_rule({ skill_name: "<skill_name>" }) or install_skill)
3. Comply and Implement

License

MIT

Available Tools

2 tools
fetch_skill_ruleA
Read-onlyIdempotent

Fetch the full markdown content and nested rule guidelines of a specific skill.

ParametersJSON Schema
NameRequiredDescriptionDefault
skill_nameYesExact name of the skill folder (e.g., 'nestjs-best-practices')

Output Schema

ParametersJSON Schema
NameRequiredDescription
filesNo
contentNo
skill_nameNo

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds value by specifying exactly what is returned (full markdown content and nested rule guidelines), which is beyond the annotations. It does not claim any side effects, and the read-only nature is consistent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence of 12 words. It is front-loaded with the verb and clearly states the output. No unnecessary words or repetition; every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter read tool, the description is quite complete given the presence of an output schema (which presumably explains the return format) and annotations covering safety. It does not mention error behavior (e.g., missing skill), but that is likely handled by the output schema. Overall, adequate for the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the schema provides a clear description for skill_name. The tool description does not add any additional meaning to the parameter, so it relies on the schema. Baseline 3 is appropriate when the schema already documents the parameter fully.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific verb 'Fetch' and the resource (full markdown content and nested rule guidelines of a skill). It distinguishes this from list_skills, which likely only provides an overview. The purpose is unambiguous and distinct from its sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The usage context is implied by the description and the presence of list_skills as a sibling, but it does not explicitly state when to use this tool versus list_skills. No exclusions or alternative conditions are mentioned, so guidance is only implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_skillsA
Read-onlyIdempotent

List all available skills/rules in the knowledge base. Supports optional search query for token efficiency.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoOptional keyword to filter skills (e.g., 'react', 'python', 'review')

Output Schema

ParametersJSON Schema
NameRequiredDescription
countNo
skillsNo

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true, and the description adds the behavioral context that it returns the full list unless filtered, plus the token-efficiency rationale. This supplements the annotations without contradicting them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence packs the core purpose and the optional usage hint with zero redundancy or filler. The most important information is front-loaded, and every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple nature of the tool, the presence of an output schema, and comprehensive annotations, the description covers the essential aspects. It does not explicitly address when to use fetch_skill_rule, but that is a minor omission for a list operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single optional 'query' parameter, so the description's addition of 'token efficiency' provides extra semantic value beyond the schema, explaining why one would use the filter. This meaningfully enhances the parameter's purpose.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists all available skills/rules in the knowledge base, using a specific verb ('List') and resource. It distinguishes from sibling fetch_skill_rule by semantic contrast (list vs fetch), making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions an optional search query for token efficiency, which hints at usage for large lists, but does not explicitly contrast with fetch_skill_rule or state when to use one over the other. The guidance is implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 2 tool updatesv1.0.0
    • First observedfetch_skill_rule
    • First observedlist_skills

TDQS

A4.2/5.0
Disambiguation5/5

The two tools have completely distinct purposes: one lists available skills, the other fetches a specific skill's content. There is no overlap or ambiguity between them.

Naming Consistency5/5

Both tools follow the same verb_noun pattern (list_skills, fetch_skill_rule), making the naming predictable and consistent.

Tool Count3/5

With only 2 tools, the set is on the thin side, but it fits the narrow scope of a read-only skill library. It feels borderline rather than clearly inadequate.

Completeness4/5

For a read-only knowledge base, list and fetch cover the essential operations. The search option on list_skills adds flexibility. Minor gaps like versioning or metadata retrieval are not critical.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Guslaier/MCP-skill-library-dynamic'

If you have feedback or need assistance with the MCP directory API, please join our Discord server