Skip to content

MCP connectors (reference)

TaTi does not embed all integration logic in the web binary: each domain (Slack, cloud, database…) is served by an MCP bridge — a small HTTP service compatible with the Model Context Protocol. Run them with Docker Compose (or manually), then register their URL in the UI: Settings → MCP servers (repo presets follow service names and /mcp paths). The UI preset grid is shown in Introduction — New MCP server.

Reminder

The ports below are default host ports from .env.example. You can change them: keep .env, docker compose, and the URL saved in TaTi consistent (e.g. if you change MCP_SLACK_PORT, http://localhost:…/mcp changes too).

Summary table

ConnectorHost port (default)Typical URL (Compose network)Key variables
OpenMetadata8001http://mcp-openmetadata:8001/mcpOPENMETADATA_URL, OPENMETADATA_JWT
PostgreSQL8002http://mcp-postgres:8002/mcpMCP_POSTGRES_DATABASE_URL, MCP_POSTGRES_READ_ONLY
PDF8003http://mcp-pdf:8003/mcpMCP_PDF_PUBLIC_BASE_URL
Notion8004http://mcp-notion:8004/mcpMCP_NOTION_TOKEN
GitHub8007http://mcp-github:8007/mcpMCP_GITHUB_TOKEN
GitLab8008http://mcp-gitlab:8008/mcpMCP_GITLAB_TOKEN, MCP_GITLAB_URL
Elasticsearch8009 → 8080 internalhttp://mcp-elasticsearch:8080/mcpMCP_ELASTICSEARCH_*
Discord8010http://mcp-discord:8010/mcpMCP_DISCORD_*
Filesystem8011http://mcp-filesystem:8011/mcpMCP_FILESYSTEM_ROOT
AWS8012http://mcp-aws:8012/mcpAWS_*
Azure8013http://mcp-azure:8013/mcpAZURE_*
GCP8014http://mcp-gcp:8014/mcpGCP_*
Email SMTP8015http://mcp-email:8015/mcpSMTP_*
Dagster8016http://mcp-dagster:8016/mcpDAGSTER_GRAPHQL_URL, DAGSTER_API_TOKEN
Apache Airflow8017http://mcp-airflow:8017/mcpAIRFLOW_BASE_URL, AIRFLOW_USERNAME / AIRFLOW_PASSWORD
dbt Cloud8018http://mcp-dbt:8018/mcpDBT_CLOUD_DISCOVERY_URL, DBT_CLOUD_TOKEN, DBT_CLOUD_ENVIRONMENT_ID
dbt Core8019http://mcp-dbt-core:8019/mcpDBT_CORE_HOST_PROJECT, DBT_PROFILES_DIR, DBT_ALLOW_MUTATIONS
Slack8006http://mcp-slack:8006/mcpMCP_SLACK_*
Grafana8020http://mcp-grafana:8020/mcpMCP_GRAFANA_*
Prometheus8021http://mcp-prometheus:8021/mcpMCP_PROMETHEUS_*
Datadog— (HTTPS)See Datadog sectionMCP_DATADOG_* + headers
Google Gmail / Calendar— (HTTPS)Google MCP endpointsGOOGLE_*, OAuth
Moodle— (HTTPS)Moodle plugin URLMCP_MOODLE_*

The sections below cover role, typical use, what the bridge usually exposes, configuration, and pitfalls.


MCP OpenMetadata

Role: MCP tools to query (and optionally change) metadata in OpenMetadata — tables, columns, glossaries, tags, lineage, business properties.

Typical use: “Which table feeds this report?”, “Who owns this dataset?”, “Show lineage around customers.”

Setup: Compose service mcp-openmetadata, port 8001. URL in TaTi: http://mcp-openmetadata:8001/mcp. Vars: OPENMETADATA_URL, OPENMETADATA_JWT, optional OPENMETADATA_ALLOW_MUTATIONS, OPENMETADATA_WRITE_CONFIRM_TOKEN.

WARNING

Catalog mutations are sensitive: keep OPENMETADATA_ALLOW_MUTATIONS=false until flows are validated.


MCP PostgreSQL

Role: Run SQL against Postgres (often a business DB — may be the same instance as TaTi; scope carefully).

Typical use: schema exploration, read-only analytics (SELECT), avoid dumping copies manually.

Setup: Port 8002, URL http://mcp-postgres:8002/mcp. Vars: MCP_POSTGRES_DATABASE_URL, MCP_POSTGRES_READ_ONLY (true recommended for discovery).

TIP

Even read-only SELECT can load the DB — isolate networks and define SQL policy.


MCP PDF

Role: Generate PDFs and return download URLs.

Setup: Port 8003, MCP_PDF_PUBLIC_BASE_URL must be reachable by browsers following links.


MCP Notion

Role: Access Notion databases and pages via integration token permissions.

Setup: Port 8004, MCP_NOTION_TOKEN.


MCP Slack

Role: Read history (per scopes) and post via a bot; optionally restrict channels.

Setup: Port 8006. Vars: MCP_SLACK_BOT_TOKEN, MCP_SLACK_TEAM_ID, MCP_SLACK_CHANNEL_IDS (recommended to limit channels).


MCP Discord

Role: Discord equivalent of the Slack bridge — guild channels and bot permissions.

Setup: Port 8010, MCP_DISCORD_BOT_TOKEN, MCP_DISCORD_GUILD_ID, MCP_DISCORD_CHANNEL_IDS.


MCP Filesystem

Role: List/read (and sometimes write) files under a single root (FILESYSTEM_ROOT).

Setup: Port 8011, MCP_FILESYSTEM_ROOT. In production use a dedicated volume and strict permissions.


MCP GitHub

Role: Automate GitHub workflows — issues, PRs, CI context.

Setup: Port 8007, MCP_GITHUB_TOKEN, MCP_WRITE_CONFIRM_TOKEN for guarded writes.


MCP GitLab

Role: Projects, issues, merge requests — SaaS or self-hosted GitLab.

Setup: Port 8008, MCP_GITLAB_TOKEN, MCP_GITLAB_URL.


MCP Elasticsearch

Role: Full-text search and index operations — depends on MCP image and stack version.

Setup: Host 8009 mapped to 8080 in container — URL http://mcp-elasticsearch:8080/mcp. Vars: MCP_ELASTICSEARCH_URL, credentials, optional MCP_ELASTICSEARCH_SSL_SKIP_VERIFY.


MCP AWS

Role: AWS APIs — often read-only inventory; mutations are high-risk.

Setup: Port 8012, AWS_REGION, AWS_PROFILE or static keys / session token.


MCP Azure

Role: Azure resources via ARM or APIs exposed by the bridge.

Setup: Port 8013, Service Principal or AZURE_ACCESS_TOKEN. Prefer Reader for exploration.


MCP GCP

Role: GCP project resources — Compute, GKE, storage, IAM reads per service account.

Setup: Port 8014, GCP_PROJECT_ID, GCP_REGION, GCP_SERVICE_ACCOUNT_JSON (never commit).


MCP Email (SMTP)

Role: Send mail via SMTP — no IMAP inbox in scope.

Setup: Port 8015, SMTP_*, SMTP_ALLOWED_RECIPIENTS to prevent misuse.


MCP Dagster

Role: Dagster via GraphQL — assets, jobs, runs, partitions.

Setup: Port 8016, DAGSTER_GRAPHQL_URL, DAGSTER_API_TOKEN, DAGSTER_ALLOW_MUTATIONS.


MCP Apache Airflow

Role: Query and control Apache Airflow via the stable REST API (/api/v1): DAGs, dag runs, tasks; trigger or pause when mutations are enabled.

Typical use

  • “List active DAGs”, “last run status for daily_etl”, “trigger a run with this conf” (if mutations are on).

Bridge capabilities

  • Read: list DAGs, DAG detail, list/detail dag runs, list tasks for a DAG.
  • Write (optional): trigger a dag run, pause/unpause DAG — only if AIRFLOW_ALLOW_MUTATIONS=true and the Airflow account allows it.

Configuration

  • Port: 8017 (MCP_AIRFLOW_PORT).
  • TaTi URL: http://mcp-airflow:8017/mcp (Compose) or http://localhost:8017/mcp from the host.
  • Variables: AIRFLOW_BASE_URL (webserver root URL without /api/v1), AIRFLOW_USERNAME / AIRFLOW_PASSWORD (Basic auth), optional AIRFLOW_API_TOKEN (Bearer), AIRFLOW_SSL_VERIFY, AIRFLOW_ALLOW_MUTATIONS.

MCP dbt Cloud (Discovery API)

Role: Query dbt Cloud metadata via the Discovery GraphQL API — models, sources, custom lineage queries.

Setup: Port 8018 (MCP_DBT_PORT). TaTi URL: http://mcp-dbt:8018/mcp.

Variables: DBT_CLOUD_DISCOVERY_URL (from Account settings → Access URLs), DBT_CLOUD_TOKEN (service token with Discovery access), optional DBT_CLOUD_ENVIRONMENT_ID for shortcut tools, DBT_SSL_VERIFY.

Scope: This bridge targets dbt Cloud Discovery. For a local dbt Core project, use MCP dbt Core.


MCP dbt Core (local CLI)

Role: Run dbt Core CLI in a container against a mounted project directoryparse, ls, compile, manifest summary, and optionally deps / run / test / build when mutations are enabled.

Setup: Port 8019 (MCP_DBT_CORE_PORT). TaTi URL: http://mcp-dbt-core:8019/mcp.

Variables: DBT_CORE_HOST_PROJECT (host path mounted at /workspace), DBT_CORE_PROJECT_DIR (container path, default /workspace), optional DBT_PROFILES_DIR, DBT_CORE_TARGET (--target), DBT_ALLOW_MUTATIONS (false by default — blocks deps/run/test/build).

Notes: Image includes dbt-postgres; extend the Dockerfile for other adapters. Warehouse credentials are required for compile/run against a live warehouse.


MCP Grafana

Role: Official Grafana MCP — dashboards, folders, alerts.

Setup: Port 8020, MCP_GRAFANA_URL, MCP_GRAFANA_SERVICE_ACCOUNT_TOKEN, optional org ID.


MCP Prometheus

Role: PromQL queries, targets, series metadata.

Setup: Port 8021, MCP_PROMETHEUS_URL, optional auth, MCP_PROMETHEUS_SSL_VERIFY.


MCP Datadog

Role: Hosted Datadog MCP (not a default Compose container) — APM, logs, metrics per product.

Setup: MCP_DATADOG_MCP_URL (US/EU). Keys often passed as headers in TaTi (DD_API_KEY, DD_APPLICATION_KEY).


Google Gmail & Calendar (remote MCP)

Role: Gmail and Calendar via Google-hosted MCP endpoints.

Setup: MCP_GMAIL_MCP_URL, MCP_GOOGLE_CALENDAR_MCP_URL, GOOGLE_CLOUD_PROJECT_ID, OAuth vars. Configure headers in TaTi if required.


MCP Moodle

Role: Moodle plugin MCP endpoint for courses and activities.

Setup: MCP_MOODLE_MCP_URL, MCP_MOODLE_TOKEN — least-privilege token.


Deprecations and alternatives

  • Elasticsearch MCP image: .env.example may note Elastic-side evolution — watch release notes for recommended endpoints.

See also

TaTi — delivery/ops copilot • Documentation under repository license