Skip to main content
Glama

Agent Skills MCP

pinkpixel-agentskills-mcp is a stdio MCP server for discovering, reading, and downloading agent skills from curated GitHub repositories.

GitHub: https://github.com/pinkpixel-dev/agentskills-mcp

It is built for a practical workflow:

  • search a large curated skill collection instead of searching all of GitHub

  • inspect a matching skill directly from GitHub

  • install a skill locally when the agent should actually use it

  • suggest a grounded starter scaffold when there is not an exact match

Why This Exists

This server exists because a large skill library is only useful if an agent can actually find the right skill quickly.

With more than 1,600 collected skills spread across curated repositories, manual browsing becomes slow and noisy. This MCP server gives agents a direct way to search those collections, inspect likely matches, and install the right skill when it is needed.

Skills are genuinely useful when they are easy to discover and apply in context. The goal here is to make a large curated skill archive feel usable instead of overwhelming.

Related MCP server: Skillsmith

What the server exposes

  • github_skills_list_repositories

  • github_skills_search_skills

  • github_skills_get_skill

  • github_skills_install_skill

  • github_skills_suggest_skill_scaffold

Example Use

Example user request:

Can you use the pinkpixel-agentskills-mcp tools and find skills for Rust development?

Example result:

  • The server searches the built-in skill indexes.

  • It can identify strong matches like skills-collection-2:rust-pro and skills-collection-2:rust-async-patterns.

  • It can inspect those skill folders directly from GitHub before recommending them.

  • It can then install the selected skill locally with the MCP install tool.

This is especially helpful when a broad keyword search would otherwise return noisy matches, such as rust appearing inside trust.

Quickstart

Run from PyPI with uvx:

uvx pinkpixel-agentskills-mcp

If your environment still prefers the explicit package-to-command form, this works too:

uvx --from pinkpixel-agentskills-mcp agentskills-mcp

Register it in Claude:

claude mcp add github-skills -- uvx pinkpixel-agentskills-mcp

With a GitHub token for better rate limits:

claude mcp add github-skills --env GITHUB_TOKEN=$GITHUB_TOKEN -- uvx pinkpixel-agentskills-mcp

Configuration

The server ships with these built-in default sources:

  • pinkpixel-dev/skills-collection-1

  • pinkpixel-dev/skills-collection-2

That means the server works out of the box with no repos.json at all.

Users can add more repositories in either of these ways:

  1. Create repos.json in the project root by copying repos.example.json

  2. Or set GITHUB_SKILLS_REPOS to a JSON array with the same schema

Each repo entry supports:

  • name: short alias used in skill slugs

  • owner: GitHub owner or org

  • repo: GitHub repo name

  • ref: branch or tag to read from

  • root: optional subdirectory that contains skills

  • github_token_env: optional environment variable holding a GitHub token

For public repositories, a GitHub token is optional. Users can run anonymously, or provide their own GITHUB_TOKEN for higher rate limits.

For private repositories, each user should provide their own token with the access they need. Do not ship your personal token with the server.

Default and custom source behavior

  • By default, custom repos are added on top of the built-in two repos.

  • If a custom repo uses the same name as a built-in repo, the custom one wins.

  • To disable the built-in repos entirely, set GITHUB_SKILLS_REPLACE_DEFAULTS=true.

  • To disable built-in repos without replacement, set GITHUB_SKILLS_INCLUDE_DEFAULTS=false.

Install

For local development:

uv sync

If a user wants to add more sources, they can create repos.json from the example:

cp repos.example.json repos.json

Local Run

This is a stdio server. To run it locally from the repo:

uv run agentskills-mcp

For a quick smoke test without leaving a hanging process:

timeout 5s uv run agentskills-mcp

Claude Registration

claude mcp add github-skills --env GITHUB_TOKEN=$GITHUB_TOKEN -- uv run agentskills-mcp

For public repos, users can also add the server without any token:

claude mcp add github-skills -- uv run agentskills-mcp

If you also want a default install target for downloaded skills:

claude mcp add github-skills \
  --env GITHUB_TOKEN=$GITHUB_TOKEN \
  --env GITHUB_SKILLS_INSTALL_ROOT=/absolute/path/to/skills \
  -- uv run agentskills-mcp

PyPI and uvx

The published package name is pinkpixel-agentskills-mcp.

The server command is available as both:

  • pinkpixel-agentskills-mcp

  • agentskills-mcp

That means the most convenient public install path is:

uvx pinkpixel-agentskills-mcp

If you ever hit an environment that does not pick the matching executable automatically, use:

uvx --from pinkpixel-agentskills-mcp agentskills-mcp

