Skip to main content
Glama

Bitbucket MCP Server

by Korfu
getRepositoryDetails.ts2.9 kB
import { AxiosInstance } from 'axios'; import { BitbucketPaginatedResponse, BitbucketRepository, BitbucketCommit, Config, } from '../../types'; export const getRepositoryDetailsTool = { name: 'get_repository_details', description: 'Get detailed information about a specific repository including latest commit info', inputSchema: { type: 'object', properties: { repository_name: { type: 'string', description: 'Name of the repository (repo slug)', }, }, required: ['repository_name'], }, }; export async function getRepositoryDetails( axiosInstance: AxiosInstance, config: Config, args: any ): Promise<{ content: Array<{ type: string; text: string }> }> { try { const repositoryName = args?.repository_name; if (!repositoryName) { throw new Error('Repository name is required'); } console.error(`Fetching details for repository: ${repositoryName}`); // Fetch repository info and latest commit in parallel const [repoResponse, commitResponse] = await Promise.all([ axiosInstance.get<BitbucketRepository>( `/repositories/${config.BITBUCKET_WORKSPACE}/${repositoryName}` ), axiosInstance.get<BitbucketPaginatedResponse<BitbucketCommit>>( `/repositories/${config.BITBUCKET_WORKSPACE}/${repositoryName}/commits`, { params: { pagelen: 1, }, } ), ]); const repo = repoResponse.data; const latestCommit = commitResponse.data.values[0]; const totalCommits = commitResponse.data.size || 0; const details = `**Repository Details: ${repo.name}** **Basic Information:** - Full Name: ${repo.full_name} - Description: ${repo.description || 'No description'} - Language: ${repo.language || 'Not specified'} - Size: ${(repo.size / 1024).toFixed(2)} KB - Private: ${repo.is_private ? 'Yes' : 'No'} - Created: ${new Date(repo.created_on).toLocaleString()} - Last Updated: ${new Date(repo.updated_on).toLocaleString()} - URL: ${repo.links.html.href} **Commit Information:** - Total Commits: ${totalCommits} - Latest Commit Date: ${ latestCommit ? new Date(latestCommit.date).toLocaleString() : 'No commits' } - Latest Commit Hash: ${latestCommit?.hash || 'N/A'} - Latest Commit Author: ${ latestCommit?.author?.user?.display_name || latestCommit?.author?.raw || 'N/A' } - Latest Commit Message: ${latestCommit?.message || 'N/A'}`; return { content: [ { type: 'text', text: details, }, ], }; } catch (error) { console.error('Error fetching repository details:', error); return { content: [ { type: 'text', text: `Error fetching repository details: ${ error instanceof Error ? error.message : 'Unknown error' }`, }, ], }; } }

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/Korfu/mcp-bitbucket'

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