delete_project
Permanently delete a Backlog project by providing its ID or key.
Instructions
Deletes a project
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | No | The numeric ID of the project (e.g., 12345) | |
| projectKey | No | The key of the project (e.g., 'PROJECT') | |
| organization | No | Optional organization name. Use list_organizations to inspect available organizations. |
Implementation Reference
- src/tools/deleteProject.ts:29-53 (handler)The main handler function for the 'delete_project' tool. It accepts either a projectId (number) or projectKey (string), resolves which one to use via resolveIdOrKey, then calls backlog.deleteProject() to delete the project.
export const deleteProjectTool = ( backlog: Backlog, { t }: TranslationHelper ): ToolDefinition< ReturnType<typeof deleteProjectSchema>, (typeof ProjectSchema)['shape'] > => { return { name: 'delete_project', description: t('TOOL_DELETE_PROJECT_DESCRIPTION', 'Deletes a project'), schema: z.object(deleteProjectSchema(t)), outputSchema: ProjectSchema, handler: async ({ projectId, projectKey }) => { const result = resolveIdOrKey( 'project', { id: projectId, key: projectKey }, t ); if (!result.ok) { throw result.error; } return backlog.deleteProject(result.value); }, }; }; - src/tools/deleteProject.ts:8-27 (schema)Input schema for the delete_project tool: optional projectId (number) and optional projectKey (string). At least one must be provided.
const deleteProjectSchema = buildToolSchema((t) => ({ projectId: z .number() .optional() .describe( t( 'TOOL_DELETE_PROJECT_PROJECT_ID', 'The numeric ID of the project (e.g., 12345)' ) ), projectKey: z .string() .optional() .describe( t( 'TOOL_DELETE_PROJECT_PROJECT_KEY', "The key of the project (e.g., 'PROJECT')" ) ), })); - Output schema (ProjectSchema) returned after deleting a project. Contains project fields like id, projectKey, name, chartEnabled, etc.
export const ProjectSchema = z.object({ id: z.number(), projectKey: z.string(), name: z.string(), chartEnabled: z.boolean(), useResolvedForChart: z.boolean(), subtaskingEnabled: z.boolean(), projectLeaderCanEditProjectLeader: z.boolean(), useWiki: z.boolean(), useFileSharing: z.boolean(), useWikiTreeView: z.boolean(), useOriginalImageSizeAtWiki: z.boolean(), useSubversion: z.boolean(), useGit: z.boolean(), textFormattingRule: TextFormattingRuleSchema, archived: z.boolean(), displayOrder: z.number(), useDevAttributes: z.boolean(), }); - src/tools/tools.ts:82-94 (registration)Registration of deleteProjectTool in the 'project' toolset group alongside other project tools (getProjectList, addProject, getProject, updateProject).
{ name: 'project', description: 'Tools for managing projects, categories, custom fields, and issue types.', enabled: false, tools: [ getProjectListTool(backlog, helper), addProjectTool(backlog, helper), getProjectTool(backlog, helper), updateProjectTool(backlog, helper), deleteProjectTool(backlog, helper), ], }, - src/utils/resolveIdOrKey.ts:51-55 (helper)Helper function that resolves whether to use a numeric id or string key to identify a project (or other entity). Used by the delete_project handler.
export const resolveIdOrKey = <E extends EntityName>( entity: E, values: { id?: number; key?: string }, t: TranslationHelper['t'] ): ResolveResult => resolveIdOrField(entity, 'key', values, t);