Skip to main content
Glama

update_project

Modify existing project details in Backlog, including name, settings, and status, to maintain accurate project management records.

Instructions

Updates an existing project

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
projectIdNoThe numeric ID of the project (e.g., 12345)
projectKeyNoThe key of the project (e.g., 'PROJECT')
nameNoProject name
keyNoProject key
chartEnabledNoWhether to enable chart
subtaskingEnabledNoWhether to enable subtasking
projectLeaderCanEditProjectLeaderNoWhether project leaders can edit other project leaders
textFormattingRuleNoText formatting rule
archivedNoWhether to archive the project

Implementation Reference

  • The asynchronous handler function for the 'update_project' tool. It resolves the project ID or key using resolveIdOrKey and calls backlog.patchProject with the resolved project ID and update parameters.
    handler: async ({ projectId, projectKey, ...param }) => { const result = resolveIdOrKey( 'project', { id: projectId, key: projectKey }, t ); if (!result.ok) { throw result.error; } return backlog.patchProject(result.value, param); },
  • Zod schema definition for the input parameters of the 'update_project' tool, including optional projectId, projectKey, name, key, and various project settings.
    const updateProjectSchema = buildToolSchema((t) => ({ projectId: z .number() .optional() .describe( t( 'TOOL_UPDATE_PROJECT_PROJECT_ID', 'The numeric ID of the project (e.g., 12345)' ) ), projectKey: z .string() .optional() .describe( t( 'TOOL_UPDATE_PROJECT_PROJECT_KEY', "The key of the project (e.g., 'PROJECT')" ) ), name: z .string() .optional() .describe(t('TOOL_UPDATE_PROJECT_NAME', 'Project name')), key: z .string() .optional() .describe(t('TOOL_UPDATE_PROJECT_KEY', 'Project key')), chartEnabled: z .boolean() .optional() .describe( t('TOOL_UPDATE_PROJECT_CHART_ENABLED', 'Whether to enable chart') ), subtaskingEnabled: z .boolean() .optional() .describe( t( 'TOOL_UPDATE_PROJECT_SUBTASKING_ENABLED', 'Whether to enable subtasking' ) ), projectLeaderCanEditProjectLeader: z .boolean() .optional() .describe( t( 'TOOL_UPDATE_PROJECT_LEADER_CAN_EDIT', 'Whether project leaders can edit other project leaders' ) ), textFormattingRule: z .enum(['backlog', 'markdown']) .optional() .describe(t('TOOL_UPDATE_PROJECT_TEXT_FORMATTING', 'Text formatting rule')), archived: z .boolean() .optional() .describe( t('TOOL_UPDATE_PROJECT_ARCHIVED', 'Whether to archive the project') ), }));
  • The 'updateProjectTool' is invoked and registered within the 'project' toolset group in the allTools function.
    updateProjectTool(backlog, helper),
  • Import statement for the updateProjectTool from its implementation file.
    import { updateProjectTool } from './updateProject.js';
  • The full tool definition function that creates and exports the 'update_project' tool, including name, description, schema, output schema, and handler.
    export const updateProjectTool = ( backlog: Backlog, { t }: TranslationHelper ): ToolDefinition< ReturnType<typeof updateProjectSchema>, (typeof ProjectSchema)['shape'] > => { return { name: 'update_project', description: t( 'TOOL_UPDATE_PROJECT_DESCRIPTION', 'Updates an existing project' ), schema: z.object(updateProjectSchema(t)), outputSchema: ProjectSchema, handler: async ({ projectId, projectKey, ...param }) => { const result = resolveIdOrKey( 'project', { id: projectId, key: projectKey }, t ); if (!result.ok) { throw result.error; } return backlog.patchProject(result.value, param); }, }; };

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/nulab/backlog-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server