MCP-Server
Die MCP-Server-Seite startet und stoppt den lokalen Model Context Protocol-Server der App. MCP ermöglicht es einem kompatiblen Client, wie einem KI-Assistenten oder Automatisierungstool, die von der App bereitgestellten Werkzeuge zu entdecken und diese über einen lokalen HTTP-Endpunkt anzufordern.
Der Server ist in der laufenden App integriert. Es handelt sich nicht um einen separaten Befehlszeilen-Dienst, und es ist kein öffentlicher Internetdienst. Starten Sie ihn nur, wenn Sie möchten, dass ein MCP-Client eine Verbindung herstellt.
Was MCP steuern kann
MCP gibt die Funktionen des Bereichs frei, die die App ausdrücklich veröffentlicht. Es handelt sich nicht um eine allgemeine Fernbedienungsoberfläche für das App-Fenster.
Für ControlMyNikon ist das erste nützliche Modul NikonMCP. NikonMCP dient zur Steuerung des Kamerazustands und von Kameraaktionen wie Aufnahme, Live-Ansicht, Verbindungssteuerung und Kontrast-Autofokus.
Verwenden Sie NikonMCP für die Nikon-spezifische Werkzeugliste und Kamerazustandsdetails.
Seitensteuerungen
- Starten beginnt mit dem Hosting des MCP-Endpunkts.
- Stoppen beendet den MCP-Endpunkt und gibt den Port frei.
- Adresse legt die lokale Adresse fest, auf der gehört werden soll.
- Port legt den TCP-Port fest.
- Konfigurierten Endpunkt zeigt die URL an, die dem MCP-Client gegeben werden soll.
- URL kopieren kopiert den konfigurierten Endpunkt.
- Bearer-Token ist das Token, das Clients mit Anfragen senden müssen.
- Token kopieren kopiert das Token.
- Token regenerieren erstellt ein neues Token und macht das alte ungültig, nachdem der Server neu gestartet wurde.
- Module listet die von der App deklarierten MCP-Module auf, wie z.B. NikonMCP.
- Aktiviert oder Deaktiviert steuert, ob ein Modul Werkzeuge zum Server beiträgt.
- Protokoll zeigt Serverstart-, Stopp-, Anforderungs-, Ablehnungs- und Werkzeugaufrufnachrichten an.
- Löschen im Protokoll-Kontextmenü löscht das sichtbare Seitenprotokoll.
Der Standardendpunkt ist:
http://127.0.0.1:50507/mcp
Der Server startet nur, wenn mindestens ein Modul aktiviert ist und das Bearer-Token nicht leer ist. Adresse, Port, Bearer-Token und Moduleinstellungen sind profilbasiert. Wenn der MCP-Server läuft, wenn das Profil gespeichert oder die App geschlossen wird, kann dieses Profil ihn beim nächsten Mal wieder starten.
Adresse und Port
Verwenden Sie 127.0.0.1 wenn der MCP-Client auf demselben Computer läuft. Dies ist die sicherste und häufigste Konfiguration.
Verwenden Sie eine LAN-IPv4-Adresse, die nur diesem Computer zugewiesen ist, wenn ein vertrauenswürdiger Client im selben privaten Netzwerk eine Verbindung herstellen muss. Wildcard-, Broadcast-, nicht-lokale und nicht-IPv4-Bindungen werden abgelehnt.
Exponieren Sie den MCP-Endpunkt nicht über Router-Portweiterleitung, öffentliches WLAN, unzuverlässige VPNs oder internetgerichtete Firewall-Regeln. MCP-Werkzeuge können echte App-Aktionen anfordern, behandeln Sie daher den Endpunkt und das Token wie einen lokalen Steuerungsschlüssel.
Einen Client verbinden
Verwenden Sie einen streambaren HTTP-MCP-Client. Konfigurieren Sie den Client mit:
- Endpunkt-URL: der auf der Seite angezeigte konfigurierte Endpunkt.
- Autorisierungsheader:
Authorization: Bearer your-token.
Die meisten Clients fragen nach der URL und einem Bearer-Token oder benutzerdefinierten Header. Wenn Ihr Client Header separat speichert, verwenden Sie:
Header name: Authorization
Header value: Bearer your-token
Ersetzen Sie your-token durch das auf der MCP-Server-Seite angezeigte Token. Schließen Sie keine Anführungszeichen um das Token ein.
Technische Anforderungsform
MCP-Clients senden normalerweise diese Anfragen für Sie. Die folgenden Details sind nützlich, wenn Sie einen Client konfigurieren oder debuggen.
Der Endpunkt akzeptiert HTTP POST Anfragen an /mcp. Der Anforderungskörper ist JSON-RPC. Der Client muss das Bearer-Token einfügen, wenn ein Token konfiguriert ist.
Initialisierungsanfrage:
{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"local-client","version":"1.0"}}}
Initialisierungsbenachrichtigung:
{"jsonrpc":"2.0","method":"notifications/initialized","params":{}}
Werkzeuge auflisten:
{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}
Ein Werkzeug aufrufen:
{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"nikon_hello","arguments":{}}}
Der Server gibt strukturierte Werkzeugergebnisse zurück. Erwartete App-Ablehnungen, wie z.B. eine nicht verbundene Kamera, werden als normale Werkzeugergebnisse mit ok auf false gesetzt zurückgegeben.
Serverstatus
- Gestoppt bedeutet, dass der Endpunkt nicht hört.
- Gestartet bedeutet, dass der Endpunkt an der konfigurierten Adresse und dem konfigurierten Port hört.
- Bereit zum Starten des MCP-Servers bedeutet, dass die Seite geladen ist und die Einstellungen verfügbar sind.
- MCP-Host gestartet bedeutet, dass der Server erfolgreich gestartet wurde.
- MCP-Host gestoppt bedeutet, dass der Server normal gestoppt wurde.
- Kein MCP-Laufzeit registriert bedeutet, dass die App keine MCP-Laufzeit für diese Seite deklariert hat.
- MCP-Host ist durch das Profil deaktiviert bedeutet, dass das gespeicherte Profil das Hosting deaktiviert hat.
- MCP-Host konnte nicht gestartet werden, da keine deklarierten MCP-Module aktiviert sind, bedeutet, dass alle Modulkarten deaktiviert sind.
- MCP-Host konnte nicht gestartet werden bedeutet, dass die Adresse, der Port oder die lokale Umgebung den Start verhindert haben.
Der Protokollbereich gibt die genaue Nachricht für Fehler und abgelehnte Anfragen an.
Sicherheitsnotizen
MCP-Server verwendet unverschlüsseltes lokales HTTP plus Bearer-Token-Authentifizierung. Das Token schützt den Anforderungsweg, aber die Verbindung ist nicht verschlüsselt. Verwenden Sie Loopback für Clients auf demselben Computer, wann immer möglich. Verwenden Sie LAN-Bindungen nur in Netzwerken und auf Maschinen, denen Sie vertrauen.
Regenerieren Sie das Token, wenn es mit einem Client geteilt wurde, dem Sie nicht mehr vertrauen. Nach der Regenerierung des Tokens stoppen und starten Sie den MCP-Server, damit Clients den neuen Wert verwenden müssen.
Fehlerbehebung
Wenn Start deaktiviert ist:
- Aktivieren Sie mindestens ein Modul.
- Bestätigen Sie, dass die Adresse nicht leer ist.
- Bestätigen Sie, dass der Port zwischen 1 und 65535 liegt.
- Bestätigen Sie, dass das Bearer-Token nicht leer ist.
- Stoppen Sie den Server, bevor Sie Adresse, Port oder Bearer-Token ändern.
Wenn Start fehlschlägt:
- Ein anderer Prozess verwendet möglicherweise bereits den Port.
- Die Adresse ist möglicherweise nicht diesem Computer zugewiesen.
- Wählen Sie einen anderen Port oder eine andere Adresse und versuchen Sie es erneut.
- Überprüfen Sie das Protokoll auf die genaue Fehlermeldung.
Wenn der Client keine Verbindung herstellen kann:
- Bestätigen Sie, dass der Server als Gestartet angezeigt wird.
- Bestätigen Sie, dass die Client-URL genau mit dem konfigurierten Endpunkt übereinstimmt.
- Verwenden Sie
127.0.0.1nur für Clients auf demselben Computer. - Für einen anderen LAN-Computer verwenden Sie die LAN-IPv4-Adresse dieses Computers und bestätigen Sie, dass die Firewall-Regeln die Verbindung zulassen.
- Bestätigen Sie, dass der Client Streamable HTTP MCP unterstützt, nicht nur stdio-only MCP.
Wenn der Client 401 Unauthorized erhält:
- Fügen Sie den
AuthorizationHeader hinzu. - Bestätigen Sie, dass der Header mit
Bearerbeginnt. - Bestätigen Sie, dass das Token nicht leer ist.
Wenn der Client 403 Forbidden erhält:
- Bestätigen Sie, dass das Token genau mit dem aktuellen Bearer-Token übereinstimmt.
- Wenn Sie das Token regeneriert haben, aktualisieren Sie den Client.
- Wenn die Anfrage einen Origin-Header enthält, bestätigen Sie, dass er von einem erlaubten lokalen Ursprung stammt.
Wenn der Client 405 Method Not Allowed erhält:
- Der Client verwendet wahrscheinlich HTTP
GET. - Konfigurieren Sie den Client für streambare HTTP-Werkzeugaufrufe, die
POST /mcpsenden.
Wenn keine Nikon-Werkzeuge angezeigt werden:
- Bestätigen Sie, dass die NikonMCP-Modulkarten aktiviert sind.
- Stoppen und starten Sie den MCP-Server, nachdem Sie die Modulaktivierung geändert haben.
- Bestätigen Sie, dass der Client nach dem Neustart des Servers aktualisiert oder erneut verbunden wurde.