loopctl-mcp-server 1.6.0 → 1.6.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 (2) hide show
  1. package/index.js +28 -0
  2. package/package.json +1 -1
package/index.js CHANGED
@@ -169,6 +169,16 @@ async function createProject({ name, slug, repo_url, description, tech_stack, mi
169
169
  return toContent(result);
170
170
  }
171
171
 
172
+ async function deleteProject({ project_id }) {
173
+ const result = await apiCall(
174
+ "DELETE",
175
+ `/api/v1/projects/${project_id}`,
176
+ null,
177
+ process.env.LOOPCTL_USER_KEY
178
+ );
179
+ return toContent(result);
180
+ }
181
+
172
182
  async function getProgress({ project_id, include_cost }) {
173
183
  const params = new URLSearchParams();
174
184
  if (include_cost) params.set("include_cost", "true");
@@ -647,6 +657,21 @@ const TOOLS = [
647
657
  required: ["name", "slug"],
648
658
  },
649
659
  },
660
+ {
661
+ name: "delete_project",
662
+ description:
663
+ "Delete a project and all of its dependent resources (epics, stories, audit entries scoped to it). REQUIRES LOOPCTL_USER_KEY to be set in the MCP server env (user role — orchestrator role is NOT sufficient for this destructive operation). The deletion is irreversible.",
664
+ inputSchema: {
665
+ type: "object",
666
+ properties: {
667
+ project_id: {
668
+ type: "string",
669
+ description: "The UUID of the project to delete.",
670
+ },
671
+ },
672
+ required: ["project_id"],
673
+ },
674
+ },
650
675
  {
651
676
  name: "get_progress",
652
677
  description: "Get progress summary for a project, including story counts by status. Pass include_cost=true to include cost data when available.",
@@ -1636,6 +1661,9 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
1636
1661
  case "create_project":
1637
1662
  return await createProject(args);
1638
1663
 
1664
+ case "delete_project":
1665
+ return await deleteProject(args);
1666
+
1639
1667
  case "get_progress":
1640
1668
  return await getProgress(args);
1641
1669
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "loopctl-mcp-server",
3
- "version": "1.6.0",
3
+ "version": "1.6.1",
4
4
  "description": "MCP server for loopctl — structural trust for AI development loops",
5
5
  "type": "module",
6
6
  "main": "index.js",