使用说明
远程MCP数据库服务器
一种生产就绪的模型上下文协议(MCP)服务器,通过HTTP为AI应用程序提供对PostgreSQL数据库的安全访问。此服务器演示了如何构建企业级MCP集成,该集成可以部署到云端并由多个客户端访问。
特性
- 远程访问:使用流式HTTP传输实现网络可访问性
- 数据库集成:连接到托管的PostgreSQL数据库(Neon、Supabase等)
- 安全:支持HTTPS的基于环境的凭据管理
- 生产就绪:专为云部署而设计,具有适当的错误处理功能
- 企业聚焦:适合团队和组织使用的可扩展架构
快速开始
先决条件
安装
- 克隆此存储库:
git clone https://github.com/Unlock-MCP/remote-mcp-server
cd remote-mcp-server
- 设置您的环境:
# 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
- 配置数据库:
# Copy environment template
cp .env.example .env
# Edit .env and add your PostgreSQL connection string
# DATABASE_URL="postgresql://user:password@host:port/dbname"
- 设置数据库架构:
# This script connects to your remote DB and runs the setup SQL
python setup_db.py
- 运行服务器:
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 文件,便于部署到 维塞尔.
- 在Vercel上创建一个新项目并链接您的GitHub存储库。
- 在Vercel项目设置中,转到“环境变量”部分。
- 添加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执行。
相关资源
- 教程: 如何构建远程MCP服务器 -完整的分步指南
- MCP文件: 模型上下文协议
- 本地MCP示例: MCP文档服务器 -本地文件系统MCP服务器
贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 如果适用,添加测试
- 提交拉取请求
许可证
MIT许可证-请参阅 许可证 文件以获取详细信息。
支持
- 问题:通过GitHub Issues报告错误和请求功能
- 社区:加入MCP社区讨论
- 文档:参观 解锁MCP.com 获取指南和教程