cli / mcp for bitbucket
1import { getCommit, listCommits } from '@bitbucket-tool/core';
2import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
3import { getCommitSchema, listCommitsSchema } from '../schemas/commit.schemas';
4import { resolveWorkspace, resultToResponse } from './helpers';
5
6export const registerCommitTools = (server: McpServer): void => {
7 // @ts-expect-error TS2589: MCP SDK overload resolution + transitive generated types exceed TypeScript recursion limit
8 server.tool(
9 'list_commits',
10 'List recent commits in a repository. Returns commit hashes, messages, authors, and dates.',
11 listCommitsSchema,
12 { readOnlyHint: true },
13 async ({ workspace, repo_slug, page, pagelen }) => {
14 const w = resolveWorkspace(workspace);
15 return resultToResponse(
16 await listCommits({ workspace: w, repoSlug: repo_slug, page, pagelen })
17 );
18 }
19 );
20
21 server.tool(
22 'get_commit',
23 'Get details of a specific commit including message, author, date, and parent hashes.',
24 getCommitSchema,
25 { readOnlyHint: true },
26 async ({ workspace, repo_slug, commit }) => {
27 const w = resolveWorkspace(workspace);
28 return resultToResponse(await getCommit({ workspace: w, repoSlug: repo_slug, commit }));
29 }
30 );
31};