trigger_workflow
Trigger a GitHub Actions workflow run by specifying the repository owner, repo name, workflow ID, and ref (branch, tag, or SHA). Supports custom input parameters for the workflow.
Instructions
Trigger a workflow run
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| inputs | No | Input parameters for the workflow | |
| owner | Yes | Repository owner (username or organization) | |
| ref | Yes | The reference of the workflow run (branch, tag, or SHA) | |
| repo | Yes | Repository name | |
| workflowId | Yes | The ID of the workflow or filename |
Implementation Reference
- src/operations/actions.ts:217-245 (handler)The main handler function that executes the tool logic by validating inputs, constructing the GitHub API dispatch URL, and sending a POST request to trigger the workflow, returning a success message.export async function triggerWorkflow( owner: string, repo: string, workflowId: string | number, ref: string, inputs?: Record<string, string> ) { owner = validateOwnerName(owner); repo = validateRepositoryName(repo); const url = `https://api.github.com/repos/${owner}/${repo}/actions/workflows/${workflowId}/dispatches`; const body: { ref: string; inputs?: Record<string, string>; } = { ref }; if (inputs && Object.keys(inputs).length > 0) { body.inputs = inputs; } await githubRequest(url, { method: 'POST', body }); // This endpoint doesn't return any data on success return { success: true, message: `Workflow ${workflowId} triggered on ${ref}` }; }
- src/operations/actions.ts:68-74 (schema)Zod schema defining the input parameters for the trigger_workflow tool, used for validation.export const TriggerWorkflowSchema = z.object({ owner: z.string().describe("Repository owner (username or organization)"), repo: z.string().describe("Repository name"), workflowId: z.string().describe("The ID of the workflow or filename (string or number)"), ref: z.string().describe("The reference of the workflow run (branch, tag, or SHA)"), inputs: z.record(z.string(), z.string()).optional().describe("Input parameters for the workflow"), });
- src/index.ts:206-214 (registration)Registers the 'trigger_workflow' tool with the MCP server, providing the schema and the handler invocation wrapped in the required response format.server.tool( "trigger_workflow", actions.TriggerWorkflowSchema.shape, async (request: any) => { const { owner, repo, workflowId, ref, inputs } = request; const result = await actions.triggerWorkflow(owner, repo, workflowId, ref, inputs); return { content: [{ type: "text", text: JSON.stringify(result) }] }; } );