Auto-discovering MCP server for agent skills
Project description
Skills MCP Server
An MCP (Model Context Protocol) server that exposes skill tools as MCP tools, resources, and prompts. It auto-discovers skills from any domain (devops, security, data, etc.) and makes their tools available to any MCP-compatible agent.
Prerequisites
- Python 3.10+
- uv (for
uvxusage) - Domain-specific CLIs as needed by individual skills (e.g.,
aws,az,kubectl,helm,terraform)
Installation
Option 1: uvx (Recommended)
No install needed — uvx runs the server directly from PyPI:
{
"mcpServers": {
"awesome-agent-toolkits-mcp": {
"command": "uvx",
"args": ["awesome-agent-toolkits-mcp-server@latest"]
}
}
}
Pass --skills-dir to point at your skills directory:
{
"mcpServers": {
"awesome-agent-toolkits-mcp": {
"command": "uvx",
"args": ["awesome-agent-toolkits-mcp-server@latest", "--skills-dir", "/path/to/skills"]
}
}
}
Option 2: Docker (Local Development)
From the repo root:
docker compose up mcp-server
This builds the server image and mounts ./skills as a read-only volume. Configure your agent to use it with stdio transport.
Option 3: Run from source
cd mcp-server
pip install -r requirements.txt
python server.py
Or with a custom skills directory:
python server.py --skills-dir /path/to/skills
The SKILLS_DIR environment variable is also supported.
The server uses stdio transport (stdin/stdout) — it's designed to be launched by an MCP client.
Configuration Examples
VS Code (GitHub Copilot)
Add to your .vscode/mcp.json or user MCP settings:
{
"servers": {
"awesome-agent-toolkits-mcp": {
"command": "uvx",
"args": ["awesome-agent-toolkits-mcp-server@latest"],
"transportType": "stdio"
}
}
}
Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"awesome-agent-toolkits-mcp": {
"command": "uvx",
"args": ["awesome-agent-toolkits-mcp-server@latest"]
}
}
}
Available Tools (Examples)
The server auto-discovers tools from all installed skills. Below are examples from the included devops skills:
| Tool | Description | Parameters |
|---|---|---|
eks_inventory_addons |
Inventory EKS add-ons via AWS API | cluster, region, profile (optional) |
aks_inventory_addons |
Inventory AKS add-ons via Azure API | cluster, resource_group, subscription (optional) |
inventory_helm |
List Helm releases in current context | — |
eks_scan_terraform |
Scan Terraform for EKS resources | root_dir |
aks_scan_terraform |
Scan Terraform for AKS resources | root_dir |
check_prereqs |
Validate CLI/auth prerequisites | provider (aws|azure), profile (optional) |
Available Resources
| URI | Description |
|---|---|
skills://eks/compatibility |
EKS add-on compatibility matrix |
skills://aks/compatibility |
AKS add-on compatibility matrix |
skills://eks/report-templates |
EKS HTML report templates |
skills://aks/report-templates |
AKS HTML report templates |
Adding Tools from New Skills
To expose a new skill's tools via MCP, create a tools/mcp_tools.json file in the skill directory:
{
"tools": [
{
"name": "my_tool_name",
"script": "my_script.py",
"description": "What this tool does.",
"params": [
{ "name": "param_name", "flag": "--param-name", "required": true, "description": "Param description" }
]
}
]
}
The MCP server auto-discovers these at startup. Tools are namespaced by category: <category>__<tool_name> (e.g., devops__eks_inventory_addons).
Adding Resources
Any files in references/ or assets/ within a skill directory are automatically exposed as MCP resources with URI pattern:
skills://<category>/<skill-name>/references/<filename>
skills://<category>/<skill-name>/assets/<filename>
Available Prompts
Prompts are auto-discovered from tools/mcp_prompts.json in each skill directory, namespaced as <category>__<prompt_name>. Example prompts from the devops skills:
| Prompt | Description | Arguments |
|---|---|---|
devops__analyze_drift |
Compare inventory vs Terraform versions | inventory_json, terraform_json |
devops__changelog_research |
Research changelog between versions | package, from_version, to_version |
devops__upgrade_plan |
Generate upgrade plan from drift analysis | drift_analysis |
Adding Prompts
Create a tools/mcp_prompts.json in your skill directory:
{
"prompts": [
{
"name": "my_prompt",
"description": "What this prompt produces.",
"params": [
{ "name": "input_data", "required": true, "description": "Data to analyze" }
],
"template": "Analyze the following:\n\n{input_data}\n\nProduce a summary."
}
]
}
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 awesome_agent_toolkits_mcp_server-0.1.0.tar.gz.
File metadata
- Download URL: awesome_agent_toolkits_mcp_server-0.1.0.tar.gz
- Upload date:
- Size: 5.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fcfd11316252d610c030d68c4d3fe0eab7153d6de9582f1ce172dcb7e1a85998
|
|
| MD5 |
1be50404b0f39073efb7c65390bdabd9
|
|
| BLAKE2b-256 |
9a3ffaf7aca2ff861ffde0828a0e10f514ec9b2def62f8de1c1f83c2f9e4118d
|
File details
Details for the file awesome_agent_toolkits_mcp_server-0.1.0-py3-none-any.whl.
File metadata
- Download URL: awesome_agent_toolkits_mcp_server-0.1.0-py3-none-any.whl
- Upload date:
- Size: 6.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e220aa53273dd92f010782f630c5a6ebaac23ba14fc93488e39677f06e446896
|
|
| MD5 |
c84c96038228a4354f3f71f25f882ba2
|
|
| BLAKE2b-256 |
11a3f74c7b2c865552047814bb83dbf68ffe337eb6c7f36a941e2004078ddc51
|