An AI assistant for software developers with access to tools for fetching GitHub repos/files, searching the web, and reading local files. Exposes tools via the Model Context Protocol (MCP) and FastAPI.
DevMind exposes 5 tools with minimal schema documentation and sparse parameter descriptions. All tools have basic descriptions (10-50 chars), but parameter descriptions are missing or trivial. Input schemas are present but lack detail: most parameters have no description field, and no enums/constraints are declared. No output schemas are documented. Error handling is absent, tools return raw text with no recovery guidance. The server follows a basic verb_noun naming pattern (fetch_*, read_*, list_*) but parameter naming lacks type suffixes (e.g., 'repo' should be 'repo_name' or 'repo_path'). No tool annotations (readOnlyHint, etc.) are present. Overall, this is a minimal proof-of-concept lacking production-grade documentation and validation.
Read a file from a GitHub repository.
Get a summary of a GitHub repository.
List files in a local directory.
Read a local file.
Search the web for up-to-date information.
Parameter descriptions are missing or trivial. 'repo' parameter in fetch_github_repo has no description; 'path' in fetch_github_file lacks format guidance (relative vs absolute?). LLMs cannot infer parameter semantics from names alone.
No output schemas documented. Tools return TextContent with raw text; LLMs cannot parse structured results or extract IDs for chaining. E.g., fetch_github_repo should document returned fields (name, description, url, stars, language).
No error handling or recovery guidance. If fetch_github_repo fails (repo not found, rate limit, auth error), the tool returns raw text with no actionable next step. LLM cannot distinguish retryable from fatal errors.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 37 | 2026-07-28+ | v2 |
Parameter naming lacks type suffixes. 'repo' should be 'repo_name' or 'repo_path'; 'path' should be 'file_path' or 'dir_path'. Ambiguous names force LLMs to guess whether to pass 'samnit007/devmind' or a file system path.
No input validation or constraints. 'query' in search_web accepts any string; 'path' in read_file has no length limit or traversal protection. No enums, patterns, or min/max declared. Invites hallucinated or malicious input.