eviews-mcp
eviews-mcp
Python から EViews を操作し、Model Context Protocol を介して LLM クライアントに公開します。
Documentation site · Researcher guide · PyPI
このパッケージには 2 つのものが含まれています:
ライブラリ。 スクリプトやノートブック用の
EViewsクラス — ワークファイルの作成、モデルの推定、結果をテキストや pandas DataFrame として読み戻すことができます。MCP サーバー。 同じ機能をツールとして提供するため、アシスタントが実際の EViews セッションで計量経済学を行うことができます。
Windows 上の EViews 13 に対して構築・テストされています。EViews 10–14 は同じ COM インターフェースを通じて正しく解決されます。
初めてですか? EViews Researcher Guide は、クリーンなマシンから完成した ARDL 研究まで、すべてのコマンドと出力を実際の EViews セッションで検証しながら案内します。Python の知識は前提としていません。
インストール
pip install eviews-mcppandas サポート付き:
pip install "eviews-mcp[pandas]"または開発用にクローンから:
git clone https://github.com/merwanroudane/MCP_EVIEWS.git
cd MCP_EVIEWS
pip install -e .[dev]Windows とローカルの EViews インストールが必要です。COM オートメーションを通じて EViews を操作するためです。
Related MCP server: econstats-mcp
ライブラリの使用
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.080任意の EViews ビューをテキストとして
show はビューを受け取るため、診断に追加の API は不要です:
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 と impulse はデフォルトでグラフを描画します。(t) バリアントは EViews にテーブル形式を要求します。テーブルではなくスプールにフリーズするビュー(その中には ARDL 共和分関係も含まれます)は COM 経由ではまったく読み取れないため、show はそれらに対してテキストダンプにフォールバックします。
レイアウトではなく数値が必要な場合、table() は完全な倍精度で生の行を返し、value() は 1 つの数値を返します:
rows = ev.table("eq1") # tuple of row tuples
r2 = ev.value("eq1.@r2") # 0.9947015...
beta = ev.value("eq1.@coefs(2)")テキストだけでなくデータとしての結果
show は読み取り用にテーブルを整形します。これらは代わりに数値を返し、テスト、集計、または他の何かに渡すために使用します:
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.9858630667863459定常になるまで差分を取ってテストする次数の統合:
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, ...}]}options を渡してテストを選択します: "pp" は Phillips-Perron、"kpss" は KPSS、"adf, trend" はトレンドを追加します。KPSS は帰無仮説を逆にするため、報告される次数は KPSS には適用されません。
標準的な推定後バッテリーを 1 回の呼び出しで:
report = ev.diagnose("eq1")
report["summary"]
# 'All 3 diagnostics pass at the 0.05 level.'Breusch-Godfrey、White、Jarque-Bera の各テストについて、統計量、p 値、帰無仮説が棄却されるかどうかを返します。実行できないテストは report["skipped"] の下に EViews が返した理由とともにリストされるため、要約は実際にチェックされた量を過大評価することはありません。
これらの判定は、選択した水準に対して p 値を読み取ります。仕様が健全であることを確立するものではありません。構造変化、季節性、短いサンプルはすべてこれらのテストを誤解させます。
pandas 双方向
frame = ev.to_dataframe(["gdp", "k", "l"]) # indexed 1990Q1, 1990Q2, ...
frame.corr()書き戻す際、DatetimeIndex または PeriodIndex がページの頻度とスパンを決定するため、日付は整合したままになります:
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")非数値列はフレーム全体を失敗させるのではなくスキップされます。
グラフ
グラフはテキストとしてレンダリングできないため、ファイルに書き出します:
ev.export_object("phillips", "residuals.png", view="resids")グラフ形式: png, jpg, pdf, emf, wmf, bmp, gif, eps, tex。テーブル形式: csv, rtf, txt, html。
エラー
EViews はプログラム内の行番号を含めて失敗を正確に報告し、それらのメッセージは変更されずに渡されます:
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.生成されたプログラムは実行ごとにランダムな名前が付けられるため、その部分だけが変わります。
MCP サーバーの使用
MCP クライアントに eviews-mcp コマンドを登録します:
{
"mcpServers": {
"eviews": {
"command": "eviews-mcp"
}
}
}Claude Code の場合:
claude mcp add eviews -- eviews-mcpツール
ツール | 目的 |
| 接続、バージョン、アクティブなワークファイル。デバッグ時はここから始めます。 |
| インスタンスを破棄してクリーンに再起動します。 |
| EViews ウィンドウを表示または非表示にします。 |
| 頻度と範囲で新しいページを作成します。 |
|
|
| 1 つまたはすべての開いているワークファイルを閉じます。 |
| 名前、ページ、頻度、範囲、サンプル。 |
| EViews タイプでフィルタリング可能なインベントリ。 |
| 推定サンプルを設定します。 |
| メインツール。 EViews プログラムコードのブロックを実行します。 |
| 引数付きで既存の |
| 単一のコマンドライン。 |
| 任意のオブジェクトをテキストテーブルとしてレンダリングします。 |
| 式から 1 つの値を取得します。 |
| タイプ、および系列の統計量。 |
| 係数をクリーンな数値テーブルとして取得します。 |
| 差分を取ってテストする次数の統合。 |
| 系列相関、不均一分散、正規性。 |
| 系列を整列されたテーブルまたは完全精度の CSV として読み取ります。 |
| 系列に値を書き込みます。 |
|
|
| 系列をファイルに書き出します。 |
| オブジェクトを保存します — グラフを取得する方法です。 |
run_eviews_code は結果をエコーしません。EViews はプログラム出力を COM が到達できない独自のログウィンドウに送信するためです。名前付きオブジェクトに推定して、show を呼び出してください。
トラブルシューティング
サーバーが起動しない場合
1.3.3 より前のバージョンでは MCP SDK 2.x がインストールされる可能性があり、このサーバーが基づいているモジュールが削除されました。症状は毎回同じです:
ModuleNotFoundError: No module named 'mcp.server.fastmcp'1.3.3 は SDK を 2.0 未満に固定しています。アップグレードで修正されますが、pip がリリース前のキャッシュされたインデックスを提供する可能性があるため、キャッシュをバイパスしてください:
pip install --upgrade --no-cache-dir "eviews-mcp[pandas]"パッケージだけでなく、サーバー自体がインポートされることを確認してください。パッケージは遅延インポートされ、SDK が使用できない場合でも成功するため、チェックしても何も証明されません:
python -c "import eviews_mcp.server as s; print(len(s.mcp._tool_manager.list_tools()), 'tools')"24 個のツールがあれば、インストールは正常です。
知っておくべき動作
これらはライブラリが代わりに処理する EViews の特性であり、COM コードを直接書く人を驚かせるため文書化されています。
書き込みはアクティブなサンプルを尊重します。
smpl 2000m3 2000m6の下で 12 個の値を書き込むと 4 個だけが配置され、残りは黙って NA になります。そのため、書き込みはデフォルトでページ全体に対して行われます。現在のサンプルを選択するにはsample=""を渡します。saveはファイル拡張子を無視します。graph.save "out.png"は EMF データを書き込みます。形式は明示的に渡され、ファイルを生成しない保存は成功を報告するのではなく例外を発生させます。相対パスは呼び出し元プロセスではなく EViews に対して解決されます。そのため、パスは渡される前に絶対パスに変換されます。
日付付きフレームがページを支配します。 12 行の四半期フレームを開いている 80 行のページに書き込むと、値が誤った日付に配置されるため、代わりにフレームに一致するページが作成されます。
ログリダイレクトはありません。
outputコマンドはフリーズされたオブジェクト名を必要とし、それ以外の場合は何も書き込まないため、ログをキャプチャできません。結果はオブジェクトをテーブルにフリーズして読み取ることで得られます。GetScalar/PutScalar/GetStringはありません。 これらは EViews COM インターフェースにはまったく存在しません。Getがそれらをカバーし、型を推測します。COM スレッドは 1 つです。 MCP は同期ツールをスレッドプール全体にディスパッチしますが、COM ポインタはアパートメント間で有効ではないため、すべての EViews 呼び出しは単一のアパートメント初期化スレッドに集約されます。
開いているワークファイルへのインポートはファイルをそのページの長さに切り詰めます、黙って。そのため、インポートはデフォルトで新しいワークファイルを作成します。現在のページへのマージはオプトインです。
EViews は開くことができるワークファイルの数を制限し、その後は別のワークファイルの作成を拒否するため、長時間のセッションを健全に保つために
close_workfileが存在します。
テスト
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 # 62 tests, drives the library APIpytest はデフォルトでオフラインスイートを実行します。ライブスイートは EViews ライセンスが必要なためオプトインです。
ライセンス
MIT. Copyright (c) 2026 Merwan Roudane.
This server cannot be deployed
Maintenance
Related MCP Connectors
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
MCP server exposing the Backtest360 engine API as tools for AI agents.
MCP server for OpenMM — exposes market data, account, trading, and strategy tools to AI agents
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Related MCP Servers
- AlicenseAqualityAmaintenanceAn MCP server that lets Large Language Models interact with Stata software to perform regression analysis and other statistical operations.43,836 PyPI266AGPL 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.73 PyPI10MIT
- AlicenseAqualityDmaintenanceDeterministic 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