Skip to main content
Glama
mako10k

Web Proxy MCP Server

by mako10k

ssl_list_cas

Retrieve available Certificate Authorities to configure SSL/TLS certificates for secure proxy connections and traffic monitoring.

Instructions

List all available Certificate Authorities

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Implementation Reference

  • MCP tool handler for 'ssl_list_cas' that invokes SSLManager.listCAs() and formats the list of CAs as a formatted text response.
    case 'ssl_list_cas':
      const cas = await this.sslManager.listCAs();
      const caList = cas.map(ca => 
        `• ${ca.name} ${ca.current ? '(current)' : ''} - ${ca.exists ? '✅ Available' : '❌ Missing'}\n  Created: ${ca.created || 'Unknown'}\n  Description: ${ca.description || 'No description'}`
      ).join('\n\n');
      
      return {
        content: [{
          type: "text",
          text: `🔒 Available Certificate Authorities\n\n${caList || 'No CAs found'}`
        }]
      };
  • Core implementation of listing Certificate Authorities: scans ~/.ca directory for CA subdirectories, loads metadata, checks for ca.crt existence, and returns structured CA information.
    async listCAs() {
      try {
        await fs.access(this.caBaseDir);
        const entries = await fs.readdir(this.caBaseDir, { withFileTypes: true });
        const cas = [];
    
        for (const entry of entries) {
          if (entry.isDirectory()) {
            const caDir = path.join(this.caBaseDir, entry.name);
            const metadataPath = path.join(caDir, 'metadata.json');
            
            let metadata = { name: entry.name, created: null, description: null };
            try {
              const metadataContent = await fs.readFile(metadataPath, 'utf-8');
              metadata = { ...metadata, ...JSON.parse(metadataContent) };
            } catch (error) {
              // Metadata file doesn't exist or is corrupted
            }
    
            const caExists = await fs.access(path.join(caDir, 'ca.crt')).then(() => true).catch(() => false);
            
            cas.push({
              name: entry.name,
              path: caDir,
              exists: caExists,
              current: entry.name === this.currentCA,
              ...metadata
            });
          }
        }
    
        return cas;
      } catch (error) {
        return [];
      }
    }
  • Tool schema definition including name, description, and empty input schema (no parameters required).
    ssl_list_cas: {
      name: "ssl_list_cas",
      description: "List all available Certificate Authorities",
      inputSchema: {
        type: "object",
        properties: {}
      }
    },

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/mako10k/mcp-web-proxy'

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