Files
mcphub/docs/zh/api-reference/endpoint/get.mdx
2025-06-01 00:17:09 +08:00

608 lines
14 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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"
# 搜索包含 "python" 的服务器
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) 文档。