MCP server integration for the Agent Skills format — expose skills as MCP tools and resources (https://agentskills.io)
Project description
agentskills-mcp-server
MCP server integration for the Agent Skills SDK - expose a skill registry as an MCP server.
Creates a Model Context Protocol server from a SkillRegistry, exposing skills as MCP tools and resources. Works with any MCP-compatible client (Claude Desktop, VS Code, custom clients, etc.).
Installation
pip install agentskills-mcp-server
With provider extras:
pip install agentskills-mcp-server[fs] # filesystem provider
pip install agentskills-mcp-server[http] # HTTP provider
Requires Python 3.12 or 3.13. Installs agentskills-core, mcp, and pydantic as dependencies.
Quick Start (CLI)
Create a server.json config file:
{
"name": "My Skills Server",
"skills": [
{
"id": "incident-response",
"provider": "fs",
"options": {"root": "./skills"}
}
]
}
Start the server:
python -m agentskills_mcp_server --config server.json
With Streamable HTTP transport:
python -m agentskills_mcp_server --config server.json --transport streamable-http
The server listens on http://127.0.0.1:8000/mcp.
MCP Client Integration
Any MCP-compatible client (Claude Desktop, VS Code, etc.) can connect to the server.
Stdio (local):
{
"command": "python",
"args": ["-m", "agentskills_mcp_server", "--config", "server.json"]
}
Streamable HTTP (remote):
{
"url": "http://127.0.0.1:8000/mcp"
}
Config Reference
The server.json file supports the following structure:
| Field | Type | Required | Description |
|---|---|---|---|
name |
str |
Yes | Display name shown to MCP clients |
instructions |
str |
No | Server-level instructions sent during handshake |
skills |
list |
Yes | One or more skill definitions (see below) |
Each skill entry:
| Field | Type | Required | Description |
|---|---|---|---|
id |
str |
Yes | Skill identifier |
provider |
str |
Yes | Provider type: "fs" or "http" |
options |
dict |
No | Provider-specific options |
Provider options:
fs:root(path to skills directory, default".")http:base_url(required),headers(optional),params(optional query string parameters)
Only "fs" and "http" are supported as provider types.
Environment Variable Substitution
String values in the config file may contain ${VAR} placeholders that are resolved from environment variables at load time:
{
"name": "My Skills Server",
"skills": [
{
"id": "cloud-runbooks",
"provider": "http",
"options": {
"base_url": "https://cdn.example.com/skills",
"headers": { "Authorization": "Bearer ${API_TOKEN}" },
"params": { "sig": "${SAS_TOKEN}" }
}
}
]
}
Unset variables resolve to an empty string and a warning is logged.
Programmatic Usage
For custom providers or advanced setups, use the Python API directly:
from agentskills_core import SkillRegistry
from agentskills_mcp_server import create_mcp_server
registry = SkillRegistry()
await registry.register("incident-response", my_custom_provider)
server = create_mcp_server(registry, name="My Skills Server")
server.run() # stdio by default
Tools
The server exposes tools that let the LLM agent access skill content:
| Tool | Parameters | Description |
|---|---|---|
get_skill_metadata |
skill_id |
Read frontmatter (name, description, etc.) |
get_skill_body |
skill_id |
Load full skill instructions |
get_skill_reference |
skill_id, name |
Read a reference document |
get_skill_script |
skill_id, name |
Read a script |
get_skill_asset |
skill_id, name |
Read an asset |
Resources
The server provides resources for system-prompt context:
| URI | Description |
|---|---|
skills://catalog/xml |
XML catalog of all registered skills |
skills://catalog/markdown |
Markdown catalog of all registered skills |
skills://tools-usage-instructions |
Workflow instructions for using the tools |
The MCP client reads these resources and injects them into the system prompt, giving the agent both what skills exist and how to interact with them.
API
create_mcp_server(registry, *, name, instructions=None) -> FastMCP
| Parameter | Type | Description |
|---|---|---|
registry |
SkillRegistry |
The registry whose skills are exposed |
name |
str |
Display name for the MCP server (required) |
instructions |
str | None |
Optional server-level instructions sent to clients |
Returns a configured FastMCP instance ready for server.run().
Supported transport modes: stdio (default), streamable-http.
License
MIT
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file agentskills_mcp_server-0.2.3.tar.gz.
File metadata
- Download URL: agentskills_mcp_server-0.2.3.tar.gz
- Upload date:
- Size: 10.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.3.1 CPython/3.13.9 Windows/11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8f64baf23f62fc792ec7dce9e9ba0a4f54a75e2066fb0e07d64f6d089bd13ad7
|
|
| MD5 |
c100b4f5065c435cc581e7a8e85ef3e0
|
|
| BLAKE2b-256 |
0d1650bd82ec720e1a3084220297a3e96caf7b793941c99bba280b4d8f092dba
|
File details
Details for the file agentskills_mcp_server-0.2.3-py3-none-any.whl.
File metadata
- Download URL: agentskills_mcp_server-0.2.3-py3-none-any.whl
- Upload date:
- Size: 13.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.3.1 CPython/3.13.9 Windows/11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
885e10b04a6dccac9d3ef75f6e2768e1f975582f2251d6afcf1e35dc1930b3fc
|
|
| MD5 |
b1d8dbf887d0b02b41ba9e50beede6ab
|
|
| BLAKE2b-256 |
289ecbb6c80f825498ba461a0fe0952fe74f5fb76b99fc29f22e28b358577556
|