MCP 與資料庫的互動與資料文件化

更新於 發佈於 閱讀時間約 5 分鐘

前言

MCP(Model Context Protocol)在各大廠正式宣布採用後,一舉引爆熱潮,這次我想將結合MCP與資料庫和文件的範例分享給大家。

架構

  • 客戶端:Claude Desktop
  • 資料庫:BigQuery

系統組成元件

本實作案例採用雙核心架構模式,用戶端選用 Claude Desktop 作為人機介面,資料庫層則部署 Google BigQuery 雲端資料倉儲系統。此組合充分發揮 MCP 協定的中介特性,在自然語言查詢與結構化資料儲存間建立高效通道。


伺服器端實作方案

目前公開的 BigQuery MCP 伺服器實作主要有兩種技術路線:

  1. 原生 Python 實作方案:由 LucasHild 開發的 mcp-server-bigquery 專案,採用 uv 工具鏈進行依賴管理與套件分發,支援查詢執行、資料表清單獲取與結構描述解析等核心功能1
  2. 容器化部署方案:Metorial 社群提供的 Docker 映像檔方案,透過封裝執行環境簡化部署流程,特別適合需要快速佈署的企業應用場景28

功能特性比較

兩種實作方案均實現 MCP 協定規範的基礎功能集,但在進階特性支援度上存在差異:

功能維度Python 原生方案容器化方案多資料集支援動態載入啟動時指定權限管控機制IAM 整合RBAC 實作查詢效能優化批次處理串流處理除錯工具整合MCP Inspector日誌追蹤部署複雜度中等低


