JoyOfWineMCP

madscientistmark/JoyOfWineMCP

3.2

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.

Tools
7
Resources
0
Prompts
0

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 endpoint
  • GET /sse - SSE connection endpoint for MCP clients
  • POST /message - Message endpoint for SSE transport

Brand Resources

The server exposes the following brand resources via MCP:

  • brand://colors - Color palette
  • brand://tone-of-voice - Voice and communication guidelines
  • brand://guidelines - Complete brand guidelines
  • brand://complete - Full brand guide

Available Tools

GitHub Tools

  • github_create_issue - Create issues in repositories
  • github_list_issues - List repository issues
  • github_get_repo_info - Get repository information

LemonSqueezy Tools

  • lemonsqueezy_get_orders - Retrieve recent orders
  • lemonsqueezy_get_products - List products
  • lemonsqueezy_get_subscriptions - Get subscription information
  • lemonsqueezy_create_checkout - Create checkout URLs

Deployment

Render

This project includes a render.yaml configuration for easy deployment:

  1. Push to GitHub
  2. Connect your GitHub repository to Render
  3. Render will automatically detect render.yaml
  4. Set environment variables in Render dashboard
  5. 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 requests
  • GITHUB_TOKEN - GitHub personal access token
  • LEMONSQUEEZY_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.