Skip to main content
Glama

Coolify MCP Server

by GoCoder7
documentation-unified.tsโ€ข3.53 kB
/** * Unified Coolify Documentation Tools * Consolidated MCP tools for accessing built-in documentation */ import { Tool } from '@modelcontextprotocol/sdk/types.js'; import { CoolifyApiClient } from '../utils/coolify-client'; /** * Unified Documentation Tool * Combines search, get, API reference, and troubleshooting into one tool */ export const documentationTool: Tool = { name: 'coolify_documentation', description: 'Access Coolify documentation: search docs, get topic info, API reference, or troubleshooting guides', inputSchema: { type: 'object', properties: { action: { type: 'string', enum: ['search', 'get', 'api', 'troubleshoot', 'topics', 'api_reference'], description: 'Action to perform: search docs, get topic docs, get API reference, get troubleshooting, list topics, or get API reference', }, query: { type: 'string', description: 'Search query, topic name, API endpoint, or issue description', }, category: { type: 'string', description: 'Optional category filter (api, guide, configuration, troubleshooting)', }, limit: { type: 'number', description: 'Maximum number of results to return', default: 10, minimum: 1, maximum: 50, }, }, required: ['action', 'query'], }, }; export async function handleDocumentation( coolifyClient: CoolifyApiClient, args: any ): Promise<any> { try { const { action, query, category, limit } = args; let result; let message; switch (action) { case 'search': result = await coolifyClient.searchDocumentation(query, category, limit || 10); message = `Found ${result.entries.length} documentation entries for "${query}"`; break; case 'get': result = await coolifyClient.getDocumentation(query, category); message = `Found ${result.length} documentation entries for topic "${query}"`; break; case 'api': result = await coolifyClient.getApiReference(query); message = query ? `API documentation for endpoint "${query}"` : 'Complete Coolify API reference documentation'; break; case 'troubleshoot': result = await coolifyClient.getTroubleshooting(query); message = `Found ${result.length} troubleshooting guides for "${query}"`; break; case 'topics': result = await coolifyClient.getDocumentationTopics(); message = `Available documentation topics`; break; case 'api_reference': result = await coolifyClient.getApiReference(query); message = query ? `API reference for "${query}"` : 'Complete Coolify API reference'; break; default: throw new Error(`Unknown documentation action: ${action}`); } return { content: [ { type: 'text', text: JSON.stringify({ success: true, data: result, message: message }, null, 2) } ] }; } catch (error) { return { content: [ { type: 'text', text: JSON.stringify({ success: false, error: error instanceof Error ? error.message : 'Unknown error occurred' }, null, 2) } ], isError: true }; } } // Export unified tools export const documentationTools = [documentationTool];

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/GoCoder7/coolify-mcp-server'

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