For release steps, see PUBLISHING.md.

Notes

  • This server uses stdio, not HTTP/SSE transport.

  • Skill discovery is currently based on finding SKILL.md files in configured repos.

  • Built-in defaults make the server usable immediately, while optional config lets users extend the source list.

  • Search ranking is intentionally simple for the first version and can be upgraded later with repo-specific metadata or embeddings.

  • The scaffold tool is meant to help another agent create a new skill grounded in existing examples; it does not replace a full generation pipeline by itself.

  • Public-repo access works without credentials; tokens are an optional per-user enhancement, not a baked-in server secret.

Available Tools

5 tools
github_skills_get_skillA
Read-onlyIdempotent

Fetch the key files for a specific skill directory from GitHub.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare the tool as readOnlyHint, destructiveHint false, idempotentHint true, and openWorldHint true, covering safety. The description adds context about fetching 'key files' from a 'skill directory', but does not disclose additional behavioral details such as authentication or rate limits.

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 that conveys the core action without any superfluous words. It is front-loaded and easy to parse.

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 tool's simplicity (one required parameter, output schema present), the description is largely adequate. However, it could be improved by hinting at the typical use case (e.g., after searching skills) or defining 'key files'. The lack of such context slightly reduces completeness.

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

Parameters2/5

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

The description provides zero information about the parameters or their usage; it neither repeats nor elaborates on the schema's detailed property descriptions. Since schema description coverage is 0% (the description does not address parameters), the agent must rely solely on the schema, missing any high-level guidance on parameter selection.

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 specifies the verb ('Fetch'), resource ('key files for a specific skill directory'), and source ('from GitHub'), making the purpose unambiguous. It effectively distinguishes from sibling tools (install, list repos, search, suggest scaffold) which have different functions.

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 does not explicitly state when to use this tool versus alternatives, nor does it provide exclusions. Usage is implied by the name and description, but no guidance is given on sequencing (e.g., after searching) or scenarios to avoid.

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

github_skills_install_skillC

Download a skill directory from GitHub into a local folder.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior2/5

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

The description 'download' implies writing to disk, which aligns with readOnlyHint: false but adds no further behavioral details beyond the annotations. It does not mention side effects like directory creation, permissions required, or error scenarios. Annotations already provide non-destructive and non-idempotent hints, so the description adds limited value.

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

Conciseness4/5

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

The description is a single, clear sentence with no unnecessary words. It is front-loaded with the core action. However, it could be slightly more structured by including parameter hints, but it is not verbose.

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

Completeness2/5

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

Given the tool installs skills to disk and has multiple parameters, the description is too sparse. It does not mention the installation process, the role of parameters, or what the output schema contains (though output schema exists but is not shown). The description lacks completeness for a mutating tool with file system impact.

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

Parameters1/5

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

With 0% schema description coverage at the top level, the description should explain key parameters. It does not mention skill_slug, destination_dir, overwrite, or preserve_repo_prefix, leaving the agent to rely solely on nested schema descriptions. The description fails to add semantic context beyond the schema.

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 downloads a skill directory from GitHub to a local folder. This distinguishes it from sibling tools like get_skill (retrieval) or search_skills (search), making the purpose specific and unambiguous.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives (e.g., get_skill for info, suggest_skill_scaffold for creation). It does not mention prerequisites, such as needing a specific GitHub repository URL, nor does it specify when not to use it.

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

github_skills_list_repositoriesA
Read-onlyIdempotent

List the GitHub skill repositories configured for this MCP server.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=true, destructiveHint=false, and idempotentHint=true. The description simply states 'List' which is consistent. It does not add behavioral context beyond what annotations provide, such as whether the list is alphabetical or if it refreshes. With annotations covering safety, the description is adequate but not additive.

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 sentence containing only essential information: verb, resource, and scope. No filler words. This is ideal conciseness and front-loads the key action.

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 tool's simplicity (list with one optional format parameter), an output schema exists to document return values. The description is complete enough to understand the tool's purpose and usage. It may lack an explicit note that it only shows configured (not all) repositories, but that is implied by 'configured for this MCP server'. A slight improvement would be stating that the list is pre-configured.

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?

The tool has one parameter (response_format) which is already documented in the schema with a description 'Output format' and enum values. Schema coverage is effectively 100% because the parameter has a schema description. The tool description does not mention or add to parameter semantics, so baseline 3 applies.

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 verb 'List', the specific resource 'GitHub skill repositories', and the scope 'configured for this MCP server'. This distinguishes it from siblings like github_skills_get_skill (retrieves a single skill) and github_skills_search_skills (searches), providing unambiguous purpose.

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 does not provide explicit guidance on when to use this tool versus alternatives, nor does it state prerequisites or exclusions. However, the purpose is self-evident for listing configured repositories, and the read-only annotations imply safe use. A more explicit note about when to prefer this over search or get would elevate the score.

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

