Skip to main content
Glama
ddukbg

GitHub Enterprise MCP Server

list-workflows

Retrieve and manage GitHub Enterprise repository workflows by specifying the owner, repository, page number, and items per page to streamline workflow management and monitoring.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
ownerYesRepository owner
pageNoPage number
perPageNoItems per page
repoYesRepository name

Implementation Reference

  • MCP tool handler for 'list-workflows': validates parameters, calls ActionsAPI.listWorkflows, formats results with formatWorkflow, returns formatted list or error
    async ({ owner, repo, page, perPage }) => { 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." } ] }; } const response = await context.actions.listWorkflows(owner, repo, page, perPage); if (!response.workflows || response.workflows.length === 0) { return { content: [ { type: "text", text: `No workflows found in repository '${owner}/${repo}'.` } ] }; } const formattedWorkflows = response.workflows.map(formatWorkflow); return { content: [ { type: "text", text: `Workflows in repository '${owner}/${repo}' (${response.total_count}):\n\n${JSON.stringify(formattedWorkflows, null, 2)}` } ] }; } catch (error: any) { return { content: [ { type: "text", text: `Error listing workflows: ${error.message}` } ] }; } }
  • Registration of the 'list-workflows' MCP tool with Zod input schema (owner, repo, optional page/perPage)
    server.tool( "list-workflows", { owner: z.string().min(1).describe("Repository owner"), repo: z.string().min(1).describe("Repository name"), page: z.number().int().positive().optional().describe("Page number"), perPage: z.number().int().positive().optional().describe("Items per page") },
  • Core implementation: ActionsAPI.listWorkflows method that fetches workflows from GitHub API using GitHubClient
    async listWorkflows(owner: string, repo: string, page = 1, perPage = 30): Promise<GitHubWorkflowListResponse> { return this.client.get<GitHubWorkflowListResponse>(`repos/${owner}/${repo}/actions/workflows`, { params: { page, per_page: perPage } }); }
  • formatWorkflow helper: formats individual workflow objects for user-friendly output
    function formatWorkflow(workflow: any) { return { id: workflow.id, name: workflow.name, path: workflow.path, state: workflow.state, created_at: workflow.created_at, updated_at: workflow.updated_at, url: workflow.html_url, badge_url: workflow.badge_url }; }
  • TypeScript interface for the workflow list response from GitHub API
    export interface GitHubWorkflowListResponse { total_count: number; workflows: GitHubWorkflow[]; }

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