eviews-mcp
eviews-mcp
Steuern Sie EViews von Python aus und machen Sie es über das Model Context Protocol für LLM-Clients verfügbar.
Dokumentationsseite · Forscherleitfaden · PyPI
Zwei Dinge in einem Paket:
Eine Bibliothek. Eine
EViews-Klasse für Skripte und Notebooks – Workfiles erstellen, Modelle schätzen, Ergebnisse als Text oder pandas-DataFrames zurücklesen.Ein MCP-Server. Dieselben Fähigkeiten als Tools, sodass ein Assistent in einer echten EViews-Sitzung Ökonometrie betreiben kann.
Entwickelt und getestet gegen EViews 13 unter Windows; EViews 10–14 werden über dieselbe COM-Schnittstelle korrekt erkannt.
Noch nicht eingeweiht? Der EViews-Forscherleitfaden führt Sie von einem frischen Rechner bis zu einer vollständigen ARDL-Studie. Jeder Befehl und jede Ausgabe wurden gegen eine echte EViews-Sitzung geprüft. Python-Kenntnisse werden nicht vorausgesetzt.
Installation
pip install eviews-mcpMit pandas-Unterstützung:
pip install "eviews-mcp[pandas]"Oder aus einem lokalen Klon für die Entwicklung:
git clone https://github.com/merwanroudane/MCP_EVIEWS.git
cd MCP_EVIEWS
pip install -e .[dev]Erfordert Windows und eine lokale EViews-Installation, da EViews über COM-Automation angesteuert wird.
Related MCP server: econstats-mcp
Bibliotheksnutzung
from eviews_mcp import EViews
with EViews() as ev:
ev.create_workfile("q", "1990q1", "2020q4")
ev.run("""
series k = 100 + @trend + 3*@nrnd
series l = 50 + 0.5*@trend + 2*@nrnd
series gdp = 10 + 0.6*k + 0.3*l + 2*@nrnd
equation eq1.ls gdp c k l
""")
print(ev.show("eq1"))
print(ev.value("eq1.@r2"))Dependent Variable: GDP
Method: Least Squares
Included observations: 124
Variable Coefficient Std. Error t-Statistic Prob.
C 9.58073 0.829252 11.5535 2.90e-21
K 0.591693 0.0333819 17.7250 1.99e-35
L 0.322394 0.0673315 4.78816 4.81e-06
R-squared 0.994702 Mean dependent var 131.080Jede EViews-Ansicht als Text
show übernimmt eine Ansicht, daher sind für Diagnosen keine zusätzlichen APIs erforderlich:
ev.show("eq1", "wald c(2)=c(3)") # coefficient restriction test
ev.show("eq1", "resids(t)") # residual table
ev.show("eq1", "coefcov") # coefficient covariance
ev.show("eq1", "auto(2)") # Breusch-Godfrey serial correlation
ev.show("eq1", "white") # White heteroskedasticity test
ev.show("gdp", "uroot") # unit root test
ev.show("gdp", "correl") # correlogram
ev.show("ardl1", "cointrel") # ARDL long-run relationship
ev.show("var1", "impulse(t)") # impulse response table
ev.show("var1", "testexog") # Granger causalityresids und impulse zeichnen standardmäßig Graphen; die (t)-Varianten fordern von EViews die Tabellenform. Ansichten, die in einen Spool statt in eine Tabelle einfrieren – darunter die ARDL-Kointegrationsbeziehung –, können über COM überhaupt nicht gelesen werden. Für diese fällt show auf eine Textausgabe zurück.
Wenn die Zahlen zählen und nicht das Layout: table() liefert die rohen Zeilen in voller Doppelgenauigkeit, und value() liefert eine einzelne Zahl:
rows = ev.table("eq1") # tuple of row tuples
r2 = ev.value("eq1.@r2") # 0.9947015...
beta = ev.value("eq1.@coefs(2)")Ergebnisse als Daten, nicht nur Text
show formatiert eine Tabelle zum Lesen. Diese Funktionen liefern stattdessen die Zahlen – zum Testen, Tabellieren oder zur Weitergabe an etwas anderes:
ev.coefficients("eq1")
# [{'variable': 'LNK', 'coefficient': 0.549198724914677,
# 'std_error': 0.023936158605687322, 't_stat': 22.94431341143375,
# 'p_value': 5.677925593821611e-41}, ...]
ev.fit("eq1")["R-squared"] # 0.9858630667863459Integrationsordnung, über Differenzen hinweg bis zur Stationarität:
ev.unit_root("lngdp")
# {'series': 'LNGDP', 'order_of_integration': 1, 'conclusion': 'I(1)',
# 'steps': [{'difference': 0, 'statistic': -0.5001, 'p_value': 0.8856, ...},
# {'difference': 1, 'statistic': -12.1778, 'p_value': 0.0001, ...}]}Übergeben Sie options, um den Test zu wählen: "pp" für Phillips-Perron, "kpss" für KPSS, "adf", trend zusätzlich für einen linearen Trend. KPSS dreht die Nullhypothese um, die angegebene Ordnung gilt daher nicht dafür.
Die übliche Testbatterie nach der Schätzung in einem Aufruf:
report = ev.diagnose("eq1")
report["summary"]
# 'All 3 diagnostics pass at the 0.05 level.'Breusch-Godfrey, White und Jarque-Bera, jeweils mit Prüfgröße, p-Wert und dem Rejektionsergebnis für die Nullhypothese. Ein Test, der nicht ausgeführt werden kann, wird unter report["skipped"] mit dem von EViews gelieferten Grund eingetragen. Die Zusammenfassung überschätzt also nie den tatsächlichen Prüfumfang.
Diese Aussagen lesen p-Werte gegen ein von Ihnen gewähltes Signifikanzniveau. Sie belegen nicht, dass eine Spezifikation gültig ist – Strukturbrüche, Saisonalität und kurze Stichproben führen diese Tests in die Irre.
pandas in beide Richtungen
frame = ev.to_dataframe(["gdp", "k", "l"]) # indexed 1990Q1, 1990Q2, ...
frame.corr()Beim Zurückschreiben bestimmen DatetimeIndex oder PeriodIndex die Seitenfrequenz und Seitenlänge/Zeitbereich, sodass die Daten synchron bleiben:
import numpy as np
import pandas as pd
rng = np.random.default_rng(7)
index = pd.period_range("2005Q1", periods=40, freq="Q")
unemployment = 7.0 - 0.05 * np.arange(40) + rng.normal(0, 0.4, 40)
df = pd.DataFrame(
{"unemployment": unemployment,
"inflation": 9.0 - 0.9 * unemployment + rng.normal(0, 0.5, 40)},
index=index,
)
ev.from_dataframe(df) # creates a quarterly 2005Q1-2014Q4 page
ev.run("equation phillips.ls inflation c unemployment")Nicht-numerische Spalten werden übersprungen, statt das gesamte DataFrame zu verwerfen.
Grafiken
Grafiken lassen sich nicht als Text rendern, also schreiben Sie sie in eine Datei:
ev.export_object("phillips", "residuals.png", view="resids")Grafikformate: png, jpg, pdf, emf, wmf, bmp, gif, eps, tex. Tabellenformate: csv, rtf, txt, html.
Fehler
EViews meldet Fehler präzise, einschließlich der Zeilennummer in einem Programm. Diese Meldungen werden unverändert durch gegeben:
ev.run("""series ok = 1
broken_command
""")EViewsError: BROKEN_COMMAND is not defined or is an illegal command in "BROKEN_COMMAND"
in MCP_77B699157F3B.PRG on line 2.Das generierte Programm erhält bei jedem Lauf einen zufälligen Namen; nur dieser Teil variiert also.
MCP-Serververwendung
Registrieren Sie den Befehl eviews-mcp bei Ihrem MCP-Client:
{
"mcpServers": {
"eviews": {
"command": "eviews-mcp"
}
}
}Für Claude Code:
claude mcp add eviews -- eviews-mcpTools
Tool | Zweck |
| Verbindung, Version, aktives Workfile. Debugging hier starten. |
| Instanz verwerfen und sauber neu starten. |
| EViews-Fenster anzeigen oder ausblenden. |
| Neue Seite nach Frequenz und Bereich. |
|
|
| Eine oder alle offenen Workfiles schließen. |
| Name, Seite, Frequenz, Bereich, Sample. |
| Inventar, nach Compute" / EViews-Typ filterbar. |
| Schätzsample festlegen. |
| Haupt-Tool. Einen Block EViews-Programmcode ausführen. |
| Hern eines vorhandenen |
| Eine einzelne Befehlszeile. |
| Objekt als Tabelle rendern. |
| Einen Wert aus einem Ausdruck. |
| Typ sowie Statistiken für eine Serie. |
| Koeffizienten als saubere Zahlentextabelle. |
| Integrationsordnung, über Differenzen getestet. |
| Ergebnisse geben: Serielle Korrelation, Heteroskedastizität und Normalität. |
| Serien als ausgerichtete Tabelle oder CSV mit voller Präz. |
| Werte in eine Serie schreiben. |
| Liest |
| Serien in eine Datei schreiben. |
| Ein Objekt speichern – der Weg, Grafiken abzurufen. |
Ergebnisse werden nicht von run_eviews_code ausgegeben, da EViews Programmausgaben in das eigene Protokollfenster schickt, wo COM sie nicht erreichen kann. Schätzen Sie also in ein benanntes Objekt und rufen Sie show darauf auf.
Interessantes Verhalten
Diese Eigenschaften hand take EViews; the library treats them for you; documented because people writing directly COM code being surprised.
Writes respekt the active sample. Unter
smpl 2000m3 2000m6platziert das Schreiben von 12 Werten nur 4 und lässt den Rest stillschweigend NA. Schreibzugriffe nutzen standardmäßig die gesamte Seite;sample=""optiert stattdessen in das aktuelle Sample.saveignoriert die Dateierweiterung.graph.save "out.png"schreibt EMF-Daten. Das Format wird explizit übergeben; ein Speichern ohne erzeugte Datei löst einen Fehler aus statt Erfolg zu meldden.Relative Pfade lösen sich gegen EViews auf, nicht gegen den aufrufenden Prozess; Pfade werden deshalb absolut gesetzt, bevor sie übergeben werden.
Ein datiertes DataFrame bestimmt die Seite. Das Schreiben eines 12-zeiligen Quartal-Frames in eine offene 80-zeilige Seite würde die Werte auf den falschen Daten platzieren; daher wird eine zum Frame passende Seite erzeugt.
Keine Logumleitung.
outputbenötigt einen eingefrorenen Objekt ab und schreibt sonst gar nichts; ein Log kann nicht eingefangen werden. Ergebnisse stammen durch Einfrieren eines Objekts in eine Tabelle und Lesen dieser Tabelle.Keine
GetScalar- /PutScalar- /GetString-Support. Diese gibt es an der EViews-COM-Schnittstelle überhaupt nicht.Getdeckt sie ab und bestimmt den Typ automatisch.Eine COM-Thread. MCP dispered synchroner Tools über einen Thread-Pool; ein COM-Zeiger ist über Apartments hinweg nicht gültig. Also wird jedes EViews-Aufrufution auf einen einzigen Apartment-initialsierten Thread gepumpt.
Import in ein offenes Workfile verkürzt die Datei stillschweigend auf die Seitenlänge. Import entwickelt deshalb standardmäßig einues Workfile; das Mischen in die aktuelle Seite ist opt-in.
EViews begrenzt die Anzahl offener Workfiles und verweigert danach weitere;
close_workfileist deshalb dazu da, lange Sitzungen debugbar zu halten.
Tests
python tests/test_offline.py # 27 tests, no EViews needed
python tests/test_live.py # 25 tests, drives the MCP tool layer
python tests/test_live_client.py # 58 tests, drives the library APIpytest führt standardmäßig die Offline-Suite; die Live-Suiten sind nur optional, da sie eine EViews-Lizenz erfordern.
Lizenz
MIT. Copyright (c) 2026 EViews-Roudane.
[Letters]
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
- AlicenseAqualityAmaintenanceAn MCP server that lets Large Language Models interact with Stata software to perform regression analysis and other statistical operations.4243AGPL 3.0
- FlicenseNot gradedqualityDmaintenanceEconomic data MCP server that connects FRED, BLS, BEA, IMF, World Bank, and ECB to any MCP-compatible client, with built-in methodology rules to guide LLMs in selecting appropriate economic indicators.
- AlicenseNot gradedqualityDmaintenanceEconometrics MCP server for regression, causal inference, time series, panel data, machine learning, and broader statistical analysis workflows.10MIT
- AlicenseAqualityBmaintenanceDeterministic time-series statistics for AI agents. This MCP server gives any LLM agent unit-tested statistical tools — anomaly detection, changepoint detection, seasonal decomposition, stationarity/trend tests, data-quality audits, baseline forecasts — with schema-validated structured output and no arbitrary code execution.17MIT
Related MCP Connectors
MCP server exposing the Backtest360 engine API as tools for AI agents.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
MCP server providing access to the Scorecard API to evaluate and optimize LLM systems.
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_EVIEWS'
If you have feedback or need assistance with the MCP directory API, please join our Discord server