(mcpId: number)
| 281 | * Get tool list from remote MCP server by ID |
| 282 | */ |
| 283 | export const getMcpTools = async (mcpId: number) => { |
| 284 | try { |
| 285 | const query = new URLSearchParams(); |
| 286 | query.set('mcp_id', mcpId.toString()); |
| 287 | const response = await fetch( |
| 288 | `${API_ENDPOINTS.mcp.tools}?${query.toString()}`, |
| 289 | { |
| 290 | method: 'GET', |
| 291 | headers: getAuthHeaders(), |
| 292 | } |
| 293 | ); |
| 294 | |
| 295 | const data = await response.json(); |
| 296 | |
| 297 | if (response.ok && data.status === 'success') { |
| 298 | return { |
| 299 | success: true, |
| 300 | data: data.tools || [], |
| 301 | message: '' |
| 302 | }; |
| 303 | } else { |
| 304 | let errorMessage = data.detail || data.message || t('mcpService.message.getToolsFailed'); |
| 305 | |
| 306 | switch (response.status) { |
| 307 | case 500: |
| 308 | errorMessage = t('mcpService.message.getToolsFromServerFailed'); |
| 309 | break; |
| 310 | case 503: |
| 311 | errorMessage = t('mcpService.message.cannotConnectToServer'); |
| 312 | break; |
| 313 | case 404: |
| 314 | errorMessage = t('mcpService.message.mcpServerNotFound'); |
| 315 | break; |
| 316 | default: |
| 317 | errorMessage = data.detail || data.message || t('mcpService.message.getToolsFailed'); |
| 318 | } |
| 319 | |
| 320 | return { |
| 321 | success: false, |
| 322 | data: [], |
| 323 | message: errorMessage |
| 324 | }; |
| 325 | } |
| 326 | } catch (error) { |
| 327 | log.error(t('mcpService.debug.getToolsFailed'), error); |
| 328 | return { |
| 329 | success: false, |
| 330 | data: [], |
| 331 | message: t('mcpService.message.networkError') |
| 332 | }; |
| 333 | } |
| 334 | }; |
| 335 | |
| 336 | /** |
| 337 | * Update tool list and status |
no test coverage detected