list_workflows
List GitHub repository workflows by specifying owner and repo. Supports pagination and custom results per page up to 100, ideal for managing GitHub Actions workflows.
Instructions
List workflows in a GitHub repository
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| owner | Yes | Repository owner (username or organization) | |
| page | No | Page number for pagination | |
| perPage | No | Results per page (max 100) | |
| repo | Yes | Repository name |
Implementation Reference
- src/operations/actions.ts:91-107 (handler)The main handler function that lists workflows in a GitHub repository by making a GitHub API request and parsing the response with WorkflowsSchema.export async function listWorkflows( owner: string, repo: string, page?: number, perPage?: number ) { owner = validateOwnerName(owner); repo = validateRepositoryName(repo); const url = buildUrl(`https://api.github.com/repos/${owner}/${repo}/actions/workflows`, { page: page, per_page: perPage }); const response = await githubRequest(url); return WorkflowsSchema.parse(response); }
- src/operations/actions.ts:17-22 (schema)Zod schema defining the input parameters (owner, repo, page, perPage) for the list_workflows tool.export const ListWorkflowsSchema = z.object({ owner: z.string().describe("Repository owner (username or organization)"), repo: z.string().describe("Repository name"), page: z.number().optional().describe("Page number for pagination"), perPage: z.number().optional().describe("Results per page (max 100)"), });
- src/index.ts:148-156 (registration)Registers the 'list_workflows' tool with the MCP server using server.tool(), providing the schema and an async handler that calls the actions.listWorkflows function."list_workflows", actions.ListWorkflowsSchema.shape, async (request: any) => { logToFile('[MCP Server Log] Received list_workflows request (via server.tool)'); // Args are already parsed by the McpServer using the provided schema const result = await actions.listWorkflows(request.owner, request.repo, request.page, request.perPage); return { content: [{ type: "text", text: JSON.stringify(result) }] }; } );