使用说明
MCP服务器模板
运行的最小模板 MCP(模型上下文协议)服务器 支持身份验证、PostgreSQL集成和容器化。使用 FastMCP.
🚀 特性
- 🔑 基本认证 (通过API令牌)
- 🗄 PostgreSQL数据库 整合
- 🌐 HTTP服务器 用于MCP传输
- 📦 容器化 使用Docker和Docker Compose
- 🗄 迁移 用于数据库模式管理
🐳 容器入门
选项1:运行服务器+数据库(建议用于测试)
docker compose up
备注:您需要在系统中设置环境变量
选项2:仅运行服务器
docker build -t mcp-server .
docker run -p 8000:8000 mcp-server
备注:您需要在.env文件中设置环境变量。
🔨 地方发展
在本地运行项目需要python 3.11或更高版本。
uv sync -安装软件包。阅读更多 这里.
cd src -移动到项目根目录
python -m server -运行服务器(别忘了设置 .env 文件)
⚙️ 环境变量
服务器是使用环境变量配置的。
| 变量 | 必填 | 描述 |
|---|---|---|
API_TOKEN |
❌ | 用于基本身份验证的API令牌。如果提供,客户必须将其包含在请求中。 |
DATABASE_URL |
✅ | PostgreSQL连接字符串。格式: postgresql://user:password@localhost:5432/mydb |
👉 在本地工作时,创建一个 .env 项目根目录中的文件(使用 .env.example 作为模板)。
🔌 连接到MCP客户端
- 当地:
http://localhost:8000 - 远程:
http://<your-server-domain>
认证
如果 API_TOKEN 如果已设置,请将其包含在请求标头中:
Authorization: Bearer ${API_TOKEN}
所需标题
Content-Type: application/json
Accept: application/json, text/event-stream
📐 提示示例
get me record from table data where id is 3get me all records from table dataget me all records from table data where name is "John Doe"
📡 运输支持
- ✅ 目前支持:
streamable-http - 🚧 可扩展以支持其他MCP传输
🖼 架构图
flowchart TD
A[MCP Client] <-- streamable-http --> B[MCP Server]
B <-- queries --> C[(PostgreSQL Database)]
A -. Call with instructions and headers .-> B:::auth
- MCP客户端 使用HTTP与服务器通信(
streamable-http). - MCP服务器 处理身份验证和查询。
- PostgreSQL数据库 存储和检索持久数据。
- 可选的 API代币 可用于安全通信。
🔄 序列图(请求流)
sequenceDiagram
participant Client as MCP Client
participant Server as MCP Server
participant DB as PostgreSQL Database
Client->>Server: HTTP Request (with headers & optional Bearer Token)
Server->>Server: Validate API Token (if required)
alt Token invalid
Server-->>Client: 401 Unauthorized
else Token valid / not required
Server->>DB: Execute query
DB-->>Server: Query result
Server-->>Client: Response (JSON / Event Stream)
end
