Skip to main content
Glama

DAAS - Datos como Servicio

Plataforma en capas para datos financieros, económicos y estadísticos: un único archivo SQLite (daas.db) detrás de un servidor MCP consolidado, con la obtención de datos delegada al upstream fd-open-data-mcp.

¿Qué es esto? Una plataforma de datos local que convierte librerías de Python (akshare, yfinance, edgar, edinet-tools, dartlab, world_bank_data, ckanapi) en un almacén consultable, con cálculo de indicadores y listo para paneles, respaldado por un único archivo SQLite. Lo conduces mediante habilidades de Claude Code (cáscaras delgadas que llaman a manifiestos de flujos de trabajo) o mediante el servidor MCP consolidado fd-daas-mcp — ambas rutas leen/escriben la misma base de datos.

Upstream: El obtenedor de datos fd-open-data-mcp es un repositorio hermano en ~/finddata/fd-open-data-mcp (clonado automáticamente por install.sh).

Sitio de documentación: La documentación completa basada en roles vive en docs-site/ (Material de MkDocs, bilingüe EN+ZH). Léela localmente con uv run mkdocs serve (navega en /DAAS/), o constrúyela estrictamente con uv run mkdocs build --strict. Consulta docs-site/README.md para construir/servir/desplegar.


Arquitectura

Dependencia estrictamente descendente — una capa nunca alcanza hacia arriba.

L3  user MCP compositions  (composite manifests, served in-proc on fd-daas-mcp)
L2  workflow manifests      (daas.db `workflows` table + engine, run via workflow_run)
L1  fd-daas-mcp            (consolidated infra: daas/cron/alerts/dashboard/composite/research/pdf/gateway/workflow)
L0  fd-open-data-mcp       (sole data-fetch upstream; concept-based semantic fetcher + entity master)
  • L0 — fd-open-data-mcp (repositorio hermano): la única superficie de obtención de datos. Un obtenedor semántico basado en conceptos con ranking/fallback/caché; contiene el maestro de entidades (entities, entity_datasource_links). Servido por HTTP en :8300 (fallback stdio). Reemplaza a los 11 MCP de obtención de datos por fuente anteriores.

  • L1 — fd-daas-mcp (este repositorio): el servidor stdio consolidado, única entrada en la raíz del repo .mcp.json. Expone 161 herramientas en 9 grupos (daas · cron · alerts · dashboard · composite · research · pdf · gateway · workflow) detrás de un único servidor y una única CLI Click fd-daas-mcp. La capa de consolidación delgada es fd-daas-mcp/daas/fd_daas_mcp/ (server.py/registry.py/cli.py/selfcheck.py); el código de herramientas de cada grupo vive dentro del paquete en fd-daas-mcp/<grupo>-mcp/.

  • L2 — Manifiestos de flujos de trabajo: los manifiestos viven en la tabla workflows en daas.db (registrados vía workflow_register, ejecutados vía workflow_run). build_workflow_from_goal descompone un objetivo en lenguaje natural en un manifiesto mediante un LLM.

  • L3 — Composición de MCP de usuario: un manifiesto compuesto ({name, upstreams, tools, workflows, prompt}) cura una superficie MCP nombrada servida en-proceso en el servidor consolidado. CRUD vía composite_*_manifest.

Las habilidades de obtención (fd-daas-based-data-fetch, fd-daas-fetch-data, fd-daas-research) son cáscaras delgadas: recopilación de parámetros → workflow_run(nombre, parámetros) → manejo de puntos de control. Ya no llaman a librerías de Python directamente — la obtención desciende a través de L1→L0.

Para la arquitectura completa, convenciones y la referencia del esquema de daas.db, consulta CLAUDE.md y construction/mcp.md.


Instalación e Inicio Rápido

Requisitos: Python 3.10+ y uv. Las obtenciones de dartlab necesitan 3.12 — ejecútalas con uv run --python 3.12 --with dartlab ....

Instalación con un clic (clona DAAS + upstreams, aprovisiona venvs, inicializa daas.db, localiza .mcp.json):

curl -fsSL https://raw.githubusercontent.com/FindDataTechnology/fd-daas-mcp/master/install.sh | sh

Variables de entorno: DAAS_DEST (por defecto ~/code/DAAS), DAAS_BRANCH, FINDDATA_HOME (por defecto ~/finddata). Pasos manuales abajo.

# 1. Provision the root venv (data libs are declared deps)
uv sync

