Skip to main content
Glama
ddukbg

GitHub Enterprise MCP Server

trigger-workflow

Manually trigger GitHub Actions workflows in GitHub Enterprise repositories by specifying repository details, workflow identifier, and branch reference.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
ownerYesRepository owner
repoYesRepository name
workflow_idYesWorkflow ID or file name
refYesGit reference (branch, tag, SHA)
inputsNoWorkflow inputs

Implementation Reference

  • Full MCP tool registration for 'trigger-workflow', including Zod input schema, handler function with validation and dispatch logic
    server.tool( "trigger-workflow", { owner: z.string().min(1).describe("Repository owner"), repo: z.string().min(1).describe("Repository name"), workflow_id: z.union([z.string(), z.number()]).describe("Workflow ID or file name"), ref: z.string().min(1).describe("Git reference (branch, tag, SHA)"), inputs: z.record(z.string()).optional().describe("Workflow inputs") }, async ({ owner, repo, workflow_id, ref, inputs }) => { try { // Parameter validation if (!owner || typeof owner !== 'string' || owner.trim() === '') { return { content: [ { type: "text", text: "Repository owner is required." } ] }; } if (!repo || typeof repo !== 'string' || repo.trim() === '') { return { content: [ { type: "text", text: "Repository name is required." } ] }; } if (!workflow_id) { return { content: [ { type: "text", text: "Workflow ID or filename is required." } ] }; } if (!ref || typeof ref !== 'string' || ref.trim() === '') { return { content: [ { type: "text", text: "Git reference (branch, tag, or SHA) is required." } ] }; } await context.actions.dispatchWorkflow(owner, repo, workflow_id, { ref, inputs }); return { content: [ { type: "text", text: `Successfully triggered workflow '${workflow_id}' in repository '${owner}/${repo}' on ref '${ref}'.` } ] }; } catch (error: any) { return { content: [ { type: "text", text: `Error triggering workflow: ${error.message}` } ] }; } } );
  • Core handler function dispatchWorkflow in ActionsAPI that performs the actual GitHub API POST to trigger workflow_dispatch
    * Trigger a workflow run (workflow_dispatch event) * @param owner Repository owner * @param repo Repository name * @param workflowId Workflow ID or file name * @param options Options for workflow dispatch */ async dispatchWorkflow(owner: string, repo: string, workflowId: number | string, options: WorkflowDispatchOptions): Promise<void> { await this.client.post(`repos/${owner}/${repo}/actions/workflows/${workflowId}/dispatches`, options); }
  • TypeScript interface defining the options structure for workflow dispatch, matching the tool's inputs (ref and optional inputs)
    export interface WorkflowDispatchOptions { ref: string; // The git reference for the workflow (branch, tag, HEAD) inputs?: Record<string, string>; // Input parameters defined in the workflow file

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/ddukbg/github-enterprise-mcp'

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