得心应手:探索 MCP 与数据库结合的应用场景

0 阅读23分钟

在 AI Agent 日益流行的今天,大模型应用范围已经从原来的聊天,发展到各个实际场景。例如,与地图应用结合的路线行程规划,深度调研分析报告,获取市场数据分析。依赖 Agent 工具,更多应用正在改变我们的工作和生活方式,优化企业的生产流程。

📢限时插播:无需管理基础设施,利用亚马逊技术与生态,快速集成与部署生成式AI模型能力。

✨ 精心设计,旨在引导您深入探索Amazon Bedrock的模型选择与调用、模型自动化评估以及安全围栏(Guardrail)等重要功能。

⏩快快点击进入《多模一站通 —— Amazon Bedrock 上的基础模型初体验》实验

构建无限, 探索启程!

在这些应用场景中,数据必不可少。如何自动调用工具,访问数据,并产生我们所需要的结果?MCP(Model Context Protocol,模型上下文协议),定义了应用向 AI 应用提供上下文的方式,遵循 MCP 协议的应用,可以调用各种工具,扩展 AI 能力。

来看一个例子,对比 MCP 对于数据的应用。

假设需要查询公司数据库,找出年纪最大的人。

向大模型提问:

Who is the oldest person?

在没有 MCP 支持的情况下,大模型会根据自身理解的数据,给出答案,世界上最年长的人:

The oldest person ever reliably documented was Jeanne Calment from France, who lived to be 122 years and 164 days old (1875-1997).

但是,此答案并非我们所需要的业务数据。

加上 MCP Server,扩展大模型的能力,访问企业自身数据库,可以构建流程调用工具,根据模型的理解执行合适的数据库查询,直到找出最合适的结果,得到业务所需真正答案:

According to the database, the oldest person is David, who is 35 years old.

以上示例可以看出,有了MCP,可以更加智能访问数据库,直接根据业务需求获取数据结果。

MCP 结合数据库架构:

MCP 架构由 Server, Client, Host, Application 构成。客户以应用访问时,Host 上的 MCP Client 需要与对应的 Server 交互,执行相应的工具,返回结果。在此架构中,构造了多个数据库 MCP Server,让大模型可以调用工具访问数据库,完成业务需求。

再来看看 MCP 工具调用过程。

提示词:

find the top 3 customers last year

需要从数据库找出去年销售额最高的 3 个客户。提示词中并未包含表结构定义,而是让大模型自己调用数据库工具查询。

输出结果:

处理过程如下:

  • 列出有哪些可能包含客户和交易的表,发现 customers 和 orders 两个表
  • 查看表结构,构造 SQL 查询 JOIN 语句,并分组排序
  • “SELECT id, c.first_name, c.last_name, c.email, SUM(o.total_amount) AS total_spent FROM customers c JOIN orders o ON c.id = o.customer_id WHERE YEAR(o.order_date) = 2023 GROUP BY c.id, c.first_name, c.last_name, c.email ORDER BY total_spent DESC LIMIT 3”
  • 查询结果发现没有 2023 年数据
  • 修改查询,获取与 2023 年最接近的 2025 年的信息

以下是 MCP Mysql 数据库工具根据上下文处理的例子:

提示词:

find top sales in 2024

1、调用 mysql_query 工具,构造初始对于 sales 表的查询,发现此表不存在。

Tool Call:
  "toolUseId": "tooluse_jze0kbOwRXme_akueFHpxw",
  "name": "mcp_server_mysql___mysql_query",
  "input": {
    "sql": "SELECT * FROM sales WHERE YEAR(sale_date) = 2024 ORDER BY amount DESC LIMIT 10"
  }

Tool Result:
      "mcp_server_mysql___mysql_query tool call is failed. error:Table 'mcp.sales' doesn't exist"

2、根据返回结果,之前的 SQL 语句不适用。继续查询,列出表和表结构,检查哪些表和列可能存在相关数据。

Tool Call:
    "sql": "SHOW TABLES"
    "sql": "DESCRIBE orders"

3、发现 orders 和 customers 表存在需要的订单和客户信息,构造 SQL JOIN 查询,最终返回正确结果。

