Skip to main content
Glama
spring-runtime-mcp

spring-runtime-mcp

Spring Boot Runtime Diagnostics MCP

Chinese README

Give your coding assistant access to what is actually running in a Spring Boot application. This MCP server reads authorized Actuator and OpenAPI data to help investigate Beans, routes, health, database migrations and startup problems.

What can it check?

Your question

What it provides

Why was a Bean not created?

Beans, dependencies and condition reports, with blocking chains when evidence is sufficient

Is this route registered?

Actual paths, HTTP methods, Controllers and MVC/WebFlux mappings

What is unhealthy?

Visible components and liveness/readiness status

Did a migration fail?

Reported Flyway/Liquibase records, states and checksums

What made startup slow?

Slow steps and their parent chains

Where did a configuration value come from?

Sources for registered properties; configuration diagnostics require opt-in

Is this API in OpenAPI?

Operations, schemas and references within the document

Does the process match my expectations?

Compare the Bean, route, migration version and profile expectations you supply

For example, ask: “Check whether GET /orders/{id} is registered and tell me which Controller handles it.” The server reads mapping metadata without calling the business endpoint.

Related MCP server: runtime-mcp-connect

Get started

You need Python 3.11+, uv and an authorized local Spring Boot application. Confirm its management endpoints and permissions using the target setup guide, then check and start 0.2.12 Alpha:

uvx --default-index https://pypi.org/simple spring-runtime-mcp==0.2.12 --version
uvx --default-index https://pypi.org/simple spring-runtime-mcp==0.2.12 --base-url http://127.0.0.1:18081

Use the second command as your MCP client's STDIO server command. In a terminal it waits for client requests. Follow the English first-query guide; additional client configuration templates cover other clients.

Try the synthetic route demo using the public package without preparing an application, then share first-query feedback. The replay needs no Spring process and does not establish live application or client compatibility.

Boundaries

The server connects only to loopback addresses, uses fixed endpoints and supports optional Bearer authentication from a named environment variable. OpenAPI uses /actuator/openapi. Configuration diagnostics are disabled by default and require explicit opt-in via CLI flags (--config-prefix, --config-property, --config-profiles). When enabled, values remain hidden unless both --config-allow-values and the tool’s includeValues=true are set. Output is sanitized, and each tool response is capped at 16 KiB. Missing evidence is reported as partial/unknown.

Tools do not write to the target, restart applications, or read heap dumps or raw logs. The complete Boot/Java/client matrix, Windows/macOS and production-cluster compatibility remain unverified.

Documentation · Tool contract · Source facts · Development and checks

Apache-2.0 · Contributing · Report a security issue

Available Tools

8 tools
springboot_analyze_startupA
Read-onlyIdempotent

返回非破坏性启动快照中的版本、时间线跨度、最慢步骤及父子链;排查慢启动时调用,不用于当前请求延迟,也不执行排空缓冲区的 POST。

NameRequiredDescriptionDefault
cursorNo
maxDepthNo
targetIdNolocal
maxResultsNo
minDurationMsNo
beanNamePatternNoBounded case-sensitive glob: only * and ? are wildcards; all other allowed characters are literal. No regex.
stepNamePatternNoBounded case-sensitive glob: only * and ? are wildcards; all other allowed characters are literal. No regex.

Output Schema

NameRequiredDescription
dataYes
errorsYes
sourceYes
statusYes
coverageYes
warningsYes
truncatedYes
nextActionYes
nextCursorYes
redactionsYes
totalMatchedYes
schemaVersionYes
truncationReasonsYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, so the safety profile is covered. The description adds useful context that it works from a non-destructive startup snapshot and does not perform a POST that drains buffers, though it does not discuss permissions or limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single compact sentence separated by semicolons, front-loading what is returned and following with usage boundaries. Every clause adds distinct information with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The output schema and rich annotations cover return values and safety, and the description adequately explains purpose and exclusions. However, for a tool with seven parameters and low schema description coverage, the missing parameter guidance leaves a meaningful gap in invocation guidance.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 29%, and the description does not explain any of the seven parameters such as cursor, maxDepth, targetId, maxResults, or minDurationMs. With most parameters undocumented in the schema and nothing added in the description, an agent gets little semantic guidance for configuring the call.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific resource and return contents: a non-destructive startup snapshot with version, timeline span, slowest steps, and parent-child chain. It also distinguishes the tool from request-latency analysis and a buffer-draining POST, so its diagnostic role is clear without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly says to call it when troubleshooting slow startup and explicitly excludes current request latency and buffer-draining POST behavior. It does not name a specific sibling alternative, but the usage boundary is otherwise clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

