Initial commit
This commit is contained in:
348
templates/prompts-examples.py
Normal file
348
templates/prompts-examples.py
Normal file
@@ -0,0 +1,348 @@
|
||||
"""
|
||||
FastMCP Prompts Examples
|
||||
=========================
|
||||
Examples of pre-configured prompts for LLMs.
|
||||
"""
|
||||
|
||||
from fastmcp import FastMCP
|
||||
from datetime import datetime
|
||||
|
||||
mcp = FastMCP("Prompts Examples")
|
||||
|
||||
# ============================================================================
|
||||
# Basic Prompts
|
||||
# ============================================================================
|
||||
|
||||
@mcp.prompt("help")
|
||||
def help_prompt() -> str:
|
||||
"""Generate help text for the server."""
|
||||
return """
|
||||
Welcome to the FastMCP Prompts Examples Server!
|
||||
|
||||
This server demonstrates various prompt patterns for LLM interactions.
|
||||
|
||||
Available Tools:
|
||||
- search: Search for items in the database
|
||||
- analyze: Analyze data and generate insights
|
||||
- summarize: Create summaries of text content
|
||||
|
||||
Available Resources:
|
||||
- info://status: Current server status
|
||||
- data://config: Server configuration
|
||||
- data://users: List of all users
|
||||
|
||||
How to Use:
|
||||
1. Use the search tool to find items
|
||||
2. Use the analyze tool to generate insights from data
|
||||
3. Use the summarize tool to create concise summaries
|
||||
|
||||
For specific tasks, use the pre-configured prompts:
|
||||
- /analyze: Analyze a topic in depth
|
||||
- /report: Generate a comprehensive report
|
||||
- /review: Review and provide feedback
|
||||
"""
|
||||
|
||||
|
||||
@mcp.prompt("analyze")
|
||||
def analyze_prompt(topic: str) -> str:
|
||||
"""Generate a prompt for analyzing a topic."""
|
||||
return f"""
|
||||
Please analyze the following topic: {topic}
|
||||
|
||||
Consider the following aspects:
|
||||
1. Current State: What is the current situation?
|
||||
2. Challenges: What are the main challenges or issues?
|
||||
3. Opportunities: What opportunities exist for improvement?
|
||||
4. Data Points: What data supports your analysis?
|
||||
5. Recommendations: What specific actions do you recommend?
|
||||
|
||||
Use the available tools to:
|
||||
- Search for relevant data using the search tool
|
||||
- Gather statistics and metrics
|
||||
- Review related information
|
||||
|
||||
Provide a structured analysis with:
|
||||
- Executive Summary
|
||||
- Detailed Findings
|
||||
- Data-Driven Insights
|
||||
- Actionable Recommendations
|
||||
"""
|
||||
|
||||
|
||||
# ============================================================================
|
||||
# Prompts with Parameters
|
||||
# ============================================================================
|
||||
|
||||
@mcp.prompt("report")
|
||||
def report_prompt(
|
||||
subject: str,
|
||||
timeframe: str = "last month",
|
||||
detail_level: str = "summary"
|
||||
) -> str:
|
||||
"""Generate a report prompt with parameters."""
|
||||
return f"""
|
||||
Generate a comprehensive report on: {subject}
|
||||
|
||||
Timeframe: {timeframe}
|
||||
Detail Level: {detail_level}
|
||||
|
||||
Report Structure:
|
||||
1. Executive Summary
|
||||
- Key findings
|
||||
- Critical metrics
|
||||
- Main recommendations
|
||||
|
||||
2. Data Analysis
|
||||
- Quantitative metrics
|
||||
- Trend analysis
|
||||
- Comparative analysis
|
||||
|
||||
3. Insights
|
||||
- Patterns discovered
|
||||
- Anomalies identified
|
||||
- Correlations found
|
||||
|
||||
4. Recommendations
|
||||
- Short-term actions
|
||||
- Long-term strategies
|
||||
- Resource requirements
|
||||
|
||||
Please use the available tools to gather:
|
||||
- Statistical data
|
||||
- User information
|
||||
- System metrics
|
||||
- Historical trends
|
||||
|
||||
Format: {detail_level.upper()}
|
||||
- "summary": High-level overview with key points
|
||||
- "detailed": In-depth analysis with supporting data
|
||||
- "comprehensive": Full analysis with all available data points
|
||||
"""
|
||||
|
||||
|
||||
@mcp.prompt("review")
|
||||
def review_prompt(
|
||||
item_type: str,
|
||||
item_id: str,
|
||||
focus_areas: str = "all"
|
||||
) -> str:
|
||||
"""Generate a review prompt."""
|
||||
return f"""
|
||||
Review the {item_type} (ID: {item_id})
|
||||
|
||||
Focus Areas: {focus_areas}
|
||||
|
||||
Review Criteria:
|
||||
1. Quality Assessment
|
||||
- Overall quality rating
|
||||
- Strengths identified
|
||||
- Areas for improvement
|
||||
|
||||
2. Completeness
|
||||
- Required elements present
|
||||
- Missing components
|
||||
- Suggestions for additions
|
||||
|
||||
3. Consistency
|
||||
- Internal consistency
|
||||
- Alignment with standards
|
||||
- Conformance to guidelines
|
||||
|
||||
4. Performance
|
||||
- Efficiency metrics
|
||||
- Resource utilization
|
||||
- Optimization opportunities
|
||||
|
||||
5. Recommendations
|
||||
- Priority improvements
|
||||
- Nice-to-have enhancements
|
||||
- Long-term considerations
|
||||
|
||||
Please gather relevant data using available tools and provide a structured review.
|
||||
"""
|
||||
|
||||
|
||||
# ============================================================================
|
||||
# Task-Specific Prompts
|
||||
# ============================================================================
|
||||
|
||||
@mcp.prompt("summarize")
|
||||
def summarize_prompt(content_type: str = "text") -> str:
|
||||
"""Generate a summarization prompt."""
|
||||
return f"""
|
||||
Create a comprehensive summary of the {content_type}.
|
||||
|
||||
Summary Guidelines:
|
||||
1. Key Points
|
||||
- Extract the most important information
|
||||
- Identify main themes or topics
|
||||
- Highlight critical details
|
||||
|
||||
2. Structure
|
||||
- Opening: Context and overview
|
||||
- Body: Main points organized logically
|
||||
- Closing: Conclusions and implications
|
||||
|
||||
3. Audience Consideration
|
||||
- Write for clarity and understanding
|
||||
- Define technical terms if needed
|
||||
- Provide context where necessary
|
||||
|
||||
4. Length
|
||||
- Brief: 2-3 sentences
|
||||
- Standard: 1 paragraph
|
||||
- Detailed: 2-3 paragraphs
|
||||
|
||||
Output Format:
|
||||
- Start with a one-sentence overview
|
||||
- Follow with detailed points
|
||||
- End with key takeaways
|
||||
|
||||
Use available tools to gather additional context if needed.
|
||||
"""
|
||||
|
||||
|
||||
@mcp.prompt("compare")
|
||||
def compare_prompt(item1: str, item2: str, criteria: str = "general") -> str:
|
||||
"""Generate a comparison prompt."""
|
||||
return f"""
|
||||
Compare and contrast: {item1} vs {item2}
|
||||
|
||||
Comparison Criteria: {criteria}
|
||||
|
||||
Analysis Framework:
|
||||
1. Similarities
|
||||
- Common features
|
||||
- Shared characteristics
|
||||
- Aligned goals or purposes
|
||||
|
||||
2. Differences
|
||||
- Unique features
|
||||
- Distinct characteristics
|
||||
- Divergent approaches
|
||||
|
||||
3. Strengths and Weaknesses
|
||||
- {item1} strengths
|
||||
- {item1} weaknesses
|
||||
- {item2} strengths
|
||||
- {item2} weaknesses
|
||||
|
||||
4. Use Cases
|
||||
- When to choose {item1}
|
||||
- When to choose {item2}
|
||||
- Situational recommendations
|
||||
|
||||
5. Conclusion
|
||||
- Overall assessment
|
||||
- Best fit scenarios
|
||||
- Decision factors
|
||||
|
||||
Please gather data using available tools and provide a balanced comparison.
|
||||
"""
|
||||
|
||||
|
||||
# ============================================================================
|
||||
# Workflow Prompts
|
||||
# ============================================================================
|
||||
|
||||
@mcp.prompt("troubleshoot")
|
||||
def troubleshoot_prompt(problem_description: str) -> str:
|
||||
"""Generate a troubleshooting prompt."""
|
||||
return f"""
|
||||
Troubleshoot the following issue:
|
||||
|
||||
Problem: {problem_description}
|
||||
|
||||
Troubleshooting Process:
|
||||
1. Problem Definition
|
||||
- Describe the issue clearly
|
||||
- Identify symptoms
|
||||
- Note when it started
|
||||
|
||||
2. Information Gathering
|
||||
- Use available tools to gather:
|
||||
* System status
|
||||
* Error logs
|
||||
* Configuration details
|
||||
* Recent changes
|
||||
|
||||
3. Analysis
|
||||
- Identify potential causes
|
||||
- Determine root cause
|
||||
- Assess impact
|
||||
|
||||
4. Solution Development
|
||||
- Propose solutions (short-term and long-term)
|
||||
- Evaluate each solution
|
||||
- Recommend best approach
|
||||
|
||||
5. Implementation Plan
|
||||
- Step-by-step resolution
|
||||
- Required resources
|
||||
- Expected timeline
|
||||
- Verification steps
|
||||
|
||||
6. Prevention
|
||||
- Preventive measures
|
||||
- Monitoring recommendations
|
||||
- Documentation needs
|
||||
|
||||
Please be systematic and thorough in your analysis.
|
||||
"""
|
||||
|
||||
|
||||
@mcp.prompt("plan")
|
||||
def plan_prompt(objective: str, constraints: str = "none") -> str:
|
||||
"""Generate a planning prompt."""
|
||||
return f"""
|
||||
Create a detailed plan for: {objective}
|
||||
|
||||
Constraints: {constraints}
|
||||
|
||||
Planning Framework:
|
||||
1. Objective Analysis
|
||||
- Clear definition of success
|
||||
- Key success criteria
|
||||
- Expected outcomes
|
||||
|
||||
2. Current State Assessment
|
||||
- Available resources
|
||||
- Existing capabilities
|
||||
- Known limitations
|
||||
|
||||
3. Strategy Development
|
||||
- Approach options
|
||||
- Recommended strategy
|
||||
- Rationale
|
||||
|
||||
4. Action Plan
|
||||
- Phase 1: Foundation
|
||||
- Phase 2: Implementation
|
||||
- Phase 3: Optimization
|
||||
|
||||
5. Resource Requirements
|
||||
- Personnel
|
||||
- Technology
|
||||
- Budget
|
||||
- Time
|
||||
|
||||
6. Risk Management
|
||||
- Identified risks
|
||||
- Mitigation strategies
|
||||
- Contingency plans
|
||||
|
||||
7. Success Metrics
|
||||
- KPIs to track
|
||||
- Measurement methods
|
||||
- Review milestones
|
||||
|
||||
Use available tools to gather supporting data and insights.
|
||||
"""
|
||||
|
||||
|
||||
# ============================================================================
|
||||
# Main
|
||||
# ============================================================================
|
||||
|
||||
if __name__ == "__main__":
|
||||
mcp.run()
|
||||
Reference in New Issue
Block a user