Local-first MCP server and TypeScript library for reviewing .NET LINQ, Entity Framework and Dapper query performance.
QueryForge has 7 well-structured tools with complete Zod schemas and consistent descriptions. All tools are read-only analysis/suggestion tools with clear, domain-specific purposes. Naming follows verb_noun convention (analyze_query, suggest_ef_rewrite). Descriptions are adequate (100-150 chars) but lack actionable context for LLM selection (e.g., when to use analyze_query vs generate_review_report). Parameter descriptions are present but generic; none explain constraints, formats, or dependencies. Output schemas are not documented, LLMs cannot predict response structure. Error handling is absent from visible code. No tool annotations (readOnlyHint, idempotentHint) despite all being read-only. Batch tool (analyze_query_batch) is a good composition pattern but lacks pagination guidance for large result sets.
Analyze a C# EF Core, LINQ or Dapper query and return performance review suggestions.
Analyze multiple C# query files/snippets and rank the riskiest ones by performance smells.
Generate a markdown review report for a C# query.
Inspect pasted .csproj content to detect .NET runtime, EF/Dapper usage, and database providers.
Suggest a conservative Dapper alternative for a read-only EF Core/LINQ query.
Suggest a safer EF Core rewrite for a C# query without modifying files.
Suggest conservative index candidates from C# LINQ/EF query filters and ordering. Does not inspect the database or validate execution plans.
No output schemas documented. LLMs cannot predict response structure or plan downstream tool calls. All tools return markdown text or JSON but structure is opaque.
Descriptions lack actionable context for LLM selection. E.g., analyze_query and generate_review_report both analyze queries but distinction is unclear. No guidance on when to use each.
Parameter descriptions are generic and lack constraints. E.g., 'provider' enum values are listed but no guidance on what happens if provider is wrong or unknown. 'context' param is vague ('Optional context information').
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
No tool annotations despite all tools being read-only. Missing readOnlyHint and idempotentHint annotations that would help agents understand safety and retry semantics.
analyze_query_batch lacks pagination guidance. No limit on array size, no mention of result limits or how to handle large batches. Could cause context window exhaustion.