Skip to main content
Glama

Next.js + React + Tailwind Assistant

DEPLOYMENT.md4.97 kB
# Deployment Status ## Current State (v0.1.4) ### ✅ CRITICAL FIX APPLIED **Root Cause Identified and Fixed**: The server was using `setToolHandler()` API instead of `registerTool()` API. **The Issue:** - Next.js server used newer `setToolHandler()` with separate Zod schemas - Working Svelte server uses `registerTool()` with inline `inputSchema` - Smithery initialization failed with `setToolHandler()` calls **The Fix (v0.1.4):** - ✅ Converted all 8 tools from `setToolHandler` → `registerTool` - ✅ Moved Zod schemas into `inputSchema` property - ✅ Updated annotations: `readOnly` → `readOnlyHint`, etc. - ✅ Simplified `smithery.yaml` to match Svelte server exactly - ✅ Build: 1.67 MB (successful) - ✅ Local testing: Server initializes correctly ### 🚀 Status: DEPLOYED Version 0.1.4 pushed to main. Smithery will rebuild automatically. **Expected Result:** Server should now initialize successfully on Smithery without the 500 error. ## Recent Changes 1. **Added Smithery Description** (`smithery.yaml:5-14`) - Comprehensive server description - Feature highlights - Content catalog 2. **Enhanced package.json Description** (`package.json:4`) - Concise marketplace description 3. **Created README.md** - Complete documentation - Installation instructions - Deployment troubleshooting 4. **Fixed Catalyst Component Count** (`content-summary.json:35`) - Corrected from 28 to 27 (actual file count) 5. **Added Build Script** (`package.json:23-24`) ```json "build": "npx @smithery/cli build && npm run copy-content", "copy-content": "cp -r content .smithery/ 2>/dev/null || true" ``` ## Architecture Details ### Content Organization ``` content/ ├── components/catalyst/ # 27 TypeScript React components ├── docs/ │ ├── nextjs/ # 2.9 MB Next.js documentation │ └── tailwind/ # 2.1 MB Tailwind documentation ├── patterns/ │ ├── features/ # 6 patterns │ ├── layouts/ # 4 patterns │ └── pages/ # 3 patterns └── content-summary.json # Complete content catalog ``` ### File Paths The server uses `process.cwd()` for all paths: ```typescript path.join(process.cwd(), 'content', 'docs', 'nextjs', 'nextjs-full.txt') ``` This resolves to: - **Local**: `/path/to/project/content/...` - **Docker**: `/app/content/...` ### Build Process 1. Smithery clones repository (includes `content/` directory) 2. `COPY . .` → Copies to `/app` including `/app/content` 3. `RUN npm ci` → Triggers `prepare` → `npm run build` 4. Build creates `/app/.smithery/index.cjs` and copies content to `/app/.smithery/content` 5. Server should run from `/app` and access `/app/content` ## Comparison with Working Svelte Server | Aspect | Svelte Server | Next.js Server | Match? | |--------|---------------|----------------|--------| | MCP SDK | ^1.17.0 | ^1.17.0 | ✅ | | Path Strategy | `process.cwd()` | `process.cwd()` | ✅ | | Build Script | Smithery CLI + copy | Smithery CLI + copy | ✅ | | Content in Git | Yes | Yes | ✅ | | Prompt Definitions | `arguments` array | `arguments` array | ✅ | | Resource Callbacks | Lazy async | Lazy async | ✅ | ## Troubleshooting Performed ### ✅ Verified - Content directory committed to git - Build process copies content correctly - Server starts locally without errors - All dependencies installed - TypeScript compiles successfully (after Smithery build) - No import-time file reads ### ❓ Potential Issues 1. **Unknown Smithery Runtime Difference**: Something specific to Smithery's Docker environment causing initialization failure 2. **Hidden Dependency**: Possible missing runtime dependency not caught in local testing 3. **Protocol Version Mismatch**: Smithery scanner might expect different protocol version ## Next Steps ### Option 1: Push and Test on Smithery ```bash git push origin main # Wait for Smithery to rebuild # Check deployment logs ``` ### Option 2: Contact Smithery Support The server architecture is identical to the working Svelte server. The deployment logs show successful build but initialization failure. Request assistance with debugging the 500 error. ### Option 3: Simplify and Test Temporarily remove prompts and test with minimal server configuration to isolate the issue. ## Local Testing Commands ```bash # Build npm run build # Verify content copied ls -la .smithery/content/ # Test server cd .smithery && PORT=8082 node index.cjs # Should see: # > Injecting cors middleware # > Setting up stateful server # (Then port binding - indicates successful init) ``` ## Files Modified in This Session 1. `smithery.yaml` - Added description 2. `package.json` - Enhanced description, added copy-content script 3. `content-summary.json` - Fixed component count 4. `README.md` - Complete documentation (new file) 5. `DEPLOYMENT.md` - This file (new file) All changes are committed and ready to push.

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/CaullenOmdahl/Nextjs-React-Tailwind-Assistant'

If you have feedback or need assistance with the MCP directory API, please join our Discord server