Skip to main content
Glama

getConfig

Read configuration files in JSON, YAML, TOML, or JSONC format and extract specific settings using dot notation paths for workspace configuration management.

Instructions

Read a configuration file (JSON/JSONC/YAML/TOML) and optionally extract a specific key

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
fileYesPath to the configuration file
keyNoOptional dot-separated key path (e.g., 'database.host')

Implementation Reference

  • Handler function for the 'getConfig' tool. Reads the configuration file using readConfigFile helper and optionally extracts a value at a dot-separated key path, returning the result as JSON string or error.
    async ({ file, key }: { file: string; key?: string }) => {
      try {
        const data = await readConfigFile(file);
        const value = key
          ? key.split(".").reduce((o: any, k: string) => (o ? o[k] : undefined), data)
          : data;
        return { content: [{ type: "text", text: JSON.stringify(value, null, 2) }] };
      } catch (error) {
        return { content: [{ type: "text", text: `Error reading config: ${error}` }], isError: true };
      }
    }
  • Zod input schema defining parameters for getConfig: 'file' (required path string) and 'key' (optional dot-separated path string).
    {
      file: z.string().describe("Path to the configuration file"),
      key: z.string().optional().describe("Optional dot-separated key path (e.g., 'database.host')"),
    },
  • src/index.ts:59-77 (registration)
    MCP tool registration for 'getConfig', including name, description, input schema, and inline handler implementation.
    mcp.tool(
      "getConfig",
      "Read a configuration file (JSON/JSONC/YAML/TOML) and optionally extract a specific key",
      {
        file: z.string().describe("Path to the configuration file"),
        key: z.string().optional().describe("Optional dot-separated key path (e.g., 'database.host')"),
      },
      async ({ file, key }: { file: string; key?: string }) => {
        try {
          const data = await readConfigFile(file);
          const value = key
            ? key.split(".").reduce((o: any, k: string) => (o ? o[k] : undefined), data)
            : data;
          return { content: [{ type: "text", text: JSON.stringify(value, null, 2) }] };
        } catch (error) {
          return { content: [{ type: "text", text: `Error reading config: ${error}` }], isError: true };
        }
      }
    );
  • Helper function that reads and parses configuration files in supported formats (JSON, JSONC, YAML/YML, TOML) by detecting the file extension and using appropriate parsers.
    export async function readConfigFile(file: string): Promise<any> {
      const fmt = detectFormat(file);
      const content = await fs.readFile(file, "utf8");
      switch (fmt) {
        case "yaml":
        case "yml":
          return parseYaml(content);
        case "toml":
          return TOML.parse(content);
        case "jsonc":
          return parseCommentJson(content);
        case "json":
        default:
          return JSON.parse(content);
      }
    }

Tool Definition Quality

Score is being calculated. Check back soon.

Install Server

Other Tools

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/cloud-aspect/Config-MCP-Server'

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