An MCP server that provides code analysis, editing, and execution tools integrated with AI providers (Claude, OpenAI, Cursor) and version control systems (GitHub, GitLab)
Codeforge exposes 5 tools with MINIMAL structure. Tool definitions appear only in a React UI file (web/src/components/session/ToolBlocks.tsx), not in backend Go code. This is a critical red flag: tool schemas are inferred from UI hardcoding, not formally defined in the server. Descriptions are trivial (6 - 28 chars), parameter types are minimal/absent, and no error handling guidance is visible. The server is HTTP-based, but tool definition quality is well below production standards.
Execute bash/shell commands
Edit document content
List directory contents
Read file contents
Search for content in files
Tool definitions are not in backend code. Schemas and descriptions are hardcoded in React UI (ToolBlocks.tsx), not in the Go server. This means tool definitions are not formally registered via MCP, they are UI artifacts only. Cannot verify formal schema compliance or parameter validation.
All descriptions are below 20 characters and generic. Examples: 'Edit document content' (20 chars), 'Execute bash/shell commands' (28 chars), 'Read file contents' (18 chars). Too short for LLM tool selection reasoning.
Parameter schemas visible in UI show only 'type' and 'description' fields; no enum constraints, ranges, or regex patterns. The 'bash' tool accepts 'command' as a bare string with no validation constraints, LLM could pass malicious shell commands unchecked.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 39 | 2026-07-28+ | v2 |
'bash' tool executes shell commands with no dry-run, confirmation, or safe-mode. This is an irreversible, destructive tool that agents could invoke without user consent. Missing confirmation pattern.
'edit' tool modifies files with no version control, undo capability, or diff preview. An agent could overwrite critical files. Missing safe-edit patterns (preview, diff, backup).
No documented output schemas. None of the 5 tools declares what fields/structure they return. LLMs cannot plan downstream tool calls without knowing what data they'll receive.
No error handling guidance visible. If 'read' fails on a missing file, does it return a 404 JSON? A stack trace? An error message? No recovery hints for the LLM.
Tool names lack clear action verbs. 'folder_open' is awkward; 'list_directory' or 'read_directory' would be clearer. 'bash' is too generic; 'execute_command' or 'run_shell_script' would better signal intent.