A collection of MCP server implementations and agent templates including deep research agents, content builders, and fortune telling divination agents across multiple frameworks (AgentScope, LangChain DeepAgents, FastAPI).
This is a multi-agent template repository with 6 tools spread across Python (FastAPI/DeepAgents) and TypeScript (Express) implementations. Tool definitions are present and schemas are partially visible, but the quality is inconsistent. Naming is generally verb-based (tavily_search, think_tool, web_search, generate_cover, generate_social_image, tell_fortune), which is good. However, descriptions range from detailed (tavily_search, think_tool) to minimal (web_search is only 28 characters, tell_fortune is 38 characters). Parameter schemas are visible for most tools, but descriptions for parameters vary significantly in quality. Error handling guidance is absent across all tools. Output schemas are not documented. No evidence of tool annotations (readOnlyHint/destructiveHint) despite the Risk field being populated manually in the spec. The repository appears to be a collection of example implementations rather than a single cohesive MCP server with unified quality standards.
Generate a cover image for a blog post.
Generate an image for a social media post.
Search the web for information on a given query. Uses Tavily to discover relevant URLs, then fetches and returns full webpage content as markdown.
Tell your fortune via Tarot, ZhouYi, or Guangong
Tool for strategic reflection on research progress and decision-making. Use this tool after each search to analyze results and plan next steps systematically. This creates a deliberate pause in the research workflow for quality decision-making.
Search the web for current information.
Critical: web_search has only 28-character description ('Search the web for current information.') which is below the minimum of 34 chars for discovery and below the 50-200 char optimal range. LLMs cannot reliably distinguish this from tavily_search without reading full docs.
Critical: tell_fortune has 38-character description ('Tell your fortune via Tarot, ZhouYi, or Guangong') which is below optimal range. Parameter 'method' has a default value 'all' that is not shown in the enum constraint list [tarot, zhouyi, guangong, all], inconsistency suggests the schema was manually transcribed and may not match actual implementation.
High: Output schemas are not documented for any tool. Tools like tavily_search and generate_cover return unspecified string or image formats. LLMs cannot predict downstream tool compatibility or plan chains reliably. This violates pattern:tool requirement that 'Tools returning lists should accept page/offset and limit parameters and return a total count'.
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 59 | 2025-06-18+ | v2 |
| 2026-03-09 | F | 0 | - | v1 |
High: No error handling guidance in any tool descriptions. If tavily_search fails (network error, API quota exceeded, invalid query), the description does not tell the LLM what to do next or whether to retry. This violates pattern:recovery-guide.
High: Missing parameter descriptions for some tools. generate_cover 'slug' parameter has minimal context ('Blog post slug. Image saves to blogs/<slug>/hero.png') but does not explain format constraints (e.g., allowed characters, length limits). generate_social_image 'slug' is similarly under-specified.
Medium: think_tool is a meta-cognitive tool designed for agent reflection but is not typically suitable for multi-agent or production agentic systems where reasoning should be implicit. This tool bloats the system prompt and adds overhead without reliable value. Consider replacing with built-in agent reasoning primitives rather than exposing as a tool.
Medium: tavily_search and web_search are near-duplicate tools operating on the same domain (web search) with slightly different parameter sets and descriptions. This violates the composition guideline that 'Avoid multiple tools that do the same thing differently.' LLMs will waste reasoning cycles deciding between them.
Medium: Naming consistency issue. 'generate_cover' and 'generate_social_image' use underscores, but the repository mixes naming conventions across implementations (Python tools use snake_case, TypeScript tools may not be visible). Confirm all tools follow consistent verb_noun_object pattern.