Dimetrics、Werkportal和PPMC MCP服务器-多-API集成
结束 模型上下文协议(MCP)服务器 的 尺寸测量, 工作门户 和 百万分率碳 API支持。
🎯 服务
Dimetrics MCP服务器
- 端口: 5201
- API: https://dimetrics.api.nc.released.services/api
- 容器:dimerics mcp服务器
MCP 服务器工作门户
- 端口: 5202
- API: https://werkportal.api.nc.released.services/api
- 容器工作门户-mcp-server
PPMC MCP服务器
- 端口: 5203
- API: https://ppmc.api.nc.released.services/api
- 容器:ppmc-mcp服务器
🚀 使用
# Alle Services starten
docker-compose up -d
# Einzelne Services
docker-compose up -d dimetrics-mcp-server
docker-compose up -d werkportal-mcp-server
docker-compose up -d ppmc-mcp-server
# Kombinationen
docker-compose up -d dimetrics-mcp-server werkportal-mcp-server______________________________________________________________________
Dimetrics MCP Server - 完全 API 集成
结束 模型上下文协议(MCP)服务器 根据官方 FastMCP Python SDK与 Dimetrics Web API 完全集成。允许 GitHub Copilot 以自然语言管理应用程序、服务、资源、属性和真实数据。
✨ 特性
- 🏗️ 应用管理完整的 CRUD for Apps
- ⚙️ 服务管理完整的 CRUD 应用链接服务
- 📊 资源管理用于具有服务链接的资源的完整 CRUD
- 🔧 属性管理完整的 CRUD 属性,支持 25+ 种类型
- 💾 通用API(数据CRUD)完整的 CRUD,用于 Resources 中的实际数据
- 🔍 高级查询类似 Directus 的过滤器、聚合、全文搜索
- 🚀 FastMCP集成基于 MCP Python SDK
- 🔑 灵活的身份验证基于令牌的 API 身份验证
- 📋 自然语言控制:GitHub Copilot集成
🛠️ 可用工具 (35 工具)
📱 应用管理
| 工具 | 描述 | 参数 |
|---|---|---|
create_app 创建一个新的 app name, description, prefix | ||
list_apps 列出所有应用程序。 search, page_size, page, limit | ||
get_app_details | Holt应用程序详细信息 | object_id |
update_app 更新一个app object_id, name, description, prefix | ||
delete_app 删除一个app object_id |
📂 品类管理
| 工具 | 描述 | 参数 |
|---|---|---|
create_category 创建一个新类别 name, description, prefix | ||
list_categories 列出所有类别。 search, page_size, page, limit | ||
get_category_details | Holt类别详细信息 | object_id |
update_category 更新一个类别。 object_id, name, description, prefix | ||
delete_category 删除一个类别 object_id |
⚙️ 服务管理
| 工具 | 描述 | 参数 |
|---|---|---|
create_service 创建一个新的服务。 name, app_space, description, title, icon等等。 | ||
list_services 列出所有服务。 search, page_size, page, limit | ||
get_service_details | Holt服务详情 | object_id |
update_service 更新一个服务。 object_id, name, title, description等等。 | ||
delete_service 删除一个服务 object_id |
📊 资源管理
| 工具 | 描述 | 参数 |
|---|---|---|
create_resource 创建一个新的资源 name, service, description, title, icon等等。 | ||
list_resources 列出所有资源。 search, page_size, page, limit | ||
get_resource_details | Holt资源详细信息 | object_id |
update_resource 更新一个资源。 object_id, name, title, description等等。 | ||
delete_resource 删除一个资源 object_id |
🔧 属性管理
| 工具 | 描述 | 参数 |
|---|---|---|
list_attributes 列出一个资源的属性。 resource_name, search, page_size, page | ||
get_attribute_details | 霍尔特归因细节 | resource_name, attribute_id |
create_attribute 创建一个新的属性。 resource_name, name, attribute_type等等。 | ||
update_attribute 更新一个属性。 resource_name, attribute_id, name等等。 | ||
delete_attribute 删除一个属性。 resource_name, attribute_id | ||
create_attributes_bulk 创建多个属性。 resource_name, attributes_json |
💾 通用API(数据CRUD)
| 工具 | 描述 | 参数 |
|---|---|---|
list_generic_entries | 列出有过滤器/聚合的条目 | resource_name, search, directus_filter_json, aggregate_json等等。 |
create_generic_entry 创建一个新条目。 resource_name, entry_data_json | ||
get_generic_entry 获取一个特定的条目。 resource_name, entry_id | ||
update_generic_entry 更新条目(PATCH) resource_name, entry_id, update_data_json | ||
delete_generic_entry 删除一个条目。 resource_name, entry_id, confirm_deletion |
🎯 高级功能
类似Directus的过滤器
# Beispiele für directus_filter_json
'{"state": {"_eq": "ok"}}' # Gleichheit
'{"amount": {"_gte": 10}}' # Größer gleich
'{"name": {"_contains": "Marathon"}}' # Textsuche
'{"_and": [{"state": {"_eq": "ok"}}, {"amount": {"_gte": 25}}]}' # UND-Verknüpfung聚合
# Beispiele für aggregate_json
'{"sum": "amount"}' # Summe
'{"count": "name"}' # Anzahl
'{"avg": "distance_km"}' # Durchschnitt
'{"sum": "amount", "count": "name", "avg": "amount"}' # Mehrere gleichzeitig全文搜索
# search Parameter
search="Marathon" # Sucht in allen Textfeldern
search="Dauerlauf" # Findet passende Einträge🚀 快速启动
1.安装
# Abhängigkeiten installieren
pip install -r requirements.txt2. 配置
# .env Datei erstellen
cp .env.example .env
# API-Zugangsdaten eintragen
DIMETRICS_API_URL=https://dimetrics.api.nc.released.services/api
DIMETRICS_API_KEY=your_token_here3.测试
# Grundfunktionalität testen
python3 test_minimal_new.py
# CRUD-Operationen testen
python3 test_generics_crud.py
# MCP-Tools testen
python3 test_mcp_generics_crud.py
# Aggregationen und Filter testen
python3 test_aggregations.py
python3 test_directus_filters.py4. 启动MCP服务器
# Server starten
python3 -m dimetrics_mcp_server
# Mit uv (falls installiert)
uv run mcp dev dimetrics_mcp_server/__main__.py5.GitHub Copilot集成
{
"mcpServers": {
"dimetrics": {
"command": "python3",
"args": ["-m", "dimetrics_mcp_server"],
"cwd": "/path/to/dimetrics-mcp-server",
"env": {
"DIMETRICS_API_URL": "https://dimetrics.api.nc.released.services/api",
"DIMETRICS_API_KEY": "your_token_here"
}
}
}
}📈 项目状态
✅ 完全实施
- 应用程序管理所有 CRUD 操作都可用
- 类别管理所有 CRUD 操作都可用
- 服务管理所有 CRUD 操作都可用
- 资源管理所有 CRUD 操作都可用
- 属性管理所有 CRUD 操作都可用
- 通用API完整的 CRUD,具有增强功能
- 过滤系统:Directus可兼容过滤器
- 聚合Sum,Count,Average等
- 全文搜索搜索所有文本字段
🎯 成功实施测试
该系统具有一个完整的 电子书应用程序 获得:
App: Lauftagebuch
├── Service: Laufaktivitäten
└── Resource: Läufe
├── name (INPUT_FIELD)
├── state (DROPDOWN_FIELD)
├── distance_km (NUMERIC_FIELD)
├── duration_minutes (NUMERIC_FIELD)
├── date_created (TIMESTAMP_FIELD)
├── notes (TEXT_FIELD)
├── weather (DROPDOWN_FIELD)
└── amount (NUMERIC_FIELD)CRUD测试成功:
- ✅ 创建具有所有属性的条目
- ✅ 按状态,距离,日期过滤
- ✅ 聚合(距离总和、平均值等)
- ✅ 条目更新(PATCH)
- ✅ 安全删除与确认
- ✅ 名称和笔记中的全文搜索
📚 文档
- 概述_CRUD.md完整的CRUD文档和示例
- 聚集_搜索.md过滤器、聚合和搜索
- DIRECTUS_FILTERS.mdDirectus过滤器参考
- Lauftagebuch_Documentation.md测试应用文档
🔧 技术细节
建筑
- FastMCP官方 MCP Python SDK
- HTTPX用于API通信的异步HTTP客户端
- 皮丹提克数据验证和序列化
- python dotenv环境变量管理
API 终端
- 应用程序:
/api/apps/ - 类别:
/api/categories/ - 服务:
/api/services/ - 资源:
/api/resources/ - 属性:
/api/attributes/{resource_name}/ - 仿制药:
/api/generics/{resource_name}/
验证
headers = {
"Authorization": f"Token {api_key}",
"Content-Type": "application/json"
}🤝 使用 GitHub Copilot
示例提示
# App-Verwaltung
"Erstelle eine App namens 'Projektmanagement'"
"Liste alle Apps auf"
"Lösche die App mit ID abc-123"
# Service-Verwaltung
"Erstelle einen Service 'Tasks' in der App 'Projektmanagement'"
"Aktualisiere den Service-Titel zu 'Aufgaben'"
# Resource-Verwaltung
"Erstelle eine Resource 'Tickets' im Service 'Tasks'"
"Liste alle Resources auf"
# Daten-Management
"Erstelle einen neuen Laufeintrag mit 5km Distanz"
"Zeige alle Läufe über 10km"
"Berechne die Gesamtdistanz aller Läufe"
"Lösche den Eintrag mit ID xyz-789"🚨 重要提示
安全功能
- 删除确认所有 DELETE 操作都需要明确确认
- 数据验证全面验证所有输入和输出
- 错误处理全面的错误处理,包括有意义的消息
已知的限制
- 归因细节(
get_attribute_detailsAPI 权限问题 (403 Forbidden) - 名称验证:Dimetrics API 拒绝带有下划线的长名称
- 前缀限制:自动生成的前缀最多5个字符
______________________________________________________________________
状态: 🟢 生产就绪 - 与35个功能工具的完全API集成
4. 服务器启动
# MCP Server starten
python3 -m dimetrics_mcp_server🔧 GitHub复制集成
将此配置添加到您的 MCP 客户端:
{
"mcpServers": {
"dimetrics": {
"command": "python3",
"args": ["-m", "dimetrics_mcp_server"],
"cwd": "/path/to/mcp-server",
"env": {
"DIMETRICS_API_URL": "https://dimetrics.api.nc.released.services/api",
"DIMETRICS_API_KEY": "your_token_here"
}
}
}
}💬 示例说明
"Erstelle eine App namens 'Stromverträge' mit dem Prefix 'power_'"
"Liste alle Apps auf, die 'MCP' enthalten"
"Zeige mir die Details der App mit ID xyz"
"Lösche die App mit der ID xyz"🏗️ API支柱
服务器与以下 Dimetrics API 终端进行交互:
# App erstellen
POST /apps/
{
"name": "App Name",
"title": "App Name",
"prefix": "app_",
"description": "Beschreibung"
}
# Apps auflisten
GET /apps/?search=suchbegriff
# App Details
GET /apps/{object_id}
# App löschen
DELETE /apps/{object_id}/🧪 发展
执行测试
# Minimaler Test (ohne API)
python3 test_minimal_new.py
# Vollständiger API Test
python3 test_dimetrics_api.py添加新工具
- 扩展
api_client.py新的API终端 - 添加新的
@mcp.tool()功能在__main__.py此外 - 使用测试脚本进行测试
基于
📝 下一步
这个最小的例子可以逐步扩展为:
- 📊 表格管理 (创建表、列表表)
- 🔧 归因管理 (创建属性、列表属性)
- 💾 数据 管理 (CRUD操作)
- 🎯 高级功能 (批量操作,模板)
______________________________________________________________________
🎯 状态:最低实施量abgeschlossen\ ✅ 应用管理功能\ 🔧 准备逐步扩展
