Skip to main content
Glama
ddukbg

GitHub Enterprise MCP Server

list-branches

Retrieve branch details from GitHub Enterprise repositories, including protected branches, with pagination support for efficient repository management.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
ownerYesUser or organization name
pageNoPage number
perPageNoItems per page
protected_onlyNoWhether to show only protected branches
repoYesRepository name

Implementation Reference

  • Full MCP tool definition including registration, input schema with Zod, handler logic with parameter validation, API call to list branches, formatting, and error handling.
    server.tool("list-branches", { owner: z.string().describe("저장소 소유자 (사용자 또는 조직)"), repo: z.string().describe("저장소 이름"), protected_only: z.boolean().default(false).describe("보호된 브랜치만 표시할지 여부"), page: z.number().default(1).describe("페이지 번호"), perPage: z.number().default(30).describe("페이지당 항목 수") }, async ({ owner, repo, protected_only, page, perPage }) => { try { // 매개변수 검증 if (!owner || typeof owner !== 'string' || owner.trim() === '') { return { content: [ { type: "text", text: "오류: 저장소 소유자(owner)는 필수 항목입니다." } ], isError: true }; } if (!repo || typeof repo !== 'string' || repo.trim() === '') { return { content: [ { type: "text", text: "오류: 저장소 이름(repo)은 필수 항목입니다." } ], isError: true }; } const branches = await context.repository.listBranches(owner, repo, protected_only, page, perPage); // 브랜치가 없는 경우 if (!branches || branches.length === 0) { return { content: [ { type: "text", text: `저장소 '${owner}/${repo}'에 브랜치가 없습니다.` } ] }; } // 브랜치 정보 형식화 const formattedBranches = branches.map(formatBranch); return { content: [ { type: "text", text: `저장소 '${owner}/${repo}'의 브랜치 목록 (${branches.length}개)${protected_only ? ' (보호된 브랜치만)' : ''}:\n\n${JSON.stringify(formattedBranches, null, 2)}` } ] }; } catch (error) { console.error('브랜치 목록 조회 오류:', error); return { content: [ { type: "text", text: `브랜치 목록 조회 중 오류가 발생했습니다: ${error.message}` } ], isError: true }; } });
  • Helper function used by the list-branches handler to format raw branch data into a user-friendly structure.
    function formatBranch(branch) { return { name: branch.name, commit: { sha: branch.commit.sha }, protected: branch.protected }; }
  • RepositoryAPI method invoked by the tool handler to fetch branch list from GitHub API.
    async listBranches(owner, repo, protected_only = false, page = 1, perPage = 30) { return this.client.get(`repos/${owner}/${repo}/branches`, { params: { protected: protected_only, page, per_page: perPage } }); }
  • Zod schema defining input parameters for the list-branches tool.
    server.tool("list-branches", { owner: z.string().describe("저장소 소유자 (사용자 또는 조직)"), repo: z.string().describe("저장소 이름"), protected_only: z.boolean().default(false).describe("보호된 브랜치만 표시할지 여부"), page: z.number().default(1).describe("페이지 번호"), perPage: z.number().default(30).describe("페이지당 항목 수") }, async ({ owner, repo, protected_only, page, perPage }) => {

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