python-session-mcp
python-session-mcp
Python in einer Sitzung ausführen, die am Leben bleibt, und sie LLM-Clients über das Model Context Protocol zugänglich machen.
Autor: Dr. Merwan Roudane
Was es anders macht
Die Sitzung bleibt bestehen. Ein DataFrame, der in einem Aufruf geladen wurde, ist im nächsten noch da, sodass eine Analyse in Schritten aufgebaut wird, anstatt jedes Mal vollständig neu gesendet zu werden.
Ihr Interpreter, nicht der des Servers. Der Server kann durchaus unter einem nackten Python ohne pandas installiert sein. Der Interpreter, der Ihren Code ausführt, wird separat gewählt: Eine conda- oder Anaconda-Installation wird bevorzugt, wenn eine vorhanden ist, und PYTHON_MCP_INTERPRETER überschreibt das.
Ein Absturz kostet einen Prozess. Code läuft in einem Worker, nicht im Server. Speicher erschöpfen, sys.exit aufrufen, eine C-Erweiterung zum Absturz bringen – der Worker wird ersetzt und der Server läuft weiter. Es hält auch den Benutzercode vom stdin des Servers fern, das unter MCP der JSON-RPC-Stream selbst ist.
Related MCP server: LLM Python Code Sandbox
Installation
pip install python-session-mcpBibliotheksnutzung
from python_mcp import PythonRunner
with PythonRunner() as py:
py.run("import pandas as pd, statsmodels.api as sm")
py.run("df = pd.read_csv('macro.csv')")
print(py.run("df.describe()"))
py.run("m = sm.OLS(df['y'], sm.add_constant(df[['x','z']])).fit()")
print(py.run("m.summary()"))
print(py.value("m.params.to_dict()")) # a real Python dictEin abschließender Ausdruck wird so angezeigt, wie es eine REPL tun würde, sodass df.head() allein den Frame anzeigt, ohne print().
MCP-Server-Nutzung
{
"mcpServers": {
"python": {
"command": "python-session-mcp",
"env": { "PYTHON_MCP_INTERPRETER": "C:\\Users\\you\\anaconda3\\python.exe" }
}
}
}Werkzeuge
Sitzung
Werkzeug | Zweck |
| Welcher Interpreter und welche Pakete er tatsächlich hat |
| Alles vergessen, optional den Interpreter neu starten |
Code ausführen
Werkzeug | Zweck |
| Hauptwerkzeug. Code in der persistenten Sitzung ausführen |
| Was aktuell definiert ist |
| Typ, Form, dtypes und ein Blick auf ein Objekt |
| Einen JSON-darstellbaren Wert zurückbringen |
Daten
Werkzeug | Zweck |
|
|
| Ein DataFrame schreiben, fehlende Ordner erstellen |
| Form, dtypes, fehlende Zählungen und die ersten Zeilen |
| Deskriptive Statistiken mit Schiefe und Kurtosis |
| Pearson, Spearman oder Kendall |
Schätzung
Werkzeug | Zweck |
| OLS, optional mit HC- oder HAC-Standardfehlern |
| Breusch-Godfrey, White und Jarque-Bera in einem Aufruf |
| ADF oder KPSS, Differenzieren bis zur Stationarität |
Diagramme
Werkzeug | Zweck |
| Linie, Streuung, Histogramm, Box oder Balken – optional direkt in eine Datei |
| Die offene matplotlib-Figur in eine Datei schreiben |
Fehler
Fehler nennen die Ausnahme und die Zeile Ihres Codes und lassen die Sitzung intakt:
Python error: NameError on line 2: name 'undefined_name' is not definedAlles, was vor dem Fehler ausgegeben wurde, wird mit gemeldet, da diese Ausgabe oft erklärt, was den Fehler verursacht hat.
Abbildungen
Ein Plot kann nicht als Text zurückkommen. Zeichnen Sie ihn, dann speichern Sie ihn:
py.run("import matplotlib; matplotlib.use('Agg')")
py.run("import matplotlib.pyplot as plt; plt.plot(df['x'], df['y'], 'o')")
py.save_figure("figures/scatter.png") # missing folders are createdWissenswertes
Der Interpreter ist vom Server getrennt. Prüfen Sie
python_status, bevor Sie sich darauf verlassen, dass ein Paket vorhanden ist.Zustand ist ein Komfort und eine Gefahr. Namen bleiben bestehen, sodass eine veraltete Variable aus einem früheren Schritt eine spätere stillschweigend speisen kann.
reset_namespacebeim Start von etwas Neuem.run_pythonführt aus, was ihm gegeben wird, in Ihrer Umgebung, mit Ihrem Dateizugriff. Das ist der Sinn davon, und es lohnt sich, bewusst damit umzugehen.Der abschließende Ausdruck wird wiedergegeben. Ein langes DataFrame wird vollständig gedruckt, es sei denn, Sie schneiden es.
Tests
python tests/test_live.py # 41 testsSie decken Persistenz, Fehlerberichterstattung mit Zeilennummern, JSON-Roundtrips, Figurenschreiben, Wiederherstellung nachdem Benutzercode den Worker vollständig tötet, und jedes Daten- und Schätzungswerkzeug gegen generierte Daten mit bekannten Koeffizienten ab.
Gegen EViews auf denselben Daten geprüft, stimmt die Regression mit jeder gedruckten Ziffer überein – Koeffizienten, R-Quadrat, Durbin-Watson und die Breusch-Godfrey- und Jarque-Bera-Statistiken gleichermaßen.
Lizenz
MIT. Copyright (c) 2026 Merwan Roudane.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides persistent IPython shell sessions per conversation with DataFrame-centric architecture, enabling stateful data analysis, CLI tool execution, and integration of external MCP servers within the same workspace context.23Apache 2.0
- FlicenseNot gradedqualityDmaintenanceEnables LLMs to execute Python code in isolated sandboxes with file operations and MCP integration, supporting multi-round execution and plot capture.1
- AlicenseAqualityDmaintenanceA production-grade MCP server providing a persistent Python REPL with multi-session support, sandboxing, and timeout protection, enabling LLM agents to execute Python code across multiple turns with variables that persist between calls.121MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for secure, session-based Python code execution in Docker containers, enabling LLM applications to run code, manage state, and access files.9MIT
Related MCP Connectors
Persistent memory and cross-session learning for AI coding assistants (hosted remote MCP).
MCP server providing access to the Scorecard API to evaluate and optimize LLM systems.
MCP server exposing the Backtest360 engine API as tools for AI agents.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/merwanroudane/mcp_python'
If you have feedback or need assistance with the MCP directory API, please join our Discord server