# 2. Provision the database - creates daas.db (full schema + dep-free starter
#    catalog of sources). DAAS_DATABASE_URL is OPTIONAL: unset, it defaults to
#    ./daas.db (writable cwd) or ~/.fd-daas-mcp/daas.db. Set it only to relocate.
fd-daas-mcp/.venv/bin/fd-daas-mcp init       # one-shot provision + seed
fd-daas-mcp/.venv/bin/fd-daas-mcp doctor      # read-only health check (path, schema, row counts)

# 3. Configure credentials - create a repo-root .env for the source keys you need
#    (listed in Environment Variables below). Scripts auto-load .env; no manual export.

# 4. Compute an existing indicator (upserts into observations)
uv run python .claude/skills/fd-daas-based-data-fetch/scripts/run_indicator.py SPY_ma5

# 5. Query daas.db directly (db lives at the resolved DAAS_DATABASE_URL, default ./daas.db)
sqlite3 daas.db "SELECT name, datasource, op FROM indicator_rules LIMIT 10"
sqlite3 daas.db "SELECT source, COUNT(*) FROM observations GROUP BY source"

# 6. Launch / health-check the consolidated server
fd-daas-mcp/bin/fd-daas-mcp-server                       # stdio server (what .mcp.json launches)
fd-daas-mcp/.venv/bin/python -m daas.fd_daas_mcp.selfcheck   # registry + tool health check (target: failed=0)

# 7. Run a workflow manifest (L2 — the fetch path goes L1→L0)
fd-daas-mcp/.venv/bin/python -c "
from daas_mcp_workflow_tools import workflow_run   # or via the MCP tool
print(workflow_run('fetch-and-persist', params_json='{\"entity\":\"SPY\",\"indicator\":\"ma5\"}'))
"

Los comandos de Inicio Rápido anteriores han sido verificados contra este repositorio: SPY_ma5 es una fila real de indicator_rules, y el registro de fd-daas-mcp reporta 161 herramientas en 9 fuentes (failed=0, skipped_optional=1 para el grupo opcional pdf).


Estructura del Proyecto

daas/
├── .claude/skills/          # Claude Code skills (fd-daas-based-data-fetch is the core fetch shell)
├── fd-daas-mcp/             # Consolidated MCP server — sole .mcp.json entry (161 tools, 9 groups)
│   ├── alerts-mcp/          #   alert rule engine + 7 notification channels
│   ├── composite-mcp/       #   user MCP composition (curate tools + embed workflows + prompt)
│   ├── cron-mcp/            #   task + schedule registry (DB-backed)
│   ├── daas-mcp/            #   datasource/function/indicator/entity catalog + compute + rules
│   ├── dashboard-mcp/       #   standalone-HTML dashboard registry + query
│   ├── gateway-mcp/         #   L0 upstream registry + call routing (former leader gateway half)
│   ├── workflow-mcp/        #   manifest-based multi-step data workflows (former leader workflow half)
│   ├── pdf-mcp/             #   local PDF/text semantic search (sqlite-vec) [optional]
│   ├── research-mcp/        #   persisted research bundle (collections + indicators + dashboard + report)
│   ├── bin/fd-daas-mcp-server      # launcher
│   └── daas/fd_daas_mcp/   # server.py / registry.py / cli.py / selfcheck.py
├── daas.db                  # Shared SQLite database (ships as a demo dataset: registry + observations + scraw_*)
├── dashboards/              # Standalone HTML dashboards (+ index.html, daas.md)
├── construction/            # Architecture docs (mcp.md — layered L0/L1/L2/L3)
└── .env                     # DAAS_DATABASE_URL, proxy, source auth keys, LLM config, ...

Modelo de Datos de daas.db

