Skip to main content
Glama

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
NameRequiredDescriptionDefault
projectIdNoProject ID
spaceIdNoSpace ID

Implementation Reference

  • 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) 
        }]
      };
    }
  • 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") },
  • 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) 
          }]
        };
      }
    );
  • 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];
    }
  • 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 [];
      }
    }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/scarqin/mcp-apikit'

If you have feedback or need assistance with the MCP directory API, please join our Discord server