github_skills_search_skillsB
Read-onlyIdempotent

Search skill directories by matching the query against skill names and paths.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior3/5

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

Annotation already indicate read-only, idempotent, and non-destructive behavior. Description adds that search matches against names and paths, which is useful but not extensive. No mention of pagination, rate limits, or auth requirements. With annotations covering safety, this is adequate.

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?

Single sentence that is front-loaded with the action and resource. No redundant or unnecessary information. Every word carries meaning.

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

Completeness3/5

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

Given the existence of an output schema and annotations, the description is moderately complete. However, it lacks mention that the search covers 'configured GitHub repositories' (which appears in the annotation title but not in the description itself). Could also clarify that results are from all registered repositories.

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

Parameters2/5

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

Context indicates 0% schema description coverage, but the actual schema has descriptions for each parameter inside the nested object. Nevertheless, the description does not explain any parameter details, such as what 'query' represents or the effect of 'limit' and 'response_format'. This fails to compensate for the reported low coverage.

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

Purpose4/5

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

Description clearly states the tool searches skill directories by matching a query against names and paths. It effectively distinguishes itself from sibling tools like get_skill (single skill) and install_skill (installation). However, it could be more specific about the search scope (e.g., across repositories).

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like get_skill or list_repositories. Does not mention that this is for searching across all configured repos, nor provides examples. The description only states what it does, not when to prefer it.

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

github_skills_suggest_skill_scaffoldA
Read-onlyIdempotent

Create a grounded starter scaffold for a new skill using the closest existing skills as examples.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=true. The description adds that it uses 'closest existing skills as examples', which provides additional behavioral context but does not contradict annotations. No further behavioral traits (e.g., rate limits, auth needs) are disclosed.

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 sentence that conveys the core purpose without any waste. Every word is meaningful.

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

Completeness3/5

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

The tool has 3 parameters and an output schema, but the description is minimal. It does not explain what the scaffold contains, how grounding works, or the return structure. While the output schema likely covers return details, the description lacks sufficient contextual completeness for a tool with moderate complexity.

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

Parameters2/5

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

Schema description coverage is 0% (description does not mention parameters). The input schema itself contains adequate descriptions for 'request', 'limit', and 'response_format', so the agent can rely on the schema. However, the description fails to compensate for the low coverage by adding any parameter context beyond the schema.

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 creates a grounded starter scaffold for a new skill using closest existing skills as examples. This specific verb+resource combination distinguishes it from sibling tools like github_skills_get_skill (retrieve), github_skills_install_skill (install), github_skills_list_repositories (list), and github_skills_search_skills (search).

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 implies the tool should be used when creating a new skill scaffold, but does not explicitly state when to use it versus alternatives or when not to use it. No when-not or exclusion guidance is provided.

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.

  1. 5 tool updatesv0.1.1
    • First observedgithub_skills_get_skill
    • First observedgithub_skills_install_skill
    • First observedgithub_skills_list_repositories
    • First observedgithub_skills_search_skills
    • First observedgithub_skills_suggest_skill_scaffold

TDQS

A3.8/5.0

Scored across 5 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: get_skill retrieves files, install_skill downloads to local, list_repositories shows configured repos, search_skills finds matches by query, and suggest_skill_scaffold creates new skill templates. There is no overlap in functionality, making tool selection straightforward for an agent.

Naming Consistency5/5

All tools follow a consistent 'github_skills_verb_noun' pattern, using snake_case throughout. The verbs (get, install, list, search, suggest) are distinct and appropriate for their actions, creating a predictable and readable naming scheme across the toolset.

Tool Count5/5

With 5 tools, this server is well-scoped for managing GitHub-based skills. Each tool serves a unique and necessary function in the skill lifecycle, from discovery to installation and creation, without being overly sparse or bloated.

Completeness5/5

The toolset provides complete coverage for the domain of GitHub skill management: list and search for discovery, get and install for retrieval, and suggest for creation. There are no obvious gaps, enabling agents to handle the full workflow from finding to implementing skills.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Search, install, and manage AI agent skills (SKILL.md files) from GitHub repositories. Features workspace analysis for personalized recommendations and supports 140+ pre-indexed skills.
    9
    4 npm
    12
    Creative Commons Attribution Non Commercial Share Alike 4.0 International
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to discover, install, and manage SKILL.md skills from a Git-backed registry via MCP tools for search, install, and list operations.
    4 npm
    1
    MIT