Skill Ninja MCP Server 🥷

May 20, 2026 · View on GitHub

npm version License: CC BY-NC-SA 4.0

Skill Ninja MCP Server on Glama

日本語版 README

An MCP (Model Context Protocol) server for searching, installing, and managing AI Agent Skills.

Works with MCP-compatible clients like Claude Desktop, Cursor, and VS Code.

Installation

npm install -g skill-ninja-mcp-server

Or run it directly with npx:

npx skill-ninja-mcp-server

Configuration

Claude Desktop

~/.claude/claude_desktop_config.json:

{
  "mcpServers": {
    "skill-ninja": {
      "command": "npx",
      "args": ["skill-ninja-mcp-server"]
    }
  }
}

VS Code (mcp.json)

%APPDATA%\Code\User\mcp.json:

{
  "servers": {
    "skill-ninja": {
      "command": "npx",
      "args": ["skill-ninja-mcp-server"]
    }
  }
}

Environment Variables

VariableDescriptionDefault
GITHUB_TOKENGitHub API token for higher rate limitsnone
SKILL_NINJA_INDEX_DIRSkill index storage directory~/.skill-ninja
SKILL_NINJA_TRUSTED_WORKSPACESTrusted workspace roots allowed for read/write operationsauto-detect current project root only
LANGOutput language, for example ja_JPsystem default

Security

Workspace-mutating tools only operate inside trusted workspace roots.

  • By default, the server trusts the current working directory only when it looks like a project root.
  • To allow other locations, set the SKILL_NINJA_TRUSTED_WORKSPACES environment variable to one or more trusted roots separated by your OS path delimiter.
  • Requests outside trusted roots are rejected before any read, write, or delete occurs.
  • GitHub API and raw content fetches use a bounded timeout so network failures return control instead of hanging the MCP server indefinitely.

Duplicate Skill Names

  • Search and recommendation results include the source name for each skill.
  • If multiple sources publish the same skill name, pass the optional source field to skillNinja_install or skillNinja_localize.
  • Installed skill listings include the recorded source, and the server refuses to overwrite an installed skill with the same name from a different source.
  • If a partial skill name matches multiple different skills, the install, localize, and uninstall flows now stop and ask for the exact skill name instead of picking the first match.

Tools

ToolDescription
skillNinja_searchSearch the local skill index by keyword
skillNinja_installInstall a skill into a trusted workspace
skillNinja_uninstallRemove an installed skill from a trusted workspace
skillNinja_listList installed skills in a trusted workspace
skillNinja_recommendRecommend skills based on workspace contents
skillNinja_updateIndexRefresh the local skill index from registered sources
skillNinja_webSearchSearch GitHub for repositories containing SKILL.md files
skillNinja_addSourceAdd a GitHub repository as a skill source
skillNinja_localizeUpdate localized skill descriptions in the index

skillNinja_install tries to fetch the original SKILL.md from the source repository. If the source file cannot be resolved or downloaded, it installs a minimal file generated from the local index and reports that fallback in the result.

Usage Examples

"Find skills for Azure work"
  -> skillNinja_search

"Install the webapp-testing skill from GitHub Awesome Copilot"
  -> skillNinja_install with skillName="webapp-testing" and source="github-awesome-copilot"

"Install test"
  -> refine to the exact skill name first, for example "test-driven-development"

"Search GitHub for MCP skills"
  -> skillNinja_webSearch

Development

git clone https://github.com/aktsmm/skill-ninja-mcp-server
cd skill-ninja-mcp-server
npm install
npm test
npm run release:verify

License

CC BY-NC-SA 4.0 — see LICENSE.