@zhanglc77/bitbucket-mcp-server 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/CHANGELOG.md +280 -0
  2. package/LICENSE +21 -0
  3. package/README.md +1090 -0
  4. package/build/handlers/branch-handlers.d.ts +55 -0
  5. package/build/handlers/branch-handlers.d.ts.map +1 -0
  6. package/build/handlers/branch-handlers.js +522 -0
  7. package/build/handlers/branch-handlers.js.map +1 -0
  8. package/build/handlers/file-handlers.d.ts +33 -0
  9. package/build/handlers/file-handlers.d.ts.map +1 -0
  10. package/build/handlers/file-handlers.js +308 -0
  11. package/build/handlers/file-handlers.js.map +1 -0
  12. package/build/handlers/pull-request-handlers.d.ts +101 -0
  13. package/build/handlers/pull-request-handlers.d.ts.map +1 -0
  14. package/build/handlers/pull-request-handlers.js +955 -0
  15. package/build/handlers/pull-request-handlers.js.map +1 -0
  16. package/build/handlers/review-handlers.d.ts +67 -0
  17. package/build/handlers/review-handlers.d.ts.map +1 -0
  18. package/build/handlers/review-handlers.js +252 -0
  19. package/build/handlers/review-handlers.js.map +1 -0
  20. package/build/handlers/search-handlers.d.ts +20 -0
  21. package/build/handlers/search-handlers.d.ts.map +1 -0
  22. package/build/handlers/search-handlers.js +151 -0
  23. package/build/handlers/search-handlers.js.map +1 -0
  24. package/build/index.d.ts +3 -0
  25. package/build/index.d.ts.map +1 -0
  26. package/build/index.js +120 -0
  27. package/build/index.js.map +1 -0
  28. package/build/tools/definitions.d.ts +1191 -0
  29. package/build/tools/definitions.d.ts.map +1 -0
  30. package/build/tools/definitions.js +655 -0
  31. package/build/tools/definitions.js.map +1 -0
  32. package/build/types/bitbucket.d.ts +483 -0
  33. package/build/types/bitbucket.d.ts.map +1 -0
  34. package/build/types/bitbucket.js +2 -0
  35. package/build/types/bitbucket.js.map +1 -0
  36. package/build/types/guards.d.ts +140 -0
  37. package/build/types/guards.d.ts.map +1 -0
  38. package/build/types/guards.js +140 -0
  39. package/build/types/guards.js.map +1 -0
  40. package/build/utils/api-client.d.ts +22 -0
  41. package/build/utils/api-client.d.ts.map +1 -0
  42. package/build/utils/api-client.js +111 -0
  43. package/build/utils/api-client.js.map +1 -0
  44. package/build/utils/diff-parser.d.ts +42 -0
  45. package/build/utils/diff-parser.d.ts.map +1 -0
  46. package/build/utils/diff-parser.js +165 -0
  47. package/build/utils/diff-parser.js.map +1 -0
  48. package/build/utils/formatters.d.ts +8 -0
  49. package/build/utils/formatters.d.ts.map +1 -0
  50. package/build/utils/formatters.js +207 -0
  51. package/build/utils/formatters.js.map +1 -0
  52. package/build/utils/suggestion-formatter.d.ts +6 -0
  53. package/build/utils/suggestion-formatter.d.ts.map +1 -0
  54. package/build/utils/suggestion-formatter.js +17 -0
  55. package/build/utils/suggestion-formatter.js.map +1 -0
  56. package/package.json +55 -0
