Identify use cases for the Botanical Garden theme
mainThe botanical-garden theme is best suited for the following types of content and brands:
- Garden centers
- Food presentations
- Farm-to-table content
- Botanical brands
- Natural products
repository·main·Indexed 25 days ago
https://github.com/minimax-ai/mini-agentA professional demo project for building agents using the MiniMax M2.5 model. It features an Anthropic-compatible API, interleaved thinking, persistent memory, and Model Context Protocol (MCP) tool integration. The project includes a CLI, support for custom skills, and integration with the Zed editor via the Agent Communication Protocol (ACP).
The botanical-garden theme is best suited for the following types of content and brands:
brand-guidelines skill applies Anthropic's official brand colors and typography to artifacts (such as presentations) to ensure they adhere to company design standards. Use this skill when you need to apply specific visual formatting, brand colors, or corporate identity guidelines during post-processing.The webapp-testing skill provides a toolkit for interacting with and testing local web applications using Playwright. It supports verifying frontend functionality, debugging UI behavior, capturing screenshots, and viewing browser logs.
file:// URLs.scripts/with_server.py helper to manage the server lifecycle.networkidle, inspect DOM/screenshot, then execute actions).Forest Canopy theme is a natural and grounded theme featuring earth tones inspired by dense forest environments. It is best suited for environmental presentations, sustainability reports, outdoor brands, wellness content, and organic products.A 3P update is a succinct summary designed for executives and leadership to be read in 30-60 seconds. It covers a specific team's work over a set time period (typically one week).
When building MCP (Model Context Protocol) servers, design tools specifically for AI agents rather than simple API wrappers. Follow these principles:
schedule_event tool that checks availability and creates the event) instead of exposing raw endpoints.Try using filter='active_only' to reduce results.Define tool input schemas using Pydantic BaseModel. FastMCP uses these models to automatically generate inputSchema and perform validation.
Best Practices:
ConfigDict for configuration (e.g., str_strip_whitespace=True, extra='forbid').Field to provide descriptions and constraints (e.g., min_length, ge, le).field_validator (with @classmethod) for custom validation logic.from pydantic import BaseModel, Field, field_validator, ConfigDict
from typing import Optional, List
class ServiceToolInput(BaseModel):
model_config = ConfigDict(
str_strip_whitespace=True,
validate_assignment=True,
extra='forbid'
)
param1: str = Field(..., description="First parameter description", min_length=1, max_length=100)
param2: Optional[int] = Field(default=None, description="Optional integer", ge=0, le=1000)
tags: Optional[List[str]] = Field(default_factory=list, description="List of tags", max_items=10)To visually inspect a Word document, convert it to a PDF first, then convert the PDF pages into JPEG images.
Use LibreOffice (soffice) in headless mode:
soffice --headless --convert-to pdf document.docxUse pdftoppm from the poppler-utils package:
pdftoppm -jpeg -r 150 document.pdf pagepdftoppm Options:
-r 150: Sets resolution to 150 DPI.-jpeg: Output format (use -png for PNG).-f N: First page to convert.-l N: Last page to convert.page: Prefix for output files (e.g., page-1.jpg).If the PDF is flat (non-fillable), you must manually define bounding boxes for text annotations. Follow these steps exactly:
Visual Analysis: Convert the PDF to PNGs to identify where data should go.
python scripts/convert_pdf_to_images.py <file.pdf> <output_directory>Identify bounding boxes for both the label and the entry area. The label and entry boxes must not intersect. For checkboxes, the entry box should target only the small square, not the text label.
Create fields.json: Define the layout in a JSON file.
Example fields.json structure:
{
"pages": [
{ "page_number": 1, "image_width": 1000, "image_height": 1400 }
],
"form_fields": [
{
"page_number": 1,
"description": "The user's last name",
"field_label": "Last name",
"label_bounding_box": [30, 125, 95, 142],
"entry_bounding_box": [100, 125, 280, 142],
"entry_text": { "text": "Johnson", "font_size": 14, "font_color": "000000" }
}
]
}Generate and Validate Visuals:
python scripts/create_validation_image.py <page_number> <path_to_fields.json> <input_image_path> <output_image_path>python scripts/check_bounding_boxes.py <JSON file>Apply Annotations: Create the final PDF.
python scripts/fill_pdf_form_with_annotations.py <input_pdf_path> <path_to_fields.json> <output_pdf_path>python scripts/convert_pdf_to_images.py <file.pdf> <output_directory>
python scripts/create_validation_image.py <page_number> <path_to_fields.json> <input_image_path> <output_image_path>
python scripts/check_bounding_boxes.py <JSON file>
python scripts/fill_pdf_form_with_annotations.py <input_pdf_path> <path_to_fields.json> <output_pdf_path>When implementing tools that list resources, use limit and offset parameters. The response should include pagination metadata to help the agent navigate results.
Recommended Response Structure:
const response = {
total: number, // Total number of items available
count: number, // Number of items in the current response
offset: number, // Current pagination offset
items: Array<any>, // The actual data
has_more: boolean, // Whether more results are available
next_offset: number // The offset for the next page (if has_more is true)
};pdb or ipdb (recommended for a better experience).The agent's behavior, guidelines, and communication style are defined in system_prompt.md. You can customize:
Note: You must restart the Agent for changes in system_prompt.md to take effect.