Ein Model Context Protocol (MCP) Server zur Steuerung des PIB-Roboters über natürliche Sprache mit LLMs.
- 🤖 Inverse Kinematics: Bewege die Hand des Roboters zu einer gewünschten Position (x, y, z)
- 📐 Forward Kinematics: Berechne die Endeffektorposition aus Gelenkwinkeln
- 🎯 Gelenksteuerung: Setze spezifische Gelenkwinkel für präzise Kontrolle
- 💬 LLM-Integration: Nutze natürliche Sprache zur Robotersteuerung über Claude, ChatGPT, etc.
- Python ≥ 3.9
- pip
# Repository klonen oder in das Verzeichnis wechseln
cd pib-mcp
# Virtual Environment erstellen (empfohlen)
python -m venv venv
# Virtual Environment aktivieren
# Windows PowerShell:
.\venv\Scripts\Activate.ps1
# Windows CMD:
.\venv\Scripts\activate.bat
# Linux/Mac:
source venv/bin/activate
# Abhängigkeiten installieren
pip install mcp pib-sdkAlternativ mit allen Abhängigkeiten aus pyproject.toml:
pip install -e .python -m pib_mcp_server.serverFüge folgende Konfiguration zu deiner Claude Desktop Config hinzu:
Windows: %APPDATA%\Claude\claude_desktop_config.json
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Linux: ~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"pib-robot": {
"command": "python",
"args": [
"-m",
"pib_mcp_server.server"
],
"cwd": "<PFAD_ZUM_PIB_MCP_ORDNER>"
}
}
}Hinweis: Ersetze <PFAD_ZUM_PIB_MCP_ORDNER> durch den absoluten Pfad zu diesem Projekt!
Wenn du ein Virtual Environment verwendest, nutze den Python-Interpreter aus dem venv:
{
"mcpServers": {
"pib-robot": {
"command": "<PFAD_ZUM_VENV>/Scripts/python.exe",
"args": [
"-m",
"pib_mcp_server.server"
]
}
}
}Windows: venv\Scripts\python.exe
macOS/Linux: venv/bin/python
Nach der Konfiguration Claude Desktop neu starten, damit der MCP Server geladen wird.
Bewegt die Hand des Roboters zu einer bestimmten Position im 3D-Raum.
Parameter:
arm(string): "left" oder "right"x(number): X-Koordinate in Millimeterny(number): Y-Koordinate in Millimeternz(number): Z-Koordinate in Millimeternroll(number, optional): Roll-Winkel in Gradpitch(number, optional): Pitch-Winkel in Gradyaw(number, optional): Yaw-Winkel in Grad
Beispiel in Claude:
Bewege die rechte Hand des PIB-Roboters zur Position x=150, y=0, z=350
Setzt spezifische Gelenkwinkel für den Roboterarm.
Parameter:
arm(string): "left" oder "right"joint1bisjoint6(number): Gelenkwinkel in Grad
Beispiel in Claude:
Setze die Gelenkwinkel des rechten Arms auf: 0, 45, 0, 0, 90, 0
Berechnet die Endeffektorposition aus gegebenen Gelenkwinkeln.
Parameter:
arm(string): "left" oder "right"joint1bisjoint6(number): Gelenkwinkel in Grad
Beispiel in Claude:
Wo befindet sich die Hand, wenn der rechte Arm folgende Winkel hat: 0, 45, 0, 0, 90, 0?
Nach erfolgreicher Integration kannst du Claude folgende Anweisungen geben:
-
"Bewege die rechte Hand zur Position x=200, y=50, z=300"
- Claude nutzt
move_hand_to_positionund berechnet die benötigten Gelenkwinkel
- Claude nutzt
-
"Hebe die linke Hand 100mm höher als die aktuelle Position"
- Claude kann die aktuelle Position abfragen und die neue Position berechnen
-
"Führe eine Greifbewegung aus"
- Claude kann eine Sequenz von Bewegungen planen
Stelle sicher, dass Docker Desktop installiert und gestartet ist:
- Windows/macOS: Docker Desktop herunterladen
- Linux: Docker Engine installieren
# Mit Docker Compose (empfohlen)
docker-compose build
# Oder direkt mit Docker
docker build -t pib-mcp-server:latest .- Öffne Docker Desktop
- Gehe zu "Images" → Suche
pib-mcp-server:latest - Klicke auf "Run" → Wähle "Interactive" Modus
- Container läuft nun und ist bereit für MCP-Kommunikation
Windows (PowerShell/CMD):
# Image bauen
docker-compose build
# Container starten
docker run -i --rm pib-mcp-server:latestOder nutze das bereitgestellte Skript:
.\run-docker.batmacOS/Linux:
# Skript ausführbar machen
chmod +x run-docker.sh
# Container starten
./run-docker.shNachdem das Image gebaut wurde, füge diese Konfiguration zu deiner Claude Desktop Config hinzu:
Config-Pfad:
- Windows:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
Methode 1: Direkter Docker-Befehl (empfohlen)
{
"mcpServers": {
"pib-robot": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"pib-mcp-server:latest"
]
}
}
}Methode 2: Mit Wrapper-Skript (Windows)
{
"mcpServers": {
"pib-robot": {
"command": "<PFAD_ZUM_PIB_MCP_ORDNER>\\run-docker.bat"
}
}
}Methode 3: Mit Python-Wrapper
{
"mcpServers": {
"pib-robot": {
"command": "python",
"args": [
"<PFAD_ZUM_PIB_MCP_ORDNER>/run-docker.py"
]
}
}
}Wichtig:
- Das Docker Image muss vor der Nutzung mit
docker-compose buildgebaut werden - Docker Desktop muss laufen
- Bei Änderungen am Code muss das Image neu gebaut werden:
docker-compose build
Image neu bauen nach Code-Änderungen:
docker-compose build --no-cacheLaufende Container anzeigen:
docker psLogs anzeigen:
docker logs pib-mcp-serverContainer stoppen:
docker stop pib-mcp-serverAufräumen (alte Images/Container löschen):
docker system prune -a# Starten
docker-compose up -d
# Logs anzeigen
docker-compose logs -f
# Stoppen
docker-compose downIn deiner Claude Desktop Config (%APPDATA%\Claude\claude_desktop_config.json):
{
"mcpServers": {
"pib-robot": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"pib-mcp-server"
]
}
}
}Wichtig: Das Docker Image muss vorher gebaut worden sein!
Alternativ mit docker-compose:
{
"mcpServers": {
"pib-robot": {
"command": "docker-compose",
"args": [
"-f",
"<PFAD_ZUM_PIB_MCP_ORDNER>/docker-compose.yml",
"run",
"--rm",
"pib-mcp-server"
]
}
}
}pip install -e ".[dev]"
pytestDer Server nutzt Python's logging. Für mehr Details:
import logging
logging.basicConfig(level=logging.DEBUG)- MCP SDK: Verwendet das offizielle Model Context Protocol SDK
- pib-sdk: Nutzt die Robotics Toolbox für Forward/Inverse Kinematics
- Keine ROS/Gazebo Abhängigkeiten: Pure Python-Implementierung
AGPL-3.0 (gleiche Lizenz wie pib-sdk)