
iiot-university/mcp_a2a_workshop
Developer tools이 페이지는 AI로 자동 번역되었습니다. 기술적인 세부 사항은 원문을 확인하세요. 원문 보기
IIoT.University MCP and A2A Workshop Repository
개요
A hands-on 2-day workshop for engineers, integrators, and digital transformation professionals in industrial automation. Learn to build multi-server MCP architectures and implement the Agent2Agent protocol for collaborative AI systems. Then configure Claude Desktop (claude_desktop_config.json) — see Day 1 section below. Build Python MCP servers that give Claude Desktop access to industrial data. 1. — Read/write to Unified Namespace 2. — Query relational MES data 3. — Manufacturing-focused tools for Press 103 Expose MCP capabilities via HTTP and orchestrate with N8N workflows. 1. — A2A server exposing Press 103 data (port 8001) 2. — REST endpoints for N8N integration (port 8002) 3. — Orchestrated multi-step agent workflows All examples use the ProveIt! Conference virtual factory environments. - [ ] — Document what was pulled from Day 2 Session 2-3 for standalone tutorial
README
원문 README의 일부입니다. 원문 보기.
MCP & A2A Workshop
Advanced MCP and Agent-to-Agent Workshop
IIoT University — December 16-17, 2025
Workshop Overview
A hands-on 2-day workshop for engineers, integrators, and digital transformation professionals in industrial automation. Learn to build multi-server MCP architectures and implement the Agent2Agent protocol for collaborative AI systems.
| Day | Date | Topic | Status |
|---|---|---|---|
| 1 | Dec 16, 2025 | Advanced MCP — Multi-Server Architectures | ✅ Complete |
| 2 | Dec 17, 2025 | Agent2Agent — Collaborative Intelligence | ✅ Complete |
| 3 | Jan 2026 | Containerization & Production Deployment | 📅 Scheduled |
Quick Start
Prerequisites
| Requirement | Version | Purpose |
|---|---|---|
| Python | 3.11+ | MCP servers and A2A agents |
| Claude Desktop | Latest | MCP client interface |
| Docker Desktop | Latest | N8N and container orchestration (Day 2) |
| Git | Any | Clone repository |
1. Clone & Configure
# Clone the repository
git clone https://github.com/iiot-university/MCP_A2A_Workshop.git
cd MCP_A2A_Workshop
# Copy environment template
cp .env.example .env
# Edit .env with your Virtual Factory credentials
# Required variables:
# MQTT_BROKER, MQTT_PORT, MQTT_USERNAME, MQTT_PASSWORD
# MYSQL_HOST, MYSQL_PORT, MYSQL_USERNAME, MYSQL_PASSWORD
2. Day 1 Setup — MCP Servers
# Setup each MCP server (creates venv, installs dependencies)
cd day1/mqtt_server && python3 -m venv venv && source venv/bin/activate && pip install -r requirements.txt && deactivate && cd ../..
cd day1/mysql_server && python3 -m venv venv && source venv/bin/activate && pip install -r requirements.txt && deactivate && cd ../..
cd day1/mes_server && python3 -m venv venv && source venv/bin/activate && pip install -r requirements.txt && deactivate && cd ../..
Then configure Claude Desktop (claude_desktop_config.json) — see Day 1 section below.
3. Day 2 Setup — Docker & HTTP Servers
# Install Docker and N8N (see day2/setup/README.md for full guide)
docker run -d --name n8n --restart=always -p 5678:5678 -v n8n_data:/home/node/.n8n n8nio/n8n
# Make startup scripts executable (one time)
chmod +x start_servers.sh stop_servers.sh
# Start all Day 2 HTTP servers
./start_servers.sh
4. Verify Everything Works
# Check Day 2 HTTP servers
curl http://localhost:8001/health # Production Agent
curl http://localhost:8002/health # MES HTTP Server
# Check N8N
open http://localhost:5678
# Check MCP servers (in Claude Desktop)
# Ask: "What topics are available in the UNS?"
# Ask: "What is the current OEE for Press 103?"
5. Stop Everything
# Stop HTTP servers
./stop_servers.sh
# Stop N8N (optional)
docker stop n8n
Port Assignments
| Server | Port | Protocol | Purpose |
|---|---|---|---|
| Production Agent | 8001 | HTTP/A2A | A2A protocol endpoints |
설치
docker run -d --name n8n --restart=always -p 5678:5678 -v n8n_data:/home/node/.n8n n8nio/n8n설정
{
"mcpServers": {
"mqtt-uns": {
"command": "/path/to/day1/mqtt_server/venv/bin/python",
"args": ["/path/to/day1/mqtt_server/src/mqtt_mcp_server.py"]
},
"mysql-mes": {
"command": "/path/to/day1/mysql_server/venv/bin/python",
"args": ["/path/to/day1/mysql_server/src/mysql_mcp_server.py"]
},
"mes-press103": {
"command": "/path/to/day1/mes_server/venv/bin/python",
"args": ["/path/to/day1/mes_server/src/mes_mcp_server.py"]
}
}
}