Tool Call:
    "sql": "SELECT c.id, c.first_name, c.last_name, o.id as order_id, o.order_date, o.total_amount, o.status FROM orders o JOIN customers c ON o.customer_id = c.id ORDER BY o.total_amount DESC LIMIT 10"

这个过程很符合人类处理此类问题时的思考过程。大模型使用 Mysql query 工具,根据自己的理解,生成并执行 SQL 语句。根据返回结果,继续迭代,处理错误,并生成正确的 SQL,直到满足需求的结果。此过程无需过多人工干预,MCP 数据库工具会自动执行。

MCP Server 结合数据库,可以自动编写理解自然语言的数据访问语句,按照需求构建数据访问流程。应用场景包括:

  • AI 工具助手
  • 网站前后端开发
  • 广告投放优化
  • 基于爬虫+数据库的市场分析
  • 作为 RAG 知识库补充,理解自然语言进行精确查询查询
  • 审计数据处理:从 excel, CRM, pdf 等多种数据源整理到统一格式数据库,并编写 SQL 访问语句
  • AI 自动化数据库调优运维

根据不同场景,选择数据库:

  • 在线订单交易:Amazon RDS/Aurora
  • 购物车:Amazon DynamoDB
  • 广告实时竞价,归因,用户特征:Amazon DynamoDB
  • Session & 排行榜:Amazon Elasticache for Redis
  • 聊天消息:Amazon DynamoDB/ Amazon DocumentDB
  • 复杂分析报表:Amazon Redshift
  • 知识库精确查询:Amazon RDS/ Amazon Redshift

MCP Server 已经支持上述 Amazon 数据库,其他支持的数据库或者分析产品包括:

Cassandra, Kafka, Opensearch, Snowflake, InfluxDB, Amazon Bedrock Knowledge base

亚马逊云科技中国客户,也可以使用国内支持的大模型,例如已经上线 Marketplace 的硅基流动 Deepseek/Qwen,调用大模型访问对应数据库 MCP Server。

MCP 数据库场景:AI 工具助手

MCP 工具厂商提供了多种工具,包括数据分析。对于营销公司,需要筛选本月抖音爆款视频。可以构造以下 MCP 工具来完成。

爬取平台数据 → 分析互动指标 → 生成TOP50榜单 → 打包下载链接

  1. 调用爬虫 MCP,获取特定网页数据。
  2. 调用数据库 MCP,爬虫数据写入数据库,并构造 SQL 查询,生成分析结果。
  3. 调用文件 MCP,生成下载信息汇总。

我们来演示一下更具体的使用案例:

MCP 数据库场景:市场营销分析

需要获取二手车的销售情况,进行分析预测,制定将来销售计划。

流程如下:

  1. 爬虫 MCP(Firecrawl):爬虫获取汽车垂直网站销售信息,包括型号、车况、年限、价格。
  2. 数据库 MCP(Mysql):爬取的数据写入数据库,创建视图,构造 SQL 查询
  3. 大模型:根据查询结果生成分析报告

具体步骤:

1、创建支持 MCP 的 Agent 应用

参考以下流程:

github.com/aws-samples…

具体实验步骤:

基于 MCP 构建端到端的 Agentic AI 应用工作坊

2、安装 Firecrawl 爬虫工具,支持 MCP,参考之前实验的 MCP Server 安装步骤

获取 Firecrawl API KEY

配置 Firecrawl MCP Server:

{
  "mcpServers": {
    "firecrawl-mcp": {
      "command": "npx",
      "args": ["-y", "firecrawl-mcp"],
      "env": {
        "FIRECRAWL_API_KEY": "YOUR FIRECRAWL API KEY"
      }
    }
  }
}

3、配置 Mysql MCP Server:

参考:基于 MCP 构建端到端的 Agentic AI 应用工作坊:MCP 结合数据库应用

配置文件如下,可以控制数据库访问方式,例如只读,执行 DDL 等。本示例中允许数据库读写和 DDL 更改表结构。修改数据库连接地址、用户名和密码。

