@or2ooo/bitbucket-mcp 1.0.0

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 (47) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +154 -0
  3. package/dist/bitbucket/client.d.ts +20 -0
  4. package/dist/bitbucket/client.d.ts.map +1 -0
  5. package/dist/bitbucket/client.js +123 -0
  6. package/dist/bitbucket/client.js.map +1 -0
  7. package/dist/bitbucket/types.d.ts +221 -0
  8. package/dist/bitbucket/types.d.ts.map +1 -0
  9. package/dist/bitbucket/types.js +2 -0
  10. package/dist/bitbucket/types.js.map +1 -0
  11. package/dist/config.d.ts +11 -0
  12. package/dist/config.d.ts.map +1 -0
  13. package/dist/config.js +23 -0
  14. package/dist/config.js.map +1 -0
  15. package/dist/formatting.d.ts +21 -0
  16. package/dist/formatting.d.ts.map +1 -0
  17. package/dist/formatting.js +156 -0
  18. package/dist/formatting.js.map +1 -0
  19. package/dist/index.d.ts +3 -0
  20. package/dist/index.d.ts.map +1 -0
  21. package/dist/index.js +30 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/safety.d.ts +10 -0
  24. package/dist/safety.d.ts.map +1 -0
  25. package/dist/safety.js +43 -0
  26. package/dist/safety.js.map +1 -0
  27. package/dist/toolsets/context.d.ts +5 -0
  28. package/dist/toolsets/context.d.ts.map +1 -0
  29. package/dist/toolsets/context.js +45 -0
  30. package/dist/toolsets/context.js.map +1 -0
  31. package/dist/toolsets/issues.d.ts +5 -0
  32. package/dist/toolsets/issues.d.ts.map +1 -0
  33. package/dist/toolsets/issues.js +140 -0
  34. package/dist/toolsets/issues.js.map +1 -0
  35. package/dist/toolsets/pipelines.d.ts +5 -0
  36. package/dist/toolsets/pipelines.d.ts.map +1 -0
  37. package/dist/toolsets/pipelines.js +125 -0
  38. package/dist/toolsets/pipelines.js.map +1 -0
  39. package/dist/toolsets/pullRequests.d.ts +5 -0
  40. package/dist/toolsets/pullRequests.d.ts.map +1 -0
  41. package/dist/toolsets/pullRequests.js +398 -0
  42. package/dist/toolsets/pullRequests.js.map +1 -0
  43. package/dist/toolsets/repos.d.ts +5 -0
  44. package/dist/toolsets/repos.d.ts.map +1 -0
  45. package/dist/toolsets/repos.js +221 -0
  46. package/dist/toolsets/repos.js.map +1 -0
  47. package/package.json +40 -0
