Overview

Overview

site icon
2025.05.03 0
Go数据库服务MCP 服务器数据库
db-mcp 是一个简单的演示性 MCP HTTP 服务器,可与 claude.ai 或其他兼容的 MCP 客户端配合使用。该服务需要配置数据库持久化以保存客户端注册等信息,并通过 Pomerium 进行访问保护。
View on GitHub

Overview

基本能力

产品定位

db-mcp 是一个基于 MCP 协议的 HTTP 服务器,主要用于数据库服务的演示和测试。

核心功能

  1. 提供 MCP HTTP 服务器功能
  2. 支持与兼容 MCP 客户端交互
  3. 需要数据库持久化存储客户端注册信息
  4. 通过 Pomerium 实现访问保护

适用场景

  1. 数据库服务演示
  2. MCP 协议测试环境
  3. 需要数据库持久化的客户端注册场景

工具列表

  1. Pomerium - 用于访问保护和认证
  2. PostgreSQL - 作为数据存储后端
  3. SQLite - 用于演示数据库

常见问题解答

  1. 需要配置数据库持久化
  2. 需要在路由中设置域名
  3. 需要使用 Pomerium 的 main 分支

使用教程

使用依赖

  1. 安装 Docker
  2. 安装 Pomerium (main 分支)

安装教程

  1. 配置 config.yaml 文件
authenticate_service_url: https://authenticate.pomerium.app
autocert: true
runtime_flags:
  mcp: true
databroker_storage_type: postgres
databroker_storage_connection_string: postgresql://postgres:postgres@postgres:5432/pomerium?sslmode=disable

routes:
  - from: https://db-mcp.your-domain.com
    to: http://mcp-sqlite:8080
    preserve_host_header: true
    mcp: {}
    policy:
      - allow:
          or:
            - domain:
                is: your-domain.com
  1. 启动服务
services:
  postgres:
    image: postgres:17
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: postgres
      POSTGRES_DB: pomerium
      POSTGRES_HOST_AUTH_METHOD: trust
    ports:
      - 5432:5432
    volumes:
      - postgres-data:/var/lib/postgresql/data
  pomerium:
    image: pomerium/pomerium:main
    ports:
      - "443:443"
      - "80:80"
    volumes:
      - ./config.yaml:/pomerium/config.yaml
      - pomerium-autocert:/data/autocert
  mcp-sqlite:
    build:
      context: mcp-sqlite
      dockerfile: Dockerfile
    volumes:
      - ./db/northwind.db:/northwind.db
    environment:
      PORT: 8080
      DB_FILE: /northwind.db
      BASE_URL: https://db-mcp.your-domain.com
    expose:
      - 8080
volumes:
  postgres-data:
  pomerium-autocert:

调试方式

  1. 检查 PostgreSQL 服务是否正常运行
  2. 验证 Pomerium 配置是否正确
  3. 检查 MCP 服务是否在 8080 端口监听

许可证

该项目遵循 Apache-2.0 开源许可条款,请参阅 Apache-2.0 了解完整条款。