@vibegrid/mcp 0.4.0-beta.0 → 0.4.0-beta.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.
- package/dist/index.js +103 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -300,6 +300,23 @@ function createSchema() {
|
|
|
300
300
|
CREATE INDEX IF NOT EXISTS idx_workflow_runs_task ON workflow_runs(trigger_task_id);
|
|
301
301
|
CREATE INDEX IF NOT EXISTS idx_workflow_run_nodes_run ON workflow_run_nodes(run_id);
|
|
302
302
|
CREATE INDEX IF NOT EXISTS idx_workflow_run_nodes_task ON workflow_run_nodes(task_id);
|
|
303
|
+
|
|
304
|
+
CREATE TABLE IF NOT EXISTS session_logs (
|
|
305
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
306
|
+
task_id TEXT NOT NULL,
|
|
307
|
+
session_id TEXT NOT NULL,
|
|
308
|
+
agent_type TEXT,
|
|
309
|
+
branch TEXT,
|
|
310
|
+
status TEXT NOT NULL DEFAULT 'running',
|
|
311
|
+
started_at TEXT NOT NULL,
|
|
312
|
+
completed_at TEXT,
|
|
313
|
+
exit_code INTEGER,
|
|
314
|
+
logs TEXT,
|
|
315
|
+
project_name TEXT
|
|
316
|
+
);
|
|
317
|
+
|
|
318
|
+
CREATE INDEX IF NOT EXISTS idx_session_logs_task ON session_logs(task_id);
|
|
319
|
+
CREATE INDEX IF NOT EXISTS idx_session_logs_session ON session_logs(session_id);
|
|
303
320
|
`);
|
|
304
321
|
migrateSchema(d);
|
|
305
322
|
}
|
|
@@ -1648,6 +1665,91 @@ function registerSessionTools(server) {
|
|
|
1648
1665
|
}
|
|
1649
1666
|
}
|
|
1650
1667
|
);
|
|
1668
|
+
server.tool(
|
|
1669
|
+
"rename_session",
|
|
1670
|
+
"Rename a terminal session. Changes the display name shown in the UI.",
|
|
1671
|
+
{
|
|
1672
|
+
id: V.id.describe("Session ID"),
|
|
1673
|
+
display_name: V.shortText.describe("New display name")
|
|
1674
|
+
},
|
|
1675
|
+
async (args) => {
|
|
1676
|
+
try {
|
|
1677
|
+
await rpcCall("terminal:rename", { id: args.id, displayName: args.display_name });
|
|
1678
|
+
return {
|
|
1679
|
+
content: [{ type: "text", text: `Renamed session ${args.id} to "${args.display_name}"` }]
|
|
1680
|
+
};
|
|
1681
|
+
} catch (err) {
|
|
1682
|
+
return {
|
|
1683
|
+
content: [
|
|
1684
|
+
{
|
|
1685
|
+
type: "text",
|
|
1686
|
+
text: `Error renaming session: ${err instanceof Error ? err.message : err}`
|
|
1687
|
+
}
|
|
1688
|
+
],
|
|
1689
|
+
isError: true
|
|
1690
|
+
};
|
|
1691
|
+
}
|
|
1692
|
+
}
|
|
1693
|
+
);
|
|
1694
|
+
server.tool(
|
|
1695
|
+
"reorder_sessions",
|
|
1696
|
+
"Reorder terminal sessions in the grid. Provide session IDs in the desired display order.",
|
|
1697
|
+
{
|
|
1698
|
+
session_ids: z4.array(V.id).min(1, "At least one session ID is required").describe("Session IDs in desired order")
|
|
1699
|
+
},
|
|
1700
|
+
async (args) => {
|
|
1701
|
+
try {
|
|
1702
|
+
await rpcCall("terminal:reorder", args.session_ids);
|
|
1703
|
+
return {
|
|
1704
|
+
content: [
|
|
1705
|
+
{
|
|
1706
|
+
type: "text",
|
|
1707
|
+
text: `Reordered ${args.session_ids.length} sessions`
|
|
1708
|
+
}
|
|
1709
|
+
]
|
|
1710
|
+
};
|
|
1711
|
+
} catch (err) {
|
|
1712
|
+
return {
|
|
1713
|
+
content: [
|
|
1714
|
+
{
|
|
1715
|
+
type: "text",
|
|
1716
|
+
text: `Error reordering sessions: ${err instanceof Error ? err.message : err}`
|
|
1717
|
+
}
|
|
1718
|
+
],
|
|
1719
|
+
isError: true
|
|
1720
|
+
};
|
|
1721
|
+
}
|
|
1722
|
+
}
|
|
1723
|
+
);
|
|
1724
|
+
server.tool(
|
|
1725
|
+
"read_session_output",
|
|
1726
|
+
"Read terminal output from a running session. Output is stored in a rolling 1000-line buffer with ANSI codes stripped.",
|
|
1727
|
+
{
|
|
1728
|
+
id: V.id.describe("Session ID"),
|
|
1729
|
+
lines: z4.number().int().min(1).max(1e3).optional().describe("Number of lines to read from the end (default: all)")
|
|
1730
|
+
},
|
|
1731
|
+
async (args) => {
|
|
1732
|
+
try {
|
|
1733
|
+
const output = await rpcCall("terminal:readOutput", {
|
|
1734
|
+
id: args.id,
|
|
1735
|
+
lines: args.lines
|
|
1736
|
+
});
|
|
1737
|
+
return {
|
|
1738
|
+
content: [{ type: "text", text: output.join("\n") }]
|
|
1739
|
+
};
|
|
1740
|
+
} catch (err) {
|
|
1741
|
+
return {
|
|
1742
|
+
content: [
|
|
1743
|
+
{
|
|
1744
|
+
type: "text",
|
|
1745
|
+
text: `Error reading session output: ${err instanceof Error ? err.message : err}`
|
|
1746
|
+
}
|
|
1747
|
+
],
|
|
1748
|
+
isError: true
|
|
1749
|
+
};
|
|
1750
|
+
}
|
|
1751
|
+
}
|
|
1752
|
+
);
|
|
1651
1753
|
server.tool(
|
|
1652
1754
|
"write_to_terminal",
|
|
1653
1755
|
"Send input to a running terminal session. Requires the VibeGrid app to be running.",
|
|
@@ -2053,7 +2155,7 @@ console.warn = (...args) => _origError("[mcp:warn]", ...args);
|
|
|
2053
2155
|
console.error = (...args) => _origError("[mcp:error]", ...args);
|
|
2054
2156
|
async function main() {
|
|
2055
2157
|
configManager.init();
|
|
2056
|
-
const version = true ? "0.4.0-beta.
|
|
2158
|
+
const version = true ? "0.4.0-beta.1" : createRequire(import.meta.url)("../package.json").version;
|
|
2057
2159
|
const server = createMcpServer(version);
|
|
2058
2160
|
const transport = new StdioServerTransport();
|
|
2059
2161
|
await server.connect(transport);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vibegrid/mcp",
|
|
3
|
-
"version": "0.4.0-beta.
|
|
3
|
+
"version": "0.4.0-beta.1",
|
|
4
4
|
"description": "VibeGrid MCP server — task management, git, and workflow tools for AI coding agents",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"dependencies": {
|
|
34
34
|
"@modelcontextprotocol/sdk": "^1.28.0",
|
|
35
35
|
"libsql": "^0.5.22",
|
|
36
|
-
"pino": "^
|
|
36
|
+
"pino": "^10.3.1",
|
|
37
37
|
"ws": "^8.18.0",
|
|
38
38
|
"zod": "^3.23.0"
|
|
39
39
|
},
|