eviews-mcp
eviews-mcp
Controla EViews desde Python y expónlo a clientes LLM a través del Model Context Protocol.
Sitio de documentación · Guía para investigadores · PyPI
Dos cosas en un mismo paquete:
Una biblioteca. Una clase
EViewspara scripts y notebooks: crea archivos de trabajo, estima modelos y lee los resultados como texto o como DataFrames de pandas.Un servidor MCP. Las mismas capacidades como herramientas, para que un asistente pueda hacer econometría en una sesión real de EViews.
Construido y probado con EViews 13 en Windows; EViews 10–14 se resuelven correctamente a través de la misma interfaz COM.
¿Eres nuevo en esto? La Guía del investigador sobre EViews te lleva desde una máquina limpia hasta un estudio ARDL completo, con cada comando y cada salida verificados contra una sesión real de EViews. No se asume ningún conocimiento de Python.
Instalación
pip install eviews-mcpCon soporte para pandas:
pip install "eviews-mcp[pandas]"O desde un clon, para desarrollo:
git clone https://github.com/merwanroudane/MCP_EVIEWS.git
cd MCP_EVIEWS
pip install -e .[dev]Requiere Windows y una instalación local de EViews, ya que utiliza EViews a través de la automatización COM.
Related MCP server: econstats-mcp
Uso como librería
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.080Cualquier vista de EViews, como texto
show admite una vista, por lo que los diagnósticos no necesitan API adicional:
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 e impulse dibujan gráficos por defecto; las variantes (t) piden a EViews la forma de tabla. Las vistas que se congelan en un spool en lugar de una tabla — entre ellas la relación de cointegración ARDL — no se pueden leer a través de COM en absoluto, así que show recurre a un volcado de texto para esas.
Para los números en lugar del diseño, table() devuelve filas sin procesar con precisión doble completa, y value() devuelve un número:
rows = ev.table("eq1") # tuple of row tuples
r2 = ev.value("eq1.@r2") # 0.9947015...
beta = ev.value("eq1.@coefs(2)")Resultados como datos, no solo texto
show formatea una tabla para leerla. Estas devuelven los números en su lugar, para pruebas, tabulación o para pasarlos a otra cosa:
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.9858630667863459Orden de integración, probado hacia abajo a través de las diferencias hasta la estacionariedad:
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, ...}]}Pasa options para elegir el test: "pp" para Phillips-Perron, "kpss" para KPSS, "adf, trend" para añadir una tendencia. KPSS invierte la hipótesis nula, por lo que el orden reportado no se aplica a ella.
La batería estándar post-estimación en una sola llamada:
report = ev.diagnose("eq1")
report["summary"]
# 'All 3 diagnostics pass at the 0.05 level.'Breusch-Godfrey, White y Jarque-Bera, cada uno con su estadístico, valor p y si se rechaza la hipótesis nula. Un test que no puede ejecutarse aparece listado en report["skipped"] con el motivo que dio EViews, de modo que el resumen no sobreestima cuánto se comprobó realmente.
Estos veredictos leen los valores p contra un nivel que tú eliges. No establecen que la especificación sea sólida: las rupturas estructurales, la estacionalidad y las muestras cortas engañan a estos tests.
pandas en ambas direcciones
frame = ev.to_dataframe(["gdp", "k", "l"]) # indexed 1990Q1, 1990Q2, ...
frame.corr()Al escribir, un DatetimeIndex o PeriodIndex determina la frecuencia y el rango de la página, de modo que las fechas cuadran:
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")Las columnas no numéricas se omiten en lugar de hacer fallar todo el DataFrame.
Gráficos
Los gráficos no se pueden renderizar como texto, así que se escriben en un archivo:
ev.export_object("phillips", "residuals.png", view="resids")Formatos de gráfico: png, jpg, pdf, emf, wmf, bmp, gif. Formatos de tabla: csv, rtf, txt.
Errores
EViews informa de los fallos con precisión, incluyendo el número de línea dentro de un programa, y esos mensajes se transmiten tal cual:
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.El programa generado recibe un nombre aleatorio en cada ejecución, así que solo esa parte varía.
Uso del servidor MCP
Registra eviews-mcp en tu cliente MCP:
{
"mcpServers": {
"eviews": {
"command": "eviews-mcp"
}
}
}Para Claude Desktop:
claude mcp add eviews -- eviews-mcpHerramientas
Herramienta | Propósito |
| Estado de EViews: versión, página activa y archivo de trabajo. |
| Nueva página por frecuencia y rango. |
| Abrir y guardar |
| Inventario de objetos, filtrable por tipo. |
| Define la muestra de estimación. |
| Ejecuta un bloque de código de programa de EViews. |
| Ejecuta un |
| Renderiza cualquier objeto como tabla de texto. |
| Un valor de una expresión. |
| Tipo, más estadísticos para una serie. |
| Obtiene datos de EViews. |
| Guarda datos en EViews. |
ev.export_object("phillips", "residuals.png", view="resids")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.{
"mcpServers": {
"eviews": {
"command": "eviews-mcp"
}
}
}claude mcp add eviews -- eviews-mcppython 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 APIComportamiento
GXP19
GXP20
GXP21
GXP22
GXP23
GXP24
GXP25
GXP26
Tests
GXP27
pytest ejecuta la suite offline por defecto; las suites en vivo son opcionales porque requieren una licencia de EViews.
Licencia
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