返回市场
谷歌BigQuery MCP服务器由cdata提供

谷歌BigQuery MCP服务器由cdata提供

作者:CDataSoftware0 星标更新:2025-08-06

项目介绍

google-bigquery-mcp-server-by-cdata

CData 的 Model Context Protocol (MCP) 服务器用于 Google BigQuery

:heavy_exclamation_mark: 该项目构建了一个只读的 MCP 服务器。如需完整的读取、写入、更新、删除和操作功能以及简化设置,请查看我们的免费 CData MCP 服务器 for Google BigQuery (beta)

目的

我们创建了这个只读 MCP 服务器,以允许大型语言模型(如 Claude Desktop)通过 CData JDBC 驱动程序 for Google BigQuery 查询实时数据。

CData JDBC 驱动程序通过暴露它们作为关系 SQL 模型来连接到 Google BigQuery。

该服务器封装了此驱动程序,并通过简单的 MCP 接口提供 Google BigQuery 数据,因此大型语言模型可以通过询问自然语言问题来检索实时信息——无需 SQL。

安装指南

  1. 克隆仓库:
    git clone https://github.com/cdatasoftware/google-bigquery-mcp-server-by-cdata.git
    cd google-bigquery-mcp-server-by-cdata
    
  2. 构建服务器:
    mvn clean install
    
    这会创建 JAR 文件:CDataMCP-jar-with-dependencies.jar
  3. 下载并安装 CData JDBC 驱动程序 for {source}: https://www.cdata.com/drivers/bigquery/download/jdbc
  4. 许可 CData JDBC 驱动程序:
    • 导航到安装目录中的 lib 文件夹,通常位于:
      • (Windows) C:\Program Files\CData\CData JDBC Driver for Google BigQuery\
      • (Mac/Linux) /Applications/CData JDBC Driver for Google BigQuery/
    • 运行命令 java -jar cdata.jdbc.googlebigquery.jar --license
    • 输入您的姓名、电子邮件地址和“TRIAL”(或您的许可密钥)。
  5. 配置您的数据源连接(以 Salesforce 为例):
    • 运行命令 java -jar cdata.jdbc.googlebigquery.jar 打开连接字符串工具。

      <img src="https://github.com/user-attachments/assets/a5b5237b-79c1-472c-8c2f-3f9eb1ac9627" title="CData JDBC 驱动程序连接字符串工具。" width=384px />
    • 配置连接字符串并点击“测试连接”

      注意: 如果数据源使用 OAuth,您需要在浏览器中进行身份验证。

    • 成功后,复制连接字符串以便后续使用。

  6. 创建一个用于 JDBC 连接的 .prp 文件(例如 google-bigquery.prp),使用以下属性和格式:
    • Prefix - 要用于暴露工具的前缀
    • ServerName - 服务器名称
    • ServerVersion - 服务器版本
    • DriverPath - JDBC 驱动程序 JAR 文件的完整路径
    • DriverClass - JDBC 驱动程序类名(例如 cdata.jdbc.googlebigquery.GoogleBigQueryDriver)
    • JdbcUrl - 使用 CData JDBC 驱动程序连接到您的数据的 JDBC 连接字符串(从上面复制)
    • Tables - 留空以访问所有数据,否则您可以显式声明要创建访问权限的表
      Prefix=googlebigquery
      ServerName=CDataGoogleBigQuery
      ServerVersion=1.0
      DriverPath=PATH\TO\cdata.jdbc.googlebigquery.jar
      DriverClass=cdata.jdbc.googlebigquery.GoogleBigQueryDriver
      JdbcUrl=jdbc:googlebigquery:InitiateOAuth=GETANDREFRESH;
      Tables=
      

使用 Claude Desktop 与服务器

  1. 创建 Claude Desktop 的配置文件(claude_desktop_config.json),添加新的 MCP 服务器,使用以下格式。如果文件已存在,则将条目添加到配置文件中的 mcpServers 中。

    Windows

    {
      "mcpServers": {
        "{classname_dash}": {
          "command": "PATH\\TO\\java.exe",
          "args": [
            "-jar",
            "PATH\\TO\\CDataMCP-jar-with-dependencies.jar",
            "PATH\\TO\\google-bigquery.prp"
          ]
        },
        ...
      }
    }
    

    Linux/Mac

    {
      "mcpServers": {
        "{classname_dash}": {
          "command": "/PATH/TO/java",
          "args": [
            "-jar",
            "/PATH/TO/CDataMCP-jar-with-dependencies.jar",
            "/PATH/TO/google-bigquery.prp"
          ]
        },
        ...
      }
    }
    

    如有需要,将配置文件复制到适当的目录(以 Claude Desktop 为例)。 Windows

    cp C:\PATH\TO\claude_desktop_config.json %APPDATA%\Claude\claude_desktop_config.json
    

    Linux/Mac

    cp /PATH/TO/claude_desktop_config.json /Users/{user}/Library/Application\ Support/Claude/claude_desktop_config.json'
    
  2. 运行或刷新您的客户端(Claude Desktop)。

