From b529000cc660a2066a2e49fc26098bb97a41942a Mon Sep 17 00:00:00 2001 From: Jesus Gonzalez Date: Tue, 9 Jun 2026 11:45:16 -0400 Subject: [PATCH] Update docs for VSCode MCP and AI tools --- .../how_to_configure_aws_secrets_manager.md | 4 +- docs/how-tos/vs-code/environment-variables.md | 6 ++ .../external-ai-tools/github-copilot.md | 31 +++++++++ .../external-ai-tools/snowflake-cortex.md | 33 +++++++++ docs/how-tos/vs-code/mcp/README.md | 54 +++++++++++++++ docs/how-tos/vs-code/mcp/airflow.md | 44 ++++++++++++ .../mcp/assets/ai-tools-mcp-toggles.png | Bin 0 -> 59075 bytes .../vs-code/mcp/assets/github-pat-env-var.png | Bin 0 -> 40968 bytes docs/how-tos/vs-code/mcp/github.md | 63 ++++++++++++++++++ docs/how-tos/vs-code/mcp/grafana.md | 44 ++++++++++++ docs/reference/admin-menu/environments.md | 18 +++++ 11 files changed, 295 insertions(+), 2 deletions(-) create mode 100644 docs/how-tos/vs-code/external-ai-tools/github-copilot.md create mode 100644 docs/how-tos/vs-code/external-ai-tools/snowflake-cortex.md create mode 100644 docs/how-tos/vs-code/mcp/README.md create mode 100644 docs/how-tos/vs-code/mcp/airflow.md create mode 100644 docs/how-tos/vs-code/mcp/assets/ai-tools-mcp-toggles.png create mode 100644 docs/how-tos/vs-code/mcp/assets/github-pat-env-var.png create mode 100644 docs/how-tos/vs-code/mcp/github.md create mode 100644 docs/how-tos/vs-code/mcp/grafana.md diff --git a/docs/how-tos/datacoves/how_to_projects/how_to_configure_aws_secrets_manager.md b/docs/how-tos/datacoves/how_to_projects/how_to_configure_aws_secrets_manager.md index bfb1d849..f50461f8 100644 --- a/docs/how-tos/datacoves/how_to_projects/how_to_configure_aws_secrets_manager.md +++ b/docs/how-tos/datacoves/how_to_projects/how_to_configure_aws_secrets_manager.md @@ -7,9 +7,9 @@ sidebar_position: 50 ## Table of Contents - [Prereqs](#prereqs) - [Create your Secret in AWS Secrets Manager](#create-your-secret-in-aws-secrets-manager) -- [Configure your Secrets Backend in Project settings](#configure-your-secrets-backend-in-project-settings) +- [Configure your Secrets Backend](#configure-your-secrets-backend) - [Project-level configuration](#project-level-configuration) - - [Environment-level override](#environment-level-override) + - [Environment-level configuration](#environment-level-configuration) ## Prereqs diff --git a/docs/how-tos/vs-code/environment-variables.md b/docs/how-tos/vs-code/environment-variables.md index 8c69e545..6376b4aa 100644 --- a/docs/how-tos/vs-code/environment-variables.md +++ b/docs/how-tos/vs-code/environment-variables.md @@ -73,6 +73,12 @@ Creating variables is simple. Add the key following the correct format and add t ![Create variables](assets/env_var_environment_create.png) +:::tip +Some features read a value from an environment variable you set here. For example, the [GitHub MCP +server](/docs/how-tos/vs-code/mcp/github) reads a personal access token from a user-level variable named +`GITHUB_PERSONAL_ACCESS_TOKEN`. Its value is automatically masked because the name contains `token`. +::: + ## Sensitive Variable Masking Datacoves automatically masks the values of environment variables whose names contain certain keywords. This helps prevent accidental exposure of secrets in the UI. diff --git a/docs/how-tos/vs-code/external-ai-tools/github-copilot.md b/docs/how-tos/vs-code/external-ai-tools/github-copilot.md new file mode 100644 index 00000000..553dd0d0 --- /dev/null +++ b/docs/how-tos/vs-code/external-ai-tools/github-copilot.md @@ -0,0 +1,31 @@ +--- +title: GitHub Copilot +sidebar_position: 3 +--- + +# GitHub Copilot + +[GitHub Copilot](https://github.com/features/copilot) is built into the Datacoves VS Code +workspace as the GitHub Copilot and Copilot Chat extensions. + +## Prerequisites + +- A GitHub account with an active GitHub Copilot subscription. +- GitHub Copilot enabled in your Datacoves environment. An administrator enables it under + **Admin > Environments > _your environment_ > AI Tools > AI Extensions**. + +## Login + +1. Open your Datacoves VS Code workspace. +2. Open the Copilot Chat view, or click the Copilot icon in the status bar. +3. Choose to sign in and follow the GitHub authentication prompt in your browser. +4. Once authorized, Copilot is ready in both inline suggestions and chat. + +## MCP servers + +GitHub Copilot can use the Datacoves [MCP servers](/docs/how-tos/vs-code/mcp) (GitHub, Airflow, +Grafana) when they are enabled for your environment. + +## Learn more + +- [GitHub Copilot documentation](https://docs.github.com/en/copilot) diff --git a/docs/how-tos/vs-code/external-ai-tools/snowflake-cortex.md b/docs/how-tos/vs-code/external-ai-tools/snowflake-cortex.md new file mode 100644 index 00000000..f753d874 --- /dev/null +++ b/docs/how-tos/vs-code/external-ai-tools/snowflake-cortex.md @@ -0,0 +1,33 @@ +--- +title: Snowflake Cortex +sidebar_position: 2 +--- + +# Snowflake Cortex + +[Snowflake Cortex Code](https://docs.snowflake.com/en/user-guide/cortex-code/cortex-code-cli) is +Snowflake's AI coding assistant, available as a CLI tool in Datacoves. + +## Prerequisites + +- A Snowflake-based (`dbt-snowflake`) environment. Cortex is only available on Snowflake + environments. +- Cortex enabled in your Datacoves environment. Contact + [Datacoves support](mailto:support@datacoves.com) to enable it, or an administrator can turn it + on under **Admin > Environments > _your environment_ > AI Tools**. + +## Login and usage + +Cortex authenticates against Snowflake and is driven from a terminal in your Datacoves VS Code +workspace. See +[Snowflake's Cortex Code CLI documentation](https://docs.snowflake.com/en/user-guide/cortex-code/cortex-code-cli) +for the authentication and usage steps. + +## MCP servers + +Cortex can use the Datacoves [MCP servers](/docs/how-tos/vs-code/mcp) (GitHub, Airflow, Grafana) +when they are enabled for your environment. + +## Learn more + +- [Snowflake Cortex Code documentation](https://docs.snowflake.com/en/user-guide/cortex-code/cortex-code-cli) diff --git a/docs/how-tos/vs-code/mcp/README.md b/docs/how-tos/vs-code/mcp/README.md new file mode 100644 index 00000000..e47cc062 --- /dev/null +++ b/docs/how-tos/vs-code/mcp/README.md @@ -0,0 +1,54 @@ +--- +title: MCP Servers +sidebar_position: 46 +--- + +# MCP Servers + +Datacoves can connect your AI coding assistants to live data systems through +[MCP (Model Context Protocol)](https://modelcontextprotocol.io/) servers. An MCP server gives an +AI tool structured, read access to an external system so it can answer questions grounded in your +real data instead of guessing. + +Datacoves ships three MCP servers: + +| Server | What it exposes | User setup | +|--------|-----------------|------------| +| [GitHub](/docs/how-tos/vs-code/mcp/github) | Your repositories, pull requests, issues, and CI checks | A GitHub personal access token | +| [Airflow](/docs/how-tos/vs-code/mcp/airflow) | Your DAGs, runs, and task logs (read-only) | None | +| [Grafana (Prometheus & Loki)](/docs/how-tos/vs-code/mcp/grafana) | Metrics and logs from your environment | None | + +Once enabled, these servers are available to every AI tool in your workspace: + +- Datacoves Copilot +- GitHub Copilot +- [OpenAI Codex](/docs/how-tos/vs-code/external-ai-tools/openai-codex) +- [Snowflake Cortex](/docs/how-tos/vs-code/external-ai-tools/snowflake-cortex) + +## Enabling MCP servers + +MCP servers are toggled per environment by an administrator. + +:::note +You need admin access to enable MCP servers. Go to **Admin > Environments**, edit the +environment, open the **AI Tools** tab, and turn on the servers you want under **MCP Servers**. +::: + +![AI Tools tab](./assets/ai-tools-mcp-toggles.png) + +After a server is enabled, it appears automatically in each AI tool the next time the workspace +starts. No further configuration is needed in the tools themselves. + +:::tip +The **Grafana (Prometheus & Loki)** toggle only appears when the **observability stack** is +enabled for your cluster. Contact [Datacoves support](mailto:support@datacoves.com) if you do not +see it. +::: + +## What you can ask + +Each server page includes example prompts. A few to get started: + +- **GitHub:** "Check my last pull request and explain why the CI check failed." +- **Airflow:** "Check the log of the task that failed in my last DAG run and recommend a fix." +- **Grafana:** "Query the metrics and logs for my environment and summarize recent failures." diff --git a/docs/how-tos/vs-code/mcp/airflow.md b/docs/how-tos/vs-code/mcp/airflow.md new file mode 100644 index 00000000..2340c425 --- /dev/null +++ b/docs/how-tos/vs-code/mcp/airflow.md @@ -0,0 +1,44 @@ +--- +title: Airflow +sidebar_position: 2 +--- + +# Airflow MCP Server + +The Airflow MCP server lets your AI tools read your DAGs, runs, and task logs, so you can ask the +AI to investigate a failed task and recommend a fix without leaving VS Code. + +It is backed by [Astronomer's Airflow MCP server](https://github.com/astronomer/agents/tree/main/astro-airflow-mcp) +and works with both Airflow 2 and Airflow 3. + +## Prerequisites + +- The **Airflow** MCP server enabled for your environment (see [Enabling](#enabling)). +- Airflow enabled and running for your environment. + +## How it works + +- **No setup required.** The server authenticates as **you**, using your Datacoves identity, so it + only sees what your Airflow permissions allow. +- **Read-only by default.** The server is configured for read access, so the AI can inspect DAGs, + runs, and logs but cannot trigger, pause, or change anything. +- Works with both your team's Airflow and, when enabled, your personal **My Airflow** instance. + +## Enabling + +:::note +An administrator enables the server in **Admin > Environments > _your environment_ > AI Tools > +MCP Servers** by turning on **Airflow**. +::: + +## Use it + +Start (or restart) your workspace so the AI tools pick up the server, then ask, for example: + +> Check the log of the task that failed in my last DAG run and recommend a fix. + +> Which DAGs failed today, and what was the error? + +## Learn more + +- [Astronomer Airflow MCP server](https://github.com/astronomer/agents/tree/main/astro-airflow-mcp) diff --git a/docs/how-tos/vs-code/mcp/assets/ai-tools-mcp-toggles.png b/docs/how-tos/vs-code/mcp/assets/ai-tools-mcp-toggles.png new file mode 100644 index 0000000000000000000000000000000000000000..13b7ef9b9bc54841dd0b148e5bf7f8a1caa72613 GIT binary patch literal 59075 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�^ig%H551^=X(K)IX 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 literal 0 HcmV?d00001 diff --git a/docs/how-tos/vs-code/mcp/assets/github-pat-env-var.png b/docs/how-tos/vs-code/mcp/assets/github-pat-env-var.png new file mode 100644 index 0000000000000000000000000000000000000000..0eb2809045806f88671864cab86e262c12075b7a GIT binary patch literal 40968 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 Environments > _your environment_ > AI Tools > +MCP Servers** by turning on **GitHub**. +::: + +## Use it + +Start (or restart) your workspace so the AI tools pick up the server, then ask, for example: + +> Check my last pull request, figure out why the CI check failed, and recommend a fix. + +> List my open pull requests in this repository. + +## Learn more + +- [GitHub MCP server](https://github.com/github/github-mcp-server) +- [Managing personal access tokens](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens) diff --git a/docs/how-tos/vs-code/mcp/grafana.md b/docs/how-tos/vs-code/mcp/grafana.md new file mode 100644 index 00000000..48803c45 --- /dev/null +++ b/docs/how-tos/vs-code/mcp/grafana.md @@ -0,0 +1,44 @@ +--- +title: Grafana (Prometheus & Loki) +sidebar_position: 3 +--- + +# Grafana MCP Server + +The Grafana MCP server lets your AI tools query the metrics (Prometheus) and logs (Loki) for your +environment, so you can ask the AI to summarize recent failures or look up a specific log. + +It is backed by [Grafana's MCP server](https://github.com/grafana/mcp-grafana). + +## Prerequisites + +- The **observability stack** enabled for your cluster. The Grafana MCP toggle only appears when + it is. Contact [Datacoves support](mailto:support@datacoves.com) if you need it enabled. +- The **Grafana (Prometheus & Loki)** MCP server enabled for your environment (see + [Enabling](#enabling)). + +## How it works + +**No setup required.** Datacoves provisions a per-environment service account for the server, so +there is nothing for you to configure. The server connects to your environment's Grafana, which +already has the Prometheus and Loki data sources wired up. + +## Enabling + +:::note +An administrator enables the server in **Admin > Environments > _your environment_ > AI Tools > +MCP Servers** by turning on **Grafana (Prometheus & Loki)**. +::: + +## Use it + +Start (or restart) your workspace so the AI tools pick up the server, then ask, for example: + +> Query the metrics and logs for my environment and summarize recent failures. + +> Show me the Loki logs for my Airflow workers in the last hour. + +## Learn more + +- [Grafana MCP server](https://github.com/grafana/mcp-grafana) +- [Grafana dashboards in Datacoves](/docs/how-tos/datacoves/metrics-and-logs/grafana) diff --git a/docs/reference/admin-menu/environments.md b/docs/reference/admin-menu/environments.md index a6b6d0c0..ed125795 100644 --- a/docs/reference/admin-menu/environments.md +++ b/docs/reference/admin-menu/environments.md @@ -25,3 +25,21 @@ On the Environments landing page you can see a list of environments associated w For each environment we can see the associated project, the name of the environment to be displayed on the landing page, and the number of associated service connections. Each row contains 2 action buttons, Edit and Delete. + +## AI Tools + +When editing an environment that has VS Code enabled, the **AI Tools** tab controls the AI +assistants and the data systems they can reach. It has three sections: + +- **AI Extensions** - enable or disable the built-in AI extensions, such as Datacoves Copilot and + GitHub Copilot. +- **AI Tools** - enable or disable the AI CLI tools, such as OpenAI Codex and Snowflake Cortex + (Cortex is only shown on Snowflake environments). +- **MCP Servers** - enable or disable the [MCP servers](/docs/how-tos/vs-code/mcp) (GitHub, + Airflow, and Grafana) that give the AI tools read access to your repositories, DAGs, and + metrics and logs. + +:::note +The **Grafana (Prometheus & Loki)** MCP server only appears when the observability stack is +enabled for the cluster. +:::