@aashari/mcp-server-atlassian-bitbucket
Version:
Node.js/TypeScript MCP server for Atlassian Bitbucket. Enables AI systems (LLMs) to interact with workspaces, repositories, and pull requests via tools (list, get, comment, search). Connects AI directly to version control workflows through the standard MC
104 lines (103 loc) • 4.82 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const atlassian_pullrequests_list_controller_js_1 = __importDefault(require("./atlassian.pullrequests.list.controller.js"));
const atlassian_pullrequests_get_controller_js_1 = __importDefault(require("./atlassian.pullrequests.get.controller.js"));
const atlassian_pullrequests_comments_controller_js_1 = __importDefault(require("./atlassian.pullrequests.comments.controller.js"));
const atlassian_pullrequests_create_controller_js_1 = __importDefault(require("./atlassian.pullrequests.create.controller.js"));
const atlassian_pullrequests_update_controller_js_1 = __importDefault(require("./atlassian.pullrequests.update.controller.js"));
const atlassian_pullrequests_approve_controller_js_1 = __importDefault(require("./atlassian.pullrequests.approve.controller.js"));
const atlassian_pullrequests_reject_controller_js_1 = __importDefault(require("./atlassian.pullrequests.reject.controller.js"));
/**
* Controller for managing Bitbucket pull requests.
* Provides functionality for listing, retrieving, and creating pull requests and comments.
*
* NOTE ON MARKDOWN HANDLING:
* Unlike Jira (which uses ADF) or Confluence (which uses a mix of formats),
* Bitbucket Cloud API natively accepts Markdown for text content in both directions:
* - When sending data TO the API (comments, PR descriptions)
* - When receiving data FROM the API (PR descriptions, comments)
*
* The API expects content in the format: { content: { raw: "markdown-text" } }
*
* We use optimizeBitbucketMarkdown() to address specific rendering quirks in
* Bitbucket's markdown renderer but it does NOT perform format conversion.
* See formatter.util.ts for details on the specific issues it addresses.
*/
/**
* List Bitbucket pull requests with optional filtering options
* @param options - Options for listing pull requests including workspace slug and repo slug
* @returns Promise with formatted pull requests list content and pagination information
*/
async function list(options) {
return atlassian_pullrequests_list_controller_js_1.default.list(options);
}
/**
* Get detailed information about a specific Bitbucket pull request
* @param options - Options including workspace slug, repo slug, and pull request ID
* @returns Promise with formatted pull request details as Markdown content
*/
async function get(options) {
return atlassian_pullrequests_get_controller_js_1.default.get(options);
}
/**
* List comments on a Bitbucket pull request
* @param options - Options including workspace slug, repo slug, and pull request ID
* @returns Promise with formatted pull request comments as Markdown content
*/
async function listComments(options) {
return atlassian_pullrequests_comments_controller_js_1.default.listComments(options);
}
/**
* Add a comment to a Bitbucket pull request
* @param options - Options including workspace slug, repo slug, PR ID, and comment content
* @returns Promise with a success message as content
*/
async function addComment(options) {
return atlassian_pullrequests_comments_controller_js_1.default.addComment(options);
}
/**
* Create a new pull request in Bitbucket
* @param options - Options including workspace slug, repo slug, source branch, target branch, title, etc.
* @returns Promise with formatted pull request details as Markdown content
*/
async function add(options) {
return atlassian_pullrequests_create_controller_js_1.default.add(options);
}
/**
* Update an existing pull request in Bitbucket
* @param options - Options including workspace slug, repo slug, pull request ID, title, and description
* @returns Promise with formatted updated pull request details as Markdown content
*/
async function update(options) {
return atlassian_pullrequests_update_controller_js_1.default.update(options);
}
/**
* Approve a pull request in Bitbucket
* @param options - Options including workspace slug, repo slug, and pull request ID
* @returns Promise with formatted approval confirmation as Markdown content
*/
async function approve(options) {
return atlassian_pullrequests_approve_controller_js_1.default.approve(options);
}
/**
* Request changes on a pull request in Bitbucket
* @param options - Options including workspace slug, repo slug, and pull request ID
* @returns Promise with formatted rejection confirmation as Markdown content
*/
async function reject(options) {
return atlassian_pullrequests_reject_controller_js_1.default.reject(options);
}
// Export the controller functions
exports.default = {
list,
get,
listComments,
addComment,
add,
update,
approve,
reject,
};