关于 mcp-server-demo
mcp-server-demo 是面向业务请求数据的 MCP 概念验证服务,并配有配置为使用 Azure OpenAI 的客户端。它连接 SQL Server,提供搜索和筛选请求记录的工具。
主要功能
- 01连接 SQL Server 数据库
- 02搜索业务请求
- 03筛选返回结果
- 04在本地或 Docker 中运行
适用场景
- 01按字段条件查找请求
- 02按列值缩小搜索结果
- 03测试 MCP 服务和客户端概念验证
MCP 相关
它提供用于搜索业务请求和筛选结果的 MCP 服务,可配置主机、端口和服务 URL。README 还介绍了使用 Azure OpenAI 的客户端。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Business Request Server
供其他 PoC 使用的 MCP 服务演示概念验证
开发者
配置
运行服务或客户端之前,请根据示例创建 .env 文件:
cp .env.example .env
编辑 .env,填写数据库凭据和 Azure OpenAI 设置。
| 变量 | 描述 | 必需 | 默认值 |
|---|---|---|---|
BITS_DB_SERVER | SQL Server 数据库的主机名或 IP 地址。 | 是 | missing.domain |
BITS_DB_USERNAME | 数据库身份验证的用户名。 | 是 | missing.username |
BITS_DB_PWD | 数据库身份验证的密码。 | 是 | missing.password |
BITS_DB_DATABASE | 要连接的特定数据库名称。 | 是 | missing.dbname |
HOST | MCP 服务绑定的主机地址。 | 否 | 0.0.0.0 |
PORT | MCP 服务监听的端口。 | 否 | 8000 |
MCP_SERVER_URL | MCP 服务可访问的 URL(供客户端使用)。 | 否 | http://127.0.0.1:8000/mcp |
CORS_ALLOW_ORIGINS | 允许连接到 MCP 服务的来源列表,以逗号分隔。 | 否 | http://localhost,http://127.0.0.1 |
CORS_ALLOW_CREDENTIALS | 是否允许在 CORS 请求中使用凭据(Cookie、身份验证标头)。 | 否 | false |
AZURE_OPENAI_ENDPOINT | Azure OpenAI 资源的终结点 URI(供客户端使用)。 | 是(客户端) | - |
AZURE_OPENAI_VERSION | Azure OpenAI 的 API 版本。 | 否 | 2024-05-01-preview |
CLIENT_ID | 用于身份验证的 OAuth2 客户端 ID(实验性)。 | 否 | - |
CLIENT_SECRET | 用于身份验证的 OAuth2 客户端密钥(实验性)。 | 否 | - |
REDIRECT_URI | 用于身份验证的 OAuth2 重定向 URI(实验性)。 | 否 | - |
安装
uv venv
uv pip install -e .
# then run it locally
mcp dev server.py
# or alternatively
python server.py
访问显示的 URL,以测试服务。
然后,你可以测试 Templates 等功能,以及 search_business_requests:
将以下内容作为 query 传入:
{
"query_filters": [
{
"name": "BR_SHORT_TITLE",
"value": "Server",
"operator": "="
}
]
}
将以下内容作为 select_fields 传入:
{
"fields": [
"BR_SHORT_TITLE"
]
}
然后,你可以通过 filter_results 筛选结果:
[
{
"column": "RPT_GC_ORG_NAME_EN",
"operator": "contains",
"value": "Correctional"
}
]
通过 Docker 运行
docker build -t mcp-bits:local .
docker run -p 8080:8080 --env-file ./.env --name mcp-bits-container mcp-bits:local
pymssql 问题
Mac OSX 上的 pymssql
pymssql 依赖 FreeTDS,因此请确保提前安装:brew install freetds。
之后,如果运行代码时遇到问题,请执行以下操作:
uv pip uninstall pymssql
uv pip install --pre --no-binary :all: pymssql --no-cache --no-build-isolation
你也可以将以下内容添加到 uv 的 pyproject.toml 中:
[tool.uv]
no-binary-package = ["pymssql"]
完成后,应该就可以正常运行了。
注意:已知 cython==3.1.0 存在问题,详见此处
目前可以通过以下方式绕过此问题(问题修复后请移除此内容):
uv pip uninstall pymssql
export CFLAGS="-I$(brew --prefix freetds)/include"
export LDFLAGS="-L$(brew --prefix freetds)/lib"
uv pip install "packaging>=24" "setuptools>=54.0" "setuptools_scm[toml]>=8.0" "wheel>=0.36.2" "Cython==3.0.10" "tomli"
uv pip install --pre --no-binary :all: pymssql --no-cache --no-build-isolation
部署
CI/CD
待办
手动部署
以下说明如何通过 CLI 在 Azure 中手动部署。
az webapp deployment source config-local-git \
--name <WebAppName> \
--resource-group <ResourceGroupName>
git remote add azure <GitURLFromPreviousStep>
git push azure main
文档
- 使用此教程了解如何构建演示项目。
- FastMCP 文档
- MCP OAuth 2.0 身份验证
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。