Skip to main content
Glama

show_build_set_ws

Display Xcode project build settings by specifying workspace path and scheme using xcodebuild to configure development environments.

Instructions

Shows build settings from a workspace using xcodebuild. IMPORTANT: Requires workspacePath and scheme. Example: show_build_set_ws({ workspacePath: '/path/to/MyProject.xcworkspace', scheme: 'MyScheme' })

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
workspacePathYesPath to the .xcworkspace file (Required)
schemeYesThe scheme to use (Required)

Implementation Reference

  • Core handler logic shared by workspace and project tools. Executes `xcodebuild -showBuildSettings` with appropriate flags and formats the response.
    async function _handleShowBuildSettingsLogic(params: {
      workspacePath?: string;
      projectPath?: string;
      scheme: string;
    }): Promise<ToolResponse> {
      log('info', `Showing build settings for scheme ${params.scheme}`);
    
      try {
        // Create the command array for xcodebuild
        const command = ['xcodebuild', '-showBuildSettings']; // -showBuildSettings as an option, not an action
    
        // Add the workspace or project
        if (params.workspacePath) {
          command.push('-workspace', params.workspacePath);
        } else if (params.projectPath) {
          command.push('-project', params.projectPath);
        }
    
        // Add the scheme
        command.push('-scheme', params.scheme);
    
        // Execute the command directly
        const result = await executeCommand(command, 'Show Build Settings');
    
        if (!result.success) {
          return createTextResponse(`Failed to show build settings: ${result.error}`, true);
        }
    
        return {
          content: [
            {
              type: 'text',
              text: `✅ Build settings for scheme ${params.scheme}:`,
            },
            {
              type: 'text',
              text: result.output || 'Build settings retrieved successfully.',
            },
          ],
        };
      } catch (error) {
        const errorMessage = error instanceof Error ? error.message : String(error);
        log('error', `Error showing build settings: ${errorMessage}`);
        return createTextResponse(`Error showing build settings: ${errorMessage}`, true);
      }
    }
  • Registers the 'show_build_set_ws' tool on the MCP server, including input schema, description, and handler wrapper with validation.
    export function registerShowBuildSettingsWorkspaceTool(server: McpServer): void {
      registerTool<BaseWorkspaceParams>(
        server,
        'show_build_set_ws',
        "Shows build settings from a workspace using xcodebuild. IMPORTANT: Requires workspacePath and scheme. Example: show_build_set_ws({ workspacePath: '/path/to/MyProject.xcworkspace', scheme: 'MyScheme' })",
        {
          workspacePath: workspacePathSchema,
          scheme: schemeSchema,
        },
        async (params: BaseWorkspaceParams) => {
          // Validate required parameters
          const workspaceValidation = validateRequiredParam('workspacePath', params.workspacePath);
          if (!workspaceValidation.isValid) return workspaceValidation.errorResponse!;
    
          const schemeValidation = validateRequiredParam('scheme', params.scheme);
          if (!schemeValidation.isValid) return schemeValidation.errorResponse!;
    
          return _handleShowBuildSettingsLogic(params);
        },
      );
    }
  • Input schema for the tool: workspacePath (string, required) and scheme (string, required).
      workspacePath: workspacePathSchema,
      scheme: schemeSchema,
    },
  • Entry in toolRegistrations array that conditionally registers the tool during server initialization.
      register: registerShowBuildSettingsWorkspaceTool,
      groups: [ToolGroup.PROJECT_DISCOVERY],
      envVar: 'XCODEBUILDMCP_TOOL_SHOW_BUILD_SETTINGS_WORKSPACE',
    },
  • Zod schema for the 'scheme' parameter used by the tool.
    export const schemeSchema = z.string().describe('The scheme to use (Required)');
  • Zod schema for the 'workspacePath' parameter used by the tool.
    export const workspacePathSchema = z.string().describe('Path to the .xcworkspace file (Required)');

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/SampsonKY/XcodeBuildMCP'

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