agent-skill-search 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- agent_skill_search-0.1.0/.gitignore +8 -0
- agent_skill_search-0.1.0/INSTALL.md +228 -0
- agent_skill_search-0.1.0/LICENSE +21 -0
- agent_skill_search-0.1.0/PKG-INFO +58 -0
- agent_skill_search-0.1.0/README.md +44 -0
- agent_skill_search-0.1.0/SKILL.md +125 -0
- agent_skill_search-0.1.0/pyproject.toml +28 -0
- agent_skill_search-0.1.0/skill_search/__init__.py +3 -0
- agent_skill_search-0.1.0/skill_search/cli.py +287 -0
- agent_skill_search-0.1.0/skill_search/clients.py +113 -0
- agent_skill_search-0.1.0/skill_search/engine.py +284 -0
- agent_skill_search-0.1.0/skill_search/install.py +417 -0
- agent_skill_search-0.1.0/skill_search/server.py +253 -0
- agent_skill_search-0.1.0/test-catalog/api-design/SKILL.md +20 -0
- agent_skill_search-0.1.0/test-catalog/db-migrations/SKILL.md +20 -0
- agent_skill_search-0.1.0/test-catalog/deploy-k8s/SKILL.md +20 -0
- agent_skill_search-0.1.0/test-catalog/monitoring/SKILL.md +19 -0
- agent_skill_search-0.1.0/test-catalog/react-perf/SKILL.md +23 -0
- agent_skill_search-0.1.0/tests/test_install.py +255 -0
- agent_skill_search-0.1.0/tests/test_server_smoke.py +119 -0
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
# Installing skill-search into agent clients
|
|
2
|
+
|
|
3
|
+
`skill-search` ships an MCP server (`skill-search-mcp`) and a CLI (`skill-search`). Every
|
|
4
|
+
major agent client can use it; the right channel depends on what the client supports:
|
|
5
|
+
|
|
6
|
+
| Client | Channel | What `install` does |
|
|
7
|
+
| --- | --- | --- |
|
|
8
|
+
| Claude Code | stdio MCP | runs `claude mcp add --scope user` |
|
|
9
|
+
| Codex CLI | stdio MCP | runs `codex mcp add` |
|
|
10
|
+
| OpenClaw | stdio MCP | runs `openclaw mcp add` |
|
|
11
|
+
| Hermes | stdio MCP | runs `hermes mcp add` |
|
|
12
|
+
| Gemini CLI | stdio MCP | merges `~/.gemini/settings.json` |
|
|
13
|
+
| Claude Desktop | stdio MCP | merges `claude_desktop_config.json` |
|
|
14
|
+
| pi | stdio MCP | merges `./mcp.json` (needs the `pi-mcp` extension) |
|
|
15
|
+
| ChatGPT | remote HTTPS MCP | prints self-host instructions (no local config) |
|
|
16
|
+
| Anything else | CLI from a SKILL.md | nothing to install — see below |
|
|
17
|
+
|
|
18
|
+
## 1. Install the package
|
|
19
|
+
|
|
20
|
+
Python 3.10+ required.
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
# recommended — isolated tool install, no environment conflicts
|
|
24
|
+
uv tool install agent-skill-search
|
|
25
|
+
# or
|
|
26
|
+
pipx install agent-skill-search
|
|
27
|
+
# or, into the current environment
|
|
28
|
+
pip install agent-skill-search
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
This gives you:
|
|
32
|
+
|
|
33
|
+
- `skill-search` — the CLI (`search`, `view`, `list`, `add`, `install`, `uninstall`)
|
|
34
|
+
- `skill-search-mcp` — the MCP server binary
|
|
35
|
+
|
|
36
|
+
> **Name collision warning:** an unrelated PyPI package named `skill-search` also installs
|
|
37
|
+
> a `skill-search` command. This project's distribution is **`agent-skill-search`**. If both
|
|
38
|
+
> end up in one environment, whichever was installed last owns the command — prefer
|
|
39
|
+
> `uv tool install` / `pipx`, which isolate each tool.
|
|
40
|
+
|
|
41
|
+
## 2. Prepare a catalog (optional)
|
|
42
|
+
|
|
43
|
+
The server reads SKILL.md catalogs from, in order:
|
|
44
|
+
|
|
45
|
+
1. `SKILL_CATALOG_DIRS` (colon-separated, e.g. `~/skills:~/more-skills`)
|
|
46
|
+
2. `~/.agents/skills-catalog` (default; created on demand)
|
|
47
|
+
3. `./.agents/skills-catalog` (project-local default)
|
|
48
|
+
|
|
49
|
+
`skill-search install` writes the resolved catalog dirs into each client's config as
|
|
50
|
+
`SKILL_CATALOG_DIRS`, so the client does not need the env var set. Override per install:
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
skill-search install gemini --catalog ~/my-skills --catalog ~/team-skills
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## 3. Install into clients
|
|
57
|
+
|
|
58
|
+
Run `skill-search install --list` for the registry, then per client:
|
|
59
|
+
|
|
60
|
+
### Claude Code
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
skill-search install claude-code # claude mcp add --scope user
|
|
64
|
+
skill-search install claude-code --dry-run # print the command, write nothing
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Verify: `claude mcp list`, or `/mcp` inside a session.
|
|
68
|
+
|
|
69
|
+
### Codex CLI
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
skill-search install codex
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Verify: `codex mcp list`, then start `codex` and confirm the `skill_search` tools.
|
|
76
|
+
|
|
77
|
+
If your Codex version's `mcp add` does not accept `-e KEY=VALUE`, remove the
|
|
78
|
+
`[mcp_servers.skill-search]` entry it may have half-written and add it by hand:
|
|
79
|
+
|
|
80
|
+
```toml
|
|
81
|
+
[mcp_servers.skill-search]
|
|
82
|
+
command = "/absolute/path/to/skill-search-mcp"
|
|
83
|
+
env = { "SKILL_CATALOG_DIRS" = "/path/to/catalog" }
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### Gemini CLI
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
skill-search install gemini
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
Merges `mcpServers` into `~/.gemini/settings.json`, backs the file up first
|
|
93
|
+
(`settings.json.bak-1`), and refuses to touch a malformed file. Verify: run `gemini`
|
|
94
|
+
and use `/mcp`.
|
|
95
|
+
|
|
96
|
+
Manual fallback:
|
|
97
|
+
|
|
98
|
+
```json
|
|
99
|
+
{
|
|
100
|
+
"mcpServers": {
|
|
101
|
+
"skill-search": {
|
|
102
|
+
"command": "/absolute/path/to/skill-search-mcp",
|
|
103
|
+
"args": [],
|
|
104
|
+
"env": { "SKILL_CATALOG_DIRS": "/path/to/catalog" }
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### OpenClaw
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
skill-search install openclaw
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
Verify: `/mcp` in an OpenClaw session. If your OpenClaw version has no `mcp add`
|
|
117
|
+
command, add the entry under `mcp.servers` in `~/.openclaw/openclaw.json` by hand —
|
|
118
|
+
same shape as the Gemini snippet above, nested under `"mcp": {"servers": {...}}`.
|
|
119
|
+
|
|
120
|
+
### Hermes
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
skill-search install hermes
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
Hermes config is YAML, so the installer goes through `hermes mcp add` rather than
|
|
127
|
+
editing the file. Manual fallback: add a `skill-search` entry under `mcp_servers` in
|
|
128
|
+
`~/.hermes/config.yaml`.
|
|
129
|
+
|
|
130
|
+
### pi
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
skill-search install pi
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
Writes `mcp.json` in the **current project root**. Requires the
|
|
137
|
+
[`pi-mcp` extension](https://github.com/badlogic/pi-mcp) in that project. Verify:
|
|
138
|
+
restart pi and check the tool list.
|
|
139
|
+
|
|
140
|
+
### Claude Desktop
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
skill-search install claude-desktop
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
macOS/Windows only (there is no official Linux build). Merges `mcpServers` into:
|
|
147
|
+
|
|
148
|
+
- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
|
|
149
|
+
- Windows: `%APPDATA%\Claude\claude_desktop_config.json`
|
|
150
|
+
|
|
151
|
+
Verify: fully quit and reopen Claude Desktop — the server appears under
|
|
152
|
+
Settings → Connectors / the tools icon. Logs: `~/Library/Logs/Claude/mcp*.log`
|
|
153
|
+
(macOS) or `%APPDATA%\Claude\logs` (Windows).
|
|
154
|
+
|
|
155
|
+
### ChatGPT (self-hosted connector)
|
|
156
|
+
|
|
157
|
+
ChatGPT cannot run local stdio MCP servers. It connects to remote HTTPS MCP
|
|
158
|
+
endpoints, so run this server in HTTP mode and expose it over TLS:
|
|
159
|
+
|
|
160
|
+
```bash
|
|
161
|
+
skill-search-mcp --http --host 127.0.0.1 --port 8787
|
|
162
|
+
# then terminate TLS and forward, e.g. with Caddy:
|
|
163
|
+
# caddy reverse-proxy --from mcp.example.com --to 127.0.0.1:8787
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
In ChatGPT: **Settings → Apps & Connectors → enable Developer mode → Create**,
|
|
167
|
+
with Server URL `https://your-domain/mcp`.
|
|
168
|
+
|
|
169
|
+
Server flags: `--host` (default `127.0.0.1`), `--port` (default `8787`).
|
|
170
|
+
|
|
171
|
+
> **Warning:** the endpoint publishes the whole catalog, read-only, to anyone who can
|
|
172
|
+
> reach it. The server implements no auth — authentication and TLS are the reverse
|
|
173
|
+
> proxy's job. Keep it behind auth or a private network. Binding a non-loopback host
|
|
174
|
+
> disables the SDK's DNS-rebinding protection for exactly this reason.
|
|
175
|
+
|
|
176
|
+
### Any other agent (CLI fallback)
|
|
177
|
+
|
|
178
|
+
Agents that load `SKILL.md` skills but have no MCP support can shell out to the CLI.
|
|
179
|
+
Install the package, then drop this repo's `SKILL.md` into their skills directory and
|
|
180
|
+
point the agent at:
|
|
181
|
+
|
|
182
|
+
```bash
|
|
183
|
+
skill-search search "react performance" # find skills
|
|
184
|
+
skill-search view "react-perf" # load one
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
## CLI usage hint for agents without MCP
|
|
188
|
+
|
|
189
|
+
Agents without an MCP connection can still call the CLI directly. Opt in with
|
|
190
|
+
`--cli-hint` to append a short usage snippet to existing `CLAUDE.md`/`AGENTS.md`
|
|
191
|
+
files (`~/.claude/CLAUDE.md`, `~/CLAUDE.md`, `~/AGENTS.md`, `./CLAUDE.md`,
|
|
192
|
+
`./AGENTS.md`). Append-only: marker-checked, skipped when already present,
|
|
193
|
+
backed up before the write, never created from scratch. `--dry-run` shows
|
|
194
|
+
what would change. `uninstall --cli-hint` removes the snippet again.
|
|
195
|
+
|
|
196
|
+
```bash
|
|
197
|
+
skill-search install gemini --cli-hint # MCP config + hint snippet
|
|
198
|
+
skill-search install gemini --cli-hint --dry-run # preview both, write nothing
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
## Uninstall
|
|
202
|
+
|
|
203
|
+
```bash
|
|
204
|
+
skill-search uninstall claude-code # claude mcp remove
|
|
205
|
+
skill-search uninstall gemini # removes the JSON entry, keeps a backup
|
|
206
|
+
skill-search uninstall --all # every detected client
|
|
207
|
+
skill-search uninstall gemini --cli-hint # also removes the hint snippet
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
## Troubleshooting
|
|
211
|
+
|
|
212
|
+
- **Server won't start in the client** — the config must reference an absolute path.
|
|
213
|
+
The installer resolves `skill-search-mcp` on your `PATH` and writes the absolute
|
|
214
|
+
location; if it wasn't found it writes `<python> -m skill_search.server` instead
|
|
215
|
+
(printed at install time). Hand-edited configs must do the same.
|
|
216
|
+
- **No skills found** — `SKILL_CATALOG_DIRS` is colon-separated
|
|
217
|
+
(`dir1:dir2`). Check what got written with `skill-search install <client> --dry-run`,
|
|
218
|
+
and test locally with `SKILL_CATALOG_DIRS=... skill-search list`.
|
|
219
|
+
- **`skill-search` command belongs to another package** — see the collision warning
|
|
220
|
+
above; use `uv tool install agent-skill-search` or `pipx`.
|
|
221
|
+
- **Claude Desktop logs** — `~/Library/Logs/Claude/mcp*.log` (macOS),
|
|
222
|
+
`%APPDATA%\Claude\logs` (Windows).
|
|
223
|
+
- **`skill-search add` moves directories** — it moves skill dirs out of the source
|
|
224
|
+
tree into `~/.agents/skills-catalog` (not a copy).
|
|
225
|
+
- **Client config schema drift** — command-backed clients (Claude Code, Codex,
|
|
226
|
+
OpenClaw, Hermes) delegate to their own `mcp add`, so their vendor owns the schema.
|
|
227
|
+
The file-backed targets (Gemini CLI, Claude Desktop, pi) are the ones that may need
|
|
228
|
+
updates if their config format changes.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 kinged007
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
|
+
Name: agent-skill-search
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Portable skill catalog search for AI agents — MCP server + CLI
|
|
5
|
+
Project-URL: Homepage, https://github.com/kinged007/agent-skill-search
|
|
6
|
+
Project-URL: Repository, https://github.com/kinged007/agent-skill-search
|
|
7
|
+
License-Expression: MIT
|
|
8
|
+
License-File: LICENSE
|
|
9
|
+
Requires-Python: >=3.10
|
|
10
|
+
Requires-Dist: mcp>=2.0.0
|
|
11
|
+
Provides-Extra: dev
|
|
12
|
+
Requires-Dist: pytest; extra == 'dev'
|
|
13
|
+
Description-Content-Type: text/markdown
|
|
14
|
+
|
|
15
|
+
# skill-search
|
|
16
|
+
|
|
17
|
+
Portable skill catalog search for AI agents. MCP server + CLI.
|
|
18
|
+
|
|
19
|
+
Universal skill search tool. Use grep like search terms to find relevant skills for your task. Always use this tool.
|
|
20
|
+
|
|
21
|
+
## Install
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
# recommended — isolated tool install
|
|
25
|
+
uv tool install agent-skill-search
|
|
26
|
+
# or
|
|
27
|
+
pip install agent-skill-search
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
> The PyPI distribution is **`agent-skill-search`** — the name `skill-search` on PyPI
|
|
31
|
+
> belongs to an unrelated package. The commands stay `skill-search` and `skill-search-mcp`.
|
|
32
|
+
|
|
33
|
+
## Usage
|
|
34
|
+
|
|
35
|
+
### CLI
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
export SKILL_CATALOG_DIRS="$HOME/.hermes/skills"
|
|
39
|
+
|
|
40
|
+
skill-search search "react performance"
|
|
41
|
+
skill-search view "vercel-react-best-practices"
|
|
42
|
+
skill-search list
|
|
43
|
+
|
|
44
|
+
# Move skills from a source dir into the catalog (frees agent context).
|
|
45
|
+
# Note: `add` MOVES directories out of the source tree, it does not copy.
|
|
46
|
+
skill-search add ~/.hermes/skills
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### MCP server
|
|
50
|
+
|
|
51
|
+
One command installs it into your client:
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
skill-search install claude-code # or codex / gemini / openclaw / hermes / pi / claude-desktop / chatgpt
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
See **[INSTALL.md](INSTALL.md)** for per-client details, manual config snippets, the
|
|
58
|
+
ChatGPT remote-HTTP setup, and troubleshooting.
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# skill-search
|
|
2
|
+
|
|
3
|
+
Portable skill catalog search for AI agents. MCP server + CLI.
|
|
4
|
+
|
|
5
|
+
Universal skill search tool. Use grep like search terms to find relevant skills for your task. Always use this tool.
|
|
6
|
+
|
|
7
|
+
## Install
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
# recommended — isolated tool install
|
|
11
|
+
uv tool install agent-skill-search
|
|
12
|
+
# or
|
|
13
|
+
pip install agent-skill-search
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
> The PyPI distribution is **`agent-skill-search`** — the name `skill-search` on PyPI
|
|
17
|
+
> belongs to an unrelated package. The commands stay `skill-search` and `skill-search-mcp`.
|
|
18
|
+
|
|
19
|
+
## Usage
|
|
20
|
+
|
|
21
|
+
### CLI
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
export SKILL_CATALOG_DIRS="$HOME/.hermes/skills"
|
|
25
|
+
|
|
26
|
+
skill-search search "react performance"
|
|
27
|
+
skill-search view "vercel-react-best-practices"
|
|
28
|
+
skill-search list
|
|
29
|
+
|
|
30
|
+
# Move skills from a source dir into the catalog (frees agent context).
|
|
31
|
+
# Note: `add` MOVES directories out of the source tree, it does not copy.
|
|
32
|
+
skill-search add ~/.hermes/skills
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### MCP server
|
|
36
|
+
|
|
37
|
+
One command installs it into your client:
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
skill-search install claude-code # or codex / gemini / openclaw / hermes / pi / claude-desktop / chatgpt
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
See **[INSTALL.md](INSTALL.md)** for per-client details, manual config snippets, the
|
|
44
|
+
ChatGPT remote-HTTP setup, and troubleshooting.
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: skill-search
|
|
3
|
+
description: "Universal skill search tool. Use grep like search terms to find relevant skills for your task. Always use this tool."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Skill Search
|
|
7
|
+
|
|
8
|
+
A portable tool that lets agents search through a catalog of SKILL.md files and load only the relevant ones — instead of dumping 100+ skills into context.
|
|
9
|
+
|
|
10
|
+
## How It Works
|
|
11
|
+
|
|
12
|
+
The tool has two modes:
|
|
13
|
+
|
|
14
|
+
1. **MCP Server** — for Claude Code, Claude Desktop, Codex, Gemini CLI, OpenClaw, Hermes, pi, or any MCP-capable agent. Exposes `skill_search`, `skill_view`, and `skill_list` as tools.
|
|
15
|
+
2. **CLI** — for any agent. Run `skill-search search <query>` to find skills, `skill-search view <name>` to load one.
|
|
16
|
+
|
|
17
|
+
## Setup
|
|
18
|
+
|
|
19
|
+
Install the package first (distribution name is `agent-skill-search`):
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
uv tool install agent-skill-search
|
|
23
|
+
# or: pip install agent-skill-search
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
### Option A: MCP Server (recommended)
|
|
27
|
+
|
|
28
|
+
One command per client:
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
skill-search install claude-code # or codex / gemini / openclaw / hermes / pi / claude-desktop
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Manual fallback for any `mcpServers`-style JSON config:
|
|
35
|
+
|
|
36
|
+
```json
|
|
37
|
+
{
|
|
38
|
+
"mcpServers": {
|
|
39
|
+
"skill-search": {
|
|
40
|
+
"command": "/absolute/path/to/skill-search-mcp",
|
|
41
|
+
"args": [],
|
|
42
|
+
"env": {
|
|
43
|
+
"SKILL_CATALOG_DIRS": "/path/to/your/skills:/path/to/more/skills"
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Or with `uvx` (note the `--from`, since the distribution is `agent-skill-search`):
|
|
51
|
+
|
|
52
|
+
```json
|
|
53
|
+
{
|
|
54
|
+
"mcpServers": {
|
|
55
|
+
"skill-search": {
|
|
56
|
+
"command": "uvx",
|
|
57
|
+
"args": ["--from", "agent-skill-search", "skill-search-mcp"],
|
|
58
|
+
"env": {
|
|
59
|
+
"SKILL_CATALOG_DIRS": "~/.hermes/skills:~/.agents/skills"
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Full per-client instructions, the ChatGPT remote-HTTP setup, and troubleshooting:
|
|
67
|
+
**[INSTALL.md](INSTALL.md)**.
|
|
68
|
+
|
|
69
|
+
### Option B: CLI (any agent)
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
pip install agent-skill-search
|
|
73
|
+
|
|
74
|
+
# Set your catalog directories (colon-separated)
|
|
75
|
+
export SKILL_CATALOG_DIRS="$HOME/.hermes/skills:$HOME/.agents/skills"
|
|
76
|
+
|
|
77
|
+
# Search
|
|
78
|
+
skill-search search "react performance"
|
|
79
|
+
|
|
80
|
+
# View a skill
|
|
81
|
+
skill-search view "vercel-react-best-practices"
|
|
82
|
+
|
|
83
|
+
# List all
|
|
84
|
+
skill-search list
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### Option C: Local development
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
cd skill-search
|
|
91
|
+
pip install -e .
|
|
92
|
+
export SKILL_CATALOG_DIRS="."
|
|
93
|
+
skill-search list
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## Catalog management
|
|
97
|
+
|
|
98
|
+
`skill-search add <dir>` **moves** skill directories out of the source tree into
|
|
99
|
+
`~/.agents/skills-catalog` — it does not copy them. The originals will no longer be in
|
|
100
|
+
place for the tool they came from.
|
|
101
|
+
|
|
102
|
+
## Usage Pattern for Agents
|
|
103
|
+
|
|
104
|
+
1. **Discover** — run `skill_search(query="your topic")` to find matching skills
|
|
105
|
+
2. **Evaluate** — read the name + description from results
|
|
106
|
+
3. **Load** — run `skill_view(name="the-skill")` to get full instructions
|
|
107
|
+
4. **Execute** — follow the skill's procedure
|
|
108
|
+
|
|
109
|
+
This keeps context lean: only the catalog index (~3k tokens) plus the one skill you actually need.
|
|
110
|
+
|
|
111
|
+
## Catalog Structure
|
|
112
|
+
|
|
113
|
+
Point the tool at directories containing SKILL.md files:
|
|
114
|
+
|
|
115
|
+
```
|
|
116
|
+
your-catalog/
|
|
117
|
+
├── react-performance/
|
|
118
|
+
│ └── SKILL.md
|
|
119
|
+
├── kubernetes-deploy/
|
|
120
|
+
│ └── SKILL.md
|
|
121
|
+
└── api-design/
|
|
122
|
+
└── SKILL.md
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
Any directory tree containing SKILL.md files works — the tool scans recursively.
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["hatchling"]
|
|
3
|
+
build-backend = "hatchling.build"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "agent-skill-search"
|
|
7
|
+
version = "0.1.0"
|
|
8
|
+
description = "Portable skill catalog search for AI agents — MCP server + CLI"
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
requires-python = ">=3.10"
|
|
11
|
+
license = "MIT"
|
|
12
|
+
dependencies = [
|
|
13
|
+
"mcp>=2.0.0",
|
|
14
|
+
]
|
|
15
|
+
|
|
16
|
+
[project.optional-dependencies]
|
|
17
|
+
dev = ["pytest"]
|
|
18
|
+
|
|
19
|
+
[project.scripts]
|
|
20
|
+
skill-search = "skill_search.cli:main"
|
|
21
|
+
skill-search-mcp = "skill_search.server:run"
|
|
22
|
+
|
|
23
|
+
[project.urls]
|
|
24
|
+
Homepage = "https://github.com/kinged007/agent-skill-search"
|
|
25
|
+
Repository = "https://github.com/kinged007/agent-skill-search"
|
|
26
|
+
|
|
27
|
+
[tool.hatch.build.targets.wheel]
|
|
28
|
+
packages = ["skill_search"]
|