Production-ready MCP servers for Frappe, GitHub, Jira, Internet, Goal Management, and Memory Cache with dashboard and file/bash execution support
The server provides 31 tools across multiple domains (bash, files, caching, goals, GitHub, Jira, Frappe, internet). While all tools have descriptions and most parameters are typed, there are critical gaps: (1) No visible input schemas in the source code, tool definitions appear to be inferred from the provided specification rather than directly visible in implementation; (2) Parameter descriptions are present but often generic (e.g., 'Cache key' for get_cache_value); (3) No documented output schemas, responses are not formally specified; (4) No evidence of error handling patterns or recovery guidance in tool implementations; (5) Security concerns: tools like execute_command with arbitrary bash command execution lack clear constraints or sandbox documentation; (6) Tool naming is generally good (verb_noun pattern), but composition is poor, many tools operate on the same resources without clear chaining patterns (e.g., create_goal, list_goals, get_goal, update_goal, add_tasks_to_goal lack documented relationships). The server is functionally defined but falls short of production-grade quality standards for LLM agent safety and usability.
Add subtasks to a goal
Clear all cache keys
Create a directory with parent directory creation support
Create a new Frappe document
Create a new issue in a GitHub repository
Create a new goal with description, priority, and optional repositories
Create a new issue in Jira
Delete a cache key
No visible input/output schemas in source code. Tool definitions appear inferred from specification rather than explicitly declared in implementation. Cannot verify actual parameter validation or response structure.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 47 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 37 | - | v1 |
Delete a file with safety checks and confirmation
Execute a bash command with proper working directory support, security restrictions, and error handling
List all cache keys in Redis
Get a value from the cache by key
Get a specific Frappe document by name
Get list of Frappe documents of a specific doctype
List issues from a GitHub repository
List GitHub repositories for a user or organization
Get details of a specific goal by ID
Get Redis server statistics and memory usage
Get server logs with error detection and filtering
Get overall system status including running servers, Redis, and PostgreSQL health
List directory contents with file metadata and filtering support
List all goals with optional filtering by status and priority
List Jira issues with optional filtering
Read file contents with metadata including size, modification time, mime type, and file hash
Search the internet using Google Custom Search API
Set a value in the cache with optional TTL
Update a Frappe document
Update goal details
Update a Jira issue status, priority, or other fields
Update status of a task within a goal
Write content to file with parent directory creation support
execute_command tool accepts arbitrary bash commands with only timeout constraints (max 300s). No documented sandbox restrictions, allowlist, or injection protection. High risk for prompt injection attacks.
No documented output schemas for any tools. Agents cannot predict response structure, forcing runtime parsing. Makes tool chaining unreliable.
Destructive operations (delete_file, clear_cache) lack confirmation or dry-run patterns. No recovery tools documented. Agents can permanently delete data without safeguards.
Multiple tools operate on same resources (goals, cache, jira issues) without documented tool chaining. No ID/reference continuity guaranteed. Example: create_goal returns no goal_id schema; get_goal requires goal_id input but schema type unclear.
Generic parameter descriptions reduce clarity for LLM decision-making. Examples: 'Cache key' (4 chars), 'Goal ID' (7 chars), 'Server identifier key' (19 chars). Should include format, example constraints, and disambiguation from similar fields.
No error handling guidance documented. Tools return errors (implied by 'error handling' feature flag) but recovery paths not specified. LLM cannot self-correct on invalid inputs.
No pagination documented for list_* tools. list_goals, get_github_repositories, list_jira_issues, get_frappe_doctype_list can return unbounded results. Risk of context overflow and agent confusion.
Parameters accepting enums (priority: low|medium|high; status: open|closed|all) are not formally constrained in visible schema. LLM has no machine-readable enum list; must infer from text description.
Tool names have no consistency in parameter style. Some use 'owner' (get_github_repositories), others use 'project_key' (create_jira_issue). Inconsistent naming forces LLM to disambiguate across tools.