@selfagency/beans-mcp 0.1.0 → 0.1.2
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.
- package/LICENSE.txt +21 -0
- package/README.md +4 -4
- package/beans-mcp-server.cjs +8 -4
- package/index.cjs +8 -4
- package/index.d.ts +2 -1
- package/index.js +17096 -766
- package/package.json +3 -3
package/LICENSE.txt
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 The Self Agency, LLC
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
# beans-mcp
|
|
1
|
+
# @selfagency/beans-mcp 🫘
|
|
2
|
+
|
|
3
|
+
[](https://github.com/selfagency/beans-mcp/actions/workflows/test.yml) [](https://codecov.io/gh/selfagency/beans-mcp)
|
|
2
4
|
|
|
3
5
|
MCP (Model Context Protocol) server for [Beans](https://github.com/hmans/beans) issue tracker. Provides programmatic and CLI interfaces for AI-powered interactions with Beans workspaces.
|
|
4
6
|
|
|
5
|
-
|
|
6
|
-
<span><strong>Try Beans fully-integrated with GitHub Copilot in VS Code! Install the <a href="https://marketplace.visualstudio.com/items?itemName=selfagency.beans-vscode">selfagency.beans-vscode</a> extension.</strong></span>
|
|
7
|
-
</div>
|
|
7
|
+
> 🤖 **Try Beans fully-integrated with GitHub Copilot in VS Code! Install the <a href="https://marketplace.visualstudio.com/items?itemName=selfagency.beans-vscode">selfagency.beans-vscode</a> extension.**
|
|
8
8
|
|
|
9
9
|
## Usage
|
|
10
10
|
|
package/beans-mcp-server.cjs
CHANGED
|
@@ -22735,8 +22735,7 @@ function isPathWithinRoot(root, target) {
|
|
|
22735
22735
|
}
|
|
22736
22736
|
function makeTextAndStructured(value) {
|
|
22737
22737
|
return {
|
|
22738
|
-
content: [{ type: "text", text: JSON.stringify(value, null, 2) }]
|
|
22739
|
-
structuredContent: value
|
|
22738
|
+
content: [{ type: "text", text: JSON.stringify(value, null, 2) }]
|
|
22740
22739
|
};
|
|
22741
22740
|
}
|
|
22742
22741
|
var import_node_path;
|
|
@@ -22920,6 +22919,9 @@ Output: ${stdout.slice(0, 1e3)}`
|
|
|
22920
22919
|
if (updates.blockedBy) {
|
|
22921
22920
|
updateInput.addBlockedBy = updates.blockedBy;
|
|
22922
22921
|
}
|
|
22922
|
+
if (updates.body !== void 0) {
|
|
22923
|
+
updateInput.body = updates.body;
|
|
22924
|
+
}
|
|
22923
22925
|
const { data, errors } = await this.executeGraphQL(UPDATE_BEAN_MUTATION, {
|
|
22924
22926
|
id: beanId,
|
|
22925
22927
|
input: updateInput
|
|
@@ -31251,7 +31253,8 @@ function updateHandler(backend) {
|
|
|
31251
31253
|
parent: input.parent,
|
|
31252
31254
|
clearParent: input.clearParent,
|
|
31253
31255
|
blocking: input.blocking,
|
|
31254
|
-
blockedBy: input.blockedBy
|
|
31256
|
+
blockedBy: input.blockedBy,
|
|
31257
|
+
body: input.body
|
|
31255
31258
|
})
|
|
31256
31259
|
});
|
|
31257
31260
|
}
|
|
@@ -31410,7 +31413,8 @@ function registerTools(server, backend) {
|
|
|
31410
31413
|
parent: external_exports3.string().max(MAX_ID_LENGTH).optional(),
|
|
31411
31414
|
clearParent: external_exports3.boolean().optional(),
|
|
31412
31415
|
blocking: external_exports3.array(external_exports3.string().max(MAX_ID_LENGTH)).optional(),
|
|
31413
|
-
blockedBy: external_exports3.array(external_exports3.string().max(MAX_ID_LENGTH)).optional()
|
|
31416
|
+
blockedBy: external_exports3.array(external_exports3.string().max(MAX_ID_LENGTH)).optional(),
|
|
31417
|
+
body: external_exports3.string().max(MAX_DESCRIPTION_LENGTH).optional()
|
|
31414
31418
|
}),
|
|
31415
31419
|
annotations: {
|
|
31416
31420
|
readOnlyHint: false,
|
package/index.cjs
CHANGED
|
@@ -22735,8 +22735,7 @@ function isPathWithinRoot(root, target) {
|
|
|
22735
22735
|
}
|
|
22736
22736
|
function makeTextAndStructured(value) {
|
|
22737
22737
|
return {
|
|
22738
|
-
content: [{ type: "text", text: JSON.stringify(value, null, 2) }]
|
|
22739
|
-
structuredContent: value
|
|
22738
|
+
content: [{ type: "text", text: JSON.stringify(value, null, 2) }]
|
|
22740
22739
|
};
|
|
22741
22740
|
}
|
|
22742
22741
|
var import_node_path;
|
|
@@ -22920,6 +22919,9 @@ Output: ${stdout.slice(0, 1e3)}`
|
|
|
22920
22919
|
if (updates.blockedBy) {
|
|
22921
22920
|
updateInput.addBlockedBy = updates.blockedBy;
|
|
22922
22921
|
}
|
|
22922
|
+
if (updates.body !== void 0) {
|
|
22923
|
+
updateInput.body = updates.body;
|
|
22924
|
+
}
|
|
22923
22925
|
const { data, errors } = await this.executeGraphQL(UPDATE_BEAN_MUTATION, {
|
|
22924
22926
|
id: beanId,
|
|
22925
22927
|
input: updateInput
|
|
@@ -31268,7 +31270,8 @@ function updateHandler(backend) {
|
|
|
31268
31270
|
parent: input.parent,
|
|
31269
31271
|
clearParent: input.clearParent,
|
|
31270
31272
|
blocking: input.blocking,
|
|
31271
|
-
blockedBy: input.blockedBy
|
|
31273
|
+
blockedBy: input.blockedBy,
|
|
31274
|
+
body: input.body
|
|
31272
31275
|
})
|
|
31273
31276
|
});
|
|
31274
31277
|
}
|
|
@@ -31427,7 +31430,8 @@ function registerTools(server, backend) {
|
|
|
31427
31430
|
parent: external_exports3.string().max(MAX_ID_LENGTH).optional(),
|
|
31428
31431
|
clearParent: external_exports3.boolean().optional(),
|
|
31429
31432
|
blocking: external_exports3.array(external_exports3.string().max(MAX_ID_LENGTH)).optional(),
|
|
31430
|
-
blockedBy: external_exports3.array(external_exports3.string().max(MAX_ID_LENGTH)).optional()
|
|
31433
|
+
blockedBy: external_exports3.array(external_exports3.string().max(MAX_ID_LENGTH)).optional(),
|
|
31434
|
+
body: external_exports3.string().max(MAX_DESCRIPTION_LENGTH).optional()
|
|
31431
31435
|
}),
|
|
31432
31436
|
annotations: {
|
|
31433
31437
|
readOnlyHint: false,
|
package/index.d.ts
CHANGED
|
@@ -68,6 +68,7 @@ interface BackendInterface {
|
|
|
68
68
|
clearParent?: boolean;
|
|
69
69
|
blocking?: string[];
|
|
70
70
|
blockedBy?: string[];
|
|
71
|
+
body?: string;
|
|
71
72
|
}): Promise<BeanRecord>;
|
|
72
73
|
delete(beanId: string): Promise<Record<string, unknown>>;
|
|
73
74
|
openConfig(): Promise<{
|
|
@@ -144,6 +145,7 @@ declare class BeansCliBackend implements BackendInterface {
|
|
|
144
145
|
clearParent?: boolean;
|
|
145
146
|
blocking?: string[];
|
|
146
147
|
blockedBy?: string[];
|
|
148
|
+
body?: string;
|
|
147
149
|
}): Promise<BeanRecord>;
|
|
148
150
|
delete(beanId: string): Promise<Record<string, unknown>>;
|
|
149
151
|
openConfig(): Promise<{
|
|
@@ -213,7 +215,6 @@ declare function makeTextAndStructured<T extends Record<string, unknown>>(value:
|
|
|
213
215
|
type: "text";
|
|
214
216
|
text: string;
|
|
215
217
|
}[];
|
|
216
|
-
structuredContent: T;
|
|
217
218
|
};
|
|
218
219
|
|
|
219
220
|
export { type BackendInterface, type BeanRecord, BeansCliBackend, DEFAULT_MCP_PORT, type GraphQLError, MAX_ID_LENGTH, MAX_METADATA_LENGTH, MAX_TITLE_LENGTH, type SortMode, createBeansMcpServer, isPathWithinRoot, makeTextAndStructured, parseCliArgs, sortBeansInternal as sortBeans, startBeansMcpServer };
|