Skip to main content
Glama

eviews-mcp

Tests PyPI Python Licence Platform EViews

EViews を Python から操作し、Model Context Protocol を介して LLM クライアントに公開します。

ドキュメントサイト研究者向けガイドPyPI

このパッケージには2つの要素があります:

  • ライブラリ。 スクリプトやノートブック用の EViews クラス — ワークファイルの作成、モデルの推定、結果をテキストや pandas DataFrame として読み戻すことができます。

  • MCP サーバー。 同じ機能をツールとして提供し、アシスタントが実際の EViews セッションで計量経済学を実行できるようにします。

Windows 上の EViews 13 でビルド・テスト済みです。EViews 10–14 は同じ COM インターフェースを通じて正しく解決されます。

初めての方へ? EViews 研究者ガイド は、クリーンなマシンから完成した ARDL 研究まで、すべてのコマンドと出力を実際の EViews セッションで検証しながら案内します。Python の知識は前提としていません。

インストール

pip install eviews-mcp

pandas サポート付き:

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 causality

residsimpulse はデフォルトでグラフを描画します。(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")

グラフ形式: pngjpgpdfemfwmfbmpgifepstex。テーブル形式: csvrtftxthtml

エラー

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_status

接続、バージョン、アクティブなワークファイル。デバッグ時はここから始めます。

reset_eviews

インスタンスを破棄してクリーンに再起動します。

set_eviews_visible

EViews ウィンドウを表示または非表示にします。

create_workfile

頻度と範囲で新しいページを作成します。

open_workfile / save_workfile

.wf1 / .wf2 を開く・保存します。

close_workfile

1つまたはすべての開いているワークファイルを閉じます。

workfile_info

名前、ページ、頻度、範囲、サンプル。

list_objects

EViews タイプでフィルタリング可能なインベントリ。

set_sample

推定サンプルを設定します。

run_eviews_code

メインツール。 EViews プログラムコードのブロックを実行します。

run_program_file

引数付きで既存の .prg を実行します。

command

単一のコマンドライン。

show

任意のオブジェクトをテキストテーブルとしてレンダリングします。

evaluate

式から1つの値を取得します。

describe_object

タイプ、および系列の統計量。

equation_coefficients

係数をクリーンな数値テーブルとして取得します。

unit_root

差分を取ってテストする次数の統合。

diagnose_equation

系列相関、不均一分散、正規性。

read_data

系列を整列したテーブルまたは完全精度の CSV として取得します。

write_series

系列に値を書き込みます。

import_data

.xlsx.csv.dta.sav などを読み取ります。

export_data

系列をファイルに書き出します。

export_object

オブジェクトを保存します — グラフを取得する方法です。

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 API

pytest はデフォルトでオフラインスイートを実行します。ライブスイートは EViews ライセンスが必要なためオプトインです。

ライセンス

MIT。Copyright (c) 2026 Merwan Roudane。

A
license - permissive license
Not graded
quality - not tested
B
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

  • F
    license
    Not graded
    quality
    D
    maintenance
    Economic 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.
  • A
    license
    A
    quality
    B
    maintenance
    Deterministic 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.
    17
    MIT

View all related MCP servers

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.

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_EVIEWS'

If you have feedback or need assistance with the MCP directory API, please join our Discord server