An MCP server that provides project analysis, code exploration, and context extraction capabilities for software projects. Supports local folders and Git repositories with comprehensive file filtering, profiling, and content analysis.
DevProjex has well-structured tool definitions with comprehensive input schemas and mostly clear descriptions. All 7 tools are explicitly registered with JSON Schema inputs. Tool names follow verb_noun convention (list_projects, get_tree, analyze, pack_context, read_pack, search_project, get_file) which is excellent for LLM intent inference. Descriptions are present and substantive (100-150 chars typical), meeting the 10-1024 char baseline. Input schemas are detailed with proper type constraints, enums, and pattern validations. However, there are notable gaps: (1) Output schemas are documented in code comments but not visible in the formal registration for most tools; (2) Parameter descriptions in schemas are good but some are missing examples or clarity on edge cases; (3) Error handling and recovery guidance is not evident in the source; (4) The tool descriptions in some cases could be more explicit about what the LLM should use them for (e.g., 'analyze' purpose is unclear). Overall this is a competent toolkit with solid fundamentals, but missing production-grade error handling and some polish on descriptions.
Measure a redacted project selection and list its largest text files by estimated tokens.
Get project file
Return the effective project tree after built-in, gitignore, profile, and optional agent glob filters.
List the project roots this server is allowed to read and their saved local profiles.
Build an exact redacted DevProjex context export. A stored pack id remains valid until this server process exits; after restart, call pack_context again.
Read context pack
Search project
Output schemas not formally registered for most tools. While documented in code, they are not visible in the ProtocolTool registration for list_projects, get_tree, read_pack, search_project, get_file. Only analyze and pack_context have UseStructuredContent=true and OutputSchema set. This breaks LLM ability to predict response structure and chain tools.
Error handling and recovery guidance is absent from tool descriptions and schemas. No indication of what errors might occur, how to interpret them, or what the LLM should do next. For example, get_tree with remote URLs or pack_context with large token budgets could fail in multiple ways, but no recovery guidance is present.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 68 | 2025-06-18+ | v2 |
Tool description for 'analyze' is terse and lacks context on when/why to use it. Current: 'Measure a redacted project selection and list its largest text files by estimated tokens.' This leaves LLM reasoning unclear about the distinction from get_tree or pack_context.
read_pack description is minimal ('Read context pack'). LLM cannot infer from name and description alone what a 'pack' is or when to call read_pack vs pack_context. Should explain that pack_id is session-scoped, expires on server exit, and how it relates to pack_context output.
Parameter descriptions for boolean/string union types (e.g., tracked_only, ignore_case) are present but could be clearer. The schema accepts both boolean and string enum ['true', 'false'], which is unusual. This ambiguity may confuse LLMs into passing inconsistent types.
No indication of parameter dependencies or mutual exclusivity. For example, branch is 'invalid for local project paths' but this constraint is only stated in the description, not enforced or flagged in the schema. LLMs may pass branch with local paths, causing errors.