|
|
--- |
|
|
title: '获取资源' |
|
|
description: '查询和检索 MCP 服务器、用户和组信息' |
|
|
--- |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```http |
|
|
GET /api/servers |
|
|
``` |
|
|
|
|
|
|
|
|
|
|
|
| 参数 | 类型 | 描述 | 示例 | |
|
|
| ---------------- | ------- | ------------------------------- | ---------------------------- | |
|
|
| `page` | integer | 页码(从 1 开始) | `?page=2` | |
|
|
| `limit` | integer | 每页记录数(默认 20,最大 100) | `?limit=50` | |
|
|
| `sort` | string | 排序字段 | `?sort=name` | |
|
|
| `order` | string | 排序顺序(asc/desc) | `?order=desc` | |
|
|
| `status` | string | 过滤服务器状态 | `?status=running` | |
|
|
| `search` | string | 搜索服务器名称或描述 | `?search=python` | |
|
|
| `group` | string | 过滤所属组 | `?group=dev-team` | |
|
|
| `tags` | string | 过滤标签(逗号分隔) | `?tags=python,production` | |
|
|
| `enabled` | boolean | 过滤启用状态 | `?enabled=true` | |
|
|
| `created_after` | string | 创建时间起始 | `?created_after=2024-01-01` | |
|
|
| `created_before` | string | 创建时间结束 | `?created_before=2024-01-31` | |
|
|
|
|
|
|
|
|
|
|
|
```json |
|
|
{ |
|
|
"success": true, |
|
|
"data": { |
|
|
"items": [ |
|
|
{ |
|
|
"id": "server-abc123", |
|
|
"name": "文件系统服务器", |
|
|
"status": "running", |
|
|
"command": "npx", |
|
|
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/data"], |
|
|
"env": { |
|
|
"NODE_ENV": "production" |
|
|
}, |
|
|
"cwd": "/app", |
|
|
"pid": 12345, |
|
|
"uptime": 3600000, |
|
|
"enabled": true, |
|
|
"description": "提供文件系统访问的 MCP 服务器", |
|
|
"tags": ["filesystem", "production"], |
|
|
"health": { |
|
|
"status": "healthy", |
|
|
"lastCheck": "2024-01-01T12:00:00Z", |
|
|
"responseTime": "45ms" |
|
|
}, |
|
|
"resources": { |
|
|
"memory": { |
|
|
"used": "128MB", |
|
|
"limit": "512MB", |
|
|
"percentage": 25 |
|
|
}, |
|
|
"cpu": { |
|
|
"used": "15%", |
|
|
"limit": "50%" |
|
|
} |
|
|
}, |
|
|
"stats": { |
|
|
"totalRequests": 1523, |
|
|
"errorCount": 2, |
|
|
"avgResponseTime": "234ms" |
|
|
}, |
|
|
"lastRestart": "2024-01-01T08:00:00Z", |
|
|
"createdAt": "2024-01-01T00:00:00Z", |
|
|
"updatedAt": "2024-01-01T12:00:00Z" |
|
|
} |
|
|
], |
|
|
"pagination": { |
|
|
"page": 1, |
|
|
"limit": 20, |
|
|
"total": 45, |
|
|
"pages": 3, |
|
|
"hasNext": true, |
|
|
"hasPrev": false |
|
|
}, |
|
|
"filters": { |
|
|
"status": "running", |
|
|
"totalFiltered": 12 |
|
|
} |
|
|
} |
|
|
} |
|
|
``` |
|
|
|
|
|
|
|
|
|
|
|
```bash |
|
|
|
|
|
curl -X GET "http://localhost:3000/api/servers?status=running&sort=name&order=asc" \ |
|
|
-H "Authorization: Bearer $TOKEN" |
|
|
|
|
|
|
|
|
curl -X GET "http://localhost:3000/api/servers?search=python&limit=10" \ |
|
|
-H "Authorization: Bearer $TOKEN" |
|
|
|
|
|
|
|
|
curl -X GET "http://localhost:3000/api/servers?group=dev-team" \ |
|
|
-H "Authorization: Bearer $TOKEN" |
|
|
``` |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```http |
|
|
GET /api/servers/{serverId} |
|
|
``` |
|
|
|
|
|
|
|
|
|
|
|
- `serverId` (string): 服务器唯一标识符 |
|
|
|
|
|
|
|
|
|
|
|
| 参数 | 类型 | 描述 | |
|
|
| --------------- | ------ | ----------------------------------------------- | |
|
|
| `include` | string | 包含额外信息(逗号分隔):`logs,metrics,events` | |
|
|
| `metrics_range` | string | 指标时间范围:`1h`, `24h`, `7d` | |
|
|
|
|
|
|
|
|
|
|
|
```json |
|
|
{ |
|
|
"success": true, |
|
|
"data": { |
|
|
"id": "server-abc123", |
|
|
"name": "文件系统服务器", |
|
|
"status": "running", |
|
|
"command": "npx", |
|
|
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/data"], |
|
|
"env": { |
|
|
"NODE_ENV": "production", |
|
|
"DEBUG": "mcp:*" |
|
|
}, |
|
|
"cwd": "/app", |
|
|
"pid": 12345, |
|
|
"uptime": 3600000, |
|
|
"enabled": true, |
|
|
"description": "提供文件系统访问的 MCP 服务器", |
|
|
"tags": ["filesystem", "production"], |
|
|
"healthCheck": { |
|
|
"enabled": true, |
|
|
"interval": 30000, |
|
|
"timeout": 5000, |
|
|
"retries": 3, |
|
|
"endpoint": "/health", |
|
|
"status": "healthy", |
|
|
"lastCheck": "2024-01-01T12:00:00Z", |
|
|
"responseTime": "45ms", |
|
|
"consecutiveFailures": 0 |
|
|
}, |
|
|
"resources": { |
|
|
"memory": { |
|
|
"used": "128MB", |
|
|
"limit": "512MB", |
|
|
"warning": "400MB", |
|
|
"percentage": 25 |
|
|
}, |
|
|
"cpu": { |
|
|
"used": "15%", |
|
|
"limit": "50%", |
|
|
"cores": 4 |
|
|
}, |
|
|
"network": { |
|
|
"bytesIn": "1.2GB", |
|
|
"bytesOut": "890MB" |
|
|
} |
|
|
}, |
|
|
"stats": { |
|
|
"totalRequests": 1523, |
|
|
"successfulRequests": 1521, |
|
|
"errorCount": 2, |
|
|
"avgResponseTime": "234ms", |
|
|
"p95ResponseTime": "450ms", |
|
|
"requestsPerMinute": 25, |
|
|
"lastError": { |
|
|
"timestamp": "2024-01-01T11:30:00Z", |
|
|
"message": "Temporary connection timeout", |
|
|
"count": 1 |
|
|
} |
|
|
}, |
|
|
"capabilities": [ |
|
|
{ |
|
|
"type": "tool", |
|
|
"name": "read_file", |
|
|
"description": "读取文件内容", |
|
|
"schema": { |
|
|
"type": "object", |
|
|
"properties": { |
|
|
"path": { "type": "string" } |
|
|
} |
|
|
} |
|
|
}, |
|
|
{ |
|
|
"type": "tool", |
|
|
"name": "write_file", |
|
|
"description": "写入文件内容", |
|
|
"schema": { |
|
|
"type": "object", |
|
|
"properties": { |
|
|
"path": { "type": "string" }, |
|
|
"content": { "type": "string" } |
|
|
} |
|
|
} |
|
|
} |
|
|
], |
|
|
"groups": [ |
|
|
{ |
|
|
"id": "dev-team", |
|
|
"name": "开发团队", |
|
|
"permissions": ["read", "write", "execute"] |
|
|
} |
|
|
], |
|
|
"events": [ |
|
|
{ |
|
|
"id": "event-123", |
|
|
"type": "started", |
|
|
"timestamp": "2024-01-01T08:00:00Z", |
|
|
"message": "服务器启动成功", |
|
|
"metadata": { |
|
|
"pid": 12345, |
|
|
"startupTime": "2.3s" |
|
|
} |
|
|
} |
|
|
], |
|
|
"lastRestart": "2024-01-01T08:00:00Z", |
|
|
"createdAt": "2024-01-01T00:00:00Z", |
|
|
"updatedAt": "2024-01-01T12:00:00Z", |
|
|
"createdBy": "admin" |
|
|
} |
|
|
} |
|
|
``` |
|
|
|
|
|
|
|
|
|
|
|
```bash |
|
|
|
|
|
curl -X GET "http://localhost:3000/api/servers/server-abc123" \ |
|
|
-H "Authorization: Bearer $TOKEN" |
|
|
|
|
|
|
|
|
curl -X GET "http://localhost:3000/api/servers/server-abc123?include=logs,metrics&metrics_range=24h" \ |
|
|
-H "Authorization: Bearer $TOKEN" |
|
|
``` |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```http |
|
|
GET /api/servers/{serverId}/status |
|
|
``` |
|
|
|
|
|
|
|
|
|
|
|
```json |
|
|
{ |
|
|
"success": true, |
|
|
"data": { |
|
|
"serverId": "server-abc123", |
|
|
"status": "running", |
|
|
"health": "healthy", |
|
|
"pid": 12345, |
|
|
"uptime": 3600000, |
|
|
"startedAt": "2024-01-01T08:00:00Z", |
|
|
"lastHealthCheck": "2024-01-01T12:00:00Z", |
|
|
"resources": { |
|
|
"memory": { |
|
|
"rss": 134217728, |
|
|
"heapTotal": 67108864, |
|
|
"heapUsed": 45088768, |
|
|
"external": 8388608 |
|
|
}, |
|
|
"cpu": { |
|
|
"user": 1000000, |
|
|
"system": 500000, |
|
|
"percentage": 15.5 |
|
|
} |
|
|
}, |
|
|
"connections": { |
|
|
"active": 5, |
|
|
"total": 127 |
|
|
}, |
|
|
"performance": { |
|
|
"requestsPerSecond": 12.5, |
|
|
"avgResponseTime": "234ms", |
|
|
"errorRate": "0.1%" |
|
|
} |
|
|
} |
|
|
} |
|
|
``` |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```http |
|
|
GET /api/servers/{serverId}/logs |
|
|
``` |
|
|
|
|
|
|
|
|
|
|
|
| 参数 | 类型 | 描述 | |
|
|
| -------- | ------- | ---------------------------------------------- | |
|
|
| `level` | string | 日志级别过滤:`error`, `warn`, `info`, `debug` | |
|
|
| `limit` | integer | 返回日志条数(默认 100,最大 1000) | |
|
|
| `since` | string | 开始时间(ISO 8601 格式) | |
|
|
| `until` | string | 结束时间(ISO 8601 格式) | |
|
|
| `follow` | boolean | 实时跟踪日志流 | |
|
|
| `search` | string | 搜索日志内容 | |
|
|
|
|
|
|
|
|
|
|
|
```json |
|
|
{ |
|
|
"success": true, |
|
|
"data": { |
|
|
"logs": [ |
|
|
{ |
|
|
"id": "log-123", |
|
|
"timestamp": "2024-01-01T12:00:00Z", |
|
|
"level": "info", |
|
|
"message": "处理请求: read_file", |
|
|
"source": "mcp-server", |
|
|
"metadata": { |
|
|
"requestId": "req-456", |
|
|
"userId": "user-789", |
|
|
"duration": "45ms" |
|
|
} |
|
|
}, |
|
|
{ |
|
|
"id": "log-124", |
|
|
"timestamp": "2024-01-01T12:00:05Z", |
|
|
"level": "error", |
|
|
"message": "文件不存在: /nonexistent/file.txt", |
|
|
"source": "filesystem", |
|
|
"metadata": { |
|
|
"requestId": "req-457", |
|
|
"path": "/nonexistent/file.txt", |
|
|
"error": "ENOENT" |
|
|
} |
|
|
} |
|
|
], |
|
|
"pagination": { |
|
|
"limit": 100, |
|
|
"total": 1523, |
|
|
"hasMore": true, |
|
|
"nextCursor": "cursor-abc123" |
|
|
} |
|
|
} |
|
|
} |
|
|
``` |
|
|
|
|
|
|
|
|
|
|
|
```bash |
|
|
|
|
|
curl -X GET "http://localhost:3000/api/servers/server-abc123/logs?follow=true" \ |
|
|
-H "Authorization: Bearer $TOKEN" \ |
|
|
-H "Accept: text/event-stream" |
|
|
``` |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```http |
|
|
GET /api/servers/{serverId}/metrics |
|
|
``` |
|
|
|
|
|
|
|
|
|
|
|
| 参数 | 类型 | 描述 | |
|
|
| ------------- | ------ | ------------------------------------------- | |
|
|
| `timeRange` | string | 时间范围:`1h`, `24h`, `7d`, `30d` | |
|
|
| `granularity` | string | 数据粒度:`1m`, `5m`, `1h`, `1d` | |
|
|
| `metrics` | string | 指定指标(逗号分隔):`cpu,memory,requests` | |
|
|
|
|
|
|
|
|
|
|
|
```json |
|
|
{ |
|
|
"success": true, |
|
|
"data": { |
|
|
"timeRange": "1h", |
|
|
"granularity": "5m", |
|
|
"metrics": { |
|
|
"cpu": { |
|
|
"data": [ |
|
|
{ "timestamp": "2024-01-01T11:00:00Z", "value": 12.5 }, |
|
|
{ "timestamp": "2024-01-01T11:05:00Z", "value": 15.2 } |
|
|
], |
|
|
"summary": { |
|
|
"avg": 13.8, |
|
|
"min": 8.1, |
|
|
"max": 18.5, |
|
|
"current": 15.2 |
|
|
} |
|
|
}, |
|
|
"memory": { |
|
|
"data": [ |
|
|
{ "timestamp": "2024-01-01T11:00:00Z", "value": 125 }, |
|
|
{ "timestamp": "2024-01-01T11:05:00Z", "value": 128 } |
|
|
], |
|
|
"summary": { |
|
|
"avg": 126.5, |
|
|
"min": 120, |
|
|
"max": 135, |
|
|
"current": 128 |
|
|
} |
|
|
}, |
|
|
"requests": { |
|
|
"data": [ |
|
|
{ "timestamp": "2024-01-01T11:00:00Z", "value": 45 }, |
|
|
{ "timestamp": "2024-01-01T11:05:00Z", "value": 52 } |
|
|
], |
|
|
"summary": { |
|
|
"total": 2847, |
|
|
"avg": 48.5, |
|
|
"peak": 67 |
|
|
} |
|
|
}, |
|
|
"responseTime": { |
|
|
"data": [ |
|
|
{ "timestamp": "2024-01-01T11:00:00Z", "avg": 230, "p95": 450 }, |
|
|
{ "timestamp": "2024-01-01T11:05:00Z", "avg": 245, "p95": 480 } |
|
|
], |
|
|
"summary": { |
|
|
"avgResponseTime": "237ms", |
|
|
"p95ResponseTime": "465ms" |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
``` |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```http |
|
|
GET /api/users |
|
|
``` |
|
|
|
|
|
|
|
|
|
|
|
| 参数 | 类型 | 描述 | |
|
|
| ------------------ | ------- | ---------------- | |
|
|
| `role` | string | 过滤用户角色 | |
|
|
| `group` | string | 过滤所属组 | |
|
|
| `enabled` | boolean | 过滤启用状态 | |
|
|
| `search` | string | 搜索用户名或邮箱 | |
|
|
| `last_login_after` | string | 最后登录时间起始 | |
|
|
|
|
|
|
|
|
|
|
|
```json |
|
|
{ |
|
|
"success": true, |
|
|
"data": { |
|
|
"items": [ |
|
|
{ |
|
|
"id": "user-abc123", |
|
|
"username": "zhangsan", |
|
|
"email": "zhangsan@example.com", |
|
|
"role": "user", |
|
|
"enabled": true, |
|
|
"profile": { |
|
|
"firstName": "张", |
|
|
"lastName": "三", |
|
|
"fullName": "张三", |
|
|
"department": "开发部", |
|
|
"title": "软件工程师" |
|
|
}, |
|
|
"groups": [ |
|
|
{ |
|
|
"id": "dev-team", |
|
|
"name": "开发团队", |
|
|
"role": "member" |
|
|
} |
|
|
], |
|
|
"stats": { |
|
|
"totalSessions": 45, |
|
|
"totalRequests": 1234, |
|
|
"lastRequestAt": "2024-01-01T11:30:00Z" |
|
|
}, |
|
|
"lastLoginAt": "2024-01-01T08:00:00Z", |
|
|
"createdAt": "2023-12-01T00:00:00Z" |
|
|
} |
|
|
], |
|
|
"pagination": { |
|
|
"page": 1, |
|
|
"limit": 20, |
|
|
"total": 89, |
|
|
"pages": 5 |
|
|
} |
|
|
} |
|
|
} |
|
|
``` |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```http |
|
|
GET /api/groups |
|
|
``` |
|
|
|
|
|
|
|
|
|
|
|
```json |
|
|
{ |
|
|
"success": true, |
|
|
"data": { |
|
|
"items": [ |
|
|
{ |
|
|
"id": "group-abc123", |
|
|
"name": "dev-team", |
|
|
"displayName": "开发团队", |
|
|
"description": "前端和后端开发人员", |
|
|
"memberCount": 12, |
|
|
"serverCount": 8, |
|
|
"parentGroup": null, |
|
|
"children": [], |
|
|
"permissions": { |
|
|
"servers": ["read", "write", "execute"], |
|
|
"tools": ["read", "execute"] |
|
|
}, |
|
|
"quotas": { |
|
|
"requests": { |
|
|
"used": 750, |
|
|
"limit": 1000 |
|
|
} |
|
|
}, |
|
|
"createdAt": "2023-12-01T00:00:00Z" |
|
|
} |
|
|
] |
|
|
} |
|
|
} |
|
|
``` |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```http |
|
|
GET /api/search |
|
|
``` |
|
|
|
|
|
|
|
|
|
|
|
| 参数 | 类型 | 描述 | |
|
|
| ------- | ------- | ---------------------------------------------- | |
|
|
| `q` | string | 搜索关键词 | |
|
|
| `type` | string | 资源类型:`servers`, `users`, `groups`, `logs` | |
|
|
| `limit` | integer | 每种类型的最大结果数 | |
|
|
|
|
|
|
|
|
|
|
|
```json |
|
|
{ |
|
|
"success": true, |
|
|
"data": { |
|
|
"query": "python", |
|
|
"results": { |
|
|
"servers": [ |
|
|
{ |
|
|
"id": "server-1", |
|
|
"name": "Python MCP Server", |
|
|
"type": "server", |
|
|
"relevance": 0.95 |
|
|
} |
|
|
], |
|
|
"users": [], |
|
|
"groups": [ |
|
|
{ |
|
|
"id": "python-devs", |
|
|
"name": "Python 开发者", |
|
|
"type": "group", |
|
|
"relevance": 0.8 |
|
|
} |
|
|
], |
|
|
"logs": [ |
|
|
{ |
|
|
"id": "log-123", |
|
|
"message": "Starting Python server...", |
|
|
"type": "log", |
|
|
"relevance": 0.7 |
|
|
} |
|
|
] |
|
|
}, |
|
|
"total": 3 |
|
|
} |
|
|
} |
|
|
``` |
|
|
|
|
|
有关更多信息,请参阅 [创建资源](/zh/api-reference/endpoint/create)、[删除资源](/zh/api-reference/endpoint/delete) 和 [WebHooks](/zh/api-reference/endpoint/webhook) 文档。 |
|
|
|