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
This commit is contained in:
55
tools/dss_mcp/plugins/__init__.py
Normal file
55
tools/dss_mcp/plugins/__init__.py
Normal file
@@ -0,0 +1,55 @@
|
||||
"""
|
||||
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
|
||||
Reference in New Issue
Block a user