注意: 您可能需要完全退出或关闭您的 Claude Desktop 客户端并重新打开它,以便 MCP 服务器出现。

运行服务器

  1. 运行以下命令以独立运行 MCP 服务器
    java -jar /PATH/TO/CDataMCP-jar-with-dependencies.jar /PATH/TO/Salesforce.prp
    

注意: 服务器使用 stdio,因此只能与在同一台机器上运行的客户端一起使用。

使用详情

一旦配置好 MCP 服务器,AI 客户端就可以使用内置工具来读取、写入、更新和删除底层数据。通常情况下,您不需要显式调用这些工具。只需让客户端回答关于底层数据系统的问题即可。例如:

  • “我的已关闭赢得机会与账户行业之间的相关性是什么?”
  • “我在 SUPPORT 项目中有多少个开放工单?”
  • “你能告诉我今天我有哪些日历事件吗?”

可用工具及其描述如下:

工具及描述

在下面的定义中,{servername} 指的是配置文件中的 MCP 服务器名称(例如上面的 {classname_dash})。

  • {servername}_get_tables - 获取数据源中可用的表列表。使用 {servername}_get_columns 工具列出表上的可用列。工具的输出将以 CSV 格式返回,第一行包含列标题。
  • {servername}_get_columns - 获取表的列列表。使用 {servername}_get_tables 工具获取可用表的列表。工具的输出将以 CSV 格式返回,第一行包含列标题。
  • {servername}_run_query - 执行 SQL SELECT 查询

JSON-RPC 请求示例

如果您正在脚本化发送给 MCP 服务器的请求而不是使用 AI 客户端(例如 Claude),则可以参考以下 JSON 负载示例——遵循 JSON-RPC 2.0 规范——当调用可用工具时。

google_bigquery_get_tables

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "google_bigquery_get_tables",
        "arguments": {}
    }
}

google_bigquery_get_columns