@@ -0,0 +1,221 @@
1
+ import { z } from "zod";
2
+ import { formatRepositoryList, formatRepository, formatBranchList, formatCommitList, } from "../formatting.js";
3
+ import { resolveWorkspace, assertWorkspaceAllowed, assertRepoAllowed, assertNotReadonly, } from "../safety.js";
4
+ export function registerRepoTools(server, client, config) {
5
+ server.tool("bb_list_repositories", "List repositories in a Bitbucket workspace", {
6
+ workspace: z
7
+ .string()
8
+ .optional()
9
+ .describe("Bitbucket workspace slug (uses default if not set)"),
10
+ query: z
11
+ .string()
12
+ .optional()
13
+ .describe("Bitbucket query string to filter repositories"),
14
+ page: z.number().optional().describe("Page number for pagination"),
15
+ pagelen: z
16
+ .number()
17
+ .max(100)
18
+ .optional()
19
+ .describe("Number of results per page (max 100)"),
20
+ }, async (args) => {
21
+ try {
22
+ const ws = resolveWorkspace(config, args.workspace);
23
+ assertWorkspaceAllowed(config, ws);
24
+ const result = await client.get(`/repositories/${ws}`, { q: args.query, page: args.page, pagelen: args.pagelen });
25
+ return {
26
+ content: [
27
+ {
28
+ type: "text",
29
+ text: formatRepositoryList(result.values),
30
+ },
31
+ ],
32
+ };
33
+ }
34
+ catch (error) {
35
+ const message = error instanceof Error ? error.message : String(error);
36
+ return {
37
+ content: [{ type: "text", text: `Error: ${message}` }],
38
+ isError: true,
39
+ };
40
+ }
41
+ });
42
+ server.tool("bb_get_repository", "Get details of a specific Bitbucket repository", {
43
+ workspace: z
44
+ .string()
45
+ .optional()
46
+ .describe("Bitbucket workspace slug (uses default if not set)"),
47
+ repo_slug: z.string().describe("Repository slug"),
48
+ }, async (args) => {
49
+ try {
50
+ const ws = resolveWorkspace(config, args.workspace);
51
+ assertRepoAllowed(config, ws, args.repo_slug);
52
+ const repo = await client.get(`/repositories/${ws}/${args.repo_slug}`);
53
+ return {
54
+ content: [
55
+ { type: "text", text: formatRepository(repo) },
56
+ ],
57
+ };
58
+ }
59
+ catch (error) {
60
+ const message = error instanceof Error ? error.message : String(error);
61
+ return {
62
+ content: [{ type: "text", text: `Error: ${message}` }],
63
+ isError: true,
64
+ };
65
+ }
66
+ });
67
+ server.tool("bb_list_branches", "List branches in a Bitbucket repository", {
68
+ workspace: z
69
+ .string()
70
+ .optional()
71
+ .describe("Bitbucket workspace slug (uses default if not set)"),
72
+ repo_slug: z.string().describe("Repository slug"),
73
+ query: z
74
+ .string()
75
+ .optional()
76
+ .describe("Bitbucket query string to filter branches"),
77
+ page: z.number().optional().describe("Page number for pagination"),
78
+ pagelen: z
79
+ .number()
80
+ .max(100)
81
+ .optional()
82
+ .describe("Number of results per page (max 100)"),
83
+ }, async (args) => {
84
+ try {
85
+ const ws = resolveWorkspace(config, args.workspace);
86
+ assertRepoAllowed(config, ws, args.repo_slug);
87
+ const result = await client.get(`/repositories/${ws}/${args.repo_slug}/refs/branches`, { q: args.query, page: args.page, pagelen: args.pagelen });
88
+ return {
89
+ content: [
90
+ { type: "text", text: formatBranchList(result.values) },
91
+ ],
92
+ };
93
+ }
94
+ catch (error) {
95
+ const message = error instanceof Error ? error.message : String(error);
96
+ return {
97
+ content: [{ type: "text", text: `Error: ${message}` }],
98
+ isError: true,
99
+ };
100
+ }
101
+ });
102
+ server.tool("bb_list_commits", "List commits in a Bitbucket repository, optionally for a specific branch/tag/hash", {
103
+ workspace: z
104
+ .string()
105
+ .optional()
106
+ .describe("Bitbucket workspace slug (uses default if not set)"),
107
+ repo_slug: z.string().describe("Repository slug"),
108
+ revision: z
109
+ .string()
110
+ .optional()
111
+ .describe("Branch name, tag, or commit hash to list commits from"),
112
+ page: z.number().optional().describe("Page number for pagination"),
113
+ pagelen: z
114
+ .number()
115
+ .max(100)
116
+ .optional()
117
+ .describe("Number of results per page (max 100)"),
118
+ }, async (args) => {
119
+ try {
120
+ const ws = resolveWorkspace(config, args.workspace);
121
+ assertRepoAllowed(config, ws, args.repo_slug);
122
+ const path = args.revision
123
+ ? `/repositories/${ws}/${args.repo_slug}/commits/${args.revision}`
124
+ : `/repositories/${ws}/${args.repo_slug}/commits`;
125
+ const result = await client.get(path, {
126
+ page: args.page,
127
+ pagelen: args.pagelen,
128
+ });
129
+ return {
130
+ content: [
131
+ {
132
+ type: "text",
133
+ text: formatCommitList(result.values),
134
+ },
135
+ ],
136
+ };
137
+ }
138
+ catch (error) {
139
+ const message = error instanceof Error ? error.message : String(error);
140
+ return {
141
+ content: [{ type: "text", text: `Error: ${message}` }],
142
+ isError: true,
143
+ };
144
+ }
145
+ });
146
+ server.tool("bb_get_file", "Get the raw content of a file from a Bitbucket repository", {
147
+ workspace: z
148
+ .string()
149
+ .optional()
150
+ .describe("Bitbucket workspace slug (uses default if not set)"),
151
+ repo_slug: z.string().describe("Repository slug"),
152
+ commit: z
153
+ .string()
154
+ .describe("Branch name, tag, or commit hash to read from"),
155
+ path: z.string().describe("File path within the repository"),
156
+ }, async (args) => {
157
+ try {
158
+ const ws = resolveWorkspace(config, args.workspace);
159
+ assertRepoAllowed(config, ws, args.repo_slug);
160
+ const content = await client.getRaw(`/repositories/${ws}/${args.repo_slug}/src/${args.commit}/${args.path}`);
161
+ return {
162
+ content: [{ type: "text", text: content }],
163
+ };
164
+ }
165
+ catch (error) {
166
+ const message = error instanceof Error ? error.message : String(error);
167
+ return {
168
+ content: [{ type: "text", text: `Error: ${message}` }],
169
+ isError: true,
170
+ };
171
+ }
172
+ });
173
+ server.tool("bb_create_commit_files", "Create or update files in a Bitbucket repository by creating a new commit", {
174
+ workspace: z
175
+ .string()
176
+ .optional()
177
+ .describe("Bitbucket workspace slug (uses default if not set)"),
178
+ repo_slug: z.string().describe("Repository slug"),
179
+ branch: z.string().describe("Target branch for the commit"),
180
+ message: z.string().describe("Commit message"),
181
+ files: z
182
+ .record(z.string())
183
+ .describe("Map of file paths to file contents (e.g. {\"src/main.ts\": \"console.log('hello')\"})"),
184
+ author: z
185
+ .string()
186
+ .optional()
187
+ .describe("Author string in 'Name <email>' format (uses authenticated user if not set)"),
188
+ }, async (args) => {
189
+ try {
190
+ assertNotReadonly(config);
191
+ const ws = resolveWorkspace(config, args.workspace);
192
+ assertRepoAllowed(config, ws, args.repo_slug);
193
+ const formData = new FormData();
194
+ formData.set("message", args.message);
195
+ formData.set("branch", args.branch);
196
+ if (args.author) {
197
+ formData.set("author", args.author);
198
+ }
199
+ for (const [filePath, content] of Object.entries(args.files)) {
200
+ formData.set(filePath, content);
201
+ }
202
+ await client.postFormData(`/repositories/${ws}/${args.repo_slug}/src`, formData);
203
+ return {
204
+ content: [
205
+ {
206
+ type: "text",
207
+ text: `Successfully committed ${Object.keys(args.files).length} file(s) to ${args.branch}`,
208
+ },
209
+ ],
210
+ };
211
+ }
212
+ catch (error) {
213
+ const message = error instanceof Error ? error.message : String(error);
214
+ return {
215
+ content: [{ type: "text", text: `Error: ${message}` }],
216
+ isError: true,
217
+ };
218
+ }
219
+ });
220
+ }
221
+ //# sourceMappingURL=repos.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repos.js","sourceRoot":"","sources":["../../src/toolsets/repos.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,40 @@
1
+ {
2
+ "name": "@or2ooo/bitbucket-mcp",
3
+ "version": "1.0.0",
4
+ "description": "MCP server for Bitbucket Cloud REST API v2.0",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "bin": {
8
+ "bitbucket-mcp": "./dist/index.js"
9
+ },
10
+ "files": [
11
+ "dist"
12
+ ],
13
+ "publishConfig": {
14
+ "access": "public"
15
+ },
16
+ "engines": {
17
+ "node": ">=24.0.0"
18
+ },
19
+ "scripts": {
20
+ "prepare": "tsc",
21
+ "build": "tsc",
22
+ "start": "node dist/index.js",
23
+ "test": "vitest run",
24
+ "lint": "eslint src/ tests/"
25
+ },
26
+ "dependencies": {
27
+ "@modelcontextprotocol/sdk": "^1.12.1",
28
+ "zod": "^3.24.2"
29
+ },
30
+ "devDependencies": {
31
+ "@eslint/js": "^9.21.0",
32
+ "@types/node": "^22.13.4",
33
+ "eslint": "^9.21.0",
34
+ "msw": "^2.7.3",
35
+ "semantic-release": "^25.0.3",
36
+ "typescript": "^5.7.3",
37
+ "typescript-eslint": "^8.25.0",
38
+ "vitest": "^3.0.6"
39
+ }
40
+ }