list_apis
Retrieve and list available APIs within a specified project and space using the MCP-APIKit server to streamline 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:76-88 (registration)Registration of the list_apis MCP tool, including Zod input schema for optional projectId/spaceId and inline handler that fetches APIs via getApis and returns as JSON text content.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)Helper method in Server class providing caching for APIs by projectId, delegating fetch to eolinkService.getApis.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 API fetching logic using axios to query Eolink's REST API for APIs in a project/space, handling pagination with size=999.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 []; } }
- src/models/api.ts:15-28 (schema)TypeScript interface defining the structure of individual Api objects returned in the list_apis tool response.export interface Api { id: string; name: string; projectId: string; path: string; method: HttpMethod; description?: string; requestHeaders?: Header[]; requestParams?: Parameter[]; requestBody?: RequestBody; responses?: Response[]; createdAt: string; updatedAt: string; }