Un único archivo SQLite en la ruta de DAAS_DATABASE_URL (las rutas relativas sqlite:/// se resuelven contra la raíz del repo; PRAGMA foreign_keys=ON para cascada de claves foráneas, PRAGMA journal_mode=WAL + busy_timeout=10000 para evitar "base de datos bloqueada"). Las tablas se agrupan por rol:

Rol

Tablas

Qué contienen

Registro / catálogo

sources, daas_functions, daas_function_columns, entities, entity_datasource_links, indicator_rules

Catálogo de fuentes/funciones/columnas; acciones + sus identificadores de fuente; enlaces de indicadores (tabla + columnas + operador + parámetros)

Series calculadas

observations

Salida de indicadores — un punto (source, function_name, indicator, date) por fila; actualizado por run_indicator.py. Los paneles y alertas leen esto.

Datos de fuente obtenidos

scraw_<slug>

Filas crudas traídas por una obtención (auto-creadas por upsert.py). observations se calculan a partir de estas.

Colecciones + reglas

entity_collections*, indicator_collections*, rules, process_results

Grupos nombrados de entidades/indicadores + registro de auditoría de altas/bajas; el almacén unificado de rules (json/script/position/llm) impulsa la membresía + la extracción con LLM

Operacional MCP

dashboards, alert_rules, alert_events, schedules, tasks, gateway_upstreams, workflows, workflow_runs, workflow_run_steps, composites, researches

Registro de paneles, motor de alertas, estado de cron, estado de gateway/flujos de trabajo/compuestos/investigaciones

Consúltala directamente desde la raíz del repo: sqlite3 daas.db "SELECT …".


Habilidades (.claude/skills/)

Las habilidades son Markdown plano (SKILL.md) + scripts de Python. Las habilidades de obtención son cáscaras delgadas que recopilan parámetros y llaman a workflow_run — ya no llaman a librerías de datos de Python directamente (la obtención desciende L1→L0).

Habilidad

Propósito

fd-daas-based-data-fetch (cáscara de obtención principal)

Resuelve una entidad + indicador contra daas.db, luego workflow_run(nombre, parámetros) para obtener vía fd-open-data-mcp y persistir en scraw_* / observations.

fd-daas-fetch-data

Flujo de trabajo entidad → cobertura → indicador (sqlite3 + los scripts principales).

fd-daas-research

Orquesta analizar → [colección] → indicadores → panel → persistir como un paquete de research + informe Markdown.

fd-daas-brainstorm

Clarifica un objetivo de investigación mediante diálogo → daas-doc/research/<plan>.md (sin estado en daas.db).

fd-daas-indicators-creator

Persiste una serie obtenida en una tabla scraw_<slug> (refresco manual — sin cron).

fd-daas-dashboard-creator

Construye un panel HTML ECharts independiente + lo registra.

fd-daas-dashboard

Encuentra / abre / inspecciona paneles existentes (solo lectura).

fd-daas-entities-collection-creator / fd-daas-entities-collection

Define una colección de entidades basada en reglas / operaciones diarias de colección.

fd-daas-indicators-collection-creator

Cura una colección de indicadores + exporta CSV/markdown con puntuaciones resueltas.

fd-daas-rules-creator

Redacta una regla unificada (json/script/position/llm), la adjunta a una colección, prueba en seco, sincroniza.

fd-daas-pdf

Ingiere un PDF/texto en un almacén vectorial local (sqlite-vec) y busca semánticamente. Requiere el extra [pdf].

fd-daas-scrapling-official

Extrae páginas protegidas contra bots (Cloudflare/renderizado JS) vía Scrapling.

fd-daas-skill-creator / fd-daas-skill-review

Crea/optimiza y revisa/prueba habilidades daas.

fd-coding-mcp-creator

Anda una composición de MCP de usuario (L3): entrevista → manifiesto → registro → autoverificación.

fd-coding-skill-creator, fd-coding-daas-*, openspec-*

Infraestructura: crea/optimiza habilidades, constructores de reinicio/datos crudos/fuentes, ciclo de vida de cambios OpenSpec.


Grupos de Herramientas MCP (fd-daas-mcp)

El servidor consolidado expone 161 herramientas en 9 grupos (failed=0, skipped_optional=1 para el grupo opcional pdf). El catálogo es a nivel de grupo (detalle por herramienta vía la introspección del propio servidor / selfcheck).

Grupo

Prefijo

Herramientas

Propósito

daas

daas_*

87

Catálogo de fuentes de datos/funciones/columnas/entidades/indicadores, cálculo de indicadores, extracción con LLM, colecciones, cobertura de entidades, reglas unificadas.

dashboard

dashboard_*

11

Registro de paneles HTML independientes (CRUD), consulta de tablas, estadísticas, regeneración de índices.

alerts

alerts_*

10

Motor de reglas de alertas sobre series de observaciones + 7 canales de notificación (Telegram/Discord/Slack/Twitter/DingTalk/Feishu/WeCom).

cron

cron_*

13

Registro de tareas y programaciones respaldado por BD; run_now ad hoc; historial de ejecución.

composite

composite_*

16

Composición MCP de usuario (L3): seleccionar herramientas de fuentes ascendentes + incrustar flujos de trabajo + prompt.

research

research_*

9

Paquete de investigación persistente que vincula colecciones/indicadores/paneles/pipeline + informe markdown.

gateway

gateway_*

7

CRUD del registro de fuentes ascendentes L0 + enrutamiento de llamadas a fd-open-data-mcp (antigua mitad de pasarela de leader).

workflow

workflow_*

8

Obtenciones de datos de varios pasos basadas en manifiesto: registrar/ejecutar/reanudar/inspeccionar (antigua mitad de flujo de trabajo de leader).

pdf

pdf_*

Búsqueda semántica local de PDF/texto (sqlite-vec + sentence-transformers). Opcional: condicionada a la importación de sqlite_vec.

El grupo heredado leader se disuelve: su mitad de enrutamiento de pasarela pasó a ser gateway_*, y su mitad de manifiesto de flujo de trabajo pasó a ser workflow_*. Las capacidades de registro de harness / snapshot / procedencia se eliminan.

Lanzamiento: fd-daas-mcp/bin/fd-daas-mcp-server (stdio). Tanto el servidor como la CLI fd-daas-mcp consumen registry.build(), por lo que las dos superficies no pueden divergir.


Variables de entorno

Un único .env en la raíz del repositorio contiene toda la configuración; los scripts y el servidor MCP lo cargan automáticamente. (Las claves marcadas como opcionales solo se necesitan para las funciones que habilitan).

Clave

Propósito

¿Obligatoria?

DAAS_DATABASE_URL

URL sqlite:/// a daas.db (relativa resuelta contra la raíz del repositorio, o absoluta). Opcional: si no se define, por defecto ./daas.db (directorio de trabajo escribible) o ~/.fd-daas-mcp/daas.db. Ejecute fd-daas-mcp init para aprovisionar.

opcional

HTTP_PROXY

Proxy de salida para bibliotecas de datos.

opcional

EDGAR_IDENTITY

Cadena de identidad SEC EDGAR ("Name email@domain").

para edgar

EDINET_API_KEY

Clave de obtención de documentos EDINET de Japón.

para edinet

CKAN_PORTAL_URL

URL base del portal CKAN.

para ckan

LLM_BASE_URL, LLM_API_KEY, LLM_MODEL

Endpoint LLM compartido para extracción / planificador de flujos de trabajo.

para funciones LLM

LEADER_MODELS, LEADER_MODEL_HIGH/BALANCE/FAST

Anulaciones de modelo por nivel para el planificador de flujos de trabajo (build_workflow_from_goal). Se conservan los nombres; la única etiqueta descriptiva es «planificador de flujos de trabajo».

opcional

ALERTS_FEISHU_WEBHOOK_URL

Webhook de Feishu para el canal de alertas.

para alertas feishu

DASHBOARD_PORT

Puerto para la aplicación de paneles.

opcional


Para agentes de IA

Si usted es un agente de IA (p. ej., Claude Code) que opera en este repositorio:

  • Obtenga datos a través de la ruta de flujo de trabajo. Use fd-daas-based-data-fetch: resuelva la entidad + el indicador contra daas.db mediante sqlite3, luego workflow_run(name, params) — el manifiesto enruta la obtención a través de gateway_callfd-open-data-mcp (L0) y persiste en scraw_<slug> / observations. Para obtenciones de varios pasos, build_workflow_from_goal emite un manifiesto.

  • Flujo de trabajo: resolver → obtener (vía L0) → persistir. Resuelva entidad+indicador en daas.db; obtenga a través de la pasarela; persista en scraw_<slug> (crudo) o observations (indicador calculado).

  • Use el servidor MCP para todo lo demás — exploración del catálogo, creación de indicadores/colecciones/reglas, programación cron, alertas, creación/búsqueda de paneles, búsqueda semántica de PDF, creación de compuestos, paquetes de investigación. Estas son las herramientas fd-daas-mcp (161 en 9 grupos).

  • Consulte daas.db con sqlite3 desde la raíz del repositorio (sqlite3 daas.db "…"). Use PRAGMA foreign_keys=ON para la cascada de claves foráneas.

  • Referencia autoritativa de arquitectura + esquema: CLAUDE.md (tiene una sección ## daas.db que enumera todas las tablas) y construction/mcp.md (la referencia en capas L0/L1/L2/L3).


Licencia

Apache 2.0.

-
license - not tested
-
quality - not tested
C
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 Connectors

  • Real SEC, 13F, insider, congress & macro data your AI agent can cite. Hosted MCP, 24 tools.

  • MCP server connecting AI agents to non-custodial staking data across 130+ networks.

  • Hosted MCP server for personal tools: budgets, savings goals, spaced repetition, tips, countdowns.

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/FindDataTechnology/fd-daas-mcp'

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