Skip to main content
Glama
merwanroudane

python-session-mcp

python-session-mcp

Licence Python

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-mcp

Bibliotheksnutzung

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 dict

Ein 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

python_status

Welcher Interpreter und welche Pakete er tatsächlich hat

reset_namespace

Alles vergessen, optional den Interpreter neu starten

Code ausführen

Werkzeug

Zweck

run_python

Hauptwerkzeug. Code in der persistenten Sitzung ausführen

list_names

Was aktuell definiert ist

describe_object

Typ, Form, dtypes und ein Blick auf ein Objekt

get_value

Einen JSON-darstellbaren Wert zurückbringen

Daten

Werkzeug

Zweck

load_data

.csv, .xlsx, .dta, .parquet, .sav oder .json lesen

save_data

Ein DataFrame schreiben, fehlende Ordner erstellen

preview_data

Form, dtypes, fehlende Zählungen und die ersten Zeilen

summary_statistics

Deskriptive Statistiken mit Schiefe und Kurtosis

correlation

Pearson, Spearman oder Kendall

Schätzung

Werkzeug

Zweck

regression

OLS, optional mit HC- oder HAC-Standardfehlern

regression_diagnostics

Breusch-Godfrey, White und Jarque-Bera in einem Aufruf

unit_root

ADF oder KPSS, Differenzieren bis zur Stationarität

Diagramme

Werkzeug

Zweck

plot

Linie, Streuung, Histogramm, Box oder Balken – optional direkt in eine Datei

save_figure

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 defined

Alles, 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 created

Wissenswertes

  • 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_namespace beim Start von etwas Neuem.

  • run_python fü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 tests

Sie 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.

A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides 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.
    23
    Apache 2.0
  • A
    license
    A
    quality
    D
    maintenance
    A 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.
    12
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for secure, session-based Python code execution in Docker containers, enabling LLM applications to run code, manage state, and access files.
    9
    MIT

View all related MCP servers

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.

View all MCP Connectors

Latest Blog Posts

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