coolify_teams
Manage Coolify teams by listing teams, viewing current team details, retrieving specific team information, and listing team members through structured actions.
Instructions
Complete team management - list teams, get current team, get team details, and list team members
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action to perform: list (list all teams), current (get current team), get (get specific team), members (list team members) | |
| team_id | No | Team ID (required for get and members actions, optional for others) |
Implementation Reference
- src/handlers.ts:32-51 (handler)The core handler function implementing 'coolify_teams' tool logic. Handles actions: list (GET /teams), current (GET /teams/current), get (GET /teams/{teamId}), members (GET /teams/{teamId}/members or current). Returns JSON-formatted API responses.async teams(action: string, teamId?: string) { switch (action) { case 'list': const response = await this.apiClient.get('/teams'); return { content: [{ type: 'text', text: JSON.stringify(response.data, null, 2) }] }; case 'current': const currentResponse = await this.apiClient.get('/teams/current'); return { content: [{ type: 'text', text: JSON.stringify(currentResponse.data, null, 2) }] }; case 'get': if (!teamId) throw new Error('Team ID is required for get action'); const getResponse = await this.apiClient.get(`/teams/${teamId}`); return { content: [{ type: 'text', text: JSON.stringify(getResponse.data, null, 2) }] }; case 'members': const endpoint = teamId ? `/teams/${teamId}/members` : '/teams/current/members'; const membersResponse = await this.apiClient.get(endpoint); return { content: [{ type: 'text', text: JSON.stringify(membersResponse.data, null, 2) }] }; default: throw new Error(`Unknown teams action: ${action}`); } }
- src/tools.ts:23-40 (schema)Tool definition including name, description, and input schema for validating parameters (action enum and optional team_id).name: 'coolify_teams', description: 'Complete team management - list teams, get current team, get team details, and list team members', inputSchema: { type: 'object', properties: { action: { type: 'string', enum: ['list', 'current', 'get', 'members'], description: 'Action to perform: list (list all teams), current (get current team), get (get specific team), members (list team members)' }, team_id: { type: 'string', description: 'Team ID (required for get and members actions, optional for others)' }, }, required: ['action'], }, },
- src/index.ts:92-93 (registration)Tool call dispatcher in handleToolCall switch statement that routes 'coolify_teams' invocations to the teams handler.case 'coolify_teams': return await this.handlers.teams(args.action, args.team_id);
- src/index.ts:60-64 (registration)Registers all tools (including coolify_teams) for listTools request by returning getTools() array.this.server.setRequestHandler(ListToolsRequestSchema, async () => { return { tools: getTools(), }; });