K-Dense BYOK (Bring Your Own Key) MCP server providing durable Modal compute, PDF annotations, notebook memory, and specialized agent tools for scientific research workflows
Strong schema definitions with TypeBox validation and detailed parameter constraints. Tool names follow verb_noun convention (notebook_search, modal_run, add_pdf_annotation). Descriptions are comprehensive (150-400 chars) and explain WHEN/WHAT/WHY. However, output schemas are not explicitly documented in the provided code, only input schemas are visible. Error handling guidance is minimal. Modal tools lack explicit idempotency/retry semantics despite being durable compute operations. PDF annotation tools are well-structured but lack recovery guidance for concurrent edits.
Add a highlight or sticky note that appears live in Kady's PDF viewer. Use sandbox-relative PDF paths. Pages are 1-indexed. Coordinates are PDF user-space points: origin bottom-left, y grows upward, 72 points per inch. Highlights require exact `rects` and selected `text`; notes require an `anchor` and short `body`. If exact text coordinates are unavailable, prefer a note at a reasonable page anchor.
List annotations already attached to a sandbox PDF, optionally filtering by page or user/expert author.
Cancel a running or queued Modal job.
Retrieve results and output files from a completed Modal job.
Run a command on durable remote Modal CPU/GPU compute and wait for completion. Backward-compatible blocking tool: required files_in are copied recursively, files_out are installed atomically into the local project sandbox, which remains canonical. The job is persisted and recoverable. Aborting this blocking call cancels its remote job. Cost is an explicit estimate (catalogue rate × elapsed sandbox time) and the worst-case timeout cost is reserved before admission.
Output schemas not documented. Tool descriptions explain inputs but not return types. LLMs cannot plan downstream calls or extract required fields (e.g., job_id from modal_submit, annotation_id from add_pdf_annotation).
Modal tools lack explicit error recovery guidance. Descriptions do not explain what happens on timeout, allocation failure, or job cancellation. No guidance on retryability or user-fixable vs fatal errors.
modal_run and modal_submit lack idempotency semantics. Descriptions do not clarify whether repeated calls with same parameters are safe or risk duplicate job submissions. Critical for durable compute tools.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 68 | 2026-07-28+ | v2 |
Poll the status of a submitted Modal job by id.
Submit a durable Modal compute job and return immediately with a job id for polling. Non-blocking variant of modal_run.
Submit multiple independent Modal compute jobs under one group id.
Wait for a Modal job to complete with optional timeout.
Search/read durable project notebook records, user notes, frozen plans and deviations across chats. Returns bounded source-linked excerpts with scope, corrections, outcomes and direct artifact checks—not AI summaries or permanent facts. No model/embedding service is called. Past plans/approvals are not authorization for new work.
Remove an expert-authored PDF annotation by id. User-authored annotations are protected and cannot be removed.
add_pdf_annotation and remove_pdf_annotation lack confirmation/dry-run pattern for destructive operations. Removing annotations is reversible but no undo tool exists. No guidance on concurrent edit conflicts.
notebook_search description mentions 'no model/embedding service' but does not explain what 'lexical relevance' means to an LLM. Unclear whether fuzzy matching, substring search, or exact term matching is used.