springboot_check_migrationsB
Read-onlyIdempotent

返回所有容器和迁移 Bean 的已报告迁移、校验和、顺序及异常状态;排查迁移失败或版本差异时调用,未报告的待执行状态需要可信预期,且不会执行 SQL 或迁移。

NameRequiredDescriptionDefault
stateNo
cursorNo
engineNoauto
versionNo
targetIdNolocal
contextIdNo
maxResultsNo
migrationBeanNo
expectedMigrationsNo
expectedSetCompleteNo

Output Schema

NameRequiredDescription
dataYes
errorsYes
sourceYes
statusYes
coverageYes
warningsYes
truncatedYes
nextActionYes
nextCursorYes
redactionsYes
totalMatchedYes
schemaVersionYes
truncationReasonsYes

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so safety is covered. The description adds two genuinely useful facts beyond that: it does not execute SQL or migrations, and unreported pending states require a trusted expectation to be interpreted. It still says nothing about result ordering, pagination behavior, or how UNKNOWN/OUT_OF_ORDER are derived.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense sentence with the resource description front-loaded and the usage trigger second. Efficient, though the semicolon-joined clauses on unreported pending states are compressed enough to need re-reading.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value explanation is not required, and annotations cover the safety profile. However, a 10-parameter tool with zero schema descriptions needs the prose to explain filtering, pagination and engine selection, and the description covers only a fraction of that surface.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% across 10 parameters, so the description carries the full burden. It only gestures at migrationBean, the expected-set inputs, and the status fields; state, cursor, maxResults, engine, targetId, contextId and version are entirely undocumented in both places, leaving the agent to infer pagination and scoping semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: returns reported migrations, checksums, ordering and exception state across all containers and migration beans. That is clearly a migration-audit operation, distinct in domain from the health/startup/drift/config siblings, though it never names or contrasts them explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a concrete trigger: call it when troubleshooting migration failures or version discrepancies. It also hints at the expected-set workflow for unreported pending states, but offers no explicit when-not-to-use guidance or routing to an alternative tool such as drift detection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

springboot_detect_driftA
Read-onlyIdempotent

比较调用者从获权工作区提取的 Bean、路由、迁移版本和 Profile 预期,返回差异及分级根因候选;源码与运行行为不一致时调用,省略维度不参与比较,文件时间本身不能证明未重启。

NameRequiredDescriptionDefault
cursorNo
maxDepthNo
targetIdNolocal
maxResultsNo
expectedBeansNo
expectedRoutesNo
sourceRevisionNo
expectedProfilesNo
sourceModifiedAtNo
expectedScopeCompleteNo
expectedMigrationVersionNo

Output Schema

NameRequiredDescription
dataYes
errorsYes
sourceYes
statusYes
coverageYes
warningsYes
truncatedYes
nextActionYes
nextCursorYes
redactionsYes
totalMatchedYes
schemaVersionYes
truncationReasonsYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnlyHint, idempotentHint, destructiveHint=false, openWorldHint=false), so the bar is lower; the description still adds useful semantics: the response is differences plus graded root-cause candidates, and the caveat that file timestamps alone cannot prove a process was not restarted. That caveat is non-obvious interpretation guidance not present in the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense sentence, front-loaded with the comparison verb, with semicolon-separated clauses that each carry a distinct fact: what is compared, what is returned, when to call, omission semantics, and the timestamp caveat. No filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values needn't be described, and the core comparison contract is stated. But for an 11-parameter tool with nested objects, the description leaves the control parameters (target, pagination, scope-completeness, source revision vs. modification time) unexplained, which is a real gap for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across 11 parameters. The description names only the four expected* dimensions (beans, routes, migration version, profiles) and the omission rule; it says nothing about targetId (the 'authorized workspace'), cursor, maxResults, maxDepth, sourceRevision, sourceModifiedAt, or expectedScopeComplete, which materially change comparison behavior. Most parameters have no semantics anywhere.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (compare) and specific resources (Bean, route, migration version, Profile expectations vs. runtime), and the drift framing separates it from the sibling tools that inspect those things individually (inspect_beans, verify_mappings, check_migrations). An agent can identify this as the cross-dimension comparison tool without comparing schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states a clear trigger — call when source code and runtime behavior disagree — and adds the rule that omitted dimensions are not compared, which tells the caller the call is valid with partial input. It does not name a sibling as an alternative or state when not to use it, so it falls short of 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

springboot_diagnose_healthA
Read-onlyIdempotent

返回整体健康状态、异常组件树及已脱敏的结构化错误和修复代码;依赖故障或探针异常时调用,组件下钻在本地完成,不获取日志、堆转储或原始异常栈。

