MCP + Azure SQL (AdventureWorksLT) Starter
使用说明内容(Markdown格式)
-
项目简介
- 这是一个使用 MCP 协议的 Python 服务器示例,连接 Azure SQL 数据库中的 AdventureWorksLT 数据集,提供若干只读工具供 LLM 调用。模型通过工具调用获得结构化数据,然后以自然语言形式进行推理与回答。
-
主要功能点
- MCP 服务器实现:采用 FastMCP,暴露若干工具(工具以装饰器方式注册,服务器通过 stdio 与客户端通信)。
- 数据访问层:通过 pyodbc 连接 Azure SQL 的 AdventureWorksLT 数据库,所有查询均为只读且参数化,避免暴露原始 SQL。
- 工具定义与渲染:提供顶级客户销售、按类别销售、客户订单等工具,返回结构化 JSON,便于 LLM 推理与呈现。
- 会话与传输:默认使用 stdio 传输,便于桌面客户端集成;可扩展以支持其他传输通道。
- 配置与运行:通过环境变量传入数据库连接信息,支持在本地或训练环境中快速上手。
-
安装步骤
- 克隆仓库并进入目录
- 建立并激活 Python 虚拟环境
- 安装依赖(requirements.txt)
- 配置数据库连接参数(通过环境变量)
- 启动服务器(运行 server/src/server.py)
-
服务器配置(供 MCP 客户端使用的配置信息) 下面给出用于 MCP 客户端连接该服务器的配置示例(以 JSON 形式呈现,便于粘贴给客户端工具;实际需要基于你的客户端来创建对应的配置对象)。该配置指定服务器名称、启动命令、参数以及数据库连接所需的环境变量。注意:为了保密,请将实际的服务器地址、用户名、密码等敏感信息替换为你的凭据。 { "servers": { "adventureworks": { "name": "adventureworks-mcp", "command": "python", "args": ["-u", "server/src/server.py"], "env": { "SQL_SERVER": "<your-server>.database.windows.net", "SQL_DATABASE": "AdventureWorks", "SQL_USER": "<your-username>", "SQL_PASSWORD": "<your-password>" } } } }
-
基本使用方法
- 启动前提
- 安装 Python 3.10 及以上、创建并激活虚拟环境、安装依赖。
- 通过环境变量提供数据库连接信息(SQL_SERVER、SQL_DATABASE、SQL_USER、SQL_PASSWORD)。
- 启动服务器
- 在命令行执行:运行 server/src/server.py(通过配置中指定的启动命令来启动 MCP 服务器)。
- 服务器将以 stdio 传输等待 MCP 客户端连接。
- 连接与使用
- 使用 MCP 客户端(如 VS Code 的 Copilot Chat 等)连接到该服务器。
- 客户端会自动发现服务器暴露的工具:top_customers_by_sales、sales_by_category、customer_orders 等。
- 通过自然语言提示模型即可触发工具调用,获得结构化的 JSON 结果并进行解释与展示。
- 启动前提