Skip to main content
Glama

generate_submission_checklist

Generate a submission readiness checklist for a given submission type and regulatory agency to ensure complete and compliant filings.

Instructions

Generate a submission readiness checklist for a given submission type and agency.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
submission_typeYesType: 'NDA', 'BLA', 'MAA', 'IND', 'CTA', 'IMPD'
agencyYesTarget agency: 'FDA', 'EMA', 'PMDA', 'Health Canada'

Implementation Reference

  • Input schema and tool definition for generate_submission_checklist, defining submission_type and agency as required string parameters.
    name: "generate_submission_checklist",
    description: "Generate a submission readiness checklist for a given submission type and agency.",
    inputSchema: {
                type: "object",
                properties: {
                              submission_type: { type: "string", description: "Type: 'NDA', 'BLA', 'MAA', 'IND', 'CTA', 'IMPD'" },
                              agency: { type: "string", description: "Target agency: 'FDA', 'EMA', 'PMDA', 'Health Canada'" }
                },
                required: ["submission_type", "agency"]
    }
  • Handler for generate_submission_checklist that parses args, looks up hardcoded checklists for NDA/FDA, MAA/EMA, and IND/FDA, and returns a formatted markdown checklist.
    if (name === "generate_submission_checklist") {
            const { submission_type, agency } = z.object({ submission_type: z.string(), agency: z.string() }).parse(args);
            const checklists: Record<string, Record<string, string[]>> = {
                      NDA: { FDA: ["Cover letter and Form FDA 356h", "Module 1: Proposed labelling (PI, Medication Guide if applicable)", "Module 1: Patent certifications", "Module 1: Debarment certification", "Module 1: Financial disclosure (Form FDA 3454/3455)", "Module 2.3: Quality Overall Summary", "Module 2.4: Nonclinical Overview", "Module 2.5: Clinical Overview", "Module 2.6: Nonclinical Written and Tabulated Summaries", "Module 2.7: Clinical Summary", "Module 3: Full CMC documentation (3.2.S and 3.2.P)", "Module 4: All nonclinical study reports", "Module 5: All clinical study reports (pivotal trials)", "Module 5: Integrated Summary of Safety (ISS)", "Module 5: Integrated Summary of Efficacy (ISE)", "PREA compliance / iPSP or waiver/deferral", "REMS (if required based on safety profile)", "User fee payment confirmation (PDUFA)"] },
                      MAA: { EMA: ["Module 1.0: Cover letter", "Module 1.2: Application form (eAF)", "Module 1.3: Product information (SmPC, PIL, labelling)", "Module 1.7: EudraVigilance registration confirmation", "Module 1.8: Clinical trial information (EudraCT)", "Module 1.10: Pharmacovigilance system summary", "Module 1.11: Risk Management Plan (RMP)", "Module 2-5: Full CTD technical documentation", "Paediatric Investigation Plan (PIP) compliance", "CHMP scientific advice follow-up (if applicable)", "GMP compliance documentation for manufacturing sites", "ASMF or CEP for drug substance (if applicable)", "Environmental Risk Assessment (ERA)", "EMA application fee payment"] },
                      IND: { FDA: ["Form FDA 1571 (IND application cover sheet)", "Table of contents", "Introductory statement and general investigational plan", "Investigator's Brochure (IB)", "Protocol(s) and amendments", "Chemistry, Manufacturing, and Controls (CMC) information", "Pharmacology and toxicology information", "Previous human experience (if any)", "Additional information (PK, bioavailability)", "Institutional Review Board (IRB) confirmation", "Sponsor-investigator certifications"] }
            };
            const checklist = checklists[submission_type.toUpperCase()]?.[agency.toUpperCase()];
            if (!checklist) return { content: [{ type: "text", text: "Checklist for " + submission_type + " (" + agency + ") not available. Currently: NDA (FDA), MAA (EMA), IND (FDA)." }] };
            return { content: [{ type: "text", text: "# " + submission_type.toUpperCase() + " Submission Checklist (" + agency.toUpperCase() + ")\n\n" + checklist.map((item, i) => "- [ ] " + (i+1) + ". " + item).join("\n") + "\n\n**Total:** " + checklist.length + " items" }] };
    }
  • src/index.ts:260-335 (registration)
    Tool registered in the ListToolsRequestSchema handler within the tools array returned by the server.
    server.setRequestHandler(ListToolsRequestSchema, async () => ({
          tools: [
            {
                      name: "lookup_ich_guideline",
                      description: "Look up an ICH guideline by code (e.g. E6(R3), M4, Q1A). Returns scope, key requirements, and official URL.",
                      inputSchema: {
                                  type: "object",
                                  properties: {
                                                guideline_code: { type: "string", description: "ICH guideline code, e.g. 'E6(R3)', 'M4(R4)', 'Q3D(R2)', 'M7(R2)'" }
                                  },
                                  required: ["guideline_code"]
                      }
            },
            {
                      name: "map_ctd_section",
                      description: "Map a document type or data package to the correct CTD/eCTD module and section. Returns the full section hierarchy.",
                      inputSchema: {
                                  type: "object",
                                  properties: {
                                                module: { type: "string", description: "CTD module number: '1', '2', '3', '4', or '5'" },
                                                submission_type: { type: "string", description: "Submission type: 'NDA', 'BLA', 'MAA', or 'JNDA'" }
                                  },
                                  required: ["module"]
                      }
            },
            {
                      name: "check_ctd_completeness",
                      description: "Check a list of provided CTD sections against required sections and identify gaps.",
                      inputSchema: {
                                  type: "object",
                                  properties: {
                                                provided_sections: { type: "array", items: { type: "string" }, description: "List of CTD sections already prepared" },
                                                submission_type: { type: "string", description: "Target submission type: 'NDA', 'BLA', or 'MAA'" },
                                                module: { type: "string", description: "Which module to check: '3', '4', or '5'" }
                                  },
                                  required: ["provided_sections", "submission_type", "module"]
                      }
            },
            {
                      name: "get_agency_deficiency_guidance",
                      description: "Retrieve common deficiency areas for FDA or EMA submissions by domain (CMC, Clinical, Labelling, Pharmacovigilance).",
                      inputSchema: {
                                  type: "object",
                                  properties: {
                                                agency: { type: "string", description: "Regulatory agency: 'FDA' or 'EMA'" },
                                                domain: { type: "string", description: "Area: 'CMC', 'Clinical', 'Labelling', or 'Pharmacovigilance'" }
                                  },
                                  required: ["agency", "domain"]
                      }
            },
            {
                      name: "generate_submission_checklist",
                      description: "Generate a submission readiness checklist for a given submission type and agency.",
                      inputSchema: {
                                  type: "object",
                                  properties: {
                                                submission_type: { type: "string", description: "Type: 'NDA', 'BLA', 'MAA', 'IND', 'CTA', 'IMPD'" },
                                                agency: { type: "string", description: "Target agency: 'FDA', 'EMA', 'PMDA', 'Health Canada'" }
                                  },
                                  required: ["submission_type", "agency"]
                      }
            },
            {
                      name: "check_ich_compliance",
                      description: "Check a description of a study or document against ICH guideline requirements and return a compliance assessment.",
                      inputSchema: {
                                  type: "object",
                                  properties: {
                                                description: { type: "string", description: "Description of the study or document to assess" },
                                                guideline_code: { type: "string", description: "ICH guideline to check against, e.g. 'E6(R3)', 'Q1A(R2)'" }
                                  },
                                  required: ["description", "guideline_code"]
                      }
            }
                ]
    }));
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description gives no behavioral traits such as side effects, authorization needs, or performance implications. It only states the core function.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no filler. It is well-structured and front-loaded with the action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While the tool is simple, the description lacks details on output format, default behavior, and any validation. For a generation tool, some expected output context would be helpful.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already fully describes both parameters with allowed values. The description does not add any additional context or constraints beyond the schema, so baseline is 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (generate) and the output (submission readiness checklist) with parameters identified. It distinguishes from sibling tools that perform different functions like checking CTD completeness or ICH compliance.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool over alternatives. It does not mention prerequisites, scenarios, or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Other Tools

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/pubspro/regsub-mcp'

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