{
  "mcpServers": {
      "mcp_server_mysql": {
          "command": "npx",
          "args": [
              "-y",
              "@benborla29/mcp-server-mysql"
          ],
          "env": {
              "MYSQL_HOST": "Your RDS Mysql endpoint",
              "MYSQL_PORT": "3306",
              "MYSQL_USER": "Your user",
              "MYSQL_PASS": "Your Password",
              "MYSQL_DB": "mcp",
              "ALLOW_INSERT_OPERATION": "true",
              "ALLOW_UPDATE_OPERATION": "true",
              "ALLOW_DELETE_OPERATION": "true",
              "ALLOW_DDL_OPERATION": "true",
              "PATH": "/usr/bin:/home/ubuntu/.nvm/versions/node/v22.12.0/bin/",
              "NODE_PATH": "/home/ubuntu/.nvm/versions/node/v22.12.0/lib/node_modules"
          }
      }
  }
}

4、配置完成后,启用 Firecrawl 和 Mysql MCP Server

5、开始与 Agent 应用交互

提示词:

Crawl second hand Tesla sales data from Internet, save data into Mysql, then generate sales report.

生成结果如下:

MCP 爬虫结合数据库调用过程:

(1)Tool:爬取二手车销售数据

访问二手车垂直网站相关页面,如果没有指定网站,大模型会自己思考去哪里获取这些信息。

返回结果,包含需要的车辆销售数据。

