Multi-agent collaboration framework using Model Context Protocol with Ollama local LLM inference and Streamlit UI. Orchestrates specialized agents (Researcher, Summarizer, Planner, Communicator) through a pipeline with pluggable MCP tools for filesystem, web search, database, vector store, datetime, and calculator operations.
Server provides 6 tools with basic schemas and descriptions, but falls short of production quality. All tools have descriptions (10-100 chars, mostly adequate) and input schemas with type definitions and enums. However, output schemas are completely undocumented, LLMs cannot predict what fields to expect from tool responses. Error handling is minimal (generic try-catch blocks returning string output). Tool names lack action verbs (e.g., 'datetime' instead of 'get_datetime', 'filesystem' instead of 'list_files'). Parameter descriptions are present but sparse (avg ~40 chars vs. baseline 72 chars). No pagination support documented for list operations. No idempotency hints or destructive operation warnings. Security: filesystem and database tools accept user input without visible sanitization against path traversal or SQL injection.
Evaluate mathematical expressions safely. Supports +, -, *, /, **, sqrt, log, trig functions.
Query a local SQLite database with SQL SELECT statements. Actions: query (run SQL), list_tables, describe_table.
Get current date/time, convert timezones, calculate date differences.
Read, list, and search files in the local data directory. Actions: list_files, read_file, search_files.
Semantic search over a local document knowledge base using ChromaDB. Actions: add_document, search, list_documents.
Search the web for information using DuckDuckGo. Provides instant answers, abstracts, and related topics. Free, no API key required.
No output schemas documented. LLMs cannot predict response structure, forcing them to guess at field names and types for downstream tool chaining.
Tool names lack action verbs. 'datetime' should be 'get_datetime', 'filesystem' should be 'list_files' or 'read_file'. Verb-less names reduce LLM clarity on intent.
Filesystem and database tools accept user input (paths, SQL) without visible input validation or sanitization. Risk of path traversal and SQL injection attacks.
Error handling is generic. All tools catch exceptions and return string output. No recovery guidance, error classification, or actionable next steps for LLMs.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 37 | <=2025-11-25 | v2 |
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). LLMs cannot determine which tools are safe to retry or have side effects.