业务请求服务器

一个用于概念验证的MCP服务器,支持数据库连接、Azure OpenAI集成和OAuth2认证,适用于业务请求处理和过滤。

  • by dto-btn
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 dto-btn/mcp-server-demo

使用说明

业务请求服务器

演示PoC MCP服务器,用于其他PoC

开发

配置

在运行服务器或客户端之前,创建 .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、auth标头)。 没有 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以测试您的服务器。

然后,您可以测试模板等功能,然后 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

文档