Skip to main content
Glama
README.md
<p align="center"><a href="README_zh.md">简体中文</a> | <b>English</b></p>

<h1 align="center">agentskill-mcp</h1>

<p align="center">
  <b>Let your agent find and install the capability it's missing</b><br>
  MCP server · curated catalog · free items download directly · Chinese and English search
</p>

<p align="center">
  <img src="https://img.shields.io/badge/license-MIT-green" alt="MIT">
  <img src="https://img.shields.io/badge/node-%3E%3D18-brightgreen" alt="node >=18">
  <img src="https://img.shields.io/badge/MCP-2026--07--28-blue" alt="MCP spec">
  <img src="https://img.shields.io/github/stars/simonlin1212/agentskill-mcp?style=flat" alt="stars">
</p>

---

**Open to Work · Shenzhen / Hong Kong / Remote**

I'm Simon, focused on building AI agents and practical tools, and I'm looking for opportunities in Shenzhen, Hong Kong, or remotely.  
Get in touch: [simonlin0423@gmail.com](mailto:simonlin0423@gmail.com).

---

<p align="center">
  <a href="#what-it-does">What it does</a> ·
  <a href="#install">Install</a> ·
  <a href="#tools">Tools</a> ·
  <a href="#what-the-catalog-contains">Catalog</a> ·
  <a href="#how-it-behaves">Behaviour</a> ·
  <a href="CHANGELOG.md">Changelog</a>
</p>

---


## What it does

Your agent hits a task it can't do — read A-share market data, get a second model to audit a diff,
transcribe an interview, remove a watermark, clone a site's design system. Somewhere out there is a
skill file that would solve it. Finding one is the annoying part.

This server puts a small, vetted catalog inside the agent. It searches, reads the delivery facts, and
tells you exactly what to run. Free items come with a direct download URL; paid ones come with a price
and no sales pitch.

The catalog is [agentskill.nz](https://agentskill.nz). It's deliberately small. Public skill directories
carry hundreds of thousands of entries with no vetting — measured average quality around 6 out of 12,
roughly a third carrying prompt-injection risk. Every entry here ships with what it does, what it needs
to run, what it was tested against, and where it stops.

## Install

No install step. Point your MCP client at it:

```json
{
  "mcpServers": {
    "agentskill": {
      "command": "npx",
      "args": ["-y", "github:simonlin1212/agentskill-mcp"]
    }
  }
}
```

Claude Code:

```bash
claude mcp add agentskill -- npx -y github:simonlin1212/agentskill-mcp
```

It builds on first install, so the first run takes a few seconds longer than later ones.
(An npm release is not out yet; installing from the repository is the supported route today.)

Requires Node 18+. Nothing to configure, no API key, no account. The server holds no state and writes
nothing to your machine.

## Tools

| Tool | What it answers |
|---|---|
| `search_capabilities` | "Is there something for X?" Filter by free text, module, or price tier. |
| `get_capability` | "What exactly am I getting, and how do I get it?" Version, package size, last update, source repository, and the obtain path. |
| `list_modules` | "What's in here?" The four modules, their counts, and what the two delivery forms mean. |

Search reads Chinese and English in one index, so `去水印` and `remove watermark` both land on the same
entry. Whichever you type, results carry both names.

## What the catalog contains

Four modules — Finance, Commerce, Creator, General — holding two forms:

- **Install Skill** — a skill file the agent loads. Copy it into the agent's skills directory.
- **Deploy App** — a runnable app with its own UI. Deploy it, then use it alongside the agent.

Roughly half the entries are free. Several are the packaged form of open-source repositories with a
combined 16,000+ GitHub stars; where a capability builds on an upstream project, the upstream and its
licence are named on the product page.

## How it behaves

This is a catalog tool, not an ad slot. Three rules it keeps:

- **Free means free.** Where the catalog publishes a download URL, the tool hands it straight over —
  no account, no gate. (A free entry can occasionally have no published archive yet; it says so.)
- **Paid states the price and stops.** No urgency, no recommendation language. The download link for a
  paid item is issued after checkout, on the order page and by email.

  Concretely: anything the catalog does not explicitly mark `free` is treated as paid (fail closed), its
  download field is dropped, URLs are stripped out of its name, outcome, install, source and
  repository fields, and the assembled output is
  checked against a route allowlist. The only web addresses that survive are, on `https://agentskill.nz`
  (optionally under `/zh`): the site root, `/products/<handle>`, `/collections/<handle>`,
  `/pages/<handle>`, and `/cart` or `/cart/<variant>:<qty>` — each matched as a whole route, so a deeper
  path like `/products/x/download` does not qualify. Anything else — another host, plain http, a lookalike
  domain, `/download?id=…` — makes the server refuse to return that record.

  What this does not cover: a bare hostname with no scheme (`evil.example/x`). Catching those means
  treating any domain-shaped text as an address, and `.md` is a real TLD — `SKILL.md` in a delivery
  manifest would be rejected as a domain, breaking every paid listing. These responses are plain text,
  so a bare hostname only becomes a link if something downstream linkifies it.

  The gap worth naming: the catalog is cached for up to five minutes. An item that turned paid inside
  that window is still described from the previous snapshot — **including the direct download URL it had
  while it was free**.
- **An install command is information, not authorization.** `get_capability` — the only tool that returns
  an install command — says so on every call. Your agent should confirm with you before writing to your
  filesystem or spending your money.

The catalog URL is discovered from the site's `/llms.txt` at runtime rather than hardcoded, so the
server keeps working when the site rotates it.

## Building from source

```bash
npm install
npm run build
node test-smoke.mjs    # drives the server over real MCP stdio
```

`test-smoke.mjs` speaks the wire protocol rather than importing the module, so it catches registration
and transport breakage that a unit test would miss. It also asserts that no paid item ever returns a
file URL.

## Changelog

See [CHANGELOG.md](CHANGELOG.md).

## Disclaimer

This server reads a catalog and returns what it says. It does not evaluate whether a capability suits
your use case, and it does not execute anything. Skill files are code your agent will read and act on —
review them before use, the same as any dependency.

## License

MIT

**Author:** Simon Lin · X [@linsizhen](https://x.com/linsizhen) · Email: [simonlin0423@gmail.com](mailto:simonlin0423@gmail.com)

TDQS

A4.2/5.0

Scored across 3 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: search_capabilities for searching, get_capability for full details by ID, and list_modules for a module overview. There is no functional overlap or ambiguity.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with snake_case (get_capability, search_capabilities, list_modules), making the set predictable and easy to understand.

Tool Count5/5

With exactly three tools, the set is well-scoped for a read-only catalog exploration interface. Each tool earns its place and together they cover browsing, searching, and detail retrieval without being too few or excessive.

Completeness5/5

The tool surface fully covers the expected workflows for a capability catalog: listing modules for orientation, searching for capabilities, and retrieving full details including download information. There are no obvious gaps for the stated consumer-facing purpose.

Maintenance

ActivityMaintained
ResponsivenessNo issues