Static source inference · medium confidence · evidence: Apps extension
Current-spec patterns detected
Summary
This is a multi-project repository containing 20 tools across disparate CrewAI implementations. Evidence of actual tool definitions is sparse, most tool names and descriptions are inferred from project structures and pyproject.toml files rather than directly visible in executable code. The source provided includes only project configuration files and minimal code snippets. No complete tool registration code, input schemas, or output documentation is visible. Descriptions exist but are generic and lack the specificity required for LLM tool selection (averaging ~40-50 chars, below the 50-200 baseline for A+ tools). Parameters are listed without type definitions in the provided evidence. Security practices are unclear, multiple tools interact with external APIs but credential handling is not visible. Overall, this appears to be a collection of incomplete proof-of-concepts rather than production-ready MCP tools.
Descriptions are generic and below 50 characters (baseline: 50 - 200 for A+ tools). Examples: 'Search the web for information' (31 chars), 'Fetch and extract content from a webpage' (40 chars), 'Convert text to speech using Kokoro TTS' (38 chars). Lacking WHEN to use and prerequisites per pattern:tool-description.
Recommendations
Provide complete tool registration code showing explicit MCP tool definitions with JSON Schema input/output declarations for all 20 tools.
Expand tool descriptions to 50 - 200 characters following the prompt-engineering style: state WHAT, WHEN to use, prerequisites, and return structure. Example: 'Search the web for current information. Use when user asks about recent events, news, or up-to-date facts. Returns top 10 results with title, URL, and snippet.'
Add detailed parameter descriptions including format, constraints, enums, ranges, and examples (but avoid example values in description text, use schema enums instead). Example: 'search query (1 - 500 characters, case-insensitive, supports AND/OR boolean operators)'.
Document output schemas for all tools in JSON Schema format, specifying field names, types, and descriptions. Include pagination metadata (limit, offset/cursor, total_count) for list/search tools.
Implement secret injection via environment variables for all tools that require API keys (Firecrawl, AssemblyAI, Exa, BrightData, Kokoro). Never expose credentials as tool parameters.
Add error handling that guides LLM recovery: categorize errors as retryable, user-fixable, or fatal; return specific, actionable messages (not stack traces). Example: 'Invalid language code: got "en-US", expected ISO 639-1 (e.g. en, fr, es)'.
For destructive tools (code_execution, text_to_speech, zep_memory), implement confirmation/dry-run patterns. code_execution should declare timeout limits and sandboxing constraints explicitly.
Spec posture evidence
Inferred effective spec: 2026-07-28+.
Official extensions adopted: Apps
Score history
Overall score trend
↑ 45 points across a rubric change (v1 → v2)
45/100
Scored
Grade
Overall
Spec posture
Rubric
2026-09-22
F
45
2026-07-28+
v2
2026-03-09
F
0
-
v1
exa_searchread onlyauth49/100
Web search using Exa API
fetch_webpage_contentread only48/100
Fetch and extract content from a webpage
firecrawl_toolread onlyauth43/100
Web scraping and content extraction using Firecrawl API
milvus_queryread only46/100
Query Milvus vector database
model_comparisonread onlyauth47/100
Compare code generation models
pdf_extractionread only50/100
Extract text and images from PDF documents
scientific_image_analysisread onlyauth45/100
Analyze scientific figures and images
support_routingread only47/100
Route customer support queries to appropriate agents
Parameter type definitions not visible in provided source. Schemas list only parameter names and descriptions (e.g., query: {type: string, description: '...'}) but no JSON Schema validation, enums, constraints, or ranges. Cannot verify adherence to pattern:constrained-input.
No documented output schemas. LLMs need to know what fields to expect.' Without return type documentation, LLMs cannot plan downstream tool chaining (pattern:tool-chain).
Security: credential handling not visible. Multiple tools interact with external APIs (Firecrawl, AssemblyAI, Exa, BrightData, Kokoro) but no evidence of secret injection patterns or environment variable usage in provided code. High risk if API keys appear in parameters.
Destructive/write tools ('text_to_speech', 'code_execution', 'zep_memory') lack confirmation patterns or dry-run support. Rubric: 'Irreversible operations should support a dry-run or confirmation step. Agents make mistakes, a confirm_before_execute pattern prevents catastrophic errors.'
Generic parameter names without disambiguation. 'analysis_type' and 'action' (firecrawl_tool) are vague, LLMs need explicit enum values or examples. 'language' in assemblyai_transcription lacks format guidance (ISO 639-1 code?).
No pagination support visible for list/search tools. 'web_search_tool', 'code_search', 'vector_search' should return pagination metadata (limit, offset/cursor, total count) per pattern:paginated-result. Without it, large result sets risk context window overflow.
Tool 'code_execution' accepts arbitrary code, high injection risk. No input validation, sandboxing details, or timeout declarations visible. Requires pattern:tool-gateway with sanitization and explicit permission gates.
code_execution
Add pagination support (limit, offset, total_count) to all list/search tools (web_search_tool, code_search, vector_search, exa_search) with documented limits (e.g., max 50 results per call).
Clarify vague parameter names: replace 'action' with explicit enum (scrape|search|extract), 'analysis_type' with enum (sentiment|summary|entity_extraction), 'language' with ISO 639-1 format hint.
Implement rate limiting and timeout declarations to prevent runaway agents from overwhelming downstream APIs.
Add tool annotations (readOnlyHint for GET operations, destructiveHint for write operations, idempotentHint where applicable) to guide agent behavior per current MCP spec.
Provide audit trail support: log who called what tool, with which parameters, at what time, and what happened, for compliance and debugging.