eviews-mcp
eviews-mcp
EViews を Python から操作し、Model Context Protocol を介して LLM クライアントに公開します。
このパッケージには2つの要素があります:
ライブラリ。 スクリプトやノートブック用の
EViewsクラス — ワークファイルの作成、モデルの推定、結果をテキストや pandas DataFrame として読み戻すことができます。MCP サーバー。 同じ機能をツールとして提供し、アシスタントが実際の EViews セッションで計量経済学を実行できるようにします。
Windows 上の EViews 13 でビルド・テスト済みです。EViews 10–14 は同じ COM インターフェースを通じて正しく解決されます。
初めての方へ? EViews 研究者ガイド は、クリーンなマシンから完成した 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 値、帰無仮説が棄却されるかどうか。テストが実行できない場合は、EViews が返した理由とともに report["skipped"] にリストされるため、要約が実際にチェックされた量を過大評価することはありません。
これらの判定は、選択した水準に対して 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 サーバーの使用
eviews-mcp コマンドを 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 を呼び出してください。
知っておくべき動作
これらはライブラリが処理する EViews の特性であり、COM コードを直接書く人を驚かせるため文書化されています。
書き込みはアクティブなサンプルを尊重します。
smpl 2000m3 2000m6の下で12個の値を書き込むと、4個だけが配置され、残りは黙って NA になります。したがって、書き込みはデフォルトでページ全体を対象とします。現在のサンプルを選択するにはsample=""を渡します。saveはファイル拡張子を無視します。graph.save "out.png"は EMF データを書き込みます。形式は明示的に渡され、ファイルを生成しない保存は成功を報告するのではなく例外を発生させます。相対パスは呼び出しプロセスではなく EViews に対して解決されます。 そのため、パスは渡す前に絶対パスに変換されます。
日付付きフレームがページを支配します。 開いている80行のページに12行の四半期フレームを書き込むと、値が間違った日付に配置されるため、フレームに一致するページが代わりに作成されます。
ログリダイレクトはありません。
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 # 58 tests, drives the library APIpytest はデフォルトでオフラインスイートを実行します。ライブスイートは EViews ライセンスが必要なためオプトインです。
ライセンス
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
- 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