Telaios monolith server (FastAPI). Merges legacy data-api + agent-service. Provides MCP tools for document/repository search, file operations, shell execution, and agent task management.
Telaios provides 6 tools with clear action-verb naming (search_*, read_*, write_*, run_*, finish). All tools have descriptions (avg ~120 chars, within baseline 34-392 range). Input schemas are present with typed parameters. However, parameter descriptions are minimal or absent in several tools (search_repository's 'collection' param lacks detail; run_shell has no guidance on command format/safety). Output schemas are not documented. Error handling is implicit rather than explicit, no recovery guidance or categorization. Tool composition is reasonable but finish() is a meta-tool that doesn't fit standard patterns. Security concerns: run_shell is DESTRUCTIVE with no rate limiting, confirmation, or audit trail visible in the code.
Signal that the task is complete and provide the final structured answer. Call this tool once you have gathered all required information.
Read the contents of a file at the given path relative to the workspace root.
Run a shell command inside the workspace directory and return its output.
Search indexed project documents and return relevant excerpts. Use this tool when you need information from design documents, specifications, requirements, or other project artefacts.
Search indexed repository code and return relevant snippets. Use this tool when you need information about the existing codebase: functions, classes, patterns, dependencies, or architecture.
Write content to a file at the given path relative to the workspace root. Parent directories are created automatically.
run_shell lacks safety guardrails and error guidance. No mention of command validation, timeout, or recovery steps. Description does not warn about destructive potential or guide LLM on safe usage.
Output schemas not documented for any tool. LLMs cannot infer what fields to expect from search_documents, search_repository, or read_file responses, forcing them to guess and risking context loss.
search_repository 'collection' parameter description is vague ('Optional sub-collection name'). Does not explain what collections exist, how to discover them, or what happens if an invalid collection is passed.
run_shell command parameter lacks format constraints. No guidance on shell syntax, allowed commands, or forbidden patterns. LLMs may pass unsafe commands (rm -rf, etc.) without validation.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 63 | 2025-06-18+ | v2 |
finish() is a meta-tool that signals task completion but does not fit standard tool patterns. It should be handled via protocol-level completion semantics, not as a callable tool.