use-mcp ist eine schlanke React-Hook-Bibliothek, die speziell für die Verbindung mit Model Context Protocol (MCP)-Servern entwickelt wurde. Dieses Projekt vereinfacht den Authentifizierungs- und Tool-Aufrufprozess des MCP-Standards in KI-Systemen und bietet Entwicklern eine benutzerfreundliche Frontend-Integrationslösung.
npm install use-mcp
# Oder
pnpm add use-mcp
# Oder
yarn add use-mcp
import { useMcp } from 'use-mcp/react'
function MyAIComponent() {
const {
state, // Verbindungsstatus: 'discovering' | 'authenticating' | 'connecting' | 'loading' | 'ready' | 'failed'
tools, // Vom MCP-Server bereitgestellte verfügbare Tools
error, // Fehlermeldung bei Verbindungsfehler
callTool, // Funktion zum Aufrufen von MCP-Server-Tools
retry, // Manuelles Wiederholen der Verbindung
authenticate, // Manuelles Auslösen der Authentifizierung
clearStorage, // Löschen gespeicherter Token und Anmeldeinformationen
} = useMcp({
url: 'https://your-mcp-server.com',
clientName: 'My App',
autoReconnect: true,
})
// Behandlung verschiedener Verbindungsstatus
if (state === 'failed') {
return (
<div>
<p>Verbindungsfehler: {error}</p>
<button onClick={retry}>Wiederholen</button>
<button onClick={authenticate}>Manuelle Authentifizierung</button>
</div>
)
}
if (state !== 'ready') {
return <div>Verbinde mit KI-Dienst...</div>
}
// Verwenden der verfügbaren Tools
const handleSearch = async () => {
try {
const result = await callTool('search', { query: 'example search' })
console.log('Suchergebnisse:', result)
} catch (err) {
console.error('Tool-Aufruf fehlgeschlagen:', err)
}
}
return (
<div>
<h2>Anzahl der verfügbaren Tools: {tools.length}</h2>
<ul>
{tools.map(tool => (
<li key={tool.name}>{tool.name}</li>
))}
</ul>
<button onClick={handleSearch}>Suchen</button>
</div>
)
}
Um den OAuth-Authentifizierungsprozess zu verarbeiten, muss in der Anwendung ein Callback-Endpunkt eingerichtet werden.
// App.tsx mit React Router
import { BrowserRouter as Router, Routes, Route } from 'react-router-dom'
import { useEffect } from 'react'
import { onMcpAuthorization } from 'use-mcp'
function OAuthCallback() {
useEffect(() => {
onMcpAuthorization()
}, [])
return (
<div>
<h1>Authentifizierung läuft...</h1>
<p>Dieses Fenster sollte sich automatisch schließen.</p>
</div>
)
}
function App() {
return (
<Router>
<Routes>
<Route path="/oauth/callback" element={<OAuthCallback />} />
<Route path="/" element={<YourMainComponent />} />
</Routes>
</Router>
)
}
// pages/oauth/callback.tsx
import { useEffect } from 'react'
import { onMcpAuthorization } from 'use-mcp'
export default function OAuthCallbackPage() {
useEffect(() => {
onMcpAuthorization()
}, [])
return (
<div>
<h1>Authentifizierung läuft...</h1>
<p>Dieses Fenster sollte sich automatisch schließen.</p>
</div>
)
}
function useMcp(options: UseMcpOptions): UseMcpResult
Option | Typ | Beschreibung |
---|---|---|
url |
string |
Erforderlich. Die URL des MCP-Servers |
clientName |
string |
Der Clientname bei der OAuth-Registrierung |
clientUri |
string |
Die Client-URI bei der OAuth-Registrierung |
callbackUrl |
string |
Die benutzerdefinierte Callback-URL für die OAuth-Umleitung (standardmäßig /oauth/callback der aktuellen Domain) |
storageKeyPrefix |
string |
Das Speicher-Key-Präfix für OAuth-Daten im localStorage (standardmäßig "mcp:auth" ) |
clientConfig |
object |
Die benutzerdefinierte Konfiguration der MCP-Clientidentität |
debug |
boolean |
Ob detaillierte Debug-Protokolle aktiviert werden sollen |
autoRetry |
boolean | number |
Automatisches Wiederholen bei anfänglichem Verbindungsfehler, kann die Verzögerung in Millisekunden festlegen |
autoReconnect |
boolean | number |
Automatisches Wiederverbinden bei Verlust einer bestehenden Verbindung, kann die Verzögerung in Millisekunden festlegen (Standard: 3000) |
Attribut | Typ | Beschreibung |
---|---|---|
state |
string |
Der aktuelle Verbindungsstatus: 'discovering' , 'authenticating' , 'connecting' , 'loading' , 'ready' , 'failed' |
tools |
Tool[] |
Die vom MCP-Server bereitgestellten verfügbaren Tools |
error |
string | undefined |
Die Fehlermeldung bei Verbindungsfehler |
authUrl |
string | undefined |
Die manuelle Authentifizierungs-URL, wenn das Popup blockiert wird |
log |
LogEntry[] |
Ein Array von Protokollmeldungen |
callTool |
(name: string, args?: Record<string, unknown>) => Promise<any> |
Die Funktion zum Aufrufen von MCP-Server-Tools |
retry |
() => void |
Der Versuch, die Verbindung manuell wiederherzustellen |
disconnect |
() => void |
Die Verbindung zum MCP-Server trennen |
authenticate |
() => void |
Manuelles Auslösen der Authentifizierung |
clearStorage |
() => void |
Alle gespeicherten Authentifizierungsdaten löschen |
use-mcp bietet React-Entwicklern eine leistungsstarke und schlanke Lösung zur Integration von Model Context Protocol-Servern. Durch seine intuitive Hook-Schnittstelle, die umfassende Verarbeitung des Authentifizierungsprozesses und die leistungsstarken Verbindungsverwaltungsfunktionen können Entwickler die KI-Tool-Integration einfach in React-Anwendungen implementieren und die Nutzung des MCP-Standards erheblich vereinfachen.