Token导航 LogoToken导航TokenDH.com
Remote Db MCP Server logo
数据服务stdio官方级别未说明来源级核验

Remote Db MCP Server

MCP Server

一个提供数据库访问能力并集成LangChain客户端进行智能查询处理的MCP服务器。

工具数

0

提示词数

0

GitHub Stars

2

资源数

0
数据分析异步处理Python

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

jimmyshah83

提供方

jimmyshah83

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install -r requirements.txt

详细介绍

远程DB MCP服务器

一种提供数据库访问功能的模型上下文协议(MCP)服务器,具有用于智能查询处理的LangChain客户端。

特性

  • MCP服务器:提供数据库工具和操作
  • 朗链客户端:使用Azure OpenAI和ReAct代理进行智能工具使用
  • 异步支持:完全支持async/await以获得更好的性能
  • 工具集成:MCP工具和LangChain代理之间的无缝集成

设置

1.安装依赖项

pip install -r requirements.txt

2.环境配置

复制 config.example.env 并配置您的Azure OpenAI设置:

cp config.example .env

所需的环境变量:

  • AZURE_OPENAI_DEPLOYMENT_NAME:您的Azure OpenAI部署名称
  • AZURE_OPENAI_API_KEY:您的Azure OpenAI API密钥
  • AZURE_OPENAI_ENDPOINT:您的Azure OpenAI端点URL
  • AZURE_OPENAI_API_VERSION:API版本(默认:2024-02-15-preview)

3.使用方法

启动MCP服务器

python src/server.py

运行LangChain客户端

python src/client.py path/to/server.py

客户将:

  1. 连接到MCP服务器
  2. 发现可用工具
  3. 使用工具创建ReAct代理
  4. 启动交互式聊天循环

建筑

MCPTool类

  • 包装MCP工具以与LangChain配合使用
  • 处理异步工具执行
  • 提供正确的错误处理

MCP客户端类

  • 管理与MCP服务器的连接
  • 创建LangChain ReAct代理
  • 通过工具集成处理查询

依赖项

  • langchain-openai:Azure OpenAI集成
  • langgraph:重新代理实施
  • langchain-core:核心LangChain功能
  • mcp[cli]:模型上下文协议
  • python-dotenv:环境变量管理

示例用法

# The client automatically discovers tools from the MCP server
# and creates a ReAct agent that can use them intelligently

# Start the client
client = MCPClient()
await client.connect_to_server("path/to/server.py")

# Ask questions that will use the available tools
response = await client.process_query("Show me all products in the database")
print(response)

部署到Azure

您可以使用Azure容器应用程序(推荐)或Azure Developer CLI(azd)将MCP服务器部署到Azure。这两种方法都为您的应用程序提供了可扩展的托管托管。

选项1:使用Azure Developer CLI快速部署(推荐)

最快的部署方式是使用Azure Developer CLI,它自动处理基础设施的配置和部署。

先决条件

  1. 安装 Azure开发者命令行界面(azd)
  2. 安装 Azure命令行界面
  3. 拥有Azure订阅

部署步骤

  1. 初始化azd项目:
   azd init --template minimal
  1. 配置环境变量:

复制您的 .env 将文件值保存到azd环境:

   azd env set AZURE_OPENAI_DEPLOYMENT_NAME ""
   azd env set AZURE_OPENAI_ENDPOINT ""
   azd env set COSMOS_DB_ENDPOINT ""
   azd env set COSMOS_DB_DATABASE ""
   azd env set COSMOS_DB_CONTAINER ""
  1. 部署到Azure:
   azd up

此命令将:

- 提供Azure资源(容器应用程序、容器注册表等) - 构建并推送你的Docker镜像 - 部署您的应用程序 - 配置托管身份和RBAC权限

选项2:使用Azure容器应用程序手动部署

为了更好地控制部署过程,您可以使用Azure CLI手动部署。

设置先决条件

  1. 已安装并配置Azure CLI
  2. 本地安装Docker
  3. Azure容器注册表(ACR)或Docker Hub帐户

第一步:准备好你的环境

  1. 登录到Azure:
   az login
   az account set --subscription ""
  1. 设置部署变量:
   RESOURCE_GROUP="rg-mcp-server"
   LOCATION="eastus"
   ACR_NAME="mcpserveracr$(date +%s)"
   CONTAINER_APP_ENV="mcp-server-env"
   CONTAINER_APP_NAME="mcp-server"
   IMAGE_NAME="remote-db-mcp-server"

