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 []; } }