mcp-activeview
Read-only MCP server exposing ActiveView's external API for querying price rules, domain/network reports, and A/B testing redirects, enabling Claude to analyze ad performance data without modifications.
README
MCP ActiveView (read-only)
Servidor MCP que expone la ActiveView External API (https://external-api.activeview.app)
a Claude. Es un wrapper de solo lectura: el helper de red solo hace GET, así que
ninguna tool puede crear, modificar ni borrar datos.
Hecho con FastMCP (Python), transporte stdio (local).
Qué expone (12 tools, todas de lectura)
Price rules
get_price_rules— reglas de precio de un sitio.
Reportes por dominio
get_report_by_domain— métricas (revenue, impressions, eCPM, match rate…).get_kvp_report_by_domain— métricas agrupadas por una key de GAM.get_session_kvp_report_by_domain— KVP de sesiones (Snowflake).get_custom_gam_report_by_domain— reporte GAM con dimensiones/métricas a elección.
Reportes por network (varios dominios con el filtro domains)
get_report_by_networkget_kvp_report_by_networkget_custom_gam_report_by_network
Redirects (A/B testing)
list_redirect_domains— dominios de redirect con sus paths.get_redirect_path— detalle de un path.get_redirect_path_mappings— split de tráfico (url + %).get_redirect_path_mapping_logs— historial de cambios del split.
💰 Micros: los campos de revenue de GAM (
*_revenue) vienen en micros (1.000.000 = 1 unidad de moneda). Divídelos entre 1.000.000. Las tools ya se lo recuerdan a Claude en su descripción.
Requisitos
- Python ≥ 3.10 (recomendado 3.12). El Python 3.9 que trae macOS por defecto no sirve.
- git para clonar.
- Una API key de ActiveView, en formato
token:secret(el bearer completo, con los dos puntos). - Opcional pero recomendado:
uv(instala conbrew install uv). Si no quieresuv, abajo tienes la variante conpython -m venv+pip.
Instalación paso a paso (Claude Code)
1. Clonar el repo
git clone https://github.com/TU-USUARIO/mcp-activeview.git
cd mcp-activeview
2. Crear el entorno virtual e instalar dependencias
Con uv (recomendado):
uv venv --python 3.12 .venv
uv pip install --python .venv -r requirements.txt
O con venv + pip estándar (sin uv):
python3.12 -m venv .venv # o python3 si tu 3 ya es ≥3.10
./.venv/bin/pip install -r requirements.txt
3. Conseguir tu API key
La sacas de tu panel de ActiveView. Es un único valor con la forma
token:secret: dos partes separadas por dos puntos (:). Lo copias entero,
incluidos los dos puntos. Por ejemplo:
# Ejemplo (valores inventados). Pega tu clave real entera:
ACTIVEVIEW_API_KEY=ab12cd34ef56...:9f8e7d6c...
En esta guía verás el placeholder tu_token:tu_secret; sustitúyelo por tu clave real.
Cada persona usa su propia key. La key nunca va dentro del repo.
4. Registrar el servidor en Claude Code
Desde la carpeta del repo (para que $(pwd) resuelva las rutas absolutas solo):
claude mcp add activeview \
--scope user \
--env ACTIVEVIEW_API_KEY=tu_token:tu_secret \
--env ACTIVEVIEW_NETWORK_CODE=YOUR_NETWORK_CODE \
-- "$(pwd)/.venv/bin/python" "$(pwd)/server.py"
--scope userlo deja disponible en todos tus proyectos. Usa--scope local(por defecto) si solo lo quieres en el proyecto actual.ACTIVEVIEW_NETWORK_CODEes opcional: si lo pones, podrás pedir reportes sin repetir el network code en cada consulta (ver sección abajo). Quítalo si no quieres un valor por defecto.
5. Verificar
claude mcp list
Debe mostrar activeview: … ✔ Connected. Luego, dentro de Claude Code, pídele algo como:
"Dame las impresiones de ayer en
tu-dominio.com"
Si responde con datos, está funcionando.
Network code por defecto (opcional)
Puedes fijar un network_code por defecto con ACTIVEVIEW_NETWORK_CODE. Si lo haces,
las tools se pueden llamar sin pasar network_code cada vez; un valor explícito en
la llamada siempre tiene prioridad sobre el por defecto.
Funciona tanto por --env (paso 4) como en un fichero .env local:
cp .env.example .env
# edita .env:
# ACTIVEVIEW_API_KEY=tu_token:tu_secret
# ACTIVEVIEW_NETWORK_CODE=YOUR_NETWORK_CODE # opcional, el de tu propiedad principal
⚠️ Un único network code por defecto solo cubre los dominios de esa red. Para dominios de otra red, pasa su
network_codeen la consulta.
¿--env o .env? Lo más limpio es --env en claude mcp add (la key vive en la
config de Claude, no en el proyecto). El .env es cómodo para pruebas locales y está
ignorado por git (no se sube nunca). Si una variable ya viene del cliente MCP, esa
gana sobre la del .env.
Alternativa: Claude Desktop
En claude_desktop_config.json:
{
"mcpServers": {
"activeview": {
"command": "/ruta/absoluta/a/mcp-activeview/.venv/bin/python",
"args": ["/ruta/absoluta/a/mcp-activeview/server.py"],
"env": {
"ACTIVEVIEW_API_KEY": "tu_token:tu_secret",
"ACTIVEVIEW_NETWORK_CODE": "YOUR_NETWORK_CODE"
}
}
}
}
Usar el python del .venv directamente es lo más robusto. Reinicia el cliente tras añadirlo.
Probarlo en local (sin Claude)
# Inspector visual de FastMCP (UI web para invocar las tools a mano):
ACTIVEVIEW_API_KEY=tu_token:tu_secret ./.venv/bin/fastmcp dev server.py
# O lanzarlo en stdio tal cual lo lanzará Claude:
ACTIVEVIEW_API_KEY=tu_token:tu_secret ./.venv/bin/python server.py
Seguridad
Este servidor está pensado para ser seguro por diseño:
- Solo lectura, garantizado por construcción. El único helper de red (
_get) usa exclusivamentehttpx.get. No existe ningúnpost/put/patch/deleteen el código, así que ninguna tool puede crear, modificar ni borrar datos. Todas las tools se anuncian conreadOnlyHint: True. - Host fijo. Todas las peticiones van a
https://external-api.activeview.app; el servidor no acepta URLs ni hosts arbitrarios. - Validación de entradas.
network_codedebe ser numérico ydomainsolo admite[A-Za-z0-9.-]. Esto bloquea intentos de inyección de path (../,?,#,@,/) en la URL de la petición. - La API key nunca se versiona.
.envestá en.gitignore; el repo solo trae.env.examplecon placeholders. La key se pasa por variable de entorno y no se registra en logs. - Sin ejecución de código ni acceso a disco. El servidor solo hace peticiones HTTP GET de lectura; no escribe ficheros, no ejecuta shell, no toca tu sistema.
Buenas prácticas al instalarlo:
- Trata tu
ACTIVEVIEW_API_KEYcomo una contraseña. Si la pasaste por línea de comandos, recuerda que puede quedar en el historial del shell; preferible.envo un gestor de secretos. - Si crees que tu key se ha filtrado, rótala en ActiveView; la del repo nunca debería aparecer en un commit.
- Revisa
requirements.txtantes de instalar (dependencias:fastmcp,httpx,python-dotenv).
Troubleshooting
| Síntoma | Causa probable / solución |
|---|---|
claude mcp list muestra ✘ Failed to connect |
Ruta del python/server.py mal, o venv sin dependencias. Reejecuta el paso 2 y usa rutas absolutas. |
| Aviso "fastmcp not installed" en VSCode | Selecciona el intérprete .venv/bin/python (Command Palette → "Python: Select Interpreter"). |
Las tools devuelven 401 |
API key inválida o revocada. Comprueba ACTIVEVIEW_API_KEY (formato token:secret). |
Invalid network_code / Invalid domain |
El valor llevaba caracteres no permitidos. network_code es numérico; domain solo letras/dígitos/puntos/guiones. |
No network_code given… |
No pasaste network_code y no hay ACTIVEVIEW_NETWORK_CODE configurado. |
python3.12: command not found |
Instala Python 3.12 (brew install python@3.12) o usa otro ≥3.10. |
Nota sobre los reportes "Custom GAM"
La colección Postman traía las dos variantes con el orden de segmentos distinto
(gam/custom vs custom/gam). Confirmado contra la API real, el orden correcto en
ambas es gam/custom:
- por dominio →
/report/gam/custom/{network}/{domain} - por network →
/report/gam/custom/{network}
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。