Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PUBMED_EMAIL | Yes | Your email address (required by NCBI) | |
| PUBMED_API_KEY | No | Optional API key for higher rate limits |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| skill_crud | Unified CRUD tool for skill management. IMPORTANT NOTES:
Operations:
Examples: // List available templates
{"operation": "list_templates"}
// Create a Python skill
{"operation": "create", "skill_name": "my-skill", "description": "My skill", "template": "python"}
// List all skills
{"operation": "list"}
// Search skills by text
{"operation": "search", "search": "weather"}
// Search skills by regex pattern
{"operation": "search", "search": "^api-"}
// Get skill details
{"operation": "get", "skill_name": "my-skill", "include_content": true}
// Validate skill
{"operation": "validate", "skill_name": "my-skill"}
// Delete skill
{"operation": "delete", "skill_name": "my-skill", "confirm": true} |
| skill_files_crud | Unified CRUD tool for skill file operations. Supports both single and bulk operations. IMPORTANT PATH NOTES:
Operations:
Single File Examples: // Read a file
{"operation": "read", "skill_name": "my-skill", "file_path": "script.py"}
// Create a single file
{"operation": "create", "skill_name": "my-skill", "file_path": "new.py", "content": "print('hello')"}
// Update a single file
{"operation": "update", "skill_name": "my-skill", "file_path": "script.py", "content": "print('updated')"}
// Delete a file
{"operation": "delete", "skill_name": "my-skill", "file_path": "old.py"} Bulk File Examples: // Read multiple files
{
"operation": "read",
"skill_name": "my-skill",
"file_paths": ["file1.py", "file2.py", "file3.py"]
}
// Create multiple files atomically (all-or-nothing)
{
"operation": "create",
"skill_name": "my-skill",
"files": [
{"path": "src/main.py", "content": "# Main"},
{"path": "src/utils.py", "content": "# Utils"},
{"path": "README.md", "content": "# Docs"}
],
"atomic": true
}
// Update multiple files
{
"operation": "update",
"skill_name": "my-skill",
"files": [
{"path": "file1.py", "content": "new content 1"},
{"path": "file2.py", "content": "new content 2"}
]
} |
| skill_env_crud | Unified CRUD tool for skill environment variable operations. Supports single and bulk operations. Operations:
Examples: // Read all env var keys
{
"operation": "read",
"skill_name": "my-skill"
}
// Set single variable (merges with existing)
{
"operation": "set",
"skill_name": "my-skill",
"variables": {"API_KEY": "sk-123"}
}
// Set multiple variables (bulk merge)
{
"operation": "set",
"skill_name": "my-skill",
"variables": {
"API_KEY": "sk-123",
"DEBUG": "true",
"TIMEOUT": "30"
}
}
// Delete single variable
{
"operation": "delete",
"skill_name": "my-skill",
"keys": ["API_KEY"]
}
// Delete multiple variables
{
"operation": "delete",
"skill_name": "my-skill",
"keys": ["API_KEY", "DEBUG", "TIMEOUT"]
}
// Clear all environment variables
{
"operation": "clear",
"skill_name": "my-skill"
} Note: The 'set' operation always merges with existing variables. To replace everything, use 'clear' first, then 'set'. |
| execute_python_code | Execute Python code directly without requiring a script file. RECOMMENDATION: Prefer Python over bash/shell scripts for better portability, error handling, and maintainability. IMPORTANT: Use this tool instead of creating temporary script files when you need to run quick Python code. ✅ SUPPORTS PEP 723 INLINE DEPENDENCIES - just like run_skill_script! FEATURES:
PARAMETERS:
CROSS-SKILL IMPORTS - BUILD REUSABLE LIBRARIES: Create utility skills once, import them anywhere! Perfect for:
AUTOMATIC DEPENDENCY AGGREGATION: When you reference skill files, their PEP 723 dependencies are automatically collected and merged into your code! You don't need to redeclare dependencies - just reference the modules and their deps are included automatically. Example - library module with deps: # data-processor:json_fetcher.py
# /// script
# dependencies = ["requests>=2.31.0"]
# ///
import requests
def fetch_json(url): return requests.get(url).json() Your code - NO need to declare requests! {
"code": "from json_fetcher import fetch_json\ndata = fetch_json('https://api.example.com')\nprint(data)",
"skill_references": ["data-processor:json_fetcher.py"]
} Dependencies from json_fetcher.py are automatically aggregated! Import from single skill: {
"code": "from math_utils import add, multiply\nprint(add(10, 20))",
"skill_references": ["calculator:math_utils.py"]
} Import from multiple skills: {
"code": "from math_utils import add\nfrom stats_utils import mean\nfrom converters import celsius_to_fahrenheit\n\nresult = add(10, 20)\navg = mean([10, 20, 30])\ntemp = celsius_to_fahrenheit(25)\nprint(f'Sum: {result}, Avg: {avg}, Temp: {temp}F')",
"skill_references": ["calculator:math_utils.py", "calculator:stats_utils.py", "calculator:converters.py"]
} Import from subdirectories: {
"code": "from advanced.calculus import derivative_at_point\ndef f(x): return x**2\nprint(derivative_at_point(f, 5))",
"skill_references": ["calculator:advanced/calculus.py"]
} ENVIRONMENT VARIABLES FROM REFERENCED SKILLS: When you import from a skill, its environment variables are automatically loaded: {
"code": "from api_client import fetch_weather\ndata = fetch_weather('London')\nprint(data)",
"skill_references": ["weather:api_client.py"]
} If weather:api_client.py uses API_KEY from its .env file, it will be available automatically! EXAMPLE WITH PEP 723 DEPENDENCIES: {
"code": "# /// script\n# dependencies = [\n# \"requests>=2.31.0\",\n# \"pandas\",\n# ]\n# ///\n\nimport requests\nimport pandas as pd\n\nresponse = requests.get('https://api.example.com/data')\ndf = pd.DataFrame(response.json())\nprint(df.head())"
} WHY PYTHON OVER BASH/JS:
RETURNS: Execution result with:
|
| run_skill_script | Execute a script within a skill directory. Skills are modular libraries with reusable code - scripts can import from their own modules or use external dependencies. IMPORTANT: ALWAYS use this tool to execute scripts. DO NOT use external bash/shell tools to execute scripts directly. This tool provides:
SKILLS AS LIBRARIES: Scripts within a skill can import from local modules naturally: weather-skill/
├── main.py # Script that imports from modules below
├── api_client.py # Reusable API client module
├── parsers.py # Data parsing utilities
└── formatters.py # Output formatting In main.py: from api_client import WeatherAPI
from formatters import format_temperature
api = WeatherAPI()
data = api.get_weather("London")
print(format_temperature(data)) Execute with: {
"skill_name": "weather-skill",
"script_path": "main.py",
"args": ["--city", "London"]
} SUPPORTED LANGUAGES:
FEATURES:
PEP 723 AUTOMATIC DEPENDENCY DETECTION: Python scripts with inline dependencies are automatically detected and executed with 'uv run': Example Python script with PEP 723 (e.g., weather-skill/fetch_weather.py): #!/usr/bin/env python3
# /// script
# dependencies = [
# "requests>=2.31.0",
# "beautifulsoup4>=4.12.0",
# ]
# ///
import requests
from bs4 import BeautifulSoup
response = requests.get("https://api.weather.com/data")
print(response.json()) Execute with automatic dependency handling: {
"skill_name": "weather-skill",
"script_path": "fetch_weather.py",
"args": ["--city", "London"]
} No manual dependency installation needed - the server automatically:
PARAMETERS:
IMPORTANT PATH NOTES:
RETURNS: Script execution result with:
|
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |