AI-powered notebook manipulation and agent execution with Pydantic AI and MCP (Model Context Protocol) integration. Supports prompt generation, error explanation, and REPL interaction with Jupyter notebooks.
This server exposes only one tool, 'chat', which is a handler for HTTP POST requests rather than a discrete, composable agent tool. The tool definition lacks proper MCP structure: no input schema with typed parameters is visible in the provided source code, descriptions are generic and fail to explain WHAT the tool does or WHEN to use it, and there is no documented output schema. The tool appears to be an HTTP endpoint wrapper rather than a properly defined MCP tool following the 54 agentic patterns. The description mentions 'streaming support' and 'Vercel AI protocol' but does not explain the tool's actual purpose, prerequisites, or return value. Parameter documentation is minimal: 'model' and 'builtinTools' are listed but lack constraints, ranges, enums, or validation guidance. The server is a JupyterLab extension, not a dedicated MCP agent tool server, which explains the mismatch between the MCP tool definition rubric and the actual codebase structure.
Add two numbers
Count words in text
Divide two numbers
Echo back the message
Convert to lowercase
Multiply two numbers
Test server connectivity
Reverse the text
Subtract two numbers
Convert to uppercase
No input schema visible in source code. Tool parameters 'model' and 'builtinTools' are listed but no JSON Schema definition with types, required fields, or validation constraints is present.
Tool description (68 characters) is generic and does not explain WHAT the tool does, WHEN to use it, or WHAT it returns. It reads as a technical implementation note ('Implements the Vercel AI protocol') rather than an agent-facing purpose statement.
Parameter 'model' has no description, type constraint, enum of valid models, or validation guidance. LLM cannot infer what values are valid or how to choose between models.
Parameter 'builtinTools' has no description, no type definition visible, and no explanation of expected structure or valid tool names. LLM cannot determine what to pass.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 23 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 15 | - | v1 |
No documented output schema. LLM cannot know what fields are returned, what types they have, or how to extract relevant data for downstream operations.
Tool name 'chat' is generic and does not follow verb_noun naming convention. Does not clearly signal what action happens when invoked. 'chat' could mean 'start a chat', 'send a message', 'retrieve chat history', or 'update chat settings'.
No error handling guidance visible. No indication of how LLM should recover from invalid model name, missing tool, or API failure.