Skip to main content
Glama
calvinchengx

data-agent-service

by calvinchengx

Data Agent Service

CI Docs release License: Apache 2.0

python coverage go coverage witnesses

データウェアハウスに英語で質問してください。説明できる答えが得られます。

既存のウェアハウス、データベース、APIに対する自然言語での質問—FabricやAzure SQL、PostgreSQL、Databricks、そして検索系を含むあらゆるRESTサービス—を、OpenMetadataに保持された用語集、メトリクス、スキーマに基づいて処理します。各クエリは2段階で認可されます。サービス内のロールルールによる認可と、呼び出し元自身のIDによるデータソース自体での認可です。あらゆるMCPクライアントが、実際のAzureに対して変更なしで利用できます。

📖 ドキュメントサイト — 完全なリファレンスです。docs/ でMarkdownとしても閲覧できます。

なぜこれが存在するのか

「どのサポートチームが最も速くチケットを解決するか?」に正しい答えがあるのは、解決 の意味が全員に共有されている場合だけです。汎用SQLエージェントをウェアハウスに向けると、エージェントは列名からその意味を推測します。間違っていても、流暢に、しかも警告なしに推測します。

このリポジトリ自身のシードデータでは、その推測は誤ったチームを指名します。ウォールクロックの経過時間ではFrontlineが最速でBillingが最悪です。実際のビジネス定義—顧客を待つ時間を除外したResolution Time—では結果が逆転し、Billingが最速になります。勝者を誤ることは丸め誤差ではありません。しかも、回答のどこを見てもその誤りには気づけません。

このサービスは、その種の誤りが単に起こりにくいだけでなく、構造的に起こりにくいように設計されています。

得られるもの

仕組み

証明

意味はモデルではなくカタログから得られる

用語集の用語、メトリクスの計算式、列の説明はクエリ時にOpenMetadataから読み込まれます。ビジネスセマンティクスがプロンプトに埋め込まれることはありません。

make eval — カタログを除外したアブレーションで同じ質問をスコアリングします

すべての回答が質問者本人の権限で実行される

ユーザーのトークンはエンジンに至るまでオンビハーフ・オブ(OBO)で交換されるため、行と列の権限はエージェントではなくエンジンが決定します。

make test — 2つのペルソナ、同じ質問、異なる行

書き込み、逸脱、拒否の回避ができない

読み取り専用のSELECTを1つだけ使用し、パターンマッチではなくパースします。スキーマの許可リスト、行数の上限を自動適用。拒否は迂回ではなく報告されます。

make conformance — エグゼキュータが満たすべき28アサーションの契約

推論の根拠を添えて回答する

数値、適用した定義、参照元のテーブル、カタログが提示した注意事項

make ask Q="..."

あらゆるMCPクライアント、カスタムコード不要

Claude、Cursor、VS Code、SDKは、OAuthディスカバリを備えた標準MCPで接続します。

docs/09-mcp-clients.md

ラップトップで動作し、変更なしで実Azureにデプロイできる

スタック全体がエミュレータファミリー上で動作します。Fabric、APIM、Entraへの切り替えはコードパスではなく設定です。

docs/10-production.md

検証手段なしに主張されるものは何もない

すべての機能にはそれを証明するコマンドが付属しています。設計済みだが未実装のものについては、ドキュメントにその旨が明記されています。

毎回のプッシュでCIが実行する88件のエンドツーエンドの証跡

ステータス: フェーズ0〜16完了 — docs/00-plan.md を参照してください。

Related MCP server: Interactive Database Analyst via MCP

クイックスタート

make doctor   # toolchain, docker, ~14 GB memory
make up       # entra, keyvault, arm, fabric (+ SQL Server), OpenMetadata 1.13.2, apim
make status   # "stack OK" is the verdict

次に make seed、make test、make eval、make load、make ask Q="…" を実行します。または、CIが実行しているのと同じ、ゼロから全体を立ち上げる make stack を実行します。

リポジトリの構成

パス

目的

docker-compose.yml

固定された公開イメージのみ — 依存関係はそのまま使用されます

.env.example

すべてのDAS_*設定。.env(ローカル)または.env.prod(実Azure)にコピーします

docs/00-plan.md

アーキテクチャ、決定事項、フェーズ、評価、負荷、認可、拡張

docs/

クイックスタート、アーキテクチャ、認可、評価、負荷、MCPクライアント、ソースの追加、本番環境、CI

services/

ウェアハウスクエリのエグゼキュータ(PythonとGo)、および両方が準拠する契約

agent/, evals/, e2e/

エージェント、精度評価スイート、証跡

seed/

データセット、ウェアハウスのプロビジョニング、OpenMetadataセマンティクス、ID設定

infra/terraform/

実Azure用のTerraform。docs/10-production.mdがランブックです

.github/workflows/ci.yml

4つのジョブ。各ジョブが何を証明するかはdocs/11-ci.mdに記載されています

website/

ドキュメントサイト — Astro + Starlight。docs/から生成され、docs/が引き続き信頼できる情報源です

scripts/

doctor.sh、status.sh、check-discipline.sh、preflight.py

規律

  1. エミュレータとOpenMetadataは決して変更されません。疑わしいバグはdocs/upstream-issues.mdに記録されます。

  2. エミュレータ専用のコードパスはありません。 標準プロトコルのみを使用します(OIDC/OAuth2(OBOを含む)、マネージドIDのApp Serviceプロトコル、TDS FedAuth、ARM、Graph、OM REST/MCP)。ENV=prodは.envを切り替えるだけで、他には何も変更しません。

エミュレータファミリー

entra-emulator、azure-keyvault-emulator、arm-emulator、fabric-emulator、azure-apim-emulatorをベースに構築され、azure-emulatorsに従って構成されています。階層: リーフ。

ライセンス

Apache-2.0.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables natural language querying of SQL databases with robust safety guarantees including read-only enforcement, AST validation, and row caps.
    -
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables natural-language querying of PostgreSQL databases with schema grounding and self-correcting error recovery. Provides a live audit trace and verifies results through exploratory decomposition and empty-result sanity checks.
    -
  • F
    license
    Not graded
    quality
    C
    maintenance
    Provides a guarded semantic layer for text-to-SQL, offering tools for schema discovery, semantic profiling, and query verification to enable safe and reliable SQL generation on enterprise databases.
    -
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables natural-language querying of SQLite databases through a governed semantic layer, with citations and typed abstention for PII or uncertified data.
    -