步骤2:创建Azure资源

  1. 创建资源组:
   az group create --name $RESOURCE_GROUP --location $LOCATION
  1. 创建Azure容器注册表:
   az acr create \
     --resource-group $RESOURCE_GROUP \
     --name $ACR_NAME \
     --sku Basic \
     --admin-enabled true
  1. 创建容器应用程序环境:
   az containerapp env create \
     --name $CONTAINER_APP_ENV \
     --resource-group $RESOURCE_GROUP \
     --location $LOCATION

步骤3:构建并推送容器映像

  1. 登录到Azure容器注册表:
   az acr login --name $ACR_NAME
  1. 构建并推送Docker镜像:
   # Build the image
   docker build -t $ACR_NAME.azurecr.io/$IMAGE_NAME:latest .

   # Push to ACR
   docker push $ACR_NAME.azurecr.io/$IMAGE_NAME:latest

步骤4:部署容器应用程序

  1. 创建容器应用程序:
   az containerapp create \
     --name $CONTAINER_APP_NAME \
     --resource-group $RESOURCE_GROUP \
     --environment $CONTAINER_APP_ENV \
     --image $ACR_NAME.azurecr.io/$IMAGE_NAME:latest \
     --target-port 8000 \
     --ingress 'external' \
     --registry-server $ACR_NAME.azurecr.io \
     --min-replicas 1 \
     --max-replicas 3 \
     --cpu 0.25 \
     --memory 0.5Gi \
     --env-vars \
       AZURE_OPENAI_DEPLOYMENT_NAME="" \
       AZURE_OPENAI_ENDPOINT="" \
       AZURE_OPENAI_API_VERSION="2024-02-15-preview" \
       COSMOS_DB_ENDPOINT="" \
       COSMOS_DB_DATABASE="" \
       COSMOS_DB_CONTAINER=""

步骤5:配置托管身份(推荐)

对于生产部署,请使用托管标识而不是API密钥:

  1. 启用系统分配的托管标识:
   az containerapp identity assign \
     --name $CONTAINER_APP_NAME \
     --resource-group $RESOURCE_GROUP \
     --system-assigned
  1. 授予Azure OpenAI权限:
   # Get the managed identity principal ID
   PRINCIPAL_ID=$(az containerapp identity show \
     --name $CONTAINER_APP_NAME \
     --resource-group $RESOURCE_GROUP \
     --query principalId \
     --output tsv)

   # Assign Cognitive Services OpenAI User role
   az role assignment create \
     --role "Cognitive Services OpenAI User" \
     --assignee $PRINCIPAL_ID \
     --scope ""
  1. 授予Cosmos DB权限:
   # Assign Cosmos DB Built-in Data Contributor role
   az role assignment create \
     --role "Cosmos DB Built-in Data Contributor" \
     --assignee $PRINCIPAL_ID \
     --scope ""
  1. 更新容器应用程序以删除API密钥:
   az containerapp update \
     --name $CONTAINER_APP_NAME \
     --resource-group $RESOURCE_GROUP \
     --remove-env-vars AZURE_OPENAI_API_KEY COSMOS_DB_KEY

步骤6:验证部署

  1. 获取应用程序URL:
   FQDN=$(az containerapp show \
     --name $CONTAINER_APP_NAME \
     --resource-group $RESOURCE_GROUP \
     --query properties.configuration.ingress.fqdn \
     --output tsv)

   echo "Application URL: https://$FQDN"
  1. 检查应用程序运行状况:
   curl -f https://$FQDN/health
  1. 查看应用程序日志:
   az containerapp logs show \
     --name $CONTAINER_APP_NAME \
     --resource-group $RESOURCE_GROUP \
     --follow

安全最佳实践

  • 使用托管身份:对于身份验证,始终首选托管身份而不是API密钥
  • 安全的秘密:将敏感配置存储在Azure密钥库中
  • 网络安全:考虑使用私有端点进行数据库连接
  • 资源隔离:部署到专用资源组以便于管理
  • 监控:启用Application Insights进行监控和诊断

故障排除

  • 容器应用程序未启动:使用检查日志 az containerapp logs show
  • 身份验证问题:验证托管身份权限和角色分配
  • 网络连接:确保防火墙规则允许容器应用程序访问资源
  • 资源限制:监控CPU和内存使用情况,必要时调整缩放参数

成本优化

  • 适当大小的资源:从最小的CPU/内存开始,并根据使用情况进行扩展
  • 自动缩放:根据预期负载配置适当的最小/最大副本
  • 资源清理:使用 az group delete 在不再需要时删除所有资源

目录标签

目录标签

数据分析异步处理Python数据库访问本地部署智能查询LangChain集成AzureOpenAI

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

session

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiosession部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP