数据库访问服务

提供通过Python访问PostgreSQL数据库的MCP服务器。

  • by MiKecantdothis
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 MiKecantdothis/MCPforGBL

使用说明

品牌MCP服务器(Python)

这提供了一个MCP服务器,用于使用Python访问品牌Postgres数据库。

安装说明(本地)

  1. 创建虚拟环境并安装依赖项:

    python -m venv .venv
    # Windows
    .venv\Scripts\activate
    pip install -r requirements.txt
    
  2. 配置环境: 复制 .env.example 到 .env 并填写您的数据库凭据:

    cp .env.example .env
    
  3. Claude桌面配置: 在Windows上,打开位于此处的Claude配置文件: %APPDATA%\Claude\claude_desktop_config.json

    添加以下配置以在本地运行服务器:

    {
      "mcpServers": {
        "brand-db": {
          "command": "C:\\Users\\Mike\\Desktop\\Chumbak MCP\\brand-mcp-server\\.venv\\Scripts\\python.exe",
          "args": ["-m", "src.server"],
          "env": {
            "DB_HOST": "localhost",
            "DB_PORT": "5432",
            "DB_NAME": "brand_db",
            "DB_USER": "postgres",
            "DB_PASS": "password",
            "PYTHONPATH": "C:\\Users\\Mike\\Desktop\\Chumbak MCP\\brand-mcp-server"
          }
        }
      }
    }
    

EC2部署(Ubuntu)

如果要将此MCP服务器部署到Ubuntu EC2实例(例如Ubuntu 22.04或24.04),请按照以下步骤使用FastAPI实现安全配置服务器(src/server2.py).

1.更新和安装依赖项

SSH连接到EC2实例,并运行以下命令安装Python 3和Git:

sudo apt update && sudo apt upgrade -y
sudo apt install git python3 python3-pip python3-venv -y

2.克隆存储库

git clone https://github.com/MiKecantdothis/MCPforGBL.git
cd MCPforGBL

3.设置虚拟环境并安装软件包

python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

4.创建环境变量

既然你的秘密是安全的 .gitignored,您必须创建 .env 在EC2实例上手动创建文件:

nano .env

(将您的数据库凭据粘贴到里面,用保存 Ctrl+O, Enter,然后退出 Ctrl+X.)

5.运行服务器(HTTP/SSE)

要启动FastAPI HTTP服务器并使其在关闭SSH连接后仍在后台运行,请使用 nohup:

nohup python3 -m src.server2 > server.log 2>&1 &

注: 您的FastAPI服务器现在可以通过EC2实例的IP端口8000访问。 重要:确保编辑实例的 安全组 在AWS控制台中允许入站TCP流量 端口8000.

6.生成API密钥(用于HTTP/SSE)

为了保护远程HTTP/SSE服务器的安全,它需要有效的API密钥(src/server2.py). 运行auth模块以生成强密钥并将其保存到 api_keys.json:

python3 -m src.auth generate "ClientName"

7.将Claude Desktop连接到EC2

如果您通过HTTP/SSE公开暴露了端口8000,请更新 %APPDATA%\Claude\claude_desktop_config.json 在Windows上,将生成的密钥传递到标头中:

{
  "mcpServers": {
    "brand-db-remote": {
      "command": "C:\\Program Files\\nodejs\\npx.cmd",
      "args": [
        "-y", 
        "mcp-remote", 
        "http://YOUR-EC2-PUBLIC-IP:8000/sse", 
        "--allow-http",
        "--header", 
        "Authorization: Bearer YOUR_GENERATED_KEY"
      ]
    }
  }
}

如果您不想公开暴露端口8000,并希望Claude Desktop通过SSH安全地与新启动的EC2实例通信,请使用标准 stdio 配置。

打开 %APPDATA%\Claude\claude_desktop_config.json 在Windows计算机上添加:

{
  "mcpServers": {
    "brand-db-remote": {
      "command": "ssh",
      "args": [
        "-i", "C:/path/to/your/ec2-key.pem",
        "ubuntu@YOUR-EC2-PUBLIC-IP",
        "cd /home/ubuntu/MCPforGBL && source .venv/bin/activate && python3 -m src.server"
      ]
    }
  }
}

(此设置通过SSH无缝安全地将Claude的请求直接隧道到EC2的标准输入/输出服务器!)