mcp-pyodid
Eine Pyodide-Serverimplementierung für das Model Context Protocol (MCP). Dieser Server ermöglicht Large Language Models (LLMs) die Ausführung von Python-Code über die MCP-Schnittstelle.
Merkmale
Python-Codeausführungsfunktion für LLMs mit Pyodide
MCP-kompatible Serverimplementierung
Unterstützung für die Transportmodi stdio und SSE
Robuste Implementierung, geschrieben in TypeScript
Verfügbar als Befehlszeilentool
Related MCP server: didlogic_mcp
Installation
npm install mcp-pyodideVerwendung
Als Server
import { runServer } from "mcp-pyodide";
// Start the server
runServer().catch((error: unknown) => {
console.error("Error starting server:", error);
process.exit(1);
});Als Befehlszeilentool
Im Standardmodus starten (Standard):
mcp-pyodideStart im SSE-Modus:
mcp-pyodide --sseSSE-Modus
Beim Ausführen im SSE-Modus stellt der Server die folgenden Endpunkte bereit:
SSE-Verbindung:
http://localhost:3020/sseNachrichtenhandler:
http://localhost:3020/messages
Beispiel einer Clientverbindung:
const eventSource = new EventSource("http://localhost:3020/sse");
eventSource.onmessage = (event) => {
console.log("Received:", JSON.parse(event.data));
};Projektstruktur
mcp-pyodide/
├── src/
│ ├── formatters/ # Data formatting handlers
│ ├── handlers/ # Request handlers
│ ├── lib/ # Library code
│ ├── tools/ # Utility tools
│ ├── utils/ # Utility functions
│ └── index.ts # Main entry point
├── build/ # Build artifacts
├── pyodide-packages/ # Pyodide-related packages
└── package.jsonAbhängigkeiten
@modelcontextprotocol/sdk: MCP SDK (^1.4.0)pyodide: Python-Laufzeitumgebung (^0.27.1)arktype: Bibliothek zur Typvalidierung (^2.0.1)express: Webframework für SSE-Unterstützungcors: CORS-Middleware für SSE-Unterstützung
Entwicklung
Anforderungen
Node.js 18 oder höher
npm 9 oder höher
Aufstellen
# Clone the repository
git clone <repository-url>
# Install dependencies
npm install
# Build
npm run buildSkripte
npm run build: TypeScript kompilieren und Ausführungsberechtigungen festlegennpm start: Server im Standardmodus ausführennpm run start:sse: Server im SSE-Modus ausführen
Umgebungsvariablen
PYODIDE_CACHE_DIR: Verzeichnis für den Pyodide-Cache (Standard: "./cache")PYODIDE_DATA_DIR: Verzeichnis für gemountete Daten (Standard: "./data")PORT: Port für SSE-Server (Standard: 3020)
Lizenz
MIT
Beitragen
Forken Sie das Repository
Erstellen Sie einen Feature-Zweig (
git checkout -b feature/amazing-feature)Übernehmen Sie Ihre Änderungen (
git commit -am 'Add some amazing feature')Pushen zum Zweig (
git push origin feature/amazing-feature)Erstellen einer Pull-Anforderung
Wichtige Hinweise
Dieses Projekt befindet sich in der Entwicklung und die API kann sich ändern
Vor dem Einsatz in der Produktion gründlich testen
Seien Sie aus Sicherheitsgründen vorsichtig, wenn Sie nicht vertrauenswürdigen Code ausführen
Stellen Sie bei Verwendung des SSE-Modus bei Bedarf eine ordnungsgemäße CORS-Konfiguration sicher
Unterstützung
Bei Problemen und Fragen nutzen Sie bitte den Issue Tracker.