Skip to main content
Glama

list_all_tools

Lists all tools in the Medical Writer's AI Toolkit with tier and description to help you discover available options before calling.

Instructions

List all available tools in the Medical Writer's AI Toolkit with tier and description. Use this to discover which tools are available before calling them.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Implementation Reference

  • The tool 'list_all_tools' handler function. It uses @mcp.tool() decorator, returns a formatted directory string listing all 33 tools (5 free, 28 pro) with descriptions and a data safety reminder.
    @mcp.tool()
    def list_all_tools() -> str:
        """
        List all available tools in the Medical Writer's AI Toolkit with tier and description.
        Use this to discover which tools are available before calling them.
        """
        free_tools = [
            ("get_structured_abstract_prompt", "Draft a structured journal abstract (CONSORT/STROBE aligned)"),
            ("get_manuscript_outline_prompt", "Create a detailed manuscript outline with word counts"),
            ("get_peer_review_response_prompt", "Draft a point-by-point reviewer response"),
            ("get_author_invitation_email_prompt", "Write an ICMJE-aligned author invitation email"),
            ("get_linkedin_publication_post_prompt", "Draft a LinkedIn post announcing a publication"),
        ]
        pro_tools = [
            ("get_unstructured_abstract_prompt", "Convert structured abstract to flowing paragraph"),
            ("get_strengthen_conclusions_prompt", "Rewrite weak abstract conclusions to be data-anchored"),
            ("get_adapt_abstract_audience_prompt", "Rewrite abstract for a different audience"),
            ("get_introduction_section_prompt", "Draft manuscript Introduction/Background section"),
            ("get_methods_section_prompt", "Draft manuscript Methods section"),
            ("get_results_section_prompt", "Draft Results section narrative from approved data"),
            ("get_discussion_section_prompt", "Draft manuscript Discussion section"),
            ("get_rebuttal_disagreement_prompt", "Draft evidence-based rebuttal to reviewer"),
            ("get_revised_manuscript_cover_letter_prompt", "Draft cover letter for revised submission"),
            ("get_congress_abstract_prompt", "Draft ASCO/ASH/ESMO congress abstract"),
            ("get_poster_title_and_takeaways_prompt", "Generate poster titles and take-home messages"),
            ("get_oral_presentation_script_prompt", "Draft timed oral presentation script"),
            ("get_slide_deck_outline_prompt", "Create slide-by-slide deck outline"),
            ("get_speaker_notes_prompt", "Write speaker notes for a data slide"),
            ("get_moa_slide_prompt", "Explain mechanism of action for a slide"),
            ("get_publication_plan_framework_prompt", "Build a publication plan framework table"),
            ("get_gap_analysis_prompt", "Conduct literature and data gap analysis"),
            ("get_pub_plan_executive_summary_prompt", "Write pub plan exec summary for leadership"),
            ("get_journal_selection_rationale_prompt", "Recommend top 3 journals with rationale"),
            ("get_author_review_request_prompt", "Draft author review request with deadline"),
            ("get_author_revision_response_prompt", "Respond to author major revision request"),
            ("get_manuscript_edit_prompt", "Comprehensive AMA-style manuscript edit"),
            ("get_promotional_language_check_prompt", "Check for promotional/non-compliant language"),
            ("get_statistical_reporting_check_prompt", "Verify consistent statistical reporting"),
            ("get_cv_tailoring_prompt", "Tailor CV to medical writing job posting"),
            ("get_cmpp_practice_questions_prompt", "Generate CMPP exam practice questions"),
            ("get_interview_prep_prompt", "Prepare for medical writing interview"),
            ("apply_adapt_framework", "Apply ADAPT framework to any prompt for precision output"),
        ]
    
        output = "═══ THE MEDICAL WRITER'S AI TOOLKIT — TOOL DIRECTORY ═══\n\n"
        output += "✅ FREE TIER (5 tools)\n"
        output += "─" * 50 + "\n"
        for name, desc in free_tools:
            output += f"  • {name}\n    {desc}\n\n"
    
        output += "\n🔐 PRO TIER (28 tools + ADAPT framework)\n"
        output += "─" * 50 + "\n"
        for name, desc in pro_tools:
            output += f"  • {name}\n    {desc}\n\n"
    
        output += "\n⚠️  DATA SAFETY REMINDER\n"
        output += "─" * 50 + "\n"
        output += """Never input the following into any public AI tool:
      • Unpublished clinical trial data
      • Patient-level or identifiable data
      • Proprietary compound information or IP
      • Data covered by NDA or confidentiality agreement
      • Pre-decisional regulatory documents
    
    Tools marked 🔒 carry elevated data-sensitivity risk.
    Always comply with ICMJE, GPP4, and your organization's AI use policies."""
    
        return output
  • server.py:963-963 (registration)
    Registration of 'list_all_tools' via the @mcp.tool() decorator from FastMCP.
    @mcp.tool()
Behavior3/5

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

No annotations are provided, and the description does not mention any behavioral traits. However, for a simple read-only list operation, this is minimally adequate.

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 two short sentences, direct and front-loaded, with no unnecessary words.

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

Completeness4/5

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

The description sufficiently explains what the tool does for a simple listing operation. With an output schema present, no further detail is needed.

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

Parameters4/5

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

The tool has no parameters, and schema coverage is 100%. The description naturally adds no parameter details, but the baseline for 0 parameters is 4.

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 explicitly states 'List all available tools' with a specific verb and resource, clearly differentiating from sibling tools which are specific prompt tools.

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

Usage Guidelines4/5

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

The description advises using the tool to discover available tools before calling them, providing clear context on when to use it, though it lacks explicit when-not-to-use or alternatives.

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/medwriter-mcp'

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