Skip to content
Current State: ALPHA - Use at your own risk / Work in Progress

MCP Server Demo Guide

This guide provides step-by-step instructions for demonstrating the Eryxon Flow MCP Server capabilities.

Before the demo, ensure you have:

  1. Environment Variables Set

    Terminal window
    export SUPABASE_URL="https://your-project.supabase.co"
    export SUPABASE_SERVICE_KEY="your-service-key"
  2. Server Built and Ready

    Terminal window
    cd mcp-server
    npm install
    npm run build
  3. Sample Data - Ensure your Supabase database has some sample jobs, parts, and operations for demonstration.

Terminal window
npm start
# or for development with hot reload:
npm run dev

You should see:

Eryxon Flow MCP Server v2.5.0
Loaded 55 tools from 9 modules
Eryxon Flow MCP Server running on stdio

Tool Modules:

  • Jobs (7 tools) - Job lifecycle and management
  • Parts (2 tools) - Part tracking
  • Operations (5 tools) - Operation workflow
  • Tasks (2 tools) - Task management
  • Issues (8 tools) - Quality issues and NCRs
  • Substeps (5 tools) - Operation substeps
  • Dashboard (3 tools) - Production metrics
  • Scrap (7 tools) - Scrap tracking and analytics
  • Agent Batch (16 tools) - Batch operations for AI agents

Add to your Claude Desktop configuration (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

{
"mcpServers": {
"eryxon-flow": {
"command": "node",
"args": ["/path/to/eryxon-flow/mcp-server/dist/index.js"],
"env": {
"SUPABASE_URL": "https://your-project.supabase.co",
"SUPABASE_SERVICE_KEY": "your-service-key"
}
}
}
}

Objective: Show basic CRUD operations for manufacturing jobs.

  1. Fetch Current Jobs

    "Show me all jobs currently in progress"

    The AI will use fetch_jobs with status: "in_progress".

  2. Create a New Job

    "Create a new job for customer 'Acme Corp' with job number 'JOB-2024-0042' due next Friday"

    Uses create_job tool.

  3. Update Job Priority

    "Change job JOB-2024-0042 to high priority"

    Uses update_job tool.

  4. Start the Job

    "Start job JOB-2024-0042"

    Uses start_job tool.


Objective: Demonstrate real-time production metrics.

  1. Get Dashboard Stats

    "Show me the current production dashboard stats"

    Uses get_dashboard_stats.

  2. View QRM Capacity

    "What's our current cell capacity utilization?"

    Uses get_qrm_data.

  3. Production Metrics

    "Show me production metrics for the last 7 days"

    Uses get_production_metrics.


Objective: Demonstrate quality issue analytics and insights.

  1. Get Issue Analytics by Severity

    "Show me issue analytics for the last 30 days grouped by severity"

    Uses get_issue_analytics with days: 30, group_by: "severity".

  2. Analyze Issue Trends

    "What are the quality issue trends over the past week?"

    Uses get_issue_trends with days: 7, interval: "daily".

  3. Root Cause Analysis

    "Analyze the most common root causes for issues in the last 90 days"

    Uses get_root_cause_analysis with days: 90, min_occurrences: 2.

  4. Get Quality Improvement Suggestions

    "Give me suggestions to improve quality based on recent patterns"

    Uses suggest_quality_improvements with analysis of issue patterns.


Objective: Demonstrate agent batch operations for handling urgent orders.

  1. Prioritize a Rush Job

    "We have a rush order from customer 'Premium Parts Inc'.
    Prioritize job JOB-2024-0035, mark all parts as bullet cards,
    and add a note about the customer's deadline."

    Uses prioritize_job.

  2. Check Resource Availability

    "What machines are available to work on this rush job?"

    Uses check_resource_availability.

  3. Get Parts Due Soon

    "What parts are due in the next 3 days?"

    Uses get_parts_due_soon.

  4. Suggest Reschedule

    "Suggest a reschedule plan to accommodate this rush order"

    Uses suggest_reschedule.


Objective: Show bidirectional sync with external ERP systems.

  1. Check Sync Differences

    "Compare our current jobs with this ERP data and show me the differences:
    [
    { external_id: 'SAP-123', external_source: 'SAP', job_number: 'JOB-001', customer: 'Acme' },
    { external_id: 'SAP-124', external_source: 'SAP', job_number: 'JOB-002', customer: 'Beta Corp' }
    ]"

    Uses erp_sync_diff.

  2. Lookup External ID

    "Find the local job for SAP external ID 'SAP-123'"

    Uses erp_lookup_external_id.

  3. Execute Sync

    "Sync this ERP data with our system, skipping unchanged records"

    Uses erp_sync_execute.


Objective: Show granular operation control.

  1. Fetch Operations

    "Show me all operations for job JOB-2024-0035"

    Uses fetch_operations.

  2. Start an Operation

    "Start the laser cutting operation"

    Uses start_operation.

  3. Complete Multiple Operations

    "Complete operations OP-001 and OP-002"

    Uses batch_complete_operations.

  4. Assign Resources

    "Assign Machine #3 to operations OP-003 and OP-004"

    Uses assign_resource_to_operations.


Objective: Demonstrate issue tracking and NCR workflow.

  1. Fetch Open Issues

    "Show me all critical issues that are currently open"

    Uses fetch_issues with severity: “critical”, status: “open”.

  2. Create an NCR

    "Create a Non-Conformance Report for operation OP-005:
    - Title: 'Dimensional out of tolerance'
    - Severity: high
    - Category: process
    - Description: 'Part dimensions exceed tolerance by 0.5mm'"

    Uses create_ncr.

  3. Update Issue Status

    "Mark issue ISS-001 as resolved"

    Uses update_issue.


  • Verify all environment variables are set correctly
  • Test the server starts without errors
  • Ensure sample data exists in the database
  • Have Claude Desktop configured and connected
  • Test a few basic queries to warm up the connection
  1. Start Simple - Begin with basic fetch operations to show the connection works
  2. Build Complexity - Progress to more complex scenarios
  3. Show Real Data - Always use real database data, never mock data
  4. Highlight Analytics - Quality analytics and scrap analysis tools provide production insights
  5. Demonstrate Batch Operations - Show efficiency gains from batch tools

Q: How does authentication work? A: The MCP server uses a Supabase service key for database access. In production, you would also implement MCP authentication keys for per-tenant access control.

Q: Can this integrate with our existing ERP? A: Yes! The ERP sync tools support bidirectional synchronization with any external system. Just map your external IDs and sources.

Q: How is data security handled? A: All data access goes through Supabase with Row-Level Security (RLS). The MCP server respects tenant boundaries.


Terminal window
# Check environment variables
echo $SUPABASE_URL
echo $SUPABASE_SERVICE_KEY
# Rebuild
npm run build
# Check for errors
npm start 2>&1 | head -20
  1. Restart Claude Desktop
  2. Check the MCP configuration file syntax
  3. Verify the path to dist/index.js is correct
  4. Check Claude Desktop logs
Terminal window
# Test Supabase connection
node -e "
const { createClient } = require('@supabase/supabase-js');
const supabase = createClient(process.env.SUPABASE_URL, process.env.SUPABASE_SERVICE_KEY);
supabase.from('jobs').select('count').single().then(console.log);
"

CategoryToolsKey Use Case
Jobsfetch_jobs, create_job, update_job, start_job, stop_job, complete_job, resume_jobFull job lifecycle
Partsfetch_parts, update_partPart tracking
Operationsfetch_operations, start_operation, pause_operation, complete_operation, update_operationOperation control
Tasksfetch_tasks, update_taskTask assignment
Issuesfetch_issues, create_ncr, fetch_ncrs, update_issue, get_issue_analytics, get_issue_trends, get_root_cause_analysis, suggest_quality_improvementsQuality tracking & analytics
Substepsfetch_substeps, add_substep, complete_substep, update_substep, delete_substepGranular tracking
Dashboardget_dashboard_stats, get_qrm_data, get_production_metricsReal-time metrics
Scrapfetch_scrap_reasons, report_scrap, get_scrap_analytics, get_scrap_trends, get_yield_metrics, get_scrap_pareto, get_quality_scoreScrap tracking & yield analysis
Batch Ops16 tools for bulk operationsEfficiency

  1. Production Deployment - Deploy to Railway, Fly.io, or Docker
  2. Authentication - Configure API keys for multi-tenant access
  3. ERP Integration - Map your external system IDs
  4. Monitoring - Set up MCP activity monitoring in the admin UI

Setup & Deployment:

API & Integration:

Architecture: