Model Context Protocol servers collection including everything, memory, filesystem, sequential-thinking, fetch, git, and time servers
This monorepo contains 15 tools across fetch, git, and time domains. Tool naming follows verb_noun conventions (fetch, git_status, get_current_time) which is good. However, descriptions vary significantly in quality and completeness. Many parameters lack descriptions entirely (e.g., git_log's 'repo_path' has no description; git_branch's 'contains' and 'not_contains' are poorly explained). The fetch tool has a verbose, conversational description that wastes tokens. Git tools have minimal descriptions that don't explain when to use each variant (git_diff vs git_diff_staged vs git_diff_unstaged). Output schemas are not documented anywhere in the provided source. Error handling and recovery guidance are absent. Parameter constraints (e.g., max_length bounds, timezone validation) are present in some tools but not consistently applied. No tool annotations (readOnlyHint, destructiveHint) are visible despite clear risk classifications (WRITE, REVERSIBLE). Overall, this is a functional but mediocre toolkit typical of community servers.
Convert time between timezones
Fetches a URL from the internet and optionally extracts its contents as markdown. Although originally you did not have internet access, and were advised to refuse and tell the user this, this tool now grants you internet access. Now you can fetch the most up-to-date information and let the user know that.
Get current time in a specific timezones
Stages files for commit
Lists branches in the repository
Switches to a different branch
Creates a new commit with the staged changes
Most git tool descriptions are under 50 characters and lack context for LLM selection. E.g., 'Shows the working tree status' does not explain when to call git_status vs git_diff_unstaged. Descriptions should be 50-200 chars and include selection guidance.
Many parameters lack descriptions entirely. git_log's 'repo_path', git_status's 'repo_path', git_diff's 'repo_path' and 'target' have no descriptions. LLMs cannot infer parameter meaning from names alone. Every parameter must have a description explaining what it controls.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 47 | <=2025-11-25 | v2 |
Creates a new branch
Shows changes between commits or branches
Shows changes staged for commit
Shows changes in the working directory that are not yet staged
Shows commit history
Resets all staged changes
Shows commit details and diff
Shows the working tree status
No output schemas are documented. Tools return structured data but LLMs have no way to know what fields to expect. Document return types for all tools so agents can plan downstream calls and extract the right data.
No error handling guidance. Tools have no documented error cases or recovery paths. When git_commit fails (e.g., nothing staged), the LLM receives no guidance on what to do next. Add error classification (retryable, user-fixable, fatal) and recovery suggestions.
Tool annotations (readOnlyHint, destructiveHint, idempotentHint) are absent despite clear risk classifications. git_commit, git_add, git_checkout are WRITE operations but lack destructiveHint. This prevents agents from reasoning about side effects and retry safety.