(表 1:BigQuery MCP 伺服器實作方案功能比較

raw-image

實作流程詳解

環境建置階段

在 macOS 系統環境下,需透過終端機執行下列指令完成基礎環境配置:

bashbrew tap monochromegane/tap  
brew install monochromegane/tap/mcp-bigquery-server

此步驟將安裝必要的套件管理工具與 runtime 相依項目,確保後續指令能正確執行36

組態設定要點

使用者需在 Claude Desktop 的組態檔案(位於 ~/Library/Application Support/Claude/claude_desktop_config.json)中加入 MCP 伺服器定義:

json"mcpServers": {
"bigquery": {
"command": "uvx",
"args": [
"mcp-server-bigquery",
"--project", "{{GCP_PROJECT_ID}}",
"--location", "{{GCP_LOCATION}}"
]
}
}

此組態採用 uvx 執行器動態載入 MCP 服務模組,其中 {{GCP_PROJECT_ID}} 需替換為實際 GCP 專案編號,{{GCP_LOCATION}} 則指定資料儲存區域14

資料查詢實例

當使用者透過自然語言提出查詢需求時,MCP 協定將自動轉譯為符合 BigQuery 方言的 SQL 指令。例如輸入「顯示上季度營收前五名的客戶」,系統將生成:

sqlSELECT customer_id, SUM(revenue) AS total_revenue  
FROM sales_data.q3_transactions
WHERE transaction_date BETWEEN '2025-01-01' AND '2025-03-31'
GROUP BY customer_id
ORDER BY total_revenue DESC
LIMIT 5

此過程完全由 MCP 伺服器處理,無需人工介入 SQL 語法編寫。

權限管控層級

系統採用三層式防護架構:

  1. 傳輸加密:所有通訊均透過 TLS 1.3 協議加密,防止中間人攻擊。
  2. 存取控制:整合 Google Cloud IAM 服務,實施最小權限原則,查詢操作僅具備資料讀取權限。
留言
avatar-img
留言分享你的想法!
avatar-img
Kiki的沙龍
1會員
45內容數
心繫正體中文的科學家,立志使用正體中文撰寫文章。 此沙龍預計涵蓋各項資訊科技知識分享與學習心得
Kiki的沙龍的其他內容
2025/04/27
Meta 推出了開源大型語言模型 Llama。這一代特別引人注目,因為 80 億參數的模型小到可以在家用電腦上運行,效能卻不輸比它大十倍的模型。在許多應用場景下,它給出的回應品質已經能媲美 GPT-4。在這篇文章裡,我會說明自架 Llama 3 的優缺點,並提供設定方式與資源,讓讀者也能輕鬆動手。
2025/04/27
Meta 推出了開源大型語言模型 Llama。這一代特別引人注目,因為 80 億參數的模型小到可以在家用電腦上運行,效能卻不輸比它大十倍的模型。在許多應用場景下,它給出的回應品質已經能媲美 GPT-4。在這篇文章裡,我會說明自架 Llama 3 的優缺點,並提供設定方式與資源,讓讀者也能輕鬆動手。
2025/04/20
這份實務指引旨在協助產品和工程團隊入門 大型語言模型(LLM)驅動的人工智慧代理人建構,它定義了代理的核心概念,例如獨立執行任務和利用 LLM 管理工作流程決策。本文闡述了何時應考慮建立代理,特別是在傳統自動化方法受限的複雜情境,並深入探討了代理設計的基礎要素,包括模型選擇、工具整合及指令設置。
2025/04/20
這份實務指引旨在協助產品和工程團隊入門 大型語言模型(LLM)驅動的人工智慧代理人建構,它定義了代理的核心概念,例如獨立執行任務和利用 LLM 管理工作流程決策。本文闡述了何時應考慮建立代理,特別是在傳統自動化方法受限的複雜情境,並深入探討了代理設計的基礎要素,包括模型選擇、工具整合及指令設置。
2025/04/06
這篇文章將搭配簡單的範例,介紹最近推出的 Docker Model Runner。內容比較隨意粗略,希望能成為讓讀者了解這項工具的契機!
2025/04/06
這篇文章將搭配簡單的範例,介紹最近推出的 Docker Model Runner。內容比較隨意粗略,希望能成為讓讀者了解這項工具的契機!
看更多
你可能也想看
Thumbnail
沙龍一直是創作與交流的重要空間,這次 vocus 全面改版了沙龍介面,就是為了讓好內容被好好看見! 你可以自由編排你的沙龍首頁版位,新版手機介面也讓每位訪客都能更快找到感興趣的內容、成為你的支持者。 改版完成後可以在社群媒體分享新版面,並標記 @vocus.official⁠ ♥️ ⁠
Thumbnail
沙龍一直是創作與交流的重要空間,這次 vocus 全面改版了沙龍介面,就是為了讓好內容被好好看見! 你可以自由編排你的沙龍首頁版位,新版手機介面也讓每位訪客都能更快找到感興趣的內容、成為你的支持者。 改版完成後可以在社群媒體分享新版面,並標記 @vocus.official⁠ ♥️ ⁠
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
本書介紹了戰略設計、管理領域複雜度、實際應用領域驅動設計等主題。透過對核心子領域、支持子領域、限界上下文等概念的探討,提供了領域驅動設計的相關知識。這篇文章中還涉及了微服務、事件驅動架構和資料網格等相關主題,提供了設計系統和應用領域驅動設計的指導。
Thumbnail
本書介紹了戰略設計、管理領域複雜度、實際應用領域驅動設計等主題。透過對核心子領域、支持子領域、限界上下文等概念的探討,提供了領域驅動設計的相關知識。這篇文章中還涉及了微服務、事件驅動架構和資料網格等相關主題,提供了設計系統和應用領域驅動設計的指導。
Thumbnail
學習如何使用Python連接MongoDB進行憑證監控,包括建立MongoDB docker-compose、連接MongoDB、讀取yaml並寫入MongoDB、傳入env以及domain寫入MongoDB、讀取MongoDB、修改MongoDB、刪除MongoDB。
Thumbnail
學習如何使用Python連接MongoDB進行憑證監控,包括建立MongoDB docker-compose、連接MongoDB、讀取yaml並寫入MongoDB、傳入env以及domain寫入MongoDB、讀取MongoDB、修改MongoDB、刪除MongoDB。
Thumbnail
本文主要在討論以 Docs as Code 方法來撰寫技術文件,此做法能否滿足企業內部對知識管理的需求。
Thumbnail
本文主要在討論以 Docs as Code 方法來撰寫技術文件,此做法能否滿足企業內部對知識管理的需求。
Thumbnail
軟體系統的發展歷程大多相似,首重解決基本需求、提供操作介面,進而提升安全性、擴充功能、優化操作。
Thumbnail
軟體系統的發展歷程大多相似,首重解決基本需求、提供操作介面,進而提升安全性、擴充功能、優化操作。
Thumbnail
代理模式通過封裝原始對象來實現對該對象的控制和管理,同時不改變原始對象的行為或客戶端與該對象互動的方式,以此介入或增強對該對象的訪問和操作。
Thumbnail
代理模式通過封裝原始對象來實現對該對象的控制和管理,同時不改變原始對象的行為或客戶端與該對象互動的方式,以此介入或增強對該對象的訪問和操作。
Thumbnail
有趣的是,Model 其實沒什麼嚴格的定義,所以每個人對 Model 的解讀也不盡相同,有人覺得資料怎麼儲存屬於 Model 的一部份 (受 ORM 工具的影響),有人覺得工作流程 (workflow) 是 Model 的一部份,我個人也有自己的想法,而且隨專案的規模和特性,也不是總是一樣的。
Thumbnail
有趣的是,Model 其實沒什麼嚴格的定義,所以每個人對 Model 的解讀也不盡相同,有人覺得資料怎麼儲存屬於 Model 的一部份 (受 ORM 工具的影響),有人覺得工作流程 (workflow) 是 Model 的一部份,我個人也有自己的想法,而且隨專案的規模和特性,也不是總是一樣的。
Thumbnail
到存放虛擬機的磁碟處\點選想要註冊的機器\註冊機器(登錄虛擬機器)
Thumbnail
到存放虛擬機的磁碟處\點選想要註冊的機器\註冊機器(登錄虛擬機器)
Thumbnail
※ 基本操作:SQL 語法,SELECT, WHERE, CREATE, UPDATE, DELETE。 SELECT:從資料庫中或資料表中指定要選擇的欄位中取得資料,稱之為查詢 (query)。 ※ 語法:要由兩部分構成,第一部分是要 "拿什麼" 資料 (若有多項用逗號隔開);第二部分則為
Thumbnail
※ 基本操作:SQL 語法,SELECT, WHERE, CREATE, UPDATE, DELETE。 SELECT:從資料庫中或資料表中指定要選擇的欄位中取得資料,稱之為查詢 (query)。 ※ 語法:要由兩部分構成,第一部分是要 "拿什麼" 資料 (若有多項用逗號隔開);第二部分則為
Thumbnail
gRPC是一款跨平台、高性能的RPC框架,他可以在任何環境下執行,主要用於後端為服務開發。在用戶端應用程式中,可以像本地物件那樣呼叫遠端伺服器的方法,因此可以創建出分散式應用。 使用 到https://github.com/protocolbuffers/protobuf/releases下
Thumbnail
gRPC是一款跨平台、高性能的RPC框架,他可以在任何環境下執行,主要用於後端為服務開發。在用戶端應用程式中,可以像本地物件那樣呼叫遠端伺服器的方法,因此可以創建出分散式應用。 使用 到https://github.com/protocolbuffers/protobuf/releases下
Thumbnail
今天來講:用 MkDocs 快速建立文件網頁,並部署在 Read The Docs 上。 (南瓜標記🎃 2023082901號文章)
Thumbnail
今天來講:用 MkDocs 快速建立文件網頁,並部署在 Read The Docs 上。 (南瓜標記🎃 2023082901號文章)
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News