DBJavaGenix
The DBJavaGenix MCP server automates AI-driven reverse engineering of databases into Spring Boot Java projects, offering 29 tools across database interaction, code generation, semantic analysis, visualization, and observability.
Database Connection & Exploration
Connect to MySQL, PostgreSQL, SQLite, Oracle, or SQL Server
List databases and tables, check table existence, execute safe SELECT queries
Describe table structure: columns, types, primary keys, foreign keys, indexes, and Java type mappings
Atomic Code Generation (Recommended Workflow)
Build a reusable template context from a DB table (
codegen_build_context)Render and preview individual Spring Boot layers before saving:
codegen_render_entity– JPA/MyBatis-Plus Entitycodegen_render_dao– DAO/Repository layercodegen_render_service– Service interface + ServiceImplcodegen_render_controller– REST Controller with Bean Validationcodegen_render_mapper– MyBatis XML or MapStruct mapper
Legacy single-shot generation (analyze + write all layers at once) also available
Spring Boot Project Management
Validate project structure and dependencies
Analyze dependencies for recommendations (Lombok, Swagger, MapStruct, etc.)
Read YAML/Properties config and infer base package
AI Semantic Enhancement
Infer business-appropriate Java class/field names using 15 naming rules or Claude API
Recommend template category (Default, MybatisPlus, MybatisPlus-Mixed, Spring Boot 3.5 + Java 21) and detect business patterns (RBAC, e-commerce, CMS, ticketing)
Summarize entire database schema in natural language
View AI usage metrics: cache hit rate, tokens saved
Visualization
Generate Mermaid ER diagrams for multiple tables
Observability & Health
Monitor runtime metrics: tool call counts, average latency, error rates
Check server health: Python/SDK versions, module status, active DB connections
Progressive Tool Discovery
Search available tools by keyword, reducing startup token usage by ~70%
Provides tools for connecting to MySQL databases, querying tables, and retrieving schema information for Spring Boot code generation
Generates complete Spring Boot projects including Entity, DAO, Service, Controller, and Mapper layers from database schemas
Supports SQLite databases with tools for connection, table discovery, and schema extraction for code generation
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@DBJavaGenixgenerate Spring Boot code from sys_user and sys_role tables"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
DBJavaGenix
把"用 LLM 看着数据库做反向工程"做成一件可重复、可审计的事。 Skills 定义"怎么做" · MCP 提供"能做什么" · MCP Apps 让结果"看得见"。
graph LR
Client[Claude Desktop / Cursor / Cherry] -->|Skill 加载| Skills
Skills[".claude/skills/<br/>java-codegen-from-db<br/>springboot-migration"]
Skills -->|按需调用| MCP
subgraph MCP[MCP Server 29 工具]
direction TB
DB[db_* 连接 / 查询 / 描述]
Atom[codegen_build_context<br/>codegen_render_entity/dao/service/<br/>controller/mapper]
AI[ai_infer_business_names<br/>ai_recommend_template<br/>ai_summarize_schema]
Vis[db_render_er_diagram]
Obs[server_metrics / server_health<br/>ai_metrics / search_tools]
end
MCP -->|返回 _meta| Apps[MCP Apps 渲染]
Apps -->|mermaid / dashboard / code-diff / tree| Client
MCP -->|读取| Data[MySQL / SQLite + Mustache templates]它解决什么问题
把数据库表反向生成成 Spring Boot 工程 (Entity/DAO/Service/Controller/Mapper) 不是新东西 —— EasyCode、MyBatis-Plus Generator、Renren-generator 都做了多年。LLM 时代的区别在于:
维度 | 老工具 | DBJavaGenix v0.2 |
工作流谁定 | 用户在 IDE 点配置面板 | Skill 文件显式编排 (LLM 不会乱调) |
调用粒度 | 一个大按钮一步到位 | 6 个原子工具 (build_context + 5 个 render_*),LLM 可中途让用户改 context 重渲 |
启动开销 | (插件,常驻) | 默认 ~3300 tok / 渐进模式 ~985 tok (节省 70%) |
命名 | 表前缀机械映射 | 15 条规则 + Claude API,识别 RBAC/电商/CMS 模式 |
输出可视化 | IDE 内文本 | MCP Apps: Mermaid ER 图 / 依赖仪表盘 / code-diff / 包结构树 |
可观测性 | 无 | server_metrics + ai_metrics + server_health |
Related MCP server: spring-api-intel-mcp
快速开始
Docker (推荐)
docker build -t dbjavagenix:latest .在 claude_desktop_config.json 添加:
{
"mcpServers": {
"dbjavagenix": {
"command": "docker",
"args": ["run", "-i", "--rm",
"-e", "DBJAVAGENIX_PROGRESSIVE=1",
"-e", "ANTHROPIC_API_KEY",
"dbjavagenix:latest"]
}
}
}本地 dev
git clone https://github.com/ZhaoXingPeng/DBJavaGenix.git
cd DBJavaGenix
uv venv && uv pip install -e ".[dev]"
PYTHONPATH=src python -m dbjavagenix.cli server第一次使用
在 LLM 客户端里说 "从数据库 myapp 的 sys_user / sys_role / sys_user_role 三张表生成 Spring Boot 代码",Claude 会:
加载
java-codegen-from-dbSkill,按 5 阶段工作流推进调用
db_connect_test→db_table_describe→db_table_foreign_keys收集 schema调用
db_render_er_diagram→ 客户端渲染 Mermaid ER 图调用
ai_infer_business_names推断 →sys_user_role应是UserRoleAssignment调用
ai_recommend_template推荐 → 检测到 RBAC,推MybatisPlus-Mixed用
codegen_build_context+ 5 个codegen_render_*分层生成,每层返回 code-diff用户确认后写盘
核心能力 (Phase 1 → 5)
Phase 1 现代化基础
Python ≥ 3.11 / mcp ≥ 1.6 / Spring Boot 3.5 + Java 21 模板
单元测试 360+,GitHub Actions CI 三 Job (lint / template-render / docker-build)
多阶段 Dockerfile (
python:3.11-slim+ 非 root 用户)
Phase 2 Skills 层与原子工具
.claude/skills/java-codegen-from-db/SKILL.md显式定义 5 阶段工作流db_codegen_generate拆为 6 原子工具,context 显式传递search_tools工具实现 progressive discovery,启动 token 节省 70.2%第二个 Skill
springboot-migration(2.7→3.x 升级 checklist)
Phase 3 MCP Apps 集成
4 个交互式 UI 组件:
组件 | 类型 | 来源工具 |
ER 图 |
|
|
依赖健康仪表盘 |
|
|
代码预览 + Diff |
|
|
包结构树 |
|
|
Phase 4 AI 语义增强
ai_infer_business_names: 15 条规则 + 可选 Claude API (Anthropic SDK + prompt caching)ai_recommend_template: 检测 RBAC / 电商 / CMS / 工单 4 种模式ai_summarize_schema: 整库自然语言概述ai_metrics: 暴露 cache_hit_rate / tokens_saved设计取舍: 规则先于 LLM,无
ANTHROPIC_API_KEY也能跑
Phase 5 可观测性与生产就绪
server_metrics: 每个工具的 calls / avg_duration / error_rateserver_health: Python / mcp / anthropic SDK 版本 + 模块导入状态结构化日志:
DBJAVAGENIX_LOG_FORMAT=json可输出单行 JSON,适合 Loki/ELK部署手册: 3 种部署模式 + 6 个排障场景
工具总览 (29 个)
类别 | 工具 |
连接 / 查询 | db_connect_test / db_query_databases / db_query_tables / db_query_table_exists / db_query_execute |
表结构 | db_table_describe / db_table_columns / db_table_primary_keys / db_table_foreign_keys / db_table_indexes |
代码生成 (atomic) | codegen_build_context / codegen_render_entity / codegen_render_dao / codegen_render_service / codegen_render_controller / codegen_render_mapper |
代码生成 (legacy) | db_codegen_analyze / db_codegen_generate |
Spring Boot 项目 | springboot_validate_project / springboot_analyze_dependencies / springboot_read_config |
可视化 | db_render_er_diagram |
AI 语义 | ai_infer_business_names / ai_recommend_template / ai_summarize_schema / ai_metrics |
可观测 | server_metrics / server_health |
元工具 | search_tools (渐进发现) |
与同类工具对比
维度 | DBJavaGenix v0.2 | EasyCode | MyBatis-Plus generator | Renren-generator |
驱动方式 | LLM + MCP | IDEA 插件 | 命令行 / Maven plugin | Web UI |
工作流编排 | Skill 显式 5 阶段 | 配置面板 | 一次性代码 | 表单 |
工具粒度 | 6 原子 (可中途让用户改) | 单按钮 | 单命令 | 单按钮 |
AI 命名 | ✅ 15 规则 + 可选 LLM | ❌ 纯模板 | ❌ | ❌ |
模板扩展 | ✅ Mustache + 4 分类 (sb35-java21 含) | ✅ Velocity | ⚠️ 仅 MybatisPlus | ⚠️ 仅 freemarker |
ER 图渲染 | ✅ Mermaid (MCP App) | ❌ | ❌ | ⚠️ 静态 |
依赖适配 | ✅ 智能档案 + 健康分 | ❌ | ❌ | ❌ |
可观测性 | ✅ in-process metrics + health | ❌ | ❌ | ❌ |
客户端兼容 | Claude Desktop / Cursor / Cherry / ... | 仅 IDEA | CLI | 浏览器 |
技术架构
详见 iteration-plan/01-target-architecture.md。三层职责:
[ Skills 层 ] 定义"怎么做" — .claude/skills/*.md 显式 5 阶段工作流
↓
[ MCP 层 ] 提供"能做什么" — 29 个原子工具 context 显式传递
↓
[ Apps 层 ] 让结果"看得见" — 4 个 UI 组件 (mermaid/dashboard/code-diff/tree)每层都做"工程克制":
不引入向量数据库 (schema 是结构化数据,LLM 直接读更准)
不引入 LangChain (Skill 已显式编排,不需要 chain 抽象)
不引入 prometheus_client / opentelemetry-sdk (stdio 单进程过度设计)
文档
文档 | 内容 |
6 阶段重构方案 (目标架构 / 路线图 / 决策记录 / 演示故事) | |
部署模式 / 环境变量 / 健康检查 / 排障 | |
tool schema token 测量 | |
MCP Apps 4 组件客户端兼容性 | |
v0.2.1 schema 图算法 (topo / cluster / cycle) | |
生成器与生成代码中的设计模式 | |
10 个 ADR (架构 / 原子 / 渐进 / 规则 / 不引依赖 / schema 算法 / 规范配置 / MCP v3 / 1h 缓存 / agentic) | |
主 Skill: 代码生成 5 阶段工作流 | |
第二 Skill: Spring Boot 2.7→3.x 迁移 |
路线图
Phase 1: 基础设施现代化 (Python 3.11 / mcp 1.6 / Spring Boot 3.5 模板 / CI / Docker)
Phase 2: Skills 层抽离 + 原子工具 + Progressive Discovery (token -70%)
Phase 3: MCP Apps 集成 (4 个 UI 组件)
Phase 4: AI 语义增强 (规则 + 可选 LLM)
Phase 5: 可观测性 + 生产就绪
Phase 6: 文档与演示
v0.2.1: Java 工程补完 (schema 算法 3 个 / 工程规范配置生成器 / 设计模式 catalog)
v0.2.2: MCP v3 + AI 工程化 (elicitation 表单 / sampling 借 LLM / 1h prompt caching / agentic-runner)
下一步 (v0.3 候选):
DB 后端扩展: PostgreSQL / Oracle 完整支持
抓取 Claude Desktop / Cursor 截图入仓 (P3.5 收尾)
集成测试: 用 Testcontainers 把 MySQL 拉起跑端到端
性能: 把规则推断与 LLM 路径合并为同一返回 schema (current LLM 路径输出格式与规则略不同)
agentic-runner 加 subagent 支持 (Agent SDK 已就绪)
启动模式
模式 | 入口 | 触发 | 依赖 | 适用场景 |
MCP server |
| 客户端连接 (Claude Desktop / Cursor 等) | 无额外 | 探索 / 多轮交互 / 默认 |
Agentic runner |
| CLI 单次启动 |
| 批处理 / CI / 一次性任务 |
两种模式共用同一 database.mcp_tools 注册表 (ADR-010)。
调试技巧
# 启用 progressive 模式 (仅暴露 6 个 always_visible 工具)
DBJAVAGENIX_PROGRESSIVE=1 PYTHONPATH=src python -m dbjavagenix.cli server
# JSON 日志 (适合 Loki / ELK)
DBJAVAGENIX_LOG_FORMAT=json DBJAVAGENIX_LOG_LEVEL=DEBUG \
PYTHONPATH=src python -m dbjavagenix.cli server
# headless 验证所有 MCP App 组件
PYTHONPATH=src python scripts/verify_mcp_apps.py贡献
Fork → 创建 feature/* 分支
写测试 (
tests/unit/),pytest tests/unit/应保持 360+ 全过ruff check src/ tests/通过 (CI 会跑)提 PR,链接到对应的 iteration-plan 阶段
许可证
MIT — 见 LICENSE。
致谢
EasyCode — 早期模板设计灵感
Model Context Protocol — Anthropic / Linux Foundation
Anthropic Claude — AI 语义层
联系
Available Tools
29 toolsai_infer_business_namesA
从数据库表/列推断 Spring Boot 项目中业务上合理的 Java 命名。默认基于 15 条命名规则; 设 prefer_llm=true 且 ANTHROPIC_API_KEY 可用时,优先调用 Claude (启用 prompt caching 节省 token)。返回每张表的 class_name + reason + table_kind (entity/association/log/dict/config)。
| Name | Required | Description | Default |
|---|---|---|---|
| tables | Yes | 待推断的表列表 | |
| prefer_llm | No | 是否优先调用 Claude API (需要 ANTHROPIC_API_KEY) | |
| model | No | Anthropic 模型 ID | claude-sonnet-4-6 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and discloses key behaviors: rule-based default, optional LLM invocation with prompt caching, output format. It lacks details on error handling or performance aspects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (3-4 sentences), front-loaded with the main purpose, and includes all essential details without superfluous text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the description covers purpose, modes, and output fields, it lacks details on error cases, performance implications, or example outputs. Given no output schema, more completeness would be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds significant context about how prefer_llm interacts with API key, the effect of model parameter, and the output structure (class_name, reason, table_kind), going beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool infers business-oriented Java names from database tables/columns for Spring Boot projects, distinguishing it from siblings like ai_summarize_schema or ai_metrics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains two modes (rule-based vs LLM) and the precondition for LLM mode (API key). However, it does not explicitly contrast with sibling tools or state when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ai_metricsA
返回进程内累积的 AI 调用指标 (Prompt Caching 命中率、token 消耗、错误次数)。对应 P4.4: ai.cache_hit_rate / ai.tokens_saved_via_cache 等。可在每次 ai_infer_business_names 等工具调用后查询。
| Name | Required | Description | Default |
|---|---|---|---|
| reset | No | 查询后是否重置计数 (默认 false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses the metrics returned and the reset parameter. It implies read-only behavior but does not explicitly state idempotency or side effects. Adequate but could be more thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no repetition, front-loaded with purpose. Every word earns its place. Highly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and a simple parameter, the description is sufficient for understanding what the tool does. It mentions specific metrics and usage context. However, it could improve by describing the output format (e.g., JSON structure).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (one boolean param with description). The description adds minimal extra meaning beyond the schema, only clarifying that reset controls whether to reset counts after query. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns accumulated AI call metrics (cache hit rate, token consumption, error counts) and references specific metric keys. It distinguishes itself from sibling tools which are about codegen, database, or server health, not metrics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description suggests querying after other AI tool calls like ai_infer_business_names, providing clear context. It does not explicitly state when not to use it or list alternatives, but the intended use is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ai_recommend_templateA
根据整库表名 + FK 关系推荐 template_category (Default/MybatisPlus/MybatisPlus-Mixed/sb35-java21) + 生成选项 (useSwagger/useLombok/include_mapstruct/generate_dto/generate_vo)。检测 RBAC / 电商 / CMS / 工单 等典型业务模式。传 hint_modern_stack=true 强制推 sb35-java21 (Java 21 + jakarta)。
| Name | Required | Description | Default |
|---|---|---|---|
| table_names | Yes | 整库表名列表 | |
| foreign_keys | No | 可选, [{from_table, to_table, ...}] | |
| hint_modern_stack | No | 用户偏好 Java 21 / Spring Boot 3.x → 强制推 sb35-java21 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions detection of business patterns and forced template selection with hint_modern_stack, but does not disclose whether the tool has side effects, mutates state, or returns data. As a recommendation tool, it is likely read-only, but this is not explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences and covers the main purpose and a key parameter hint. It is concise but somewhat dense; the first sentence could be split for better readability. Nevertheless, every sentence contributes value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains what the tool recommends (template_category and generate options) but does not describe the output format or structure. Since no output schema exists, the agent would benefit from knowing what fields the recommendation contains. This gap limits completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the description adds meaningful context for each parameter: table_names is a list of full table names, foreign_keys is optional with objects, and hint_modern_stack forces a modern stack template. It explains the effect of hint_modern_stack beyond the schema's default description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: to recommend a template_category and generate options based on table names and foreign keys, and also detect business patterns. This distinguishes it from sibling tools like codegen_render_* or db_query_*, which have different functions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when needing template recommendations for databases with FK relationships, but does not explicitly state when to use this tool versus alternatives or when not to use it. The hint_modern_stack parameter provides a conditional use case, but no when-not or alternative tools are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ai_summarize_schemaA
对整库 schema 做自然语言概述: 总览、模块划分 (按前缀)、核心实体 (列数 + 命中模式)、关键关系。便于用户理解大库,或在生成前对齐 LLM 的 mental model。
| Name | Required | Description | Default |
|---|---|---|---|
| table_names | Yes | 整库表名列表 | |
| foreign_keys | No | 可选 FK 关系 [{from_table, to_table, ...}] | |
| table_column_counts | No | 可选, {表名: 列数} 用于推断核心实体 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It describes the output structure but does not disclose any behavioral traits such as whether it performs AI inference, potential latency, required permissions, or side effects. The description adds context beyond the schema but lacks important behavioral disclosures.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the main purpose and then lists components. It is concise and free of fluff, though a slightly more structured breakdown (e.g., bullet points) could enhance readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (3 params, no output schema), the description provides a good high-level overview. However, it does not specify the return format or structure of the 'overview, modules, entities, relationships', leaving ambiguity. It covers the tool's purpose but not all contextual details needed for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. However, the description adds value by explaining that table_column_counts infer core entities and that foreign_keys support key relationships, which goes beyond the brief schema descriptions. This clarifies the role of optional parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it provides a natural language overview of the entire database schema, including modules by prefix, core entities with column counts, and key relationships. This distinguishes it from sibling tools like db_table_describe or ai_infer_business_names which have narrower scopes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions it is useful for understanding large databases or aligning LLM mental models before generation, but it does not explicitly contrast with sibling tools or state when not to use it. There is no guidance on alternatives or exclusions, making the usage context only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
codegen_build_contextA
构建代码生成所需的完整模板上下文(不写盘,不渲染)。这是原子代码生成工作流的第一步,后续 codegen_render_* 工具的输入。返回的 context dict 可被 LLM 检视或修改,再传给后续工具。
| Name | Required | Description | Default |
|---|---|---|---|
| connection_id | Yes | Database connection ID from db_connect_test | |
| table_name | Yes | Table name to build context for | |
| database | No | Database name (optional, uses connection default) | |
| template_category | No | MybatisPlus-Mixed | |
| author | No | ZXP | |
| package_name | No | com.example.generated | |
| include_swagger | No | ||
| include_lombok | No | ||
| include_mapstruct | No | ||
| project_path | No | Optional target Spring Boot project path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses key behaviors: does not write to disk, does not render, returns a context dict. This is valuable for an agent to understand the non-destructive, preparatory nature of the tool. However, it does not mention error handling or input validation behaviors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences in Chinese, front-loaded with the core purpose and immediately providing workflow context. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's role as a context builder and the existence of many sibling tools, the description adequately explains its purpose and position in the pipeline. It mentions the return type and how the context can be used. However, with 10 parameters and no output schema, more detail on the context contents or usage could improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 40% (4 of 10 parameters have descriptions). The description does not explain any parameters, leaving the agent to rely on the schema alone. It does not add meaning beyond what the schema provides, failing to compensate for the low coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool builds the complete template context for code generation without writing to disk or rendering. It also identifies itself as the first step in the atomic code generation workflow, input for subsequent codegen_render_* tools, distinguishing it from sibling render tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when to use it (first step of codegen workflow) and how the output is used (inspect or modify before passing to render tools). It implies not to use when you need direct file output, but does not explicitly list alternatives or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
codegen_render_controllerA
渲染 REST Controller(@RestController + Bean Validation)。需要先调用 codegen_build_context 获取 context。
| Name | Required | Description | Default |
|---|---|---|---|
| context | Yes | 从 codegen_build_context 返回的完整模板上下文 dict。包含 className/columns/primaryKeyType/templateCategory 等字段。LLM 应原样传递,可在传入前修改字段以重新渲染。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It reveals the dependency on a prior context-building step, which is useful. However, it does not mention whether the tool generates files, overwrites existing code, requires specific permissions, or what the output is. The description is minimal, but the dependency is a key behavioral point.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences, each serving a distinct purpose. The first sentence states the action and the result, the second provides the essential prerequisite. No filler or redundant information. It is front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (1 parameter, no output schema), the description is nearly complete. However, the tool's output is not described at all; an agent might need to know whether the output is code, a file path, or something else. The description covers the prerequisite but lacks information about the result format. With no output schema, the description should at least hint at what the tool produces.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% coverage with a description for the 'context' parameter, stating it comes from codegen_build_context. The tool description adds no extra semantic meaning beyond what the schema already says. With high schema coverage, baseline is 3, and the description repeats the prerequisite without adding new details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the tool's function: rendering a REST Controller with @RestController and Bean Validation annotations. The verb 'render' combined with the resource 'REST Controller' makes the purpose unambiguous, and it distinguishes from sibling tools that render other artifacts like entities, mappers, services, or DAOs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states the prerequisite: '需要先调用 codegen_build_context 获取 context' (need to call codegen_build_context first). This gives clear usage context. However, it does not discuss when to use this tool versus alternatives (e.g., when do you need a controller vs. a service), nor does it mention any exclusions or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
codegen_render_daoA
渲染 DAO/Repository 层(JpaRepository 或 BaseMapper)。需要先调用 codegen_build_context 获取 context。
| Name | Required | Description | Default |
|---|---|---|---|
| context | Yes | 从 codegen_build_context 返回的完整模板上下文 dict。包含 className/columns/primaryKeyType/templateCategory 等字段。LLM 应原样传递,可在传入前修改字段以重新渲染。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the rendering action and prerequisite but lacks details on side effects, idempotency, permissions, or error conditions. The information is adequate but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two succinct sentences with no redundant information. The key information is front-loaded, making it easy to parse. Every word serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple single-parameter input and absence of output schema, the description is complete enough for its complexity. It covers the prerequisite and action. However, a note on what the output (rendered code) looks like could enhance completeness, but is not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a detailed description for the single parameter 'context'. The tool description adds the prerequisite step but does not significantly enhance parameter understanding beyond what the schema provides, meeting the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'render' and the resource 'DAO/Repository layer (JpaRepository or BaseMapper)', distinguishing it from sibling render tools for controller, entity, etc. It is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states a prerequisite ('call codegen_build_context first'), guiding the agent on when to use this tool. However, it does not provide explicit when-not-to-use or alternative selection guidance among sibling render tools, which is a minor gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
codegen_render_entityA
渲染 Entity 层(JPA @Entity / MybatisPlus @TableName)。需要先调用 codegen_build_context 获取 context。返回单个 java 文件源码。
| Name | Required | Description | Default |
|---|---|---|---|
| context | Yes | 从 codegen_build_context 返回的完整模板上下文 dict。包含 className/columns/primaryKeyType/templateCategory 等字段。LLM 应原样传递,可在传入前修改字段以重新渲染。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It mentions the output (single Java file source) and dependency on a prerequisite, but doesn't detail error handling or side effects. Adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted words. It front-loads the purpose, then states the prerequisite, then the output. Highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has only one parameter (well-documented in schema), no output schema, and a simple purpose, the description covers the prerequisite, output, and core functionality. Missing some error context but sufficient for typical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the schema's parameter description already explains the context object well. The tool description adds minimal extra meaning beyond referencing the prerequisite, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool renders the Entity layer (JPA @Entity / MybatisPlus @TableName) and returns a single Java file source. It distinguishes from sibling tools like codegen_render_controller by specifying 'Entity层'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states a prerequisite: '需要先调用 codegen_build_context 获取 context', guiding the agent on the required prior step. It doesn't specify when not to use, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
codegen_render_mapperA
渲染 MyBatis XML mapper 或 MapStruct mapper。适用模板: Default(mapper.xml) / MybatisPlus-Mixed(mapper) / 含 useMapStruct(mapstruct_mapper)。sb35-java21 分类不需要 mapper,会返回空 files 列表。
| Name | Required | Description | Default |
|---|---|---|---|
| context | Yes | 从 codegen_build_context 返回的完整模板上下文 dict。包含 className/columns/primaryKeyType/templateCategory 等字段。LLM 应原样传递,可在传入前修改字段以重新渲染。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, but the description discloses that for the sb35-java21 category it returns empty files. However, it does not mention other behavioral aspects like idempotency, side effects, or context validation requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with each sentence serving a purpose: function, templates, exception. It is front-loaded and contains no extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one parameter, high schema coverage, no annotations, and no output schema, the description covers the main purpose, templates, and a special case. It lacks description of return format, but overall is fairly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the baseline is 3. The main description does not add significant value beyond the schema's detailed parameter explanation, only confirming the context should come from codegen_build_context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool renders MyBatis XML mapper or MapStruct mapper, specifies applicable templates, and distinguishes from sibling render tools by mentioning mapper-specific templates and the sb35-java21 category exception.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by listing applicable templates and noting when it returns empty, but it does not explicitly state when to use this tool over alternatives or provide exclusion criteria beyond the sb35-java21 case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
codegen_render_serviceA
渲染 Service 接口 + ServiceImpl 实现。需要先调用 codegen_build_context 获取 context。返回 2 个 java 文件。
| Name | Required | Description | Default |
|---|---|---|---|
| context | Yes | 从 codegen_build_context 返回的完整模板上下文 dict。包含 className/columns/primaryKeyType/templateCategory 等字段。LLM 应原样传递,可在传入前修改字段以重新渲染。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility for behavioral disclosure. It only states what the tool does (renders) and what it returns, but does not reveal potential side effects (e.g., file overwriting, project structure changes) or required permissions. This is a significant gap for a code generation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences. The first sentence captures the primary action, and the second provides a critical prerequisite and output summary. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema, the description compensates by stating the return type (2 java files). It covers the what, prerequisite, and output. However, it does not mention potential side effects (e.g., file location, overwrite behavior), which would elevate completeness for a code generation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'context' is fully described in the input schema with a detailed description of its content and origin. The description reinforces the prerequisite, adding no new semantic meaning beyond the schema. With 100% schema coverage, the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool renders Service interface and ServiceImpl implementation, distinguishing it from sibling render tools like codegen_render_controller and codegen_render_dao. It also specifies the output (2 java files), making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states the prerequisite: call codegen_build_context first to obtain the context. This provides clear contextual usage guidance. However, it does not mention when not to use this tool or suggest alternatives, but the context is sufficient for its pipeline role.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
db_codegen_analyzeC
Analyze database table structure for code generation with template context
| Name | Required | Description | Default |
|---|---|---|---|
| connection_id | Yes | Database connection ID | |
| table_name | Yes | Table name to analyze | |
| database | No | Database name (optional, uses connection default if not specified) | |
| template_category | No | Template category to use for context building | MybatisPlus-Mixed |
| author | No | Author name for code generation | ZXP |
| package_name | No | Java package name for generated code | com.example.generated |
| project_path | No | Target Spring Boot project path (with src/main/java) | test_project |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility for behavioral disclosure. It does not state whether the tool is read-only, what side effects exist, or what 'template context' means. Important behavioral traits are missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise. However, it could benefit from slight structuring (e.g., listing key aspects) to improve scannability. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite 7 parameters and no output schema, the description does not explain the output format or content. For a code-generation analysis tool, knowing what data is returned (columns, types, templates?) is essential. The description is incomplete for practical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all parameters. The description adds marginal value by framing the analysis in terms of code generation, but does not clarify how parameters like template_category or project_path affect behavior beyond their schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool analyzes database table structure for code generation, with an added hint about template context. This distinguishes it from generic table description tools like db_table_describe, but could be more explicit about what 'analyze' entails versus simple schema retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as db_table_describe or codegen_build_context. The agent must infer based on the name and description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
db_codegen_generateA
[Legacy / single-shot] Generate Java code from database table analysis using templates. Prefer the atomic workflow: codegen_build_context + codegen_render_entity/dao/service/controller/mapper (P2.2). This single-shot tool also writes files to disk in one go, with no preview/edit cycle.
| Name | Required | Description | Default |
|---|---|---|---|
| connection_id | Yes | Database connection ID | |
| table_name | Yes | Table name to generate code for | |
| database | No | Database name (optional, uses connection default if not specified) | |
| template_category | No | Template category to use for code generation | MybatisPlus-Mixed |
| author | No | Author name for generated code | ZXP |
| package_name | No | Java package name for generated code | com.example.generated |
| project_path | No | Target Spring Boot project path (with src/main/java) | test_project |
| include_swagger | No | Include Swagger annotations in generated code | |
| include_lombok | No | Include Lombok annotations in generated code | |
| include_mapstruct | No | Include MapStruct mappers in generated code |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that it writes files to disk in one go with no preview/edit cycle. No annotations exist, so the description carries the full burden. It could mention overwriting behavior or error handling, but the key behavioral traits are communicated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no wasted words. The first sentence states purpose, the second provides usage guidance and behavioral note. Highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 10 parameters and no output schema, the description covers purpose, usage alternatives, and a key behavioral side effect. Missing return value description, but overall adequate given the complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all 10 parameters, so baseline is 3. The description adds minimal extra meaning beyond the schema, e.g., 'using templates' and 'legacy/single-shot', which are contextual but not parameter-specific.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it generates Java code from database table analysis using templates. Distinct from sibling tools by explicitly labeling itself 'single-shot' and contrasting with the atomic workflow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly recommends preferring the atomic workflow (codegen_build_context + render_* tools) instead of this legacy single-shot tool. Also warns that it writes files to disk with no preview/edit cycle, guiding when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
db_connect_testB
Test database connection and create connection session
| Name | Required | Description | Default |
|---|---|---|---|
| host | Yes | Database host address | |
| port | Yes | Database port number | |
| username | Yes | Database username | |
| password | Yes | Database password | |
| database | No | Database name (optional for initial connection) | |
| database_type | Yes | Database type | |
| charset | No | Character encoding | utf8mb4 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description reveals that the tool creates a connection session, implying side effects. However, it does not clarify what happens on failure, whether the session persists, or if it's automatically cleaned up. This is adequate but lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two actions in one sentence; very short and front-loaded. No unnecessary words. Could be slightly improved by separating test and create actions, but still concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 7 parameters, no output schema, and no sibling differentiation in description, the description is moderately complete. It covers the basic purpose but omits return values, error handling, and lifecycle of the session.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description does not add meaning beyond the parameter names and types; e.g., it doesn't explain the role of 'database' as optional or the significance of 'charset'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool tests a database connection and creates a session. This distinguishes it from siblings like db_query_execute (executes queries) and db_query_databases (lists databases).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus other database tools, such as when to test connection before querying. No mention of prerequisites or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
db_query_databasesB
List all databases on the server
| Name | Required | Description | Default |
|---|---|---|---|
| connection_id | Yes | Connection identifier from db_connect_test |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should explicitly note that the operation is read-only; "list" implies it, but other behavioral traits (error handling, permissions) are absent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no waste, front-loading the purpose efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list operation with one parameter, the description is adequate but could mention the expected output (e.g., database names) to improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%; the description adds no meaning beyond the schema's parameter description, meeting the baseline but not exceeding it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description "List all databases on the server" uses a specific verb and resource, clearly distinguishing from sibling tools that list tables or execute queries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives, such as needing a prior connection from db_connect_test, which is implied by the schema but not stated in the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
db_query_executeA
Execute custom SQL query (SELECT only for safety)
| Name | Required | Description | Default |
|---|---|---|---|
| connection_id | Yes | Connection identifier from db_connect_test | |
| query | Yes | SQL SELECT query to execute | |
| limit | No | Maximum number of rows to return |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It states 'SELECT only for safety', implying read-only behavior, but lacks detail on error handling, performance impact, or authentication requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence effectively communicates core function. Could potentially include more details without becoming verbose, but current version is concise and direct.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, yet description does not explain what is returned (e.g., rows, columns, format). For a tool executing arbitrary queries, more context is needed for safe and effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are already well-documented. Description adds no extra semantic meaning beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the action (Execute), resource (custom SQL query), and constraint (SELECT only). Distinguishes from sibling tools like db_connect_test and db_query_tables.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implicitly restricts usage to SELECT queries via '(SELECT only for safety)', but does not explicitly state when to use this tool versus alternatives like db_query_tables or db_table_columns.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
db_query_table_existsA
Check if a table exists in the database
| Name | Required | Description | Default |
|---|---|---|---|
| connection_id | Yes | Connection identifier from db_connect_test | |
| database | Yes | Database name | |
| table | Yes | Table name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It states existence check but doesn't disclose return type (likely boolean) or error behavior (e.g., invalid connection). Minimal but non-contradictory.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence of 7 words, highly concise and front-loaded with purpose. No wasted information. Ideal for a simple lookup tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 3 simple parameters, no output schema, and no nested objects, the description is nearly complete. Missing detail on return value (e.g., boolean or error) but sufficient for basic use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter descriptions. The tool description adds no extra meaning beyond the schema, so baseline 3 applies. Parameter semantics are adequately handled by schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Check if a table exists in the database', which is specific verb+resource. It distinguishes from sibling tools like db_query_execute (which runs queries) and db_query_tables (which lists tables).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance. Usage is implied: check existence before other operations, but no alternatives or exclusions mentioned. Average for a simple boolean check tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
db_query_tablesB
List all tables in a specific database
| Name | Required | Description | Default |
|---|---|---|---|
| connection_id | Yes | Connection identifier from db_connect_test | |
| database | Yes | Database name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must carry the burden. 'List' implies a read-only operation, but no explicit statement about idempotency, side effects, or error conditions (e.g., invalid connection) is given. Minimal but adequate for a simple listing tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It efficiently conveys the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema is provided, and the description does not hint at the return format (e.g., table names only or metadata). Given the tool's complexity and missing output schema, more detail is needed for full completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with both parameters described. The description adds no extra meaning beyond the schema, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List all tables in a specific database' clearly states the action (list) and the resource (tables in a database), distinguishing it from sibling tools like db_query_databases (lists databases) and db_query_table_exists (checks a specific table).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool vs alternatives (e.g., db_query_execute for arbitrary queries), nor prerequisites like the connection must be tested via db_connect_test (implied only by parameter description).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
db_render_er_diagramA
生成多个表的 Mermaid ER 图 (MCP App: mermaid 组件)。调用前需已通过 db_connect_test 建立连接。支持 MCP Apps 的客户端会渲染图表;不支持的客户端会看到纯文本摘要 + mermaid 源码。
| Name | Required | Description | Default |
|---|---|---|---|
| connection_id | Yes | Database connection ID from db_connect_test | |
| database | Yes | Database name | |
| tables | Yes | 表名列表 (至少 1 个) | |
| include_non_pk_columns | No | 是否列出非主键/外键列 (默认 true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility. It reveals the tool uses Mermaid and the MCP App component, and that unsupported clients see a plain text summary plus source. However, it does not discuss side effects, read-only nature, or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of two concise sentences with no superfluous information. It front-loads the purpose and immediately adds prerequisites and behavior, making it efficient for an agent to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description adequately covers the return format (rendered diagram or plain text + source) and the prerequisite. It lacks details on error handling or performance, but is otherwise complete for a diagram-generation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description does not add extra meaning beyond the schema beyond implicitly mentioning 'multiple tables' for the 'tables' parameter. No parameter-specific details or examples are given.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool generates Mermaid ER diagrams for multiple tables, which is a specific verb and resource. While it does not explicitly distinguish from siblings, the purpose is clear and distinct from other db_* tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes a clear prerequisite: must have established a connection via db_connect_test before calling. However, it does not provide guidance on when not to use this tool or suggest alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
db_table_columnsC
Get detailed column information for a table
| Name | Required | Description | Default |
|---|---|---|---|
| connection_id | Yes | Connection identifier from db_connect_test | |
| database | Yes | Database name | |
| table | Yes | Table name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It implies a read-only operation but does not confirm idempotence, permission requirements, or error handling (e.g., behavior if table missing). Minimal transparency beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no wasted words. It is appropriately sized for a simple tool, though slightly more detail could be included without sacrificing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description should provide more context about what 'detailed column information' includes. It does not mention return format, pagination, or relation to sibling tools, leaving gaps for an agent to infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains each parameter. The description adds no extra meaning for parameters. Baseline of 3 is appropriate since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a clear verb+resource pattern ('Get detailed column information for a table'), distinguishing itself from sibling tools like db_table_foreign_keys or db_table_indexes. However, it does not specify what 'detailed' means (e.g., includes types, nullability, defaults), leaving slight ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as db_table_describe or db_query_tables. The description simply states what it does without any context about prerequisites, limitations, or use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
db_table_describeB
Get complete table structure information including columns, types, constraints
| Name | Required | Description | Default |
|---|---|---|---|
| connection_id | Yes | Connection identifier from db_connect_test | |
| database | Yes | Database name | |
| table | Yes | Table name | |
| include_java_types | No | Include Java type mapping for columns |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; the description implies a read operation but does not disclose permissions, error handling, or other behavioral traits beyond the basic function.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, concise and front-loaded with the core purpose. Could be slightly more informative but retains efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Description lacks specifics on what exactly is included in the output (e.g., indexes, foreign keys, primary keys) given sibling tools cover those separately. No output schema provided to compensate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter descriptions. The description adds no additional meaning beyond the schema, so a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets 'complete table structure information including columns, types, constraints', which is specific and distinguishes it from sibling tools that focus on individual aspects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this comprehensive tool versus individual sibling tools like db_table_columns or db_table_foreign_keys. The description does not mention alternatives or conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
db_table_foreign_keysC
Get foreign key relationships for a table
| Name | Required | Description | Default |
|---|---|---|---|
| connection_id | Yes | Connection identifier from db_connect_test | |
| database | Yes | Database name | |
| table | Yes | Table name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must convey behavioral traits. It merely states the action without disclosing side effects, required permissions, or output structure. The tool is a read operation, but this is not explicitly stated, and the return format (e.g., list of foreign key details) is omitted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the main action. Every word is meaningful; there is no redundancy or fluff. However, it sacrifices detail for brevity, which may reduce clarity for complex use cases.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with three parameters and no output schema, the description should at least hint at what the response contains (e.g., column names, referenced tables). It does not, leaving the agent unaware of the information returned. The sibling tools provide similar schema inspection but without output context, so the shortfall is moderate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so each parameter is documented in the schema (connection_id, database, table). The description adds no additional semantics, such as specifying that the table parameter should be fully qualified or that foreign keys reference limited tables. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb-resource pair: 'Get foreign key relationships for a table'. It clearly identifies the action and object, distinguishing it from other database tools like listing columns or indexes. However, it lacks differentiation among sibling tools such as db_table_columns or db_table_describe, which could also be used for schema exploration.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, such as an active connection, nor does it explain whether it retrieves inbound, outbound, or both foreign key relationships. There are no examples or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
db_table_indexesC
Get index information for a table
| Name | Required | Description | Default |
|---|---|---|---|
| connection_id | Yes | Connection identifier from db_connect_test | |
| database | Yes | Database name | |
| table | Yes | Table name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits but only states the basic operation. No information about permissions, side effects, or return format is given, leaving significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (six words) but lacks structure and detail. While front-loaded, it is too brief to be fully helpful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 parameters, no output schema, and no annotations, the description is incomplete. It does not explain what 'index information' comprises or how to interpret the results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for parameters, so the description adds no additional meaning beyond what the schema provides. The baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'index information for a table', making the purpose evident. However, it does not differentiate from sibling tools like db_table_columns or db_table_foreign_keys, which could cause confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as db_table_columns or db_query_tables. The description lacks context for appropriate usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
db_table_primary_keysC
Get primary key information for a table
| Name | Required | Description | Default |
|---|---|---|---|
| connection_id | Yes | Connection identifier from db_connect_test | |
| database | Yes | Database name | |
| table | Yes | Table name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It does not disclose any behavioral traits beyond the basic purpose (e.g., read-only, idempotent, error handling). Minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that directly states purpose. No wasted words, but could be more informative without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but description does not explain return value structure. For a tool returning primary key info, agent would benefit from knowing format (e.g., column names, constraint names). Incomplete context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage with basic descriptions. Tool description adds no extra meaning beyond what schema already provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'Get' and resource 'primary key information for a table'. Distinguishes from sibling tools like db_table_columns and db_table_indexes. Could specify what 'information' includes, but overall clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives. No mention of prerequisites or context. Agent must infer usage from name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_toolsA
按关键词搜索可用 MCP 工具,用于渐进式发现 (Progressive Discovery)。当用户提到的操作不在当前可见工具列表中时,先用此工具搜索,再调用返回的工具。示例: query='render dao' → 返回 codegen_render_dao + 相关工具。传空 query 列出所有 always_visible 工具。
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | 搜索关键词 (支持空格分隔多 token) | |
| limit | No | 返回前 N 个结果 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses key behaviors: it returns tools matching the query, and empty query returns always_visible tools. No annotations are provided, but the description adequately covers the tool's behavior without contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: two sentences covering purpose, usage, and an example. No wasted words; every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description is complete: it explains the return behavior (returns tools, example given), and covers the search functionality comprehensively. The context of progressive discovery is well explained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% coverage for both parameters. The description adds meaning beyond the schema by explaining how 'query' works with space-separated tokens and that empty query lists always_visible tools, and clarifies the purpose of 'limit'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: searching available MCP tools by keyword for progressive discovery. It uses a specific verb ('搜索') and resource ('可用 MCP 工具'), and distinguishes from siblings by its role as a discovery tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells when to use: when the user's operation is not in the visible tool list. Also specifies that empty query lists always_visible tools, providing clear usage context and alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
server_healthA
返回 server 健康状态: Python 版本、mcp SDK 版本、核心模块导入是否成功、DB 连接活跃数、OS 信息。用于部署后冒烟检查。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It transparently lists all return fields (Python version, mcp SDK version, core module import status, DB connection active count, OS info) and implies a read-only, non-destructive operation. Could mention that it does not modify state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise Chinese sentence that front-loads the purpose and lists key return fields. Every word is informative with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and no output schema, the description fully explains what the tool does and when to use it. It covers expected return values and use case (smoke testing). No gaps identified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters (schema description coverage 100%), so the baseline is 4. The description adds context about what the tool returns, which is useful but not parameter-specific.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns server health status with specific fields (Python version, mcp SDK version, core module import status, DB connection active count, OS info). This differentiates it from sibling tools like 'server_metrics' which likely focuses on different metrics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states the tool is used for post-deployment smoke testing (用于部署后冒烟检查), providing clear usage context. It does not mention alternatives, but the tool has no parameters and a straightforward purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
server_metricsB
返回 DBJavaGenix MCP server 的运行时指标: uptime、每个工具的调用次数 / 平均时延 / 错误率。轻量级 in-process,不依赖 Prometheus。
| Name | Required | Description | Default |
|---|---|---|---|
| reset | No | 查询后重置计数器 (默认 false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses that the tool is in-process and does not require Prometheus, but it does not describe potential side effects of the 'reset' parameter, output format, or any rate limits. This is a moderate effort but incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (two sentences) and front-loaded with the key information. It is easy to parse, though could be more structured with headers or a clearer separation of functionality.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a simple interface (one optional parameter) and no output schema. The description gives the basic purpose and constraints but omits details like return format and how metrics are structured. It adequately covers the essentials but leaves room for improvement.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers the 'reset' parameter with a description. Since schema description coverage is 100%, the tool description adds no extra meaning. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns runtime metrics (uptime, per-tool call count, latency, error rate) and mentions it's lightweight in-process. However, it does not explicitly differentiate from sibling tools like 'ai_metrics' or 'server_health', which may cause ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide any guidance on when to use this tool versus alternatives. It neither states usage context nor when not to use it, leaving the agent to infer from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
springboot_analyze_dependenciesB
Analyze project dependencies and generate intelligent recommendations for code generation
| Name | Required | Description | Default |
|---|---|---|---|
| template_category | Yes | Template category for dependency analysis | MybatisPlus-Mixed |
| database_type | Yes | Database type for driver dependencies | mysql |
| include_swagger | No | Whether to include Swagger/OpenAPI dependencies | |
| include_lombok | No | Whether to include Lombok dependencies | |
| include_mapstruct | No | Whether to include MapStruct dependencies | |
| project_path | No | Path to project root (optional, defaults to current directory) | . |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are available, and the description does not disclose behavioral traits such as side effects, authorization requirements, or rate limits. The tool appears to be read-only, but this is not explicitly stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that efficiently conveys the tool's purpose without extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description lacks details about return values or output format, which are absent from an output schema. While it mentions 'intelligent recommendations', it does not specify what form those recommendations take, leaving some ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 6 parameters have descriptions in the input schema (100% coverage). The description adds no further semantic context beyond what the schema already provides, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action (analyze dependencies) and output (generate intelligent recommendations for code generation). It distinguishes itself from sibling tools like codegen_render_* which focus on actual generation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like db_codegen_analyze or codegen_render_*. There are no prerequisites or conditions for use mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
springboot_read_configB
Read Spring Boot project configuration (YAML/Properties/Bootstrap) and infer base package
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | No | Optional explicit project root to scan | |
| active_profile | No | Profile name to overlay (e.g. dev, prod) | |
| include_profiles | No | Whether to collect all available profile files | |
| merge_strategy | No | How to merge base and profile configs | overlay |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must fully disclose behavioral traits. It only states the action (read) and purpose (infer base package) without mentioning side effects, authorization needs, or performance characteristics. It does not clarify whether the tool accesses remote resources or has any destructive potential.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-formed sentence of 11 words with no redundancy. It is front-loaded with the primary verb and resource, making the purpose immediately clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the tool has 4 optional parameters and no output schema, the description lacks details about what 'infer base package' means or what the return value contains. For a tool with moderate complexity, additional context about expected output or behavior would be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description does not add parameter-level meaning beyond what the schema already provides. For example, 'merge_strategy' enum values are not explained in context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Read') with a clear resource ('Spring Boot project configuration') and adds an additional purpose ('infer base package'). It distinguishes itself from siblings like springboot_validate_project and springboot_analyze_dependencies, which focus on validation and dependency analysis respectively.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, typical scenarios, or when not to use it. The sibling tools list exists but the description lacks explicit context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
springboot_validate_projectB
Validate SpringBoot project structure and dependencies before code generation
| Name | Required | Description | Default |
|---|---|---|---|
| check_dependencies | No | Whether to check project dependencies (default: True) | |
| create_missing_dirs | No | Whether to create missing standard directories (default: True) | |
| template_category | No | Template category to check dependencies for | MybatisPlus-Mixed |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not disclose whether the tool is read-only or has side effects. The parameters suggest possible directory creation, but this is not reflected in the description, leaving behavioral traits unclear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is front-loaded and contains no unnecessary words. However, it could be slightly expanded for clarity without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given three parameters and no output schema or annotations, the description is incomplete. It does not explain what 'validate' entails, what the output is, or whether the tool modifies the project structure. More detail is needed for a complete understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with all parameters described. The description adds no additional meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Validate SpringBoot project structure and dependencies before code generation', which is a specific action with a clear resource. It is distinct from siblings like 'springboot_analyze_dependencies' that focus solely on dependencies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions 'before code generation', implying a usage context, but lacks explicit when-to-use or when-not-to-use guidance. No alternatives are listed, and the context is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
29 tool updates
v0.1.1- First observed
ai_infer_business_names - First observed
ai_metrics - First observed
ai_recommend_template - First observed
ai_summarize_schema - First observed
codegen_build_context - First observed
codegen_render_controller - First observed
codegen_render_dao - First observed
codegen_render_entity - First observed
codegen_render_mapper - First observed
codegen_render_service - First observed
db_codegen_analyze - First observed
db_codegen_generate - First observed
db_connect_test - First observed
db_query_databases - First observed
db_query_execute - First observed
db_query_table_exists - First observed
db_query_tables - First observed
db_render_er_diagram - First observed
db_table_columns - First observed
db_table_describe - First observed
db_table_foreign_keys - First observed
db_table_indexes - First observed
db_table_primary_keys - First observed
search_tools - First observed
server_health - First observed
server_metrics - First observed
springboot_analyze_dependencies - First observed
springboot_read_config - First observed
springboot_validate_project
TDQS
Each tool targets a distinct action: database exploration, code generation layers, AI assistance, server health, and Spring Boot analysis. Overlap is minimal, and even similar tools (e.g., db_table_columns vs. db_table_describe) have clearly different purposes.
While most tools follow a prefix_verb_noun pattern, there are inconsistencies: legacy tools use db_codegen_ instead of codegen_, and some tools (ai_metrics, server_health) omit the verb entirely. This mixed convention can confuse an agent.
With 29 tools, the count exceeds the '25+' threshold for 'too many' per the rubric. The surface includes granular DB detail tools (e.g., separate tools for each table attribute) and duplicate code generation workflows (legacy vs. atomic), inflating the count unnecessarily.
The tool set covers the full lifecycle from database connection and schema analysis to AI-powered naming and code generation for various layers. Minor gaps include lack of batch generation for multiple tables or an update mechanism for changes after generation.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Generate, edit, and export data-architecture diagrams from your AI. Column lineage, PNG in chat.
AI Agent with Architectural Memory. Impact analysis (free), tests and code from the graph (pro).
AI-powered ERD design tool. Create and manage database schemas using DBML with real-time canvas.
AI-native Day 0 modernization platform for PRDs, architecture, work orders, and code transformation.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables natural language database operations on MySQL databases with AI integration, supporting CRUD operations, schema inspection, and audit logging with built-in security features including SQL injection protection and permission controls.454MIT
- AlicenseAqualityCmaintenanceEnables AI assistants to understand and analyze Spring Boot codebases through static analysis, allowing natural language queries about endpoints, classes, dependencies, and architecture without running the application.13MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to read and write MySQL databases, dynamically switch databases/servers, and auto-configure from Spring Boot projects.4541MIT
- FlicenseNot gradedqualityBmaintenanceEnables enterprise database schema exploration and Spring Boot code generation (MyBatis, JPA) through MCP, supporting both online DB connections and offline DDL parsing.-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ZhaoXingPeng/DBJavaGenix'
If you have feedback or need assistance with the MCP directory API, please join our Discord server