AgentSkills MCP
The AgentSkills MCP server brings Anthropic's Agent Skills to any MCP-compatible agent through a Progressive Disclosure architecture that efficiently manages context windows by loading capabilities only when needed.
Core Capabilities:
Discover Available Skills - Load metadata (names and descriptions) for all skills in your configured directory at startup to understand available capabilities
Load Skill Instructions - Dynamically access full instructions from SKILL.md files for specific skills when triggered
Access Reference Files - Read supporting documentation and reference files (e.g., forms.md, reference.md, ooxml.md) from within skills for detailed guidance
Execute Shell Commands - Run shell commands within skill directories to execute scripts and tools, with commands executed in the skill's context
Multiple Transport Modes - Communicate via stdio (local), SSE (Server-Sent Events), or HTTP (RESTful) protocols for flexible deployment
Key Benefits:
Universal compatibility with any MCP-compatible agent, not just Claude
Automatic detection and parsing of skills from customizable directories
Progressive context loading preserves context window space
Compatible with Anthropic's official Agent Skills format and community-created skills
Supports streaming deep research capabilities inspired by LangChain's open_deep_research, providing real-time comprehensive analysis through HTTP endpoints.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@AgentSkills MCPanalyze the latest financial report for Alibaba"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
AgentSkills MCP: Bringing Anthropic's Agent Skills to Any MCP-compatible Agent
📖 Project Overview
Agent Skills is a new function recently introduced by Anthropic. By packaging specialized skills into modular resources, it allows Claude to transform on demand into a “tailored expert” suited to any scenario. AgentSkills MCP, built on the FlowLLM framework, unlocks Claude’s proprietary Agent Skills for any MCP-compatible agent. It implements the Progressive Disclosure architecture proposed in Anthropic’s official Agent Skills engineering blog, enabling agents to load necessary skills as needed, thereby efficiently utilizing limited context windows.
💡 Why Choose AgentSkills MCP?
✅ Zero-Code Configuration: one-command install (
pip install mcp-agentskills)✅ Out-of-the-Box: uses official Skill format and fully compatible with Anthropic’s Agent Skills
✅ MCP Support: multiple transports (stdio/SSE/HTTP), works with any MCP-compatible agent
✅ Flexible Skill Path: custom skill directories with automatic detection, parsing, and loading
Related MCP server: Finance MCP
🔥 Latest Updates
[2025-12] 🎉 Released mcp-agentskills v0.1.1
🚀 Quick Start
Installation
Install AgentSkills MCP with pip:
pip install mcp-agentskillsOr with uv:
uv pip install mcp-agentskillsgit clone https://github.com/zouyingcao/agentskills-mcp.git
cd agentskills-mcp
conda create -n agentskills-mcp python==3.10
conda activate agentskills-mcp
pip install -e .Load Skills
Create a directory to store Skills, like:
mkdir skillsClone from open-source GitHub repositories, e.g.,
https://github.com/anthropics/skills
https://github.com/ComposioHQ/awesome-claude-skillsAdd the collected Skills into the directory created in step 1. Each Skill is a folder containing a SKILL.md file.
Run
{
"mcpServers": {
"agentskills-mcp": {
"command": "uvx",
"args": [
"agentskills-mcp",
"config=default",
"mcp.transport=stdio",
"metadata.skill_dir=\"./skills\""
],
"env": {
"FLOW_LLM_API_KEY": "xxx",
"FLOW_LLM_BASE_URL": "https://dashscope.aliyuncs.com/compatible-mode/v1"
}
}
}
}- Step 1: Configure Environment Variables
Copy example.env to .env and fill in your API key:
cp example.env .env
# Edit the .env file and fill in your API key- Step 2: Start the Server
Start the AgentSkills MCP server with SSE transport:
agentskills-mcp \
config=default \
mcp.transport=sse \
mcp.host=0.0.0.0 \
mcp.port=8001 \
metadata.skill_dir="./skills"The service will be available at: http://0.0.0.0:8001/sse
- Step 3: Connect from MCP Client
Add this configuration to your MCP client (Cursor, Gemini Code, Cline, etc.) to connect to the remote SSE server:
{
"mcpServers": {
"agentskills-mcp": {
"type": "sse",
"url": "http://0.0.0.0:8001/sse"
}
}
}You can also use the FastMCP Python client to directly access the server:
import asyncio
from fastmcp import Client
async def main():
async with Client("http://0.0.0.0:8001/sse") as client:
tools = await client.list_tools()
for tool in tools:
print(tool)
result = await client.call_tool(
name="load_skill",
arguments={
"skill_name"="pdf"
}
)
print(result)
asyncio.run(main())One-Command Test
python tests/run_project_sse.py <path/to/skills>
or
python tests/run_project_http.py <path/to/skills>Demo
After starting the AgentSkills MCP server with the SSE transport, you can run the demo:
# Enable Agent Skills for the Qwen model.
# Since Qwen supports function calling, you can implement Agent Skills by passing the MCP tools registered by the AgentSkills MCP service to the tools parameter.
cd tests
python run_skill_agent.py🔧 MCP Tools
This service provides four tools to support Agent Skills:
load_skill_metadata_op — Loads the names and descriptions of all Skills into the agent context at startup (always called)
load_skill_op — When a specific skill is needed, loads the SKILL.md content by skill name (invoked when triggering the Skill)
read_reference_file_op — Reads specific files from a skill, such as scripts or reference documents (on demand)
run_shell_command_op — Executes shell commands to run executable scripts included in the skill (on demand)
For detailed parameters and usage examples, see the documentation.
⚙️ Server Configuration Parameters
Parameter | Description | Example |
| Configuration files to load (comma-separated). Default: |
|
| Transport mode: |
|
| Host address (for sse/http transport only) |
|
| Port number (for sse/http transport only) |
|
| Skills Directory (required) |
|
For the full set of available options and defaults, refer to default.yaml.
Environment Variables
Variable Name | Required | Description |
| ✅ Yes | API key for OpenAI-compatible LLM Service |
| ✅ Yes | Base URL for OpenAI-compatible LLM Service |
🤝 Contributing
We welcome community contributions! To get started:
Install the package in development mode:
pip install -e .Install pre-commit hooks:
pip install pre-commit
pre-commit run --all-filesSubmit a pull request with your changes.
📚 Learn More
⚖️ License
This project is licensed under the Apache License 2.0 — see LICENSE for details.
📈 Star History
Available Tools
4 toolsload_skillC
Load one skill's instructions from the SKILL.md.
| Name | Required | Description | Default |
|---|---|---|---|
| skill_name | Yes | skill name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the tool loads instructions but doesn't disclose behavioral traits like error handling (e.g., what happens if the skill doesn't exist), file format expectations, or whether it's a read-only operation. This leaves significant gaps in understanding how the tool behaves beyond its basic function.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with zero waste, efficiently conveying the core action and resource. It is appropriately sized and front-loaded, making it easy to understand at a glance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what the loaded instructions look like (e.g., text content, structure), error scenarios, or dependencies. For a tool that likely returns instructional data, more context is needed to guide effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the single parameter 'skill_name' documented as 'skill name'. The description adds no additional meaning beyond this, such as format constraints or examples. Since the schema does the heavy lifting, the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Load') and resource ('one skill's instructions from the SKILL.md'), making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools like 'load_skill_metadata' or 'read_reference_file', which likely handle related but different operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as 'load_skill_metadata' (which might load metadata instead of instructions) or 'read_reference_file' (which might read other files). The description implies usage for loading skill instructions but lacks explicit context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
load_skill_metadataB
Load metadata (name and description) for all available skills from the skills directory.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states what the tool does but doesn't disclose behavioral traits like whether this is a read-only operation, whether it requires specific permissions, what happens if the skills directory is empty, or what format the metadata is returned in. For a tool with zero annotation coverage, this is inadequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that states the purpose clearly with no wasted words. It's appropriately sized for a simple tool and front-loaded with the essential information. Every part of the sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no annotations, no output schema, and the description lacks behavioral details, it's incomplete. The agent knows what the tool does but not how it behaves (e.g., read-only vs. mutation, error handling, return format). For a tool that likely returns data, the absence of output schema or description of return values is a significant gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and schema description coverage is 100% (though trivial since there are no parameters). The description doesn't need to add parameter semantics, so it meets the baseline of 4 for zero-parameter tools. No additional parameter context is required or provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Load metadata') and resource ('all available skills from the skills directory'), specifying what fields are included ('name and description'). It distinguishes from 'load_skill' (which likely loads skill content rather than metadata) but doesn't explicitly differentiate from 'read_reference_file' or 'run_shell_command'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. While the description implies it's for getting skill metadata, there's no mention of when to use this versus 'load_skill' (which might load the skill itself) or other siblings. The agent must infer usage from tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_reference_fileC
Read a reference file from a skill (e.g., forms.md, reference.md, ooxml.md)
| Name | Required | Description | Default |
|---|---|---|---|
| skill_name | Yes | skill name | |
| file_name | Yes | reference file name or file path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the tool reads files but doesn't disclose behavioral traits such as error handling (e.g., what happens if the file doesn't exist), permissions required, rate limits, or output format. This leaves significant gaps for a tool that interacts with file systems.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It front-loads the core purpose and includes helpful examples, making it easy to parse quickly. Every element earns its place without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., file content, error messages) or address potential complexities like file paths or skill dependencies. For a file-reading tool, this lack of behavioral and output context is a significant gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters ('skill_name' and 'file_name'). The description adds minimal value by implying the file is from a skill context and providing examples (e.g., forms.md), but doesn't elaborate on parameter semantics beyond what the schema provides, meeting the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Read') and resource ('a reference file from a skill'), with examples provided. It distinguishes from sibling tools like 'load_skill' and 'load_skill_metadata' by focusing specifically on reading reference files rather than loading skills or metadata. However, it doesn't explicitly differentiate from 'run_shell_command', which might also read files.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 like 'load_skill' or 'run_shell_command'. It mentions examples of reference files (e.g., forms.md) but doesn't specify scenarios or prerequisites for usage, leaving the agent to infer context from tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_shell_commandC
run shell command in a subprocess.
Here you need to fill in skill_name.
This skill_name parameter allows you to navigate directly to the folder corresponding to skill_name, making it more convenient to use the scripts within that folder to execute commands.
If you want to know the exact path, you can use pwd to get the absolute path.
| Name | Required | Description | Default |
|---|---|---|---|
| skill_name | Yes | skill name | |
| command | Yes | shell command |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions running commands in a subprocess and navigating folders, but fails to disclose critical behavioral traits such as security implications, error handling, output format, or execution environment. This leaves significant gaps for a tool that executes shell commands.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is moderately concise but includes redundant advice (e.g., using 'pwd' to get the path) that may not be necessary. It is front-loaded with the main purpose, but the structure could be improved by eliminating less critical details to focus on core functionality.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of executing shell commands, no annotations, and no output schema, the description is incomplete. It lacks information on safety, permissions, error responses, and how results are returned, which are essential for proper tool usage in this context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters. The description adds some context for 'skill_name' (navigating to a folder) but does not provide additional meaning beyond the schema, such as examples or constraints. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool 'run shell command in a subprocess,' which provides a clear verb+resource (run + shell command). However, it does not differentiate from sibling tools like 'load_skill' or 'read_reference_file,' leaving the specific role ambiguous. The purpose is clear but lacks sibling distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions that 'skill_name' allows navigation to a folder for convenience, but it does not provide explicit guidance on when to use this tool versus alternatives. No context on prerequisites, exclusions, or comparisons to sibling tools is given, offering minimal usage direction.
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.
4 tool updates
v1.0.0- First observed
load_skill - First observed
load_skill_metadata - First observed
read_reference_file - First observed
run_shell_command
TDQS
Scored across 4 tools
The tools have mostly distinct purposes with clear boundaries: loading skill instructions, loading skill metadata, reading reference files, and running shell commands. However, there is some potential for confusion between load_skill and load_skill_metadata, as both involve loading skill-related data but target different aspects (full instructions vs. metadata).
All tool names follow a consistent verb_noun pattern with snake_case throughout (load_skill, load_skill_metadata, read_reference_file, run_shell_command). The naming is predictable and readable without any deviations in style or convention.
With 4 tools, the count is well-scoped for the server's purpose of managing agent skills. Each tool serves a distinct function (loading, reading, executing) that covers essential operations without being excessive or insufficient for the domain.
The tool set covers core operations like loading skills and running commands, but there are notable gaps. For example, there are no tools for creating, updating, or deleting skills, which limits full lifecycle management. The surface is functional for basic tasks but incomplete for comprehensive skill handling.
Maintenance
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
SEC filings and financial data for AI agents: 55 tools for financials, valuation and supply chains.
The financial MCP for AI agents - 90+ financial tables, SEC filings, signals, alt-data.
Real SEC, 13F, insider, congress & macro data your AI agent can cite. Hosted MCP, 24 tools.
ResearchOracle - 11 financial research tools: 10-K parsing, equity, macro, citation graph.
Related MCP Servers
- -licenseBqualityNot gradedmaintenanceEnables LLMs to retrieve, analyze, and visualize stock prices and financial report data for quantitative trading research and investment analysis. Provides real-time and historical stock data, financial statement analysis, key metric calculations, and trading signal visualization.13-
- AlicenseCqualityCmaintenanceEnables financial research and analysis through AI agents that combine web search, content crawling, entity extraction, and deep research workflows. Supports extracting stock/fund entities with security codes and conducting structured financial investigations.925Apache 2.0
- FlicenseNot gradedqualityDmaintenanceProvides real-time quotes, fund flows, and corporate announcements for Chinese A-share stocks. It enables users to search for stocks, analyze financial indicators, and summarize quarterly reports through natural language.-
- AlicenseNot gradedqualityCmaintenanceProvides 11 MCP tools for querying A-share market data, financial reports, stock screening, hot topics, self-selected stocks, and LOF arbitrage using natural language, powered by East Money / Miaoxiang APIs.MIT