Files
dss/tools/dss_mcp/plugins/__init__.py
Digital Production Factory 276ed71f31 Initial commit: Clean DSS implementation
Migrated from design-system-swarm with fresh git history.
Old project history preserved in /home/overbits/apps/design-system-swarm

Core components:
- MCP Server (Python FastAPI with mcp 1.23.1)
- Claude Plugin (agents, commands, skills, strategies, hooks, core)
- DSS Backend (dss-mvp1 - token translation, Figma sync)
- Admin UI (Node.js/React)
- Server (Node.js/Express)
- Storybook integration (dss-mvp1/.storybook)

Self-contained configuration:
- All paths relative or use DSS_BASE_PATH=/home/overbits/dss
- PYTHONPATH configured for dss-mvp1 and dss-claude-plugin
- .env file with all configuration
- Claude plugin uses ${CLAUDE_PLUGIN_ROOT} for portability

Migration completed: $(date)
🤖 Clean migration with full functionality preserved
2025-12-09 18:45:48 -03:00

56 lines
1.8 KiB
Python

"""
DSS MCP Server Plugins
This directory contains dynamically loaded plugins for the DSS MCP server.
Plugin Contract:
- Each plugin is a .py file in this directory
- Must export TOOLS: List[types.Tool] with MCP tool definitions
- Must have a handler class with execute_tool(name, arguments) method
- Optional: export PLUGIN_METADATA dict with name, version, author
Example Plugin Structure:
from mcp import types
PLUGIN_METADATA = {
"name": "My Plugin",
"version": "1.0.0",
"author": "DSS Team"
}
TOOLS = [
types.Tool(name="my_tool", description="...", inputSchema={...})
]
class PluginTools:
async def execute_tool(self, name, arguments):
if name == "my_tool":
return {"result": "success"}
Developer Workflow:
1. Copy _template.py to new_plugin.py
2. Edit TOOLS list and PluginTools class
3. (Optional) Create requirements.txt if plugin needs dependencies
4. Run: ../install_plugin_deps.sh (if dependencies added)
5. Restart MCP server: supervisorctl restart dss-mcp
6. Plugin tools are immediately available to all clients
Dependency Management:
- If your plugin needs Python packages, create a requirements.txt file
- Place it in the same directory as your plugin (e.g., plugins/my_plugin/requirements.txt)
- Run ../install_plugin_deps.sh to install all plugin dependencies
- Use --check flag to see which plugins have dependencies without installing
Example plugin with dependencies:
plugins/
├── my_plugin/
│ ├── __init__.py
│ ├── tool.py (exports TOOLS and PluginTools)
│ └── requirements.txt (jinja2>=3.1.2, httpx>=0.25.0)
└── _template.py
See _template.py for a complete example.
"""
__all__ = [] # Plugins are auto-discovered, not explicitly exported