list_projects
Retrieve all API projects from Eolink OpenAPI to manage and integrate APIs within Windsurf IDE development workflows.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- src/services/mcpServer.ts:49-60 (registration)Registration of the 'list_projects' tool, including inline schema (empty object, no params) and handler function that fetches projects and returns as JSON text."list_projects", {}, // No parameters async () => { const projects = await this.getProjects(); return { content: [{ type: "text", text: JSON.stringify({ projects }, null, 2) }] }; } );
- src/services/mcpServer.ts:51-59 (handler)Inline handler function for list_projects tool: calls this.getProjects() and formats projects as JSON text response.async () => { const projects = await this.getProjects(); return { content: [{ type: "text", text: JSON.stringify({ projects }, null, 2) }] }; }
- src/models/api.ts:6-12 (schema)TypeScript interface Project defining the structure of project objects returned by list_projects.export interface Project { id: string; name: string; description?: string; createdAt: string; updatedAt: string; }
- src/services/mcpServer.ts:244-250 (helper)Helper method providing cached access to projects list, refreshing cache if empty.private async getProjects(): Promise<Project[]> { // Refresh projects if needed if (this.projects.length === 0) { await this.loadProjects(); } return this.projects; }
- src/services/eolinkService.ts:28-38 (helper)Core helper that performs the HTTP request to Eolink API endpoint /projects to fetch the list of projects.async getProjects(): Promise<Project[]> { try { const response = await axios.get(`${this.baseUrl}/projects`, { headers: this.getHeaders(), }); return response.data.data || []; } catch (error) { console.error('Error fetching projects:', error); return []; } }