Codex-native scientific research assistant for scholarly search, library management, full-text analysis, and local semantic retrieval
SciBudy has 26 tools with mostly complete schemas and descriptions. Naming is verb-first and clear (search_*, research_*, ingest_*, etc.). Most tools have 50-200 char descriptions and typed parameters with descriptions. However, several tools lack parameter descriptions (e.g., import_library, rename_library, tag_library have minimal param docs), and some descriptions are generic or lack WHEN-to-use guidance. Error handling is not visible in the provided code, no recovery guidance or actionable error messages documented. Tool composition is reasonable but some tools combine multiple concerns (research_workflow does search+library+ingest+synthesize in one call, violating single-responsibility). Output schemas are declared (structured_output=True) but not fully documented in the code sample. Security checks exist (security_check tool) but no evidence of secret injection patterns or permission gates in tool definitions.
Build and analyze a journal style corpus: collect journal articles, parse sections/captions/references, and write style-analysis reports.
Synthesize evidence across a library for a specific research topic.
Archive a library without permanently deleting its files.
Search and organize a library. Does not ingest full text or synthesize; use research_workflow for the complete agent workflow.
Download PDFs for papers from a saved run or CSV file into a local directory.
Get current analysis configuration.
Show provider readiness, missing credentials, local UI readiness, and Codex integration status.
Multiple library management tools (import_library, rename_library, tag_library) have minimal parameter descriptions. 'path' in import_library lacks format guidance; 'new_name' in rename_library lacks length/character constraints.
research_workflow combines search, library creation, PDF download, full-text ingestion, and synthesis into one tool. This violates single-responsibility and prevents agents from composing steps independently. Should split into search → create_library → download_pdfs → ingest_library → analyze_topic.
No error handling guidance visible in tool definitions. Tools like download_pdfs and organize_library do not document what happens on partial failure (e.g., some PDFs fail to download). No recovery hints provided.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | <=2025-11-25 | v2 |
Import an existing organized library directory or CSV into the managed catalog.
Ingest full text from all items in a library for semantic analysis and synthesis.
List all analysis reports for a library.
List available domain profiles for synthesis.
List managed libraries.
Organize a local paper library from a saved run or CSV, writing CSV/Markdown/BibTeX outputs, downloading PDFs by default when available, and preserving a manual download checklist for misses.
Read a specific analysis report.
Read one managed library including items and generated context bundles.
Rename a managed library display name.
Agent-first research workflow. Use dry_run for safe previews, quality_mode=fast for low-cost search+library setup, and standard/deep for ingest+synthesis.
Resolve open-access links for a DOI through Unpaywall.
Restore an archived library.
Biomedical literature search shortcut using PubMed, Europe PMC, OpenAlex, DOAJ, and CORE.
Search scholarly literature only. Use research_workflow when the agent should also build a library, ingest text, or synthesize evidence.
Search a single provider directly.
Run local MCP safety checks for secrets, app-home path, Codex config, UI binding, and exposed mutating tools.
Standardize an existing text against a previously collected journal corpus: build vocabulary reports, audit out-of-corpus prose, and optionally write a replacement-map-based standardized copy.
Add or update tags on a managed library.
Update analysis configuration.
List and read tools (list_libraries, list_analysis_reports, read_analysis_report) lack pagination parameters (limit, offset, cursor). Large result sets will blow context windows without pagination support.
Tool descriptions for list_* and read_* tools are generic (60 chars or less). They lack WHEN-to-use guidance and do not explain what structure they reveal or when to call them before other tools.