list_apis
Retrieve available APIs from Eolink OpenAPI for a specific project and space to enable API integration and management in Windsurf IDE.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | No | Project ID | |
| spaceId | No | Space ID |
Implementation Reference
- src/services/mcpServer.ts:79-87 (handler)Handler function for the list_apis tool that fetches APIs using getApis helper and returns formatted JSON response.async ({ projectId, spaceId }) => { const apis = await this.getApis(projectId, spaceId ); return { content: [{ type: "text", text: JSON.stringify({ apis }, null, 2) }] }; }
- src/services/mcpServer.ts:78-78 (schema)Zod input schema defining optional projectId and spaceId parameters for the list_apis tool.{ projectId: z.string().optional().describe("Project ID") , spaceId: z.string().optional().describe("Space ID") },
- src/services/mcpServer.ts:76-88 (registration)Registration of the list_apis MCP tool including name, schema, and inline handler function.this.server.tool( "list_apis", { projectId: z.string().optional().describe("Project ID") , spaceId: z.string().optional().describe("Space ID") }, async ({ projectId, spaceId }) => { const apis = await this.getApis(projectId, spaceId ); return { content: [{ type: "text", text: JSON.stringify({ apis }, null, 2) }] }; } );
- src/services/mcpServer.ts:255-266 (helper)Caching helper method getApis that calls eolinkService.getApis and stores results in this.apis cache.private async getApis(projectId: string='FuP13lBce885f9b8437ad8346d3b8576eaf134272a61f7d', spaceId?: string): Promise<Api[]> { // Check cache first if (!this.apis[projectId]) { try { this.apis[projectId] = await eolinkService.getApis(projectId, spaceId); console.log(`Loaded ${this.apis[projectId].length} APIs for project ${projectId}`); } catch (error) { console.error(`Error loading APIs for project ${projectId}:`, error); } } return this.apis[projectId]; }
- src/services/eolinkService.ts:60-77 (helper)Core helper implementation of getApis that performs HTTP GET request to Eolink's API management endpoint to list APIs.async getApis(projectId: string=this.projectId, spaceId: string=this.spaceId): Promise<Api[]> { try { let url = `${this.baseUrl}/v3/api-management/apis?project_id=${projectId}&page=1&size=999`; // Add space_id parameter if provided if (spaceId) { url += `&space_id=${spaceId}`; } const response = await axios.get(url, { headers: this.getHeaders(), }); return response.data.data.items || []; } catch (error) { console.error(`Error fetching APIs for project ${projectId}:`, error); return []; } }