项目管理协议服务器

一个基于FastAPI的模型上下文协议(MCP)服务器,用于连接Oracle Primavera P6 REST API,实现项目管理数据的访问。

  • by akousha
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 akousha/primavera-p6-mcp-bridge

使用说明

Primavera P6 MCP服务器

一个干净、专业结构的基于FastAPI的模型上下文协议(MCP)服务器,用于Oracle Primavera P6集成。

🎯 目的

该服务器将ChatGPT、Claude和其他MCP客户端连接到Oracle Primavera P6 REST API,用于项目管理数据访问。

🏗️ 建筑

src/
├── main.py              # FastAPI application with MCP endpoints
├── models/              # Pydantic models for P6 data structures  
└── utils/               # Helper functions and utilities

tests/
├── test_endpoints.py    # Comprehensive endpoint tests
└── README.md           # Test documentation

docker/
├── Dockerfile          # Multi-stage containerization
└── docker-compose.yml  # Development environment

docs/                   # Project documentation

🚀 快速开始

发展

# Install dependencies
pip install -r requirements.txt

# Run development server
python -m uvicorn src.main:app --reload --host 0.0.0.0 --port 8000

# Run tests
python -m pytest tests/ -v

码头工人

# Build and run with Docker Compose
cd docker/
docker-compose up --build

# Or build directly
docker build -f docker/Dockerfile -t p6-mcp-server .
docker run -p 8000:8000 p6-mcp-server

VS Code

使用命令面板中的“运行P6 MCP服务器”任务(Ctrl+Shift+P → Tasks: Run Task)

🔌 MCP集成

端点

  • 健康: GET /health -服务器状态和配置
  • MCP清单: GET /.well-known/mcp.json -MCP协议清单
  • 工具架构: GET /tool_schema.json -可用工具和端点
  • 登录: POST /login -使用P6进行身份验证
  • OBS搜索: GET /obs/find -搜索组织结构
  • 项目: GET /projects/by_obs -按OBS列出项目

MCP客户端配置

对于ChatGPT或Claude,添加此MCP连接器:

{
  "name": "Primavera P6",
  "url": "http://localhost:8000/.well-known/mcp.json"
}

🧪 测试

该项目包括全面的测试覆盖范围:

# Run all tests
python -m pytest tests/ -v

# Run with coverage
python -m pytest tests/ --cov=src --cov-report=html

🛠️ 发展

主要特点

  • ✅ 清洁建筑:适当分离关注点
  • ✅ 类型安全:Pydantic模型的完整类型提示
  • ✅ CORS支持:处理了跨来源请求
  • ✅ 缓存:高效的清单缓存策略
  • ✅ 安全:内容安全策略标头
  • ✅ 测试:全面的端点覆盖
  • ✅ 码头工人:生产就绪的集装箱化

MCP协议合规性

  • ✅ 舱单送达时间 /.well-known/mcp.json
  • ✅ 工具架构端点可用
  • ✅ 正确的HTTP方法(GET、POST、OPTIONS、HEAD)
  • ✅ web客户端的CORS标头
  • ✅ 一致的响应标头和缓存

📚 API文档

跑步时,请访问 http://localhost:8000/docs 用于交互式API文档(FastAPI自动文档)。

🔧 配置

环境变量:

  • P6_BASE_URL:Oracle Primavera P6 REST API基本URL
  • PORT:服务器端口(默认值:8000)

📝 许可证

该项目是Primavera P6 MCP集成套件的一部分。