(2)Tool:Mysql: 创建表,把爬取下来的数据写入数据库

  "toolUseId": "tooluse_p8L63DPyQx6EEHmYZ5b2xg",
  "name": "mcp_server_mysql___mysql_query",
  "input": {
    "sql": "CREATE DATABASE IF NOT EXISTS tesla_sales;"

Create table

{  "toolUseId": "tooluse_oJq9lchjQBaoJcdOI8m8NQ",  "name": "mcp_server_mysql___mysql_query",  "input": {    "sql": "CREATE TABLE IF NOT EXISTS tesla_sales.used_tesla_sales (\n    id INT AUTO_INCREMENT PRIMARY KEY,\n    vin VARCHAR(17) NOT NULL,\n    year INT NOT NULL,\n    model VARCHAR(10) NOT NULL,\n    color VARCHAR(20) NOT NULL,\n    miles INT NOT NULL,\n    trim VARCHAR(100) NOT NULL,\n    sold_price DECIMAL(10, 2) NOT NULL,\n    interior VARCHAR(50),\n    wheels VARCHAR(20),\n    features TEXT,\n    country VARCHAR(2),\n    location VARCHAR(100),\n    metro VARCHAR(100),\n    state VARCHAR(2),\n    currency VARCHAR(3),\n    sold_date DATE,\n    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n    UNIQUE KEY (vin)\n);"  }

Insert data

(3)Tool:获取数据后,生成 Mysql 视图,包含销售数据和对比

{  "toolUseId": "tooluse_G3BkF4cyQ6uLjTdIVgCu-w",  "name": "mcp_server_mysql___mysql_query",  "input": {    "sql": "-- Create a view for the sales report\nCREATE OR REPLACE VIEW tesla_sales.sales_report AS\nSELECT \n    model,\n    year,\n    COUNT(*) AS total_listings,\n    ROUND(AVG(price), 2) AS avg_price,\n    ROUND(MIN(price), 2) AS min_price,\n    ROUND(MAX(price), 2) AS max_price,\n    ROUND(AVG(miles), 0) AS avg_miles,\n    ROUND(MIN(miles), 0) AS min_miles,\n    ROUND(MAX(miles), 0) AS max_miles,\n    ROUND(AVG(price/miles), 4) AS avg_price_per_mile,\n    COUNT(DISTINCT trim) AS trim_variants,\n    ROUND((SELECT COUNT(*) FROM tesla_sales.used_tesla_sales s2 \n           WHERE s2.model = s1.model AND s2.drivetrain = 'AWD' AND s2.year = s1.year) / \n          COUNT(*) * 100, 2) AS pct_awd\nFROM tesla_sales.used_tesla_sales s1\nGROUP BY model, year\nORDER BY model, year DESC;"  }} 

{  "toolUseId": "tooluse_RzxCEAyLSZqXtpHSSkhk2w",  "name": "mcp_server_mysql___mysql_query",  "input": {    "sql": "-- Create a model comparison view\nCREATE OR REPLACE VIEW tesla_sales.model_comparison AS\nSELECT \n    model,\n    COUNT(*) AS total_listings,\n    ROUND(AVG(price), 2) AS avg_price,\n    ROUND(MIN(price), 2) AS min_price,\n    ROUND(MAX(price), 2) AS max_price,\n    ROUND(AVG(miles), 0) AS avg_miles,\n    ROUND(MIN(miles), 0) AS min_miles,\n    ROUND(MAX(miles), 0) AS max_miles,\n    ROUND(AVG(price/miles), 4) AS avg_price_per_mile,\n    COUNT(DISTINCT year) AS model_years,\n    COUNT(DISTINCT trim) AS trim_variants,\n    ROUND(SUM(CASE WHEN drivetrain = 'AWD' THEN 1 ELSE 0 END) / COUNT(*) * 100, 2) AS pct_awd\nFROM tesla_sales.used_tesla_sales\nGROUP BY model\nORDER BY total_listings DESC;"  }} 

(4)Tool:根据视图查询结果,生成分析报告,包含摘要、车型对比、年销售趋势等

{  "toolUseId": "tooluse_8JVuTNMLTsymD4YwN8HH5A",  "name": "mcp_server_mysql___mysql_query",  "input": {    "sql": "-- Model & Year Analysis\nSELECT \n    'Model & Year Analysis' AS section,\n    model,\n    year,\n    COUNT(*) AS total_listings,\n    ROUND(AVG(price), 2) AS avg_price,\n    ROUND(MIN(price), 2) AS min_price,\n    ROUND(MAX(price), 2) AS max_price,\n    ROUND(AVG(miles), 0) AS avg_miles,\n    ROUND(AVG(price/miles), 4) AS avg_price_per_mile\nFROM tesla_sales.used_tesla_sales\nGROUP BY model, year\nORDER BY model, year DESC;"  }} 

至此,整个流程结束。此过程完全由 AI 控制,有了爬虫和数据库 MCP Server,赋予大模型额外的工作能力,自己思考如何调用这些工具来完成任务。Firecrawl 爬虫 MCP 支持多层数据抓取。在读写数据库时,自动调用数据库访问工具,构建 SQL,创建表,写入数据,并根据业务需求,创建多个视图和分析查询,获取近期二手车的销售情况,包括车型、价格、销量。按照这些查询结果,给出分析摘要:

  1. Model Y Premium: Model Y vehicles command a significant price premium (approximately 32% higher) over Model 3 vehicles and have better value retention.
  2. Depreciation Pattern: Newer Tesla models (2022-2023) retain their value much better than older models, with a significant drop in price per mile for models from 2021 and earlier.
  3. Trim Level Impact: Performance and Long Range trims maintain higher values across both models, with the performance trim commanding the highest premium.
  4. Drivetrain Preference: For Model Y, AWD is the dominant configuration (90% of listings), while Model 3 has a more balanced distribution between RWD (55%) and AWD (45%).
  5. Investment Recommendation: Based on value retention, the Model Y Performance and Long Range AWD trims appear to be the best investment options for buyers concerned about future resale value.
  6. Best Value: For budget-conscious buyers, 2019-2020 Model 3 vehicles offer the lowest price points while still providing Tesla technology and features.
  7. Market Trends: The data suggests increasing demand for the Model Y, which is reflected in its higher resale values and better value retention compared to the Model 3.

传统的 Text2SQL,关注于单个 SQL 实现,并不能串联整个流程。大模型生成的语句,有可能不能执行,或者执行结果不符合需求。如果要更为准确生成 SQL 语句,需要给出更多提示词,包括表结构,而这些额外工作却使得业务人员难以使用。

相对而言,MCP 更灵活,生成的结果也更准确。MCP 构建工具调用,根据上个结果,调整下一个语句,完成不同阶段的 SQL,直到生成 SQL 满足需求。MCP 所指的上下文 Context,不只是提示词,更是工具调用 Context。业务人员只需要提业务需求,剩下就是等待结果。实际效果来看,MCP 生成的 SQL 语句,更加符合业务需求。

MCP 数据库场景:RAG 补充,结合 MCP+RAG 知识库

继续深化此场景。现在已经有了从专业网站获取的二手车外部市场信息,单纯的外部数据只是部分参考,结合企业内部数据使用才能更准确反映市场和企业自身情况。

如何基于内部销售数据和外部爬虫获取的数据,分析并预测车辆销售?可以考虑 MCP+RAG 方式,MCP 分别调用 RAG 内部知识库和 Mysql 外部爬虫数据,构造查询过程,结合内部和外部数据,作出更准确预测。

RAG(Retrieval-Augmented Generation)使用向量数据服务,把数据分片后,进行向量化存储,按照相似度查询出最接近的数据。通常适用于企业内部文档数据处理,作为内部知识库,为大模型增加私有知识能力,更满足特定业务需求。应用场景包括:智能客服、内部数据分析、专业知识问答、专有词汇处理。

多种向量数据库或者大数据产品可以用于 RAG,例如:OpenSearch, PostgreSQL vector, Amazon DocumentDB vector, Amazon MemoryDB vector search, Amazon Bedrock Knowledge Base。

RAG 和 MCP 各自特点:

RAG:以向量数据为大模型提供知识库,提高大模型的特定领域知识能力,根据问题语义查询返回相似度最高的数据结果。但是,多个切片难以获取全局信息。侧重于知识问答和内容生成。

MCP:更擅长构建上下文的工具调用。不需要指定特定表和语句,自动调用数据库访问,包括列出表结构,分析表内容以判断是否符合需求,并构建查询语句,返回精确查询结果。侧重于工作编排、自动化工具代理。

MCP 和 RAG 可以互补,构建理解知识并能行动的智能自主系统。

假设企业有内部销售数据,存放于向量数据库 Amazon Bedrock Knowledge Base on Opensearch。可以很容易从现有文档转换到知识库,无论是否结构化文档,包括 txt, Excel, pdf 等。这里把公司 2024 年财报,以向量数据方式,存储于 Opensearch,作为 Bedrock 知识库。包含大模型尚未知晓的销售数据。

文档导入向量化知识库:Amazon Bedrock Knowledge Base on Opensearch

RAG 知识库构建完成,接下来配置 MCP Server。

MCP 支持 Amazon Bedrock Knowledge Bases。可以:

1、发现知识库及其数据源

  • 查找并浏览所有可用的知识库
  • 按名称或标签搜索知识库
  • 列出与每个知识库相关的数据源

2、使用自然语言查询知识库

  • 使用对话查询检索信息
  • 从知识库中获取相关段落
  • 访问所有结果的引文信息

3、按数据源筛选结果

  • 将查询重点放在特定的数据源上
  • 包括或排除特定的数据源
  • 优先考虑来自特定数据源的结果

4、重新排列结果

  • 提高检索结果的相关性
  • 使用 Bedrock reranking
  • 按与查询的相关性对结果进行排序

使用 Amazon Q Developer CLI 工具作为客户端。

配置文件(~/.aws/amazonq/mcp.json)如下,修改 profile 为 AWS CLI profile,默认为 default。

{
  "mcpServers": {
    "awslabs.bedrock-kb-retrieval-mcp-server": {
      "command": "uvx",
      "args": ["awslabs.bedrock-kb-retrieval-mcp-server@latest"],
      "env": {
        "AWS_PROFILE": "your-profile-name",
        "AWS_REGION": "us-east-1",
        "FASTMCP_LOG_LEVEL": "ERROR",
        "KB_INCLUSION_TAG_KEY": "optional-tag-key-to-filter-kbs",
        "BEDROCK_KB_RERANKING_ENABLED": "false"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}

配置 MCP Server 完成后,启用 MCP for Mysql & Bedrock Knowledge bases,与 Agent 应用交互,结合内部知识库和爬虫数据,预测 2025 年二手车的销售情况。

提示词:

Based on Tesla sales revenue in 2024 in knowledge base “GUQMWFBAEO”, and crawl data stored in Mysql from second hand web site, predict the most popular second hand Tesla model and sales revenue in 2025.

输出:

处理过程:

1、RAG:内部 2024 年销售数据

New Tesla Sales in 2024:

  • Total automotive sales revenue: $72.48 billion (decreased 8% from 2023)
  • Total vehicles produced: approximately 1,773,000
  • Total vehicles delivered: approximately 1,789,000
  • Model 3 and Model Y deliveries decreased by approximately 22,000 units
  • Cybertruck production ramped up with approximately 19,000 additional deliveries

2、Mysql:外部二手车交易数据

Second-Hand Tesla Market Data:

  • Current most popular second-hand models (by count): Model 3, Model S, and Cybertruck (tied)
  • Average second-hand prices:Model 3: 22,044;Model S: 40,166;Cybertruck: $84,315
  • Used car market report indicates Model Y is also popular in the second-hand market with an average price of $30,384
  • Age distribution shows newer vehicles (2023-2024) maintain higher values

3、预测 a:2025 年二手车最热车型:Model Y

Prediction for 2025 Second-Hand Market

Most Popular Second-Hand Tesla Model for 2025:

Model Y is predicted to become the most popular second-hand Tesla model in 2025, followed closely by Model 3. Here’s why:

  1. Production and Sales Trends: Tesla has been focusing heavily on Model Y production with manufacturing lines in multiple locations (California, Shanghai, Berlin, and Texas). This widespread production means more Model Y vehicles entering the market.
  2. Vehicle Lifecycle: The Model Y has been in production since 2020, meaning a significant number of 3-year leases will end in 2025, bringing more inventory to the second-hand market.
  3. Market Positioning: As a compact SUV, the Model Y hits the sweet spot in the market between the Model 3 sedan and the more expensive Model X SUV, making it attractive to a wide range of buyers.
  4. Value Retention: Based on the used car analysis report, Model Y vehicles maintain good value ($30,384 average) positioning them as an attractive option for budget-conscious buyers who want the SUV form factor.
  5. Current Market Trends: The used car report shows Model Y already making up a significant portion of analyzed vehicles despite not appearing prominently in our database sample, indicating growing presence.

4、预测 b:二手车销售额

Projected Second-Hand Sales Revenue for 2025:

The total second-hand Tesla market revenue is projected to reach approximately $14.2 billion in 2025, with the following breakdown by model:

  1. Model Y: $5.8 billion (approximately 190,000 units)
  2. Model 3: $5.3 billion (approximately 245,000 units)
  3. Model S/X: $2.1 billion (approximately 55,000 units)
  4. Cybertruck: $1.0 billion (approximately 12,000 units)

This prediction is based on:

  • Tesla’s production volume of 1.77 million vehicles in 2024
  • Historical trade-in and lease-end patterns
  • Average second-hand prices from our database
  • Price depreciation trends for electric vehicles
  • The growing availability of newer models in the second-hand market
  • Increasing consumer interest in electric vehicles

5、分析:重要影响因素

Key Factors Influencing the 2025 Second-Hand Market

  1. New Model Releases: Tesla’s plans for the “New Model Y” in Q1 2025 may prompt current owners to upgrade, increasing second-hand inventory.
  2. Battery Technology: Vehicles with newer battery technology will command premium prices in the second-hand market.
  3. EV Incentives: Changes in government incentives for new EVs will impact the relative attractiveness of second-hand vehicles.
  4. Charging Infrastructure: Continued expansion of Tesla’s Supercharger network enhances the value proposition of older Tesla models.
  5. FSD Capability: Vehicles equipped with Full Self-Driving hardware will maintain better value, especially as Tesla continues to enhance software capabilities.

至此,根据内部销售数据(RAG)和爬虫数据(MySQL),使用 MCP 工具把内外数据结合起来,为业务提供更精准的数据来源和分析。相对于只依赖内部或者外部数据,通过 MCP 将 RAG+Mysql 结合使用,能为业务提供更全面的数据,以获得更准确的数据洞察。

MCP 数据库场景:网站前后端开发

生成式 AI 可以帮助用户轻松创建网站或者 APP,构建网站或者 App 前后端。作为应用的核心部分,数据库有多种选择。借助 MCP,可以根据不同业务需求使用对应的数据库。此过程可以让 MCP 调用相应的数据库工具,完成建表和业务语句。

以下示例中,使用 Amazon Q CLI 工具,结合 MCP 一键式构建车辆销售网站前后端应用,并设计数据库结构。

前端:Amazon Labs Frontend MCP Server

通过 getReactDocsByTopic 工具,提供 React 应用程序开发的全面文档

  • 基础知识:构建 React 应用程序的基本概念
  • 基本用户界面设置:使用 Tailwind CSS 和 shadcn/ui 设置 React 项目
  • 身份验证:Amaozn Amplify 身份验证集成
  • 路由:使用 React Router 实现路由
  • 自定义:使用 Amazon Amplify 组件设置主题
  • 创建组件:使用亚马逊云科技集成构建 React 组件
  • 疑难解答:React 开发的常见问题和解决方案

后端数据库:Mysql MCP Server

  • 使用 MCP 构建数据库和表结构,写入网站初始数据
  • OLTP 交易直接访问数据库,不使用 MCP

以下 MCP 配置文件(~/.aws/amazonq/mcp.json),包括 MCP 前端(awslabs.frontend-mcp-server)和 Mysql(mcp_mysql_web),注意 Mysql 要允许读写和 DDL。

{
  "mcpServers": {
    "awslabs.frontend-mcp-server": {
      "command": "uvx",
      "args": ["awslabs.frontend-mcp-server@latest"],
      "env": {
        "FASTMCP_LOG_LEVEL": "ERROR"
      },
      "disabled": false,
      "autoApprove": []
    },
    "mcp_mysql_web": {
      "command": "npx",
      "args": [
        "-y",
        "@benborla29/mcp-server-mysql"
      ],
      "env": {
        "MYSQL_HOST": "mysql8.c7b8fns5un9o.us-east-1.rds.amazonaws.com",
        "MYSQL_PORT": "3306",
        "MYSQL_USER": "admin",
        "MYSQL_PASS": ”xxxxxxxx",
        "MYSQL_DB": "web",
        "ALLOW_INSERT_OPERATION": "true",
        "ALLOW_UPDATE_OPERATION": "true",
        "ALLOW_DELETE_OPERATION": "true",
        "ALLOW_DDL_OPERATION": "true",
        "PATH": "/usr/bin:/home/ubuntu/.nvm/versions/node/v22.12.0/bin/",
        "NODE_PATH": "/home/ubuntu/.nvm/versions/node/v22.12.0/lib/node_modules"
      },
      "description": "MySQL_Web"
    }
  }
}

配置完成后,使用 Amazon Q CLI,支持 MCP Frontend & Mysql,自动构建包括前后端的网站。

提示词

创建前端:

> create vertical web site for vehicle selling

后端应用+数据库:

> based on current project for front-end, add backend application for orders, data is stored in RDS Mysql database.

> MCP server for Mysql is used for web application development. However, in production application, database is accessed directly without MCP for OLTP transaction.

创建过程,Amazon Q CLI 自动执行所有步骤。

最终生成项目如下:

前端:

– React.js

– CSS for styling

– React Router for navigation

后端:

– Node.js with Express

– MySQL database with Sequelize ORM

– JWT for authentication

数据库表结构已经创建,并有测试数据

运行整个项目,页面和后端应用都可以运行,包括查询等功能。

需要注意的是,在此场景中,生成数据库结构时使用了 MCP 工具,此过程由大模型生成,需要较长时间。但是在线交易 OLTP 系统中,对数据要求实时访问,应用程序应该直接访问数据库,而不是通过 MCP 访问,否则每次数据库访问都需要大模型生成,速度自然慢很多,客户体验受到影响。当然,OLTP 访问数据库的代码,仍然可以由 MCP 生成,只是应用程序访问数据库的时候不使用 MCP。

MCP 数据库场景:审计数据处理

审计事务所需要从多个公司的财务和经营数据中,获取与审计相关的信息。数据源会有很多种,包括企业 CRM 数据库、Excel 表格、pdf 文档,有些原始数据的格式并非标准化,还可能会缺少一些数据。需要把如此多种类的数据源,按照审计要求,统一到特定格式报表。此过程会有几个难点:

  • 多种数据源数据统一格式
  • 按照审计需求设计表结构
  • 从多个原始表写入统一审计表

如何从复杂的数据源,抽取并整理成业务数据?原来的工作模式,需要手工处理这些繁杂的工作,并以审计人员的经验编写 SQL 语句。如果数据有更新,还需要重新处理。借助大模型,自动整理数据,并按照审计流程写入数据库,可以极大提高效率。MCP 赋予大模型更多能力,处理文档,访问数据库。

MCP 优化后的审计处理流程如下:

  • 获取相关源数据
  • Amazon Q CLI
  • 数据整合处理,例如 Excel 到 CSV
  • MCP Database
  • 按照源数据和审计要求创建表
  • 查询源表相关数据,写入统一格式审计表
  • 审计人员查询

示例数据,科目余额及发生额表

审计需要从多个表中查询货币相关列,生成以下格式的货币资金审定余额表。

配置 MCP Server 参考之前章节。开始 Agent 应用交互。

提示词:

目录下有三个excel文件。标准库包括财务信息需要的表,底稿视图表示根据标准库取出相关数据后生成的用于审计的表。取数逻辑表示,从标准库的相关表的相关列,查询得到数据后,写入底稿视图对应的表。例如,取数逻辑中的余额表,字段“期初数_本位币_现金”,数据来源表1:会计科目表,数据来源表字段:会计科目名称,搜索值:现金。数据来源表2:科目余额及发生额表,数据来源表字段:期初记账本位币余额。这两个字段构成了字段”期初数_本位币_现金”。需要:1,根据标准库构造Mysql表,生成测试数据。2.根据取数逻辑生成SQL,查询相关表数据,并把结果写入底稿视图相关表。

输出结果:

此过程中,已经存在了包含原始数据的 excel 文件,定义了源数据格式,进行转换后,形成最终统一的审计表。查看执行过程,依次调用 MCP 工具,访问文件,生成 SQL 处理数据。每个工具调用,会按照上次的工具调用结果,来构建下一个工具调用。例如,根据文件内容,构建原始表结构,再以此构建 INSERT SELECT JOIN 语句写入审计目标表。所有数据写入之后,以自然语言查询数据。

整个流程全部自动编排,即使遇到错误,也会自动处理。借助大模型的能力,可以很好理解审计人员的需求,构造审计所需要数据的专业 SQL。对于业务人员,仅需要简单的交互,即可获得所需要的数据。

需要注意的是,审计可能会包含公司敏感数据,不允许直接调用大模型。可以考虑云上私有化部署模型,需要 GPU,相对于按 token 收费的直接访问模型服务,成本相对较高。或者,把数据预处理,只让大模型处理不含敏感信息的表头,生成转换 excel 到 csv 的程序,和 SQL 语句。需要访问数据库时,再根据之前生成的语句手工执行。这样,既解决了数据敏感问题,又降低了调用大模型的 token。

总结

  • MCP+数据库扩展了大模型的数据访问能力,实现数据全流程自动处理,工具调用自我迭代,只需提出业务需求即可得到结果。
  • 相比传统编程数据库访问方式,无需手工编写 SQL 和处理执行结果,极大提高效率。
  • 结合各种 MCP Server,实现多种应用场景。包括:AI 工具助手、网站前后端开发、广告投放优化、基于爬虫+数据库的市场分析、作为 RAG 知识库补充,理解自然语言进行精确查询查询,结合内部和外部数据使用、审计数据处理:从 excel, CRM, pdf 等多种数据源整理到统一格式数据库,并编写 SQL 访问语句、AI 自动化数据库调优运维。

更多 MCP 结合数据库使用的场景,还在继续探索。在 Agentic AI 落地开花的趋势中,如何更智能处理数据,需要我们业务中需要不断探索实践。

*前述特定亚马逊云科技生成式人工智能相关的服务仅在亚马逊云科技海外区域可用,亚马逊云科技中国仅为帮助您了解行业前沿技术和发展海外业务选择推介该服务。

本篇作者

本期最新实验《多模一站通 —— Amazon Bedrock 上的基础模型初体验

✨ 精心设计,旨在引导您深入探索Amazon Bedrock的模型选择与调用、模型自动化评估以及安全围栏(Guardrail)等重要功能。无需管理基础设施,利用亚马逊技术与生态,快速集成与部署生成式AI模型能力。

⏩️[点击进入实验] 即刻开启 AI 开发之旅

构建无限, 探索启程!