@symbo.ls/mcp 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +16 -0
- package/.env.railway +13 -0
- package/LICENSE +21 -0
- package/README.md +184 -0
- package/mcp.json +57 -0
- package/package.json +20 -0
- package/pyproject.toml +25 -0
- package/railway.toml +26 -0
- package/run.sh +17 -0
- package/symbols_mcp/__init__.py +1 -0
- package/symbols_mcp/server.py +1114 -0
- package/symbols_mcp/skills/ACCESSIBILITY.md +471 -0
- package/symbols_mcp/skills/ACCESSIBILITY_AUDITORY.md +70 -0
- package/symbols_mcp/skills/AGENT_INSTRUCTIONS.md +257 -0
- package/symbols_mcp/skills/BRAND_INDENTITY.md +69 -0
- package/symbols_mcp/skills/BUILT_IN_COMPONENTS.md +304 -0
- package/symbols_mcp/skills/CLAUDE.md +2158 -0
- package/symbols_mcp/skills/CLI_QUICK_START.md +205 -0
- package/symbols_mcp/skills/DESIGN_CRITIQUE.md +64 -0
- package/symbols_mcp/skills/DESIGN_DIRECTION.md +320 -0
- package/symbols_mcp/skills/DESIGN_SYSTEM_ARCHITECT.md +64 -0
- package/symbols_mcp/skills/DESIGN_SYSTEM_CONFIG.md +487 -0
- package/symbols_mcp/skills/DESIGN_SYSTEM_IN_PROPS.md +136 -0
- package/symbols_mcp/skills/DESIGN_TO_CODE.md +64 -0
- package/symbols_mcp/skills/DESIGN_TREND.md +50 -0
- package/symbols_mcp/skills/DOMQL_v2-v3_MIGRATION.md +236 -0
- package/symbols_mcp/skills/FIGMA_MATCHING.md +63 -0
- package/symbols_mcp/skills/GARY_TAN.md +80 -0
- package/symbols_mcp/skills/MARKETING_ASSETS.md +66 -0
- package/symbols_mcp/skills/MIGRATE_TO_SYMBOLS.md +614 -0
- package/symbols_mcp/skills/QUICKSTART.md +79 -0
- package/symbols_mcp/skills/SYMBOLS_LOCAL_INSTRUCTIONS.md +1405 -0
- package/symbols_mcp/skills/THE_PRESENTATION.md +69 -0
- package/symbols_mcp/skills/UI_UX_PATTERNS.md +68 -0
- package/windsurf-mcp-config.json +18 -0
package/.env.example
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# OPTION 1: Use public MCP server (no API key needed - easiest for users)
|
|
2
|
+
# Contact the maintainer for the public server URL
|
|
3
|
+
SYMBOLS_MCP_URL=your_mcp_server_url_here
|
|
4
|
+
|
|
5
|
+
# OPTION 2: Use your own OpenRouter API key (for advanced users)
|
|
6
|
+
# OPENROUTER_API_KEY=your_openrouter_api_key_here
|
|
7
|
+
|
|
8
|
+
# Optional — Supabase for vector search (falls back to local skills search if not set)
|
|
9
|
+
# SUPABASE_URL=your_supabase_url_here
|
|
10
|
+
# SUPABASE_KEY=your_supabase_key_here
|
|
11
|
+
|
|
12
|
+
# Optional — AI model to use (default: openai/gpt-4.1-mini)
|
|
13
|
+
# LLM_MODEL=openai/gpt-4.1-mini
|
|
14
|
+
|
|
15
|
+
# Optional — Path to skills directory (defaults to bundled skills)
|
|
16
|
+
# SYMBOLS_SKILLS_DIR=C:\repos\symbols\skills
|
package/.env.railway
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Railway Environment Variables
|
|
2
|
+
RAILWAY_ENVIRONMENT=production
|
|
3
|
+
PORT=8080
|
|
4
|
+
|
|
5
|
+
# Required — OpenRouter API key (add in Railway dashboard)
|
|
6
|
+
OPENROUTER_API_KEY=your_openrouter_api_key_here
|
|
7
|
+
|
|
8
|
+
# Optional — Supabase for vector search (add in Railway dashboard)
|
|
9
|
+
SUPABASE_URL=your_supabase_url_here
|
|
10
|
+
SUPABASE_KEY=your_supabase_key_here
|
|
11
|
+
|
|
12
|
+
# Optional — AI model (add in Railway dashboard)
|
|
13
|
+
LLM_MODEL=openai/gpt-5.2-codex
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 baronsilver
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
# Symbols MCP Server
|
|
2
|
+
|
|
3
|
+
An MCP (Model Context Protocol) server that exposes the Symbols/DOMQL v3 AI assistant capabilities to any MCP-compatible platform — **Cursor**, **Claude Code**, **Windsurf**, and more.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
### Tools
|
|
8
|
+
| Tool | Description |
|
|
9
|
+
|------|-------------|
|
|
10
|
+
| `generate_component` | Generate a Symbols/DOMQL v3 component from natural language |
|
|
11
|
+
| `generate_page` | Generate a full page with routing support |
|
|
12
|
+
| `generate_project` | Scaffold a complete multi-file Symbols project |
|
|
13
|
+
| `convert_to_symbols` | Convert React/Angular/Vue/HTML to Symbols/DOMQL v3 |
|
|
14
|
+
| `search_symbols_docs` | Search Symbols documentation (vector or local) |
|
|
15
|
+
| `explain_symbols_concept` | Explain any Symbols concept with examples |
|
|
16
|
+
| `review_symbols_code` | Review code for v3 compliance and best practices |
|
|
17
|
+
| `create_design_system` | Generate design system files (colors, spacing, themes, icons) |
|
|
18
|
+
|
|
19
|
+
### Resources
|
|
20
|
+
| Resource URI | Description |
|
|
21
|
+
|-------------|-------------|
|
|
22
|
+
| `symbols://skills/domql-v3-reference` | Complete DOMQL v3 syntax reference |
|
|
23
|
+
| `symbols://skills/project-structure` | Project folder structure conventions |
|
|
24
|
+
| `symbols://skills/design-direction` | Modern UI/UX design direction |
|
|
25
|
+
| `symbols://skills/migration-guide` | React/Angular/Vue → Symbols migration |
|
|
26
|
+
| `symbols://skills/v2-to-v3-migration` | DOMQL v2 → v3 changes |
|
|
27
|
+
| `symbols://skills/quickstart` | CLI setup and quickstart |
|
|
28
|
+
| `symbols://reference/spacing-tokens` | Spacing token reference table |
|
|
29
|
+
| `symbols://reference/atom-components` | Built-in primitive components |
|
|
30
|
+
| `symbols://reference/event-handlers` | Event handler reference |
|
|
31
|
+
|
|
32
|
+
### Prompts
|
|
33
|
+
| Prompt | Description |
|
|
34
|
+
|--------|-------------|
|
|
35
|
+
| `symbols_component_prompt` | Template for component generation |
|
|
36
|
+
| `symbols_migration_prompt` | Template for framework migration |
|
|
37
|
+
| `symbols_project_prompt` | Template for project scaffolding |
|
|
38
|
+
| `symbols_review_prompt` | Template for code review |
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## Installation
|
|
43
|
+
|
|
44
|
+
### Quick Start (No API Keys Required!)
|
|
45
|
+
|
|
46
|
+
1. **Clone the repository**:
|
|
47
|
+
```bash
|
|
48
|
+
git clone https://github.com/baronsilver/symbols-mcp-server.git
|
|
49
|
+
cd symbols-mcp-server
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
2. **Install dependencies**:
|
|
53
|
+
```bash
|
|
54
|
+
pip install uv
|
|
55
|
+
uv sync
|
|
56
|
+
npm i @symbo.ls/cli -g
|
|
57
|
+
smbls create your-project
|
|
58
|
+
```
|
|
59
|
+
IMPORTANT: For now, delete the docs folder inside your project folder after creation
|
|
60
|
+
|
|
61
|
+
3. **Configure**:
|
|
62
|
+
```bash
|
|
63
|
+
cp .env.example .env
|
|
64
|
+
# Edit .env and add both:
|
|
65
|
+
# - SYMBOLS_MCP_URL (contact maintainer for public server URL)
|
|
66
|
+
# - LLM_MODEL=google/gemini-3-flash-preview
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Platform Integration
|
|
70
|
+
|
|
71
|
+
### Claude Code
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
claude mcp add symbols-mcp -- uv run --directory C:\repos\symbols-mcp-server symbols-mcp
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Or manually edit `~/UserName/.claude.json`:
|
|
78
|
+
```json
|
|
79
|
+
{
|
|
80
|
+
"mcpServers": {
|
|
81
|
+
"symbols-mcp": {
|
|
82
|
+
"command": "python",
|
|
83
|
+
"args": [
|
|
84
|
+
"-m",
|
|
85
|
+
"uv",
|
|
86
|
+
"run",
|
|
87
|
+
"--directory",
|
|
88
|
+
"C:\\repos\\symbols-mcp-server",
|
|
89
|
+
"symbols-mcp"
|
|
90
|
+
]
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### Cursor
|
|
97
|
+
|
|
98
|
+
Add to your Cursor MCP settings (`.cursor/mcp.json` in your project or global settings):
|
|
99
|
+
|
|
100
|
+
```json
|
|
101
|
+
{
|
|
102
|
+
"mcpServers": {
|
|
103
|
+
"symbols-mcp": {
|
|
104
|
+
"command": "python",
|
|
105
|
+
"args": [
|
|
106
|
+
"-m",
|
|
107
|
+
"uv",
|
|
108
|
+
"run",
|
|
109
|
+
"--directory",
|
|
110
|
+
"C:\\repos\\symbols-mcp-server",
|
|
111
|
+
"symbols-mcp"
|
|
112
|
+
]
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
### Windsurf
|
|
119
|
+
|
|
120
|
+
Add to `~/.codeium/windsurf/mcp_config.json`:
|
|
121
|
+
|
|
122
|
+
```json
|
|
123
|
+
{
|
|
124
|
+
"mcpServers": {
|
|
125
|
+
"symbols-mcp": {
|
|
126
|
+
"command": "python",
|
|
127
|
+
"args": [
|
|
128
|
+
"-m",
|
|
129
|
+
"uv",
|
|
130
|
+
"run",
|
|
131
|
+
"--directory",
|
|
132
|
+
"C:\\repos\\symbols-mcp-server",
|
|
133
|
+
"symbols-mcp"
|
|
134
|
+
]
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
## Development
|
|
142
|
+
|
|
143
|
+
Restart your platforms after updating the MCP settings. Once loaded, it should automatically run the MCP. Ask your AI to do the quick test with the MCP to see if it works properly.
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## Environment Variables
|
|
148
|
+
|
|
149
|
+
| Variable | Required | Default | Description |
|
|
150
|
+
|----------|----------|---------|-------------|
|
|
151
|
+
| `OPENROUTER_API_KEY` | **Yes** | — | API key for OpenRouter (powers AI generation) |
|
|
152
|
+
| `SUPABASE_URL` | No | — | Supabase project URL for vector search |
|
|
153
|
+
| `SUPABASE_KEY` | No | — | Supabase service role key |
|
|
154
|
+
| `LLM_MODEL` | No | `openai/gpt-4.1-mini` | AI model to use via OpenRouter |
|
|
155
|
+
| `SYMBOLS_SKILLS_DIR` | No | `./symbols_mcp/skills` | Path to skills markdown files |
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
## Architecture
|
|
160
|
+
|
|
161
|
+
```
|
|
162
|
+
symbols-mcp-server/
|
|
163
|
+
├── pyproject.toml # Project config and dependencies
|
|
164
|
+
├── .env.example # Environment variable template
|
|
165
|
+
├── README.md # This file
|
|
166
|
+
└── symbols_mcp/
|
|
167
|
+
├── __init__.py
|
|
168
|
+
├── server.py # MCP server with tools, resources, prompts
|
|
169
|
+
└── skills/ # Bundled Symbols knowledge base
|
|
170
|
+
├── CLAUDE.md # DOMQL v3 complete reference
|
|
171
|
+
├── SYMBOLS_LOCAL_INSTRUCTIONS.md # Project structure rules
|
|
172
|
+
├── DESIGN_DIRECTION.md # UI/UX design direction
|
|
173
|
+
├── MIGRATE_TO_SYMBOLS.md # Framework migration guide
|
|
174
|
+
├── DOMQL_v2-v3_MIGRATION.md # v2→v3 changes
|
|
175
|
+
└── QUICKSTART.md # CLI quickstart
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
The server reads skills files at startup and uses them as context for all AI-powered tools.
|
|
179
|
+
When Supabase is configured, the `search_symbols_docs` tool also queries the vector database
|
|
180
|
+
for additional documentation matches.
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
|
package/mcp.json
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "symbols-mcp",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "AI-powered assistant for the Symbols design-system framework. Generates DOMQL v3 components, pages, and full projects; converts React/Angular/Vue code to Symbols; searches Symbols documentation; and provides comprehensive framework reference.",
|
|
5
|
+
"author": "baronsilver",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"homepage": "https://github.com/baronsilver/symbols-mcp-server",
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "https://github.com/baronsilver/symbols-mcp-server.git"
|
|
11
|
+
},
|
|
12
|
+
"capabilities": {
|
|
13
|
+
"tools": [
|
|
14
|
+
{
|
|
15
|
+
"name": "generate_component",
|
|
16
|
+
"description": "Generate a Symbols/DOMQL v3 component from a natural-language description"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"name": "generate_page",
|
|
20
|
+
"description": "Generate a Symbols/DOMQL v3 page with routing support"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"name": "generate_project",
|
|
24
|
+
"description": "Generate a complete multi-file Symbols/DOMQL v3 project structure"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"name": "convert_to_symbols",
|
|
28
|
+
"description": "Convert React, Angular, Vue, or HTML code to Symbols/DOMQL v3 format"
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"name": "search_symbols_docs",
|
|
32
|
+
"description": "Search the Symbols documentation knowledge base for relevant information"
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"name": "explain_symbols_concept",
|
|
36
|
+
"description": "Explain a Symbols/DOMQL concept with examples (state, routing, events, design tokens, etc.)"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"name": "review_symbols_code",
|
|
40
|
+
"description": "Review Symbols/DOMQL code for correctness, best practices, and v3 compliance"
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"name": "create_design_system",
|
|
44
|
+
"description": "Generate Symbols design system files (colors, spacing, typography, theme, icons)"
|
|
45
|
+
}
|
|
46
|
+
],
|
|
47
|
+
"resources": 9,
|
|
48
|
+
"prompts": 4
|
|
49
|
+
},
|
|
50
|
+
"installation": {
|
|
51
|
+
"command": "python",
|
|
52
|
+
"args": ["-m", "uv", "run", "--directory", "{INSTALL_DIR}", "symbols-mcp"],
|
|
53
|
+
"env": {
|
|
54
|
+
"OPENROUTER_API_KEY": "required"
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@symbo.ls/mcp",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "An MCP (Model Context Protocol) server that exposes the Symbols/DOMQL v3 AI assistant capabilities to any MCP-compatible platform — **Cursor**, **Claude Code**, **Windsurf**, and more.",
|
|
5
|
+
"main": "index.js",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"test": "echo \"Error: no test specified\" && exit 1"
|
|
8
|
+
},
|
|
9
|
+
"repository": {
|
|
10
|
+
"type": "git",
|
|
11
|
+
"url": "git+https://github.com/symbo-ls/symbols-mcp-server.git"
|
|
12
|
+
},
|
|
13
|
+
"keywords": [],
|
|
14
|
+
"author": "",
|
|
15
|
+
"license": "ISC",
|
|
16
|
+
"bugs": {
|
|
17
|
+
"url": "https://github.com/symbo-ls/symbols-mcp-server/issues"
|
|
18
|
+
},
|
|
19
|
+
"homepage": "https://github.com/symbo-ls/symbols-mcp-server#readme"
|
|
20
|
+
}
|
package/pyproject.toml
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "symbols-mcp-server"
|
|
3
|
+
version = "1.0.0"
|
|
4
|
+
description = "MCP server for the Symbols AI assistant - provides DOMQL/Symbols code generation, migration, and documentation tools"
|
|
5
|
+
requires-python = ">=3.10"
|
|
6
|
+
dependencies = [
|
|
7
|
+
"mcp[cli]>=1.9.0",
|
|
8
|
+
"httpx[http2]>=0.27.0",
|
|
9
|
+
"python-dotenv>=1.0.0",
|
|
10
|
+
"pydantic>=2.0.0",
|
|
11
|
+
"fastapi>=0.104.0",
|
|
12
|
+
"uvicorn[standard]>=0.24.0",
|
|
13
|
+
"flask>=3.0.0",
|
|
14
|
+
"flask-cors>=4.0.0",
|
|
15
|
+
]
|
|
16
|
+
|
|
17
|
+
[project.scripts]
|
|
18
|
+
symbols-mcp = "symbols_mcp.server:main"
|
|
19
|
+
|
|
20
|
+
[tool.hatch.build.targets.wheel]
|
|
21
|
+
packages = ["symbols_mcp"]
|
|
22
|
+
|
|
23
|
+
[build-system]
|
|
24
|
+
requires = ["hatchling"]
|
|
25
|
+
build-backend = "hatchling.build"
|
package/railway.toml
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
[build]
|
|
2
|
+
builder = "NIXPACKS"
|
|
3
|
+
nixpacksPlan = { providers = ["python"] }
|
|
4
|
+
|
|
5
|
+
[deploy]
|
|
6
|
+
startCommand = "python -m symbols_mcp.server"
|
|
7
|
+
healthcheckPath = "/health"
|
|
8
|
+
healthcheckTimeout = 100
|
|
9
|
+
restartPolicyType = "ON_FAILURE"
|
|
10
|
+
restartPolicyMaxRetries = 10
|
|
11
|
+
|
|
12
|
+
[[services]]
|
|
13
|
+
name = "symbols-mcp"
|
|
14
|
+
source = "."
|
|
15
|
+
|
|
16
|
+
[services.variables]
|
|
17
|
+
PORT = "8080"
|
|
18
|
+
PYTHON_VERSION = "3.11"
|
|
19
|
+
RAILWAY_ENVIRONMENT = "production"
|
|
20
|
+
|
|
21
|
+
# Environment variables should be set in Railway dashboard
|
|
22
|
+
# Do not reference them here to avoid secret detection
|
|
23
|
+
|
|
24
|
+
[[services.ports]]
|
|
25
|
+
port = 8080
|
|
26
|
+
protocol = "HTTP"
|
package/run.sh
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Wrapper script for running symbols-mcp server
|
|
3
|
+
|
|
4
|
+
# Check if Python is available
|
|
5
|
+
if ! command -v python &> /dev/null; then
|
|
6
|
+
echo "Error: Python is not installed"
|
|
7
|
+
exit 1
|
|
8
|
+
fi
|
|
9
|
+
|
|
10
|
+
# Check if uv is available
|
|
11
|
+
if ! command -v uv &> /dev/null; then
|
|
12
|
+
echo "Installing uv..."
|
|
13
|
+
pip install uv
|
|
14
|
+
fi
|
|
15
|
+
|
|
16
|
+
# Run the MCP server
|
|
17
|
+
exec python -m uv run symbols-mcp
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# Symbols MCP Server
|