{
    "jsonrpc": "2.0",
    "id": 2,
    "method": "tools/call",
    "params": {
        "name": "google_big_查询列
```json
{
    "jsonrpc": "2.0",
    "id": 2,
    "method": "tools/call",
    "params": {
        "name": "google_bigquery_get_columns",
        "arguments": {
            "table":  "Account"
        }
    }
}

google_bigquery_run_query

{
    "jsonrpc": "2.0",
    "id": 3,
    "method": "tools/call",
    "params": {
        "name": "google_bigquery_run_query",
        "arguments": {
            "sql":  "SELECT * FROM [Account] WHERE [IsDeleted] = true"
        }
    }
}

故障排除

  1. 如果您无法在 Claude Desktop 中看到您的 CData MCP 服务器,请确保您已经完全退出了 Claude Desktop(Windows:使用任务管理器,Mac:使用活动监视器)。
  2. 如果 Claude Desktop 无法检索数据,请确保您已正确配置了连接。使用连接字符串生成器创建连接字符串(参见上文),并将连接字符串复制到属性(.prp)文件中。
  3. 如果您遇到连接数据源的问题,请联系 CData 支持团队
  4. 如果您在使用 MCP 服务器方面遇到问题,或有任何其他反馈,请加入 CData 社区

许可证

此 MCP 服务器根据 MIT 许可证授权。这意味着您可以自由地使用、修改和分发软件,但须遵守 MIT 许可证的条款和条件。更多细节,请参阅项目存储库中的 LICENSE 文件。

所有支持的数据源

<table> <tr><td>Access</td><td>Act CRM</td><td>Act-On</td><td>Active Directory</td></tr> <tr><td>ActiveCampaign</td><td>Acumatica</td><td>Adobe Analytics</td><td>Adobe Commerce</td></tr> <tr><td>ADP</td><td>Airtable</td><td>AlloyDB</td><td>Amazon Athena</td></tr> <tr><td>Amazon DynamoDB</td><td>Amazon Marketplace</td><td>Amazon S3</td><td>Asana</td></tr> <tr><td>Authorize.Net</td><td>Avalara AvaTax</td><td>Avro</td><td>Azure Active Directory</td></tr> <tr><td>Azure Analysis Services</td><td>Azure Data Catalog</td><td>Azure Data Lake Storage</td><td>Azure DevOps</td></tr> <tr><td>Azure Synapse</td><td>Azure Table</td><td>Basecamp</td><td>BigCommerce</td></tr> <tr><td>BigQuery</td><td>Bing Ads</td><td>Bing Search</td><td>Bitbucket</td></tr> <tr><td>Blackbaud FE NXT</td><td>Box</td><td>Bullhorn CRM</td><td>Cassandra</td></tr> <tr><td>Certinia</td><td>Cloudant</td><td>CockroachDB</td><td>Confluence</td></tr> <tr><td>Cosmos DB</td><td>Couchbase</td><td>CouchDB</td><td>CSV</td></tr> <tr><td>Cvent</td><td>Databricks</td><td>DB2</td><td>DocuSign</td></tr> <tr><td>Dropbox</td><td>Dynamics 365</td><td>Dynamics 365 Business Central</td><td>Dynamics CRM</td></tr> <tr><td>Dynamics GP</td><td>Dynamics NAV</td><td>eBay</td><td>eBay Analytics</td></tr> <tr><td>Elasticsearch</td><td>Email</td><td>EnterpriseDB</td><td>Epicor Kinetic</td></tr> <tr><td>Exact Online</td><td>Excel</td><td>Excel Online</td><td>Facebook</td></tr> <tr><td>Facebook Ads</td><td>FHIR</td><td>Freshdesk</td><td>FTP</td></tr> <tr><td>GitHub</td><td>Gmail</td><td>Google Ad Manager</td><td>Google Ads</td></tr> <tr><td>Google Analytics</td><td>Google Calendar</td><td>Google Campaign Manager 360</td><td>Google Cloud Storage</td></tr> <tr><td>Google Contacts</td><td>Google Data Catalog</td><td>Google Directory</td><td>Google Drive</td></tr> <tr><td>Google Search</td><td>Google Sheets</td><td>Google Spanner</td><td>GraphQL</td></tr> <tr><td>Greenhouse</td><td>Greenplum</td><td>HarperDB</td><td>HBase</td></tr> <tr><td>HCL Domino</td><td>HDFS</td><td>Highrise</td><td>Hive</td></tr> <tr><td>HubDB</td><td>HubSpot</td><td>IBM Cloud Data Engine</td><td>IBM Cloud Object Storage</td></tr> <tr><td>IBM Informix</td><td>Impala</td><td>Instagram</td><td>JDBC-ODBC Bridge</td></tr> <tr><td>Jira</td><td>Jira Assets</td><td>Jira Service Management</td><td>JSON</td></tr> <tr><td>Kafka</td><td>Kintone</td><td>LDAP</td><td>LinkedIn</td></tr> <tr><td>LinkedIn Ads</td><td>MailChimp</td><td>MariaDB</td><td>Marketo</td></tr> <tr><td>MarkLogic</td><td>Microsoft Dataverse</td><td>Microsoft Entra ID</td><td>Microsoft Exchange</td></tr> <tr><td>Microsoft OneDrive</td><td>Microsoft Planner</td><td>Microsoft Project</td><td>Microsoft Teams</td></tr> <tr><td>Monday.com</td><td>MongoDB</td><td>MYOB AccountRight</td><td>MySQL</td></tr> <tr><td>nCino</td><td>Neo4J</td><td>NetSuite</td><td>OData</td></tr> <tr><td>Odoo</td><td>Office 365</td><td>Okta</td><td>OneNote</td></tr> <tr><td>Oracle</td><td>Oracle Eloqua</td><td>Oracle Financials Cloud</td><td>Oracle HCM Cloud</td></tr> <tr><td>Oracle Sales</td><td>Oracle SCM</td><td>Oracle Service Cloud</td><td>Outreach.io</td></tr> <tr><td>Parquet</td><td>Paylocity</td><td>PayPal</td><td>Phoenix</td></tr> <tr><td>PingOne</td><td>Pinterest</td><td>Pipedrive</td><td>PostgreSQL</td></tr> <tr><td>Power BI XMLA</td><td>Presto</td><td>Quickbase</td><td>QuickBooks</td></tr> <tr><td>QuickBooks Online</td><td>QuickBooks Time</td><td>Raisers Edge NXT</td><td>Reckon</td></tr> <tr><td>Reckon Accounts Hosted</td><td>Redis</td><td>Redshift</td><td>REST</td></tr> <tr><td>RSS</td><td>Sage 200</td><td>Sage 300</td><td>Sage 50 UK</td></tr> <tr><[...省略剩余内容以符合字符限制...]