Skip to main content
Glama

set_requirement

Store publisher or style requirements like word count, citation style, formatting, deadlines, and target audience for manuscript projects to ensure writing compliance.

Instructions

Store a publisher or style requirement

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
project_pathNoPath to manuscript directory (defaults to current directory)
requirement_typeYesType of requirement
descriptionYesDescription of the requirement
valueNoTarget value (e.g., '50000' for word count)
enforcedNoWhether this requirement is enforced

Implementation Reference

  • Primary handler that processes 'set_requirement' tool arguments and delegates to WritersAid.setRequirement for execution.
    private async setRequirement(args: Record<string, unknown>) { const requirementType = args.requirement_type as | "word_count" | "citation_style" | "formatting" | "deadline" | "target_audience" | "tone" | "reading_level" | "chapter_count" | "other"; const description = args.description as string; const value = args.value as string | undefined; const enforced = (args.enforced as boolean) || false; return this.writersAid.setRequirement({ requirementType, description, value, enforced, }); }
  • Defines the input schema, parameters, and metadata for the 'set_requirement' tool.
    { name: "set_requirement", description: "Store a publisher or style requirement", inputSchema: { type: "object", properties: { project_path: { type: "string", description: "Path to manuscript directory (defaults to current directory)" }, requirement_type: { type: "string", enum: ["word_count", "citation_style", "formatting", "deadline", "target_audience", "tone", "reading_level", "chapter_count", "other"], description: "Type of requirement", }, description: { type: "string", description: "Description of the requirement" }, value: { type: "string", description: "Target value (e.g., '50000' for word count)" }, enforced: { type: "boolean", description: "Whether this requirement is enforced", default: false }, }, required: ["requirement_type", "description"], }, },
  • src/index.ts:73-75 (registration)
    Registers the list of available tools including 'set_requirement' via writerToolDefinitions.
    server.setRequestHandler(ListToolsRequestSchema, async () => ({ tools: writerToolDefinitions, }));
  • Core helper method in WritersAid that invokes RequirementsManager to persist the requirement.
    setRequirement(options: { requirementType: | "word_count" | "citation_style" | "formatting" | "deadline" | "target_audience" | "tone" | "reading_level" | "chapter_count" | "other"; description: string; value?: string; enforced?: boolean; }) { const requirement = this.requirementsManager.addRequirement({ requirementType: options.requirementType, description: options.description, value: options.value, enforced: options.enforced || false, }); return { id: requirement.id, requirementType: requirement.requirementType, description: requirement.description, value: requirement.value, enforced: requirement.enforced, }; }
  • Database insertion logic that stores the requirement in the SQLite 'writing_requirements' table.
    addRequirement( requirement: Omit<WritingRequirement, "id" | "createdAt"> ): WritingRequirement { const now = Date.now(); const newRequirement: WritingRequirement = { id: nanoid(), ...requirement, createdAt: now, }; this.db .prepare( `INSERT INTO writing_requirements (id, requirement_type, description, value, enforced, created_at) VALUES (?, ?, ?, ?, ?, ?)` ) .run( newRequirement.id, newRequirement.requirementType, newRequirement.description, newRequirement.value || null, newRequirement.enforced ? 1 : 0, newRequirement.createdAt ); return newRequirement; }

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/xiaolai/claude-writers-aid-mcp'

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