A Go-based MCP (Model Context Protocol) server SDK for building MCP servers with support for tools, resources, prompts, and multiple transport types including WebSocket, SSE, and HTTP.
The Jarvis MCP SDK is an example/demonstration framework with 24 tools spread across multiple example servers. While the code shows explicit tool registration with parameter schemas and basic descriptions, the quality is inconsistent and several tools lack complete schemas or descriptions. No input validation details are visible in the shared code snippet, error handling is generic, and output schemas are not documented. The duplicate tool names (read_file appears twice) signal incomplete example design. This reads as an SDK tutorial rather than a production-ready server. Average tool score: 52/100.
Add two numbers
Analyze large dataset with streaming progress
Process multiple files with progress
Create a new terminal session
Delete a file
Divide two numbers
Execute a terminal command in a session
Execute command with real-time output via SSE
Duplicate tool names: 'read_file' appears in both terminal_server.go (#8) and examples shown for file-manager (#15). This indicates incomplete example cleanup or namespace collision risk.
Generic descriptions on most tools. Examples: 'List running processes' (39 chars), 'Get detailed information about a process' (41 chars), 'Get file statistics' (19 chars, below 20-char minimum). These lack context on WHEN to use the tool or what it returns.
No output schema documentation visible in code. Tools return map[string]interface{} or untyped responses with no LLM guidance on field names, types, or required fields for chaining.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 54 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 33 | 2024-11-05+ | v1 |
Get information about a file or directory
Get file statistics
Get server performance metrics
Kill a process by PID
List contents of a directory
List files in a directory
List running processes
Multiply two numbers
Process a single file with typed parameters
Process multiple files with real-time progress
Get detailed information about a process
Read content of a file
Read contents of a file
Execute a shell script
Stream live log data
Write content to a file
Security concerns: execute_command, execute_interactive, run_script, and kill_process perform IRREVERSIBLE or DESTRUCTIVE operations but lack dry-run, confirmation, or detailed error recovery guidance. No audit logging visible.
No input validation details visible. Tools check parameters post-unmarshal but lack constraint documentation (e.g., command allowlist is code-internal, not parameter-level). Descriptions do not state regex patterns, length limits, or enum options.
Tools like execute_command, run_script, and batch_process accept a 'timeout' and 'parallel' parameters without documented numeric bounds (min/max). LLMs may pass absurd values (timeout=999999, parallel=1000).
No recovery or error guidance in tool descriptions. If execute_command fails with 'command not allowed', the error message exists but the description does not tell the LLM what to do next (which commands ARE allowed, or what to try instead).
Tool names and parameter naming could be more specific. 'process_file' is vague (process how?); 'batch_process' lacks clarity on what operation is applied. Parameter 'operation' should be an enum with explicit values documented in the description.