madscientistmark/JoyOfWineMCP
If you are the rightful owner of JoyOfWineMCP and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
The Joy of Wine MCP Server provides brand resources and business integrations for use with Claude across multiple platforms.
Joy of Wine MCP Server
A Model Context Protocol (MCP) server that provides Joy of Wine brand resources and business integrations for use with Claude across multiple platforms.
Features
Brand Resources
- Colors: Complete brand color palette (primary, secondary, accent colors)
- Tone of Voice: Brand voice principles, vocabulary guidelines, and communication style
- Brand Guidelines: Comprehensive messaging, visual, and customer interaction guidelines
Integrations
- GitHub: Create issues, list issues, get repository information
- LemonSqueezy: Retrieve orders, products, subscriptions, and create checkouts
Architecture
This MCP server supports both stdio and HTTP/SSE transports:
- stdio: For local usage and Tauri applications
- HTTP/SSE: For web applications, widgets, and remote connections
Installation
npm install
Configuration
Copy .env.example to .env and configure:
cp .env.example .env
Edit .env with your credentials:
PORT=3000
MCP_API_KEY=your-secure-api-key
GITHUB_TOKEN=your-github-token
LEMONSQUEEZY_API_KEY=your-lemonsqueezy-key
Usage
Development
npm run dev
Production Build
npm run build
npm start
Transport Modes
HTTP/SSE Mode (default):
npm start
# Server runs on http://localhost:3000
# SSE endpoint: http://localhost:3000/sse
Stdio Mode (for local/Tauri apps):
node dist/index.js stdio
API Endpoints
When running in HTTP mode:
GET /health- Health check endpointGET /sse- SSE connection endpoint for MCP clientsPOST /message- Message endpoint for SSE transport
Brand Resources
The server exposes the following brand resources via MCP:
brand://colors- Color palettebrand://tone-of-voice- Voice and communication guidelinesbrand://guidelines- Complete brand guidelinesbrand://complete- Full brand guide
Available Tools
GitHub Tools
github_create_issue- Create issues in repositoriesgithub_list_issues- List repository issuesgithub_get_repo_info- Get repository information
LemonSqueezy Tools
lemonsqueezy_get_orders- Retrieve recent orderslemonsqueezy_get_products- List productslemonsqueezy_get_subscriptions- Get subscription informationlemonsqueezy_create_checkout- Create checkout URLs
Deployment
Render
This project includes a render.yaml configuration for easy deployment:
- Push to GitHub
- Connect your GitHub repository to Render
- Render will automatically detect
render.yaml - Set environment variables in Render dashboard
- Deploy!
The service will be available at: https://your-service-name.onrender.com
Environment Variables on Render
Configure these in the Render dashboard:
MCP_API_KEY- API key for authenticating MCP requestsGITHUB_TOKEN- GitHub personal access tokenLEMONSQUEEZY_API_KEY- LemonSqueezy API key
Client Integration
Tauri Application
// Use stdio transport
const client = new Client({
name: "joyofwine-app",
version: "1.0.0",
});
const transport = new StdioClientTransport({
command: "node",
args: ["path/to/joyofwine-mcp/dist/index.js", "stdio"],
});
await client.connect(transport);
Web Application
// Use HTTP/SSE transport
const client = new Client({
name: "joyofwine-web",
version: "1.0.0",
});
const transport = new SSEClientTransport(
new URL("https://your-server.onrender.com/sse"),
{
headers: {
Authorization: "Bearer your-api-key",
},
}
);
await client.connect(transport);
Brand Usage Example
// Read brand colors
const colors = await client.readResource("brand://colors");
// Read tone of voice
const tone = await client.readResource("brand://tone-of-voice");
// Use in your application
const primaryColor = JSON.parse(colors.contents[0].text).primary;
Security
- API Key Authentication: HTTP mode requires Bearer token authentication
- CORS: Configured for cross-origin requests
- Environment Variables: Sensitive data stored in environment variables
- GitHub Token: Use personal access tokens with minimal required scopes
- LemonSqueezy: API keys should be kept secure and rotated regularly
License
MIT
Support
For issues and questions, please open a GitHub issue.