AI-powered interview preparation system for senior software engineers with progress tracking, weak area identification, and continuous improvement logging
Server has 25 tools with complete input schemas and descriptions. Naming follows verb_noun convention (get-, update-, start-, end-, list-, search-, add-, delete-, edit-, import-, export-, clone-, activate-, mark-, log-). Descriptions are detailed (100-250 chars typical) and include usage context. However, output schemas are not documented in the visible code, LLMs cannot predict response structure. Parameter descriptions are present but some lack format/constraint details (e.g., 'notes' in update-progress has no length limit). Error handling is not visible in the tool definitions. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk levels (READ_ONLY, WRITE, DESTRUCTIVE). Composition is sound, tools are single-responsibility and chainable (e.g., start-session → update-progress → end-session). Security concern: no visible permission gates or audit logging in tool definitions.
Activate a material source for use in practice sessions. Only one material can be active at a time.
Add a new interview question to a section and subsection. Use to expand material coverage or add custom questions.
Create a copy of an existing material source for customization. Useful for creating custom versions of bundled material.
Delete an interview question from the material. Use to remove outdated, duplicate, or incorrect questions.
Edit an existing interview question's text, answer, or metadata. Use to fix errors, clarify wording, or update outdated content.
Complete and finalize the current interview practice session. Records session duration and question count. Use when user finishes practicing or wants to end their study session. Requires the session ID from start-session.
Output schemas not documented. LLMs cannot predict response structure (fields, types, pagination). Visible code shows only input schemas; return types are inferred from implementation, not declared.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk levels marked in metadata (READ_ONLY, WRITE, DESTRUCTIVE). LLMs cannot infer safety properties from names alone.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | 2026-07-28+ | v2 |
Export interview material to a file (JSON, Markdown, or CSV format) for backup, sharing, or external use.
Retrieve all interview questions within a specific subsection at once. Useful for random selection in mock interview mode, practicing weak areas, or getting a complete question pool. Returns array of all questions with IDs, text, and answers.
Get metrics on material quality improvements over time (issues logged, implemented, resolution rate)
Retrieve logged improvement suggestions and quality issues for review and implementation
Get detailed information about a specific material source including question count, sections, and metadata
Retrieve the next sequential interview question in a subsection to continue practicing. Use when user says 'continue', 'next', 'keep going', or wants to resume from where they left off. Returns question text, answer, question ID, and metadata. Provide lastQuestionNumber (0 for first question) to get the subsequent question.
Get a specific question by section, subsection, and number
Get count of questions in a section or subsection for progress tracking and session planning
List all available topic sections in the active interview preparation material (e.g., 'Java Core Concepts', 'Spring Framework', 'System Design'). Use when user wants to browse available topics, choose what to practice, or see material structure. Returns section names only.
Get overall progress statistics and learning metrics for the active interview preparation material. Shows total questions answered, accuracy percentage, weak areas count, and strong areas. Use when starting a session or reviewing overall performance.
List all subtopics within a specific section of interview material (e.g., within 'Java Core Concepts' get 'Memory Management', 'Concurrency', 'Collections'). Use when user wants to see detailed topics within a section or choose a specific area to practice.
Identify weak areas and topics where the user is struggling based on performance below 60% accuracy. Returns sections and subsections that need more practice. Use when user wants to focus on improving specific topics or during targeted practice sessions.
Import interview questions from an external source (file, URL, or plugin). Creates a new material entry in the database.
List all available interview material sources (bundled, imported, custom). Shows name, version, source type, and active status.
Log a quality issue or improvement suggestion for interview material (e.g., unclear question, incorrect answer, missing explanation). Records the issue with context for later review and implementation.
Mark an improvement suggestion as implemented after making changes to the material
Search for interview questions by keyword or topic using full-text search across all questions and answers. Use when user wants to find questions about specific concepts (e.g., 'dependency injection', 'REST API', 'garbage collection') or practice a particular technology.
Begin a new interview practice session for tracking learning activity. Creates a session record with timestamp and returns a session ID. Use at the start of every practice session to enable session analytics, duration tracking, and question count per session.
Record and track progress after a user answers an interview question. Saves the response (correct, incorrect, partial, or skipped) and optional notes about their understanding. Use after every question to maintain accurate learning statistics and identify weak areas. Essential for progress tracking.
Parameter constraints not fully specified. 'notes' fields lack length limits; 'keyword' in search-questions has no format guidance; 'outputPath' in export-material has no validation rules. LLMs may pass invalid values.
Error handling not visible in tool definitions. No recovery guidance, error classification, or actionable error messages documented. Agents cannot self-correct on failures.
Destructive operations (delete-question) lack confirmation/dry-run pattern. No visible permission gates or audit logging in tool definitions.