General-purpose asynchronous task gateway for OpenSquilla, exposing session workflows and literature retrieval as MCP tools
Server has 14 well-structured tools with explicit FastMCP registration, complete input schemas, and tool annotations (readOnlyHint, destructiveHint, idempotentHint). Naming follows verb_noun convention (conversations_list, session_create, messages_send). However, descriptions vary significantly in quality: some are concise and actionable (10-50 chars), others are verbose and domain-specific (200+ chars for literature_search_start). Parameter descriptions are present but minimal, most lack format constraints, ranges, or examples. Output schemas are not documented in the source. Error handling is not visible in the provided code. The literature_search_* tools have complex nested object parameters (LiteratureSearchRequest, LiteratureSearchFeedback) with no visible schema documentation.
List OpenSquilla sessions visible to the connected gateway principal.
Wait for live or replayed gateway events for an OpenSquilla session.
Request cooperative, idempotent cancellation while retaining verified results.
Permanently delete a task.
Pin or unpin a task so automatic retention cleanup can be controlled.
Submit accepted/rejected papers and missing aspects for a remaining search round.
Complex nested object parameters (LiteratureSearchRequest, LiteratureSearchFeedback) lack visible schema documentation. The source shows only {'type':'object','description':'...'} with no field definitions, making it impossible for LLMs to construct valid payloads.
Output schemas are not documented in the source code. Tools return dict[str, Any] with no visible schema definition, preventing LLMs from knowing what fields to expect or how to chain results to downstream tools.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | 2026-07-28+ | v2 |
Read the latest verified result, including partial results while still running.
Automatically delegate paper discovery after Codex selects retrieve or mixed. Use this when answering the user requires finding papers that were not supplied, expanding search terms, searching multiple sources, or checking topic coverage. Do not use it for analysis-only requests or deep reading of papers already provided. The call returns immediately with a task_id. Define one to six required aspects and a caller-scoped idempotency_key. OpenSquilla retrieves metadata; Codex polls the task, validates the result, asks the user before relaxing constraints, and performs any requested deep reading itself.
Read queue position, current state, completed rounds, deadline, and errors.
Read persisted messages for an OpenSquilla session.
Send a user message to an existing OpenSquilla session.
Create an OpenSquilla session and return its key for messages_send.
Resolve a session key or identifier to OpenSquilla session metadata.
Export a session transcript as JSONL with standard tool evidence events.
Parameter descriptions lack format constraints and ranges. E.g., 'limit' parameters have no min/max bounds (conversations_list accepts 1 - 50? 1 - 1000?), 'timeout_ms' has no range guidance, 'intent' has no enum of valid values.
literature_search_start description is 300+ characters and domain-specific, making it difficult for general-purpose LLMs to understand when to invoke it. Simplify to 50 - 150 chars with clear prerequisites.
No visible error handling or recovery guidance in the source. Tools return dict[str, Any] with no documented error cases, status codes, or actionable error messages for LLM recovery.