package/build/index.js ADDED
@@ -0,0 +1,120 @@
1
+ #!/usr/bin/env node
2
+ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
3
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
4
+ import { CallToolRequestSchema, ErrorCode, ListToolsRequestSchema, McpError, } from '@modelcontextprotocol/sdk/types.js';
5
+ import { BitbucketApiClient } from './utils/api-client.js';
6
+ import { PullRequestHandlers } from './handlers/pull-request-handlers.js';
7
+ import { BranchHandlers } from './handlers/branch-handlers.js';
8
+ import { ReviewHandlers } from './handlers/review-handlers.js';
9
+ import { FileHandlers } from './handlers/file-handlers.js';
10
+ import { SearchHandlers } from './handlers/search-handlers.js';
11
+ import { toolDefinitions } from './tools/definitions.js';
12
+ // Get environment variables
13
+ const BITBUCKET_USERNAME = process.env.BITBUCKET_USERNAME;
14
+ const BITBUCKET_APP_PASSWORD = process.env.BITBUCKET_APP_PASSWORD;
15
+ const BITBUCKET_TOKEN = process.env.BITBUCKET_TOKEN; // For Bitbucket Server
16
+ const BITBUCKET_BASE_URL = process.env.BITBUCKET_BASE_URL || 'https://api.bitbucket.org/2.0';
17
+ // Check for either app password (Cloud) or token (Server)
18
+ if (!BITBUCKET_USERNAME || (!BITBUCKET_APP_PASSWORD && !BITBUCKET_TOKEN)) {
19
+ console.error('Error: BITBUCKET_USERNAME and either BITBUCKET_APP_PASSWORD (for Cloud) or BITBUCKET_TOKEN (for Server) are required');
20
+ console.error('Please set these in your MCP settings configuration');
21
+ process.exit(1);
22
+ }
23
+ class BitbucketMCPServer {
24
+ server;
25
+ apiClient;
26
+ pullRequestHandlers;
27
+ branchHandlers;
28
+ reviewHandlers;
29
+ fileHandlers;
30
+ searchHandlers;
31
+ constructor() {
32
+ this.server = new Server({
33
+ name: 'bitbucket-mcp-server',
34
+ version: '1.0.1',
35
+ }, {
36
+ capabilities: {
37
+ tools: {},
38
+ },
39
+ });
40
+ // Initialize API client
41
+ this.apiClient = new BitbucketApiClient(BITBUCKET_BASE_URL, BITBUCKET_USERNAME, BITBUCKET_APP_PASSWORD, BITBUCKET_TOKEN);
42
+ // Initialize handlers
43
+ this.pullRequestHandlers = new PullRequestHandlers(this.apiClient, BITBUCKET_BASE_URL, BITBUCKET_USERNAME);
44
+ this.branchHandlers = new BranchHandlers(this.apiClient, BITBUCKET_BASE_URL);
45
+ this.reviewHandlers = new ReviewHandlers(this.apiClient, BITBUCKET_USERNAME);
46
+ this.fileHandlers = new FileHandlers(this.apiClient, BITBUCKET_BASE_URL);
47
+ this.searchHandlers = new SearchHandlers(this.apiClient, BITBUCKET_BASE_URL);
48
+ this.setupToolHandlers();
49
+ // Error handling
50
+ this.server.onerror = (error) => console.error('[MCP Error]', error);
51
+ process.on('SIGINT', async () => {
52
+ await this.server.close();
53
+ process.exit(0);
54
+ });
55
+ }
56
+ setupToolHandlers() {
57
+ // List available tools
58
+ this.server.setRequestHandler(ListToolsRequestSchema, async () => ({
59
+ tools: toolDefinitions,
60
+ }));
61
+ // Handle tool calls
62
+ this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
63
+ switch (request.params.name) {
64
+ // Pull Request tools
65
+ case 'get_pull_request':
66
+ return this.pullRequestHandlers.handleGetPullRequest(request.params.arguments);
67
+ case 'list_pull_requests':
68
+ return this.pullRequestHandlers.handleListPullRequests(request.params.arguments);
69
+ case 'create_pull_request':
70
+ return this.pullRequestHandlers.handleCreatePullRequest(request.params.arguments);
71
+ case 'update_pull_request':
72
+ return this.pullRequestHandlers.handleUpdatePullRequest(request.params.arguments);
73
+ case 'add_comment':
74
+ return this.pullRequestHandlers.handleAddComment(request.params.arguments);
75
+ case 'merge_pull_request':
76
+ return this.pullRequestHandlers.handleMergePullRequest(request.params.arguments);
77
+ case 'list_pr_commits':
78
+ return this.pullRequestHandlers.handleListPrCommits(request.params.arguments);
79
+ // Branch tools
80
+ case 'list_branches':
81
+ return this.branchHandlers.handleListBranches(request.params.arguments);
82
+ case 'delete_branch':
83
+ return this.branchHandlers.handleDeleteBranch(request.params.arguments);
84
+ case 'get_branch':
85
+ return this.branchHandlers.handleGetBranch(request.params.arguments);
86
+ case 'list_branch_commits':
87
+ return this.branchHandlers.handleListBranchCommits(request.params.arguments);
88
+ // Code Review tools
89
+ case 'get_pull_request_diff':
90
+ return this.reviewHandlers.handleGetPullRequestDiff(request.params.arguments);
91
+ case 'approve_pull_request':
92
+ return this.reviewHandlers.handleApprovePullRequest(request.params.arguments);
93
+ case 'unapprove_pull_request':
94
+ return this.reviewHandlers.handleUnapprovePullRequest(request.params.arguments);
95
+ case 'request_changes':
96
+ return this.reviewHandlers.handleRequestChanges(request.params.arguments);
97
+ case 'remove_requested_changes':
98
+ return this.reviewHandlers.handleRemoveRequestedChanges(request.params.arguments);
99
+ // File tools
100
+ case 'list_directory_content':
101
+ return this.fileHandlers.handleListDirectoryContent(request.params.arguments);
102
+ case 'get_file_content':
103
+ return this.fileHandlers.handleGetFileContent(request.params.arguments);
104
+ // Search tools
105
+ case 'search_code':
106
+ return this.searchHandlers.handleSearchCode(request.params.arguments);
107
+ default:
108
+ throw new McpError(ErrorCode.MethodNotFound, `Unknown tool: ${request.params.name}`);
109
+ }
110
+ });
111
+ }
112
+ async run() {
113
+ const transport = new StdioServerTransport();
114
+ await this.server.connect(transport);
115
+ console.error(`Bitbucket MCP server running on stdio (${this.apiClient.getIsServer() ? 'Server' : 'Cloud'} mode)`);
116
+ }
117
+ }
118
+ const server = new BitbucketMCPServer();
119
+ server.run().catch(console.error);
120
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}