Skip to main content
Glama
scanady
by scanady
update.ts2.37 kB
/** * Tool: standards_update * Updates an existing standard's content and/or metadata */ import { UpdateStandardInput } from '../schemas/metadata.js'; import { ToolResponse } from '../types.js'; import { updateStandard } from '../services/storage.js'; import { refreshIndex } from '../services/indexer.js'; import { bumpVersion, validateMetadataUpdate } from '../services/validator.js'; import { readStandard } from '../services/storage.js'; /** * Updates an existing standard */ export async function updateStandardTool(params: UpdateStandardInput, _extra?: unknown): Promise<ToolResponse> { try { const { path, content, metadata, versionBump } = params; // Read existing standard to get current metadata const existing = await readStandard(path); // Prepare metadata updates let updatedMetadata = metadata ? { ...metadata } : {}; // Validate metadata update if provided if (metadata) { validateMetadataUpdate(existing.metadata, metadata); } // Handle version bumping if (metadata?.version) { // User explicitly provided a version, use it updatedMetadata.version = metadata.version; } else { // Auto-bump the version updatedMetadata.version = bumpVersion(existing.metadata.version, versionBump); } // Update the standard const updated = await updateStandard(path, { content, metadata: updatedMetadata, }); // Refresh the index await refreshIndex(); const outputText = `Successfully updated standard: ${updated.path} Updated Metadata: - Version: ${existing.metadata.version} → ${updated.metadata.version} - Updated: ${updated.metadata.updated} ${content !== undefined ? '- Content: Updated' : ''} ${metadata ? `- Metadata fields updated: ${Object.keys(metadata).join(', ')}` : ''}`; return { content: [ { type: 'text', text: outputText, }, ], structuredContent: { success: true, path: updated.path, previousVersion: existing.metadata.version, newVersion: updated.metadata.version, metadata: updated.metadata, }, }; } catch (error) { return { content: [ { type: 'text', text: `Error updating standard: ${(error as Error).message}`, }, ], isError: true, }; } }

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/scanady/engineering-standards-mcp-server'

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