远程MCP数据库服务器

一个生产就绪的模型上下文协议(MCP)服务器,通过HTTP为AI应用程序提供对PostgreSQL数据库的安全访问,适用于企业级云部署和多客户端访问。

  • by Unlock-MCP
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 Unlock-MCP/remote-mcp-server

使用说明

远程MCP数据库服务器

一种生产就绪的模型上下文协议(MCP)服务器,通过HTTP为AI应用程序提供对PostgreSQL数据库的安全访问。此服务器演示了如何构建企业级MCP集成,该集成可以部署到云端并由多个客户端访问。

特性

  • 远程访问:使用流式HTTP传输实现网络可访问性
  • 数据库集成:连接到托管的PostgreSQL数据库(Neon、Supabase等)
  • 安全:支持HTTPS的基于环境的凭据管理
  • 生产就绪:专为云部署而设计,具有适当的错误处理功能
  • 企业聚焦:适合团队和组织使用的可扩展架构

快速开始

先决条件

  • Python 3.10+
  • 托管PostgreSQL数据库(免费层 霓虹 或 Supabase)
  • uv(推荐)或pip

安装

  1. 克隆此存储库:
git clone https://github.com/Unlock-MCP/remote-mcp-server
cd remote-mcp-server
  1. 设置您的环境:
# Create and activate virtual environment
uv venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate

# Install dependencies
uv add "mcp[cli]" fastapi uvicorn psycopg2-binary python-dotenv
  1. 配置数据库:
# Copy environment template
cp .env.example .env

# Edit .env and add your PostgreSQL connection string
# DATABASE_URL="postgresql://user:password@host:port/dbname"
  1. 设置数据库架构:
# This script connects to your remote DB and runs the setup SQL
python setup_db.py
  1. 运行服务器:
uvicorn server:app --host 0.0.0.0 --port 8000 --reload

您的MCP服务器现在正在运行 http://localhost:8000/mcp

测试

使用MCP检查器测试您的服务器:

npx @modelcontextprotocol/inspector http://localhost:8000/mcp

部署

此服务器专为云部署而设计。热门选项包括:

  • 渲染:通过数据库集成轻松部署Python应用程序
  • 维塞尔:支持环境变量的无服务器部署
  • Cloudflare员工:全球边缘部署
  • AWS/GCP/Azure:功能齐全的云平台

环境变量

在部署平台中设置以下环境变量:

  • DATABASE_URL:您的PostgreSQL连接字符串

api参考

资源

  • db://schema:返回产品表的数据库架构

工具

  • query_database:对产品数据库执行只读SQL查询
    • 输入: sql_query (string)-SELECT语句
    • 输出:JSON结果数组
    • 安全:只允许使用SELECT语句

示例用法

-- Get all electronics products
SELECT * FROM products WHERE category = 'Electronics';

-- Find products under $100
SELECT name, price FROM products WHERE price < 100;

-- Get inventory summary by category  
SELECT category, COUNT(*) as product_count, SUM(stock) as total_stock 
FROM products 
GROUP BY category;

Vercel部署

此存储库包括 vercel.json 文件,便于部署到 维塞尔.

  1. 在Vercel上创建一个新项目并链接您的GitHub存储库。
  2. 在Vercel项目设置中,转到“环境变量”部分。
  3. 添加a 秘密 命名 database_url 并将其值设置为PostgreSQL连接字符串 vercel.json 文件将自动使用此密钥 DATABASE_URL 部署期间的环境变量。

建筑

此服务器使用:

  • FastMCP:简化的Python MCP服务器框架
  • 快速 API:HTTP层的现代web框架
  • PostgreSQL:强大的关系数据库
  • 流式HTTP:用于远程访问的MCP传输
  • JSON-RPC 2.0:MCP通信的基础协议

安全考虑

  • 凭证管理的环境变量

  • HTTPS在生产环境中的实施

  • 默认情况下为只读数据库访问

  • 输入验证和SQL注入预防

  • OAuth 2.1身份验证框架支持(可扩展)

  • 查询安全仪表:服务器当前允许任何 SELECT 查询。对于高安全性的生产系统,考虑实现一个更健壮的查询解析器,使用SQLAlchemy等对象关系映射器(ORM)以编程方式构造查询,或者只公开特定的参数化函数而不是原始SQL执行。

相关资源

贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 如果适用,添加测试
  5. 提交拉取请求

许可证

MIT许可证-请参阅 许可证 文件以获取详细信息。

支持

  • 问题:通过GitHub Issues报告错误和请求功能
  • 社区:加入MCP社区讨论
  • 文档:参观 解锁MCP.com 获取指南和教程