NameRequiredDescriptionDefault
groupNoapplication
cursorNo
maxDepthNo
targetIdNolocal
maxResultsNo
componentPathNo
includeDetailsNo
includeHealthyNo

Output Schema

NameRequiredDescription
dataYes
errorsYes
sourceYes
statusYes
coverageYes
warningsYes
truncatedYes
nextActionYes
nextCursorYes
redactionsYes
totalMatchedYes
schemaVersionYes
truncationReasonsYes

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint/idempotentHint/destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds genuinely new behavior: results are pre-sanitized, component drill-down happens locally, and log/heap-dump/raw-stack retrieval is deliberately out of scope — useful expectations for an agent interpreting the payload.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense sentence with the return payload front-loaded, then the trigger condition, then the scope exclusions — no filler. The semicolon-separated structure is readable, though the parameter surface is compressed away entirely.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be re-explained, and purpose/trigger/boundaries are well covered. But for a tool exposing eight optional parameters — including a pagination cursor, a target selector, and detail/healthy toggles — with zero schema descriptions, the description leaves an agent unable to choose parameters intelligently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Eight parameters with 0% schema description coverage means the description carries the full explanatory burden, and it largely abdicates it. Only componentPath gets an indirect nod ("组件下钻在本地完成"); group, targetId, maxDepth, maxResults, cursor, includeDetails, and includeHealthy are left entirely undefined in both schema and prose.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names specific outputs (overall health status, an abnormal-component tree, sanitized structured errors plus remediation code), which is a concrete verb+resource pair rather than a restatement of the name. It is clearly separable from the inspection/mapping siblings, though it never names them explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"依赖故障或探针异常时调用" gives an explicit triggering condition for use. The trailing clause functions as a negative boundary (no logs, heap dumps, or raw exception stacks), but no alternative tool is named for those needs, so it falls short of a full when-not/alternatives map.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

springboot_inspect_beansA
Read-onlyIdempotent

返回匹配 Bean、别名及双向依赖图,并在 Bean 缺失时自动读取已授权条件报告、展开嵌套与传递阻塞链;排查注入或条件装配时调用,证据不足时返回 unknown,不猜测确切原因。

NameRequiredDescriptionDefault
cursorNo
maxDepthNo
targetIdNolocal
contextIdNo
directionNoboth
maxResultsNo
typePatternNoBounded case-sensitive glob: only * and ? are wildcards; all other allowed characters are literal. No regex.
packagePrefixNo
conditionDepthNo
beanNamePatternNoBounded case-sensitive glob: only * and ? are wildcards; all other allowed characters are literal. No regex.

Output Schema

NameRequiredDescription
dataYes
errorsYes
sourceYes
statusYes
coverageYes
warningsYes
truncatedYes
nextActionYes
nextCursorYes
redactionsYes
totalMatchedYes
schemaVersionYes
truncationReasonsYes

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, closed-world. The description adds genuine behavioral detail beyond them: auto-reading the authorized condition report on missing beans, expanding nested/transitive blocking chains, and returning 'unknown' rather than guessing when evidence is insufficient. That evidence-gated output policy is valuable context, though it omits pagination/response mechanics already partly covered by annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense sentence that front-loads the return content and follows with the trigger condition; every clause carries signal. Slightly compact for the number of concepts, but no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value explanation is not required, and the behavioral narrative is solid. However, for a 10-parameter tool with 20% schema coverage, key controls (pagination, depth, target/context scoping) remain undocumented, leaving the agent under-informed to call it precisely.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 10 parameters and only ~20% schema description coverage, the description needs to compensate but largely does not. It hints at bidirectional direction and condition depth via '双向依赖图' and '条件报告', but leaves cursor, maxDepth, maxResults, targetId, contextId, and packagePrefix unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: it returns matching Beans, aliases, and a bidirectional dependency graph, and augments with condition-report details when a Bean is missing. This is clearly distinguishable from siblings like inspect_config or verify_mappings, though it does not name them explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives an explicit trigger: call when troubleshooting injection or conditional assembly (排查注入或条件装配时调用), which is clear usage context. It stops short of naming alternatives or when-not conditions, so it is a 4 rather than a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

springboot_inspect_configA
Read-onlyIdempotent

返回双层强制脱敏后的生效属性、绑定 Bean、来源位置及 Active Profiles;排查属性绑定或配置覆盖时按前缀或键模式调用,能力默认关闭且不能用于获取秘密或导出全量配置。

NameRequiredDescriptionDefault
cursorNo
prefixNo
targetIdNolocal
contextIdNo
maxResultsNo
includeValuesNo
propertyKeyPatternNoBounded case-sensitive glob: only * and ? are wildcards; all other allowed characters are literal. No regex.

Output Schema

NameRequiredDescription
dataYes
errorsYes
sourceYes
statusYes
coverageYes
warningsYes
truncatedYes
nextActionYes
nextCursorYes
redactionsYes
totalMatchedYes
schemaVersionYes
truncationReasonsYes

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, it discloses that results are returned after mandatory double-layer redaction, that the capability is disabled by default, and that it cannot be used for secrets or full configuration export. These are meaningful operational and security behaviors that an agent needs in order to invoke it responsibly. There is no contradiction with readOnlyHint, idempotentHint, or destructiveHint=false.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a single, front-loaded sentence: return scope first, then when to use it, then safety constraints. There is no filler, and each clause adds information relevant to selection or invocation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The output schema exists, so the description need not explain return values, and the annotations already cover the read-only/idempotent safety profile. However, with 7 parameters and low schema description coverage, the description leaves notable invocation gaps around pagination, target/context selection, and includeValues. It is adequate but not fully complete for correct parameter use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is only 14%, so the description must carry most parameter meaning, but it only mentions prefix and key-pattern invocation. It does not explain targetId, contextId, cursor, maxResults, or includeValues, leaving several parameters without descriptive semantics in either the schema or the description. The propertyKeyPattern schema description helps, but overall compensation is weak for a 7-parameter tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource set: it returns effective properties, bound beans, source locations, and active profiles after mandatory double-layer redaction. The resource scope is clearly configuration inspection rather than health, startup, migrations, drift, bean listing, OpenAPI, or mappings, so an agent can distinguish it from the siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly says to call this when troubleshooting property binding or configuration overrides, and to do so via prefix or key pattern. It also states clear exclusions: the capability is disabled by default and must not be used to obtain secrets or export full configuration. It does not name a specific alternative sibling, which keeps it from a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

springboot_search_openapiB
Read-onlyIdempotent

返回匹配操作或 Schema,并默认内联直接与二阶同文档引用;确认接口契约时使用精确选择器调用,不执行业务接口、不返回全量文档,也不解析远程引用。

NameRequiredDescriptionDefault
cursorNo
targetIdNolocal
httpMethodNo
maxResultsNo
schemaNameNo
maxRefDepthNo
operationIdNo
pathPatternNoBounded case-sensitive glob: only * and ? are wildcards; all other allowed characters are literal. No regex.

Output Schema

NameRequiredDescription
dataYes
errorsYes
sourceYes
statusYes
coverageYes
warningsYes
truncatedYes
nextActionYes
nextCursorYes
redactionsYes
totalMatchedYes
schemaVersionYes
truncationReasonsYes

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, idempotent, non-destructive and closed-world behavior, yet the description still adds real value: default inlining of direct and second-order same-document refs, no remote ref resolution, no full-document dump, no business execution. That is genuine behavioral context beyond the structured fields. It stops short of describing pagination/cursor behavior, which the 8-param schema implies.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense sentence front-loads the return behavior before usage and exclusions, with no filler. The semicolon-chained clauses are efficient, though packing return semantics, usage guidance and three exclusions into one sentence slightly hurts scannability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return shape needs no explanation and the description's account of ref inlining is appropriate. But for an 8-parameter tool with a oneOf/allOf selector constraint and only 13% schema coverage, omitting how the selectors combine and how cursor/maxResults paginate leaves a real gap for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 13% (only pathPattern is documented), so the description must compensate and largely does not. It obliquely conveys maxRefDepth's default of 2 via '二阶同文档引用' and gestures at '精确选择器', but says nothing about schemaName vs pathPattern vs operationId exclusivity, cursor, maxResults, or targetId, leaving the most consequential parameters unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a concrete verb/resource pair ('返回匹配操作或 Schema') and bounds the scope by stating it does not return the whole document or resolve remote refs. It does not need to differentiate from siblings, which are diagnostics/bean/config tools with no overlapping purpose. The only weakness is that 'matching' against what corpus (the OpenAPI spec) is inferred from the name/title rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'确认接口契约时使用精确选择器调用' gives a clear usage context and a call-style directive (use precise selectors). However, no alternatives are named and the mutual exclusivity between the three selector styles (schemaName vs pathPattern/operationId) that actually determines correct invocation is never explained.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

springboot_verify_mappingsA
Read-onlyIdempotent

返回统一的 MVC/WebFlux 路由、处理器和方法描述符;排查路径、方法或 Controller 未注册时调用,不向业务 URL 发请求,也不把注册匹配等同于请求一定成功。

NameRequiredDescriptionDefault
cursorNo
targetIdNolocal
contextIdNo
httpMethodNo
maxResultsNo
pathPatternNoBounded case-sensitive glob: only * and ? are wildcards; all other allowed characters are literal. No regex.
controllerClassPatternNoBounded case-sensitive glob: only * and ? are wildcards; all other allowed characters are literal. No regex.

Output Schema

NameRequiredDescription
dataYes
errorsYes
sourceYes
statusYes
coverageYes
warningsYes
truncatedYes
nextActionYes
nextCursorYes
redactionsYes
totalMatchedYes
schemaVersionYes
truncationReasonsYes

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent/non-destructive annotations, the description adds two pieces of real behavioral context: it does not send requests to the application's business URLs, and a registration match does not imply the request will succeed. That second caveat is important for interpreting results and is not derivable from annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a single compact sentence-pair with the purpose front-loaded and no filler. The two negative caveats are slightly compressed into the same clause chain, but nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value explanation is rightly omitted, and the annotations cover the safety profile. However, with 7 parameters, a required-anyOf constraint, and pagination via cursor/maxResults, the description leaves an agent without guidance on required inputs or result-size limits, so it is only adequate rather than complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 29%, with 7 parameters, and the description explains none of them: cursor, maxResults, targetId, and contextId are entirely unaddressed, and the anyOf requirement (at least one of pathPattern/httpMethod/controllerClassPattern) is not mentioned. Even the two glob patterns that carry schema descriptions get no added meaning. The description does not compensate for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource set: it returns unified MVC/WebFlux routes, handlers, and method descriptors. An agent can tell this is a route-registration inspection tool rather than a bean/config/drift inspector. It stops short of naming a sibling such as springboot_search_openapi, which also deals with request mappings, so differentiation is only partial.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states a concrete trigger — call it when troubleshooting a path, HTTP method, or Controller that is not registered — which is a clear positive condition for use. It gives no explicit exclusion or named alternative for when to prefer springboot_search_openapi, so the guidance is clear but not complete.

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.

  1. 8 tool updatesv0.1.0
    • First observedspringboot_analyze_startup
    • First observedspringboot_check_migrations
    • First observedspringboot_detect_drift
    • First observedspringboot_diagnose_health
    • First observedspringboot_inspect_beans
    • First observedspringboot_inspect_config
    • First observedspringboot_search_openapi
    • First observedspringboot_verify_mappings

TDQS

A3.9/5.0

Scored across 8 tools

Disambiguation4/5

Each tool targets a distinct diagnostic dimension (health, startup, migrations, drift, beans, config, OpenAPI, mappings), and descriptions add clear boundaries such as 'not for current request latency' or 'does not execute SQL'. The only real overlap is springboot_detect_drift, which compares beans/routes/migrations/profiles and thus partially duplicates inspect_beans, verify_mappings, and check_migrations, though its expectation-diff framing distinguishes it.

Naming Consistency5/5

All eight tools follow the same springboot_<verb>_<noun> pattern with consistent verb choice (diagnose, analyze, check, detect, inspect, search, verify). No casing or style deviations.

Tool Count5/5

Eight tools is well within the ideal 3-15 range and each maps to a distinct Spring runtime diagnostic concern. No filler or redundant tools are present.

Completeness4/5

The surface covers the core runtime diagnostic lifecycle: health, startup timing, migrations, bean graph, config, route registration, contract lookup, and drift comparison. Gaps exist (no metrics, scheduled tasks, filters/security chain, connection pools, or log/thread-dump access), but the latter are explicitly out of scope by design, leaving only minor workarounds.

Maintenance

ActivityNo data
ResponsivenessSyncing

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Provides AI coding agents with structured, evidence-based diagnostics about the local development environment, detecting tech stack, runtime mismatches, dependency state, services, ports, and Git status without exposing secrets or using network calls.
    10
    Apache 2.0
  • A
    license
    A
    quality
    A
    maintenance
    Evidence-backed, read-only codebase diagnostics for coding agents: secrets, dependency, RLS, and source-impact audits with a verify loop and PR review verdicts. Never writes files or uses the network by default.
    7
    114 npm
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Read-only server that reports what is actually true in a local Ansible checkout: the option specs of installed modules, task-argument validity checks, role interfaces, redacted inventory, play structure, effective config, requirements drift, and which tasks a collection upgrade would break. It lets coding agents verify specs and arguments against the installed collections before writing anything, without running plays, connecting to managed hosts, or supplying vault secrets.
    11
    92 npm
    1
    MIT