silicon_truth_bridge
The silicon_truth_bridge server provides read‑only access to structured, auditable evidence from Synopsys Verdi design databases and FSDB waveforms for chip verification and RTL debugging, available via MCP or CLI.
Context & Waveform Management: Open, reload, close, list, and get status of design contexts; attach, detach, and manage waveform files within a context.
Discovery: Catalog available models, object types, semantic classes, properties, relations, operators, backend capabilities, and limits.
Object Inspection: Resolve exact design/waveform objects, retrieve detailed properties, run bounded declarative queries with filtering and pagination, and traverse relations (children, ports, drivers, etc.) up to a configurable depth.
Connectivity & Tracing: Get one‑hop driver/load evidence; generate bounded driver, load, path, fanin, and fanout trace graphs; evaluate active driver branches and trace sampled value origins at specific waveform times.
Waveform Analysis: Read typed values at exact times, page through waveform transitions, and compute operations such as sampling, statistics, comparisons, first divergence, period, pulse, X/Z detection, window evaluation, event extraction, and transaction matching.
Source Code & Assertions: Extract bounded source code snippets with preprocessor macro/include evidence; obtain structural assertion evidence (clock, disable iff, implication, cycle windows) without simulating pass/fail.
Design‑to‑Waveform Mapping: Resolve, validate, and explain deterministic mappings between design and waveform signal names (prefix, separator, regex, bit mapping) within or across contexts.
Artifact & Job Management: Export large result sets as asynchronous artifacts; manage export jobs and their status.
Diagnostic Tools (if enabled): Runtime status, Verdi NPI configuration, worker health, metrics, request traces, logs, benchmarks, and selftests.
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., "@silicon_truth_bridgetrace the load of signal 'dma_req' in context 'top'"
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.
silicon_truth_bridge
Silicon Truth Bridge(STB)是一个只读 EDA evidence MCP server。它把设计 数据库、FSDB 波形以及 CDC/Lint saved session 转换为结构化、可分页、可审计的 证据,供 Codex、其他 MCP client 或命令行工作流使用。
STB 不替代 EDA 工具,也不自动修改 RTL、Constraints 或 Waiver。它负责把工具 数据库中的事实安全地交给上层分析流程。
主要能力
Verdi design DB 与 FSDB:对象查询、连通性、Trace、波形、源码上下文、 Assertion 结构和 design-to-waveform mapping。
VC Static CDC/Lint saved session:summary、Violation、rule、Waiver、clock、 reset、Constraints provenance、源码和有界 topology evidence。
cdc_evidence_bundle:面向单条或一组 Violation 聚合规则、clock pair、源码、 Constraints、Waiver 和 topology,减少交互式 RCA 的往返次数。两阶段 CDC cleanup report:先冻结 evidence 和分析任务,再校验 analyst/reviewer 结果,最后离线生成中文 HTML 报告。
多 context、generation-bound ObjectRef/cursor、资源变更检测、响应大小限制和 worker hard-timeout 恢复。
MCP server、CLI、worker 和 supervisor 共享同一个 dispatcher。
fake backend 提供无 EDA 环境的契约测试与开发能力。
当前公开接口包含 46 个核心工具和 6 个可选诊断工具。
Related MCP server: FSDB MCP Server
安全边界
STB 的默认边界是只读和白名单化:
不运行或更新 CDC/Lint 工程。
不修改 design DB、FSDB、Constraints 或 Waiver。
不接受任意 Tcl、shell、Python 或 NPI method string。
不暴露 raw NPI handle。
只允许访问
STB_ALLOWED_ROOTS下的文件。原生静态分析报告通过逻辑报告名和严格参数调用。
source、report、trace 和 response 均有界。
worker generation 变化后,旧 ObjectRef 和 cursor 立即失效。
VC Static backend 只接受由 save_session 生成且包含 vsi.tar 或
vsi.tar.lz4 的目录。普通工作 RTDB 不作为输入。
安装
要求 Python 3.11 或更高版本。
python3.11 -m venv .venv
. .venv/bin/activate
python -m pip install -e ".[dev]"外部 EDA 工具、license、design DB、FSDB 和 saved session 由用户自行准备,不随 本仓库分发。
快速开始
Fake backend
Fake backend 不需要 EDA 环境:
export STB_BACKEND=fake
export STB_ALLOWED_ROOTS="$PWD"
stb schema object_query
stb --pretty call object_query --request - <<'JSON'
{"context_id":"demo","request":{"scope":"top","limit":20}}
JSON需要先打开 context 的 CLI 工作流可以使用交互模式或 JSONL batch:
stb --pretty shell{"tool":"context_manage","request":{"action":"open","context_id":"demo","backend":"fake"}}
{"tool":"object_resolve","request":{"context_id":"demo","request":{"name":"top.u_core.req"}}}Verdi/FSDB backend
export VERDI_HOME=/path/to/verdi
export STB_BACKEND=verdi
export STB_VERDI_HOME="$VERDI_HOME"
export STB_ALLOWED_ROOTS="/project/design:$VERDI_HOME"打开 design DB 和 FSDB:
{
"tool": "context_manage",
"request": {
"action": "open",
"context_id": "debug",
"backend": "verdi",
"design_spec": {"path": "/project/design/simv.daidir"},
"wave_specs": [{"wave_id": "run0", "path": "/project/design/run.fsdb"}]
}
}CDC/Lint saved session
export VC_STATIC_HOME=/path/to/vc_static/V-2023.12-SP2
export STB_BACKEND=vc_static
export STB_VC_STATIC_HOME="$VC_STATIC_HOME"
export STB_ALLOWED_ROOTS="/project/design:$VC_STATIC_HOME"先探测 session,再显式打开 context:
{
"tool": "static_db_probe",
"request": {
"path": "/project/design/cdc/saved_session",
"domains": ["cdc"]
}
}{
"tool": "static_context_manage",
"request": {
"action": "open",
"context_id": "cdc",
"session_spec": {
"path": "/project/design/cdc/saved_session",
"domains": ["cdc"]
}
}
}查询 summary 和单条 Violation:
{"tool":"cdc_summary","request":{"context_id":"cdc","request":{}}}{
"tool": "cdc_violation_resolve",
"request": {
"context_id": "cdc",
"request": {
"violation_ids": ["CDC:1001"],
"disposition": "unwaived"
}
}
}完整 backend 能力、边界和 cleanup report 流程见 docs/vc-static.md。
CDC cleanup report
HTML 报告采用 fail-closed 的两阶段流程。Evidence collector 只读 saved session; 最终 Root cause 和 Decision 必须来自 cluster RCA analyst,并按任务要求经过独立 reviewer。模板 fallback 只允许用于调试。
1. 准备 evidence 与任务
.venv/bin/python scripts/generate_cdc_cleanup_report.py \
--session /project/design/cdc/saved_session \
--output /project/reports/cdc_cleanup_report.html \
--vc-static-home "$VC_STATIC_HOME" \
--allowed-roots "/project/design:$VC_STATIC_HOME" \
--prepare-analysis生成:
cdc_cleanup_report.evidence.json
cdc_cleanup_report.analysis-tasks.json2. 汇总 analyst 与 reviewer 输出
.venv/bin/python scripts/assemble_cdc_analysis.py \
--tasks /project/reports/cdc_cleanup_report.analysis-tasks.json \
--fragment /project/reports/analyst-a.json \
--fragment /project/reports/analyst-b.json \
--reviews /project/reports/reviewer-a.json \
--output /project/reports/cdc_cleanup_report.reviewed-analysis.jsonAssembler 会检查 cluster/member 覆盖、packet hash、analyst receipt、reviewer 覆盖和 Decision 一致性。缺失、重复或存在未裁决分歧时拒绝输出可渲染结果。
3. 离线生成 HTML
.venv/bin/python scripts/generate_cdc_cleanup_report.py \
--session /project/design/cdc/saved_session \
--output /project/reports/cdc_cleanup_report.html \
--evidence-input /project/reports/cdc_cleanup_report.evidence.json \
--analysis-input /project/reports/cdc_cleanup_report.reviewed-analysis.json渲染阶段不会重新打开 saved session。只有 evidence fingerprint、完整覆盖、 family hard gate、reviewer 和 cleanup work package 全部通过后,才生成 HTML。
报告重点是工程决策而不是复刻 EDA GUI:
每条 Violation 的规则含义、source/destination clock domain 和 Root cause。
crossing、convergence、glitch、reset 与 quasi-static evidence boundary。
Fix RTL、Fix Constraints、Investigate、Conditional waive或Waive建议及其成立条件。Root cause cluster、cleanup work package、Owner、依赖、退出条件和审计链。
按 Decision、Tag、Root cause、Confidence 和 clock pair 分组/过滤。
支持
tag:、rule:、object:、clock:、cause:、source:、quasi:和convergence:等字段检索。
MCP server
启动 stdio MCP server:
stb-mcp通用 MCP 配置示例:
{
"mcpServers": {
"stb": {
"command": "/path/to/silicon_truth_bridge/.venv/bin/stb-mcp",
"env": {
"STB_BACKEND": "fake",
"STB_ALLOWED_ROOTS": "/project/design"
}
}
}
}真实 backend 还需在 env 中配置对应的 tool home。不要把 license、token、项目
路径或私有 session 写入公开配置。
配置
环境变量 | 默认值 | 说明 |
|
|
|
| 当前目录 | 冒号分隔的允许访问根目录 |
|
| 大结果 artifact 目录 |
|
| Verdi 安装路径 |
| 自动识别 | 显式 release override |
|
| VC Static 安装路径 |
| 自动识别 | 显式 release override |
|
| 允许未验证 release 试运行 |
|
| 允许未验证 release 试运行 |
|
| 最大 active context 数 |
|
| 请求 soft timeout |
|
| worker hard timeout |
|
| 普通响应上限 |
|
| 硬响应上限 |
|
| 注册 admin 诊断工具 |
工具分组
设计与波形:
context_manage wave_manage catalog
object_resolve object_get object_query object_traverse
connectivity_direct trace trace_active_driver trace_value_origin
wave_value wave_changes wave_compute
source_context assertion_structure mapping artifactCDC/Lint:
static_db_probe static_context_manage static_catalog static_report_catalog
cdc_summary cdc_violation_query cdc_violation_resolve cdc_violation_get
cdc_explain_violation cdc_evidence_bundle cdc_rule_get cdc_waiver_audit
lint_summary lint_violation_query lint_violation_get lint_explain_violation
lint_rule_get lint_waiver_audit
static_object_resolve static_object_get static_object_query
static_connectivity_direct static_trace static_case_trace
static_source_context static_clock_relationship
static_constraint_provenance static_report_run诊断工具仅在 STB_DEV_TOOLS=true 时注册:
admin_doctor admin_metrics admin_trace
admin_logs admin_benchmark admin_selftest使用 stb schema <tool> 查看准确请求 schema。
测试
.venv/bin/pytest -q运行公开 fake benchmark:
PYTHONPATH=src .venv/bin/python scripts/run_benchmarks.py \
--iterations 20 \
--output benchmarks/fake-baseline.json真实 EDA 环境测试默认跳过,需要由使用者在具备工具、license 和测试数据的环境中 显式启用。私有 session、golden、RCA benchmark 和生成的 evidence/analysis 文件 不属于公开仓库。
目录
src/stb/ server、dispatcher、supervisor 与 backend
src/stb/backends/verdi.py design DB / FSDB backend
src/stb/backends/vc_static.py CDC/Lint saved-session backend
src/stb/cdc_analysis.py RCA task、validation 与 cleanup model
scripts/ benchmark 与 cleanup report 工具
tests/ fake、contract 与 backend 单元测试
docs/ 架构、CLI、API 和 backend 文档文档
许可证
本项目采用仓库内 LICENSE 定义的个人研究许可证。外部 EDA 软件、 数据库、规则文档和用户设计不包含在本许可证或本仓库中。
Available Tools
17 toolsartifactD
Manage bounded evidence artifacts and asynchronous jobs.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | ||
| request | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description carries the full burden of disclosing behavior. It fails to mention side effects, permissions, or what 'manage' entails. The only hint is 'asynchronous jobs,' which is insufficient to understand the tool's behaviors or limitations.
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 one short sentence, so it is not verbose, but it is under-specified rather than cleanly concise. It omits critical information that the tool's action-dispatch pattern requires. This is not a case of concise adequacy but of insufficient substance.
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 complexity (action dispatch, async jobs, output schema) and lack of annotations or parameter descriptions, the description is extremely incomplete. It does not enumerate valid actions, explain the request schema, or describe return behavior, making it nearly impossible for an agent to invoke correctly.
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 a required 'action' string and an optional 'request' object, but both lack descriptions. The description adds no parameter details, leaving the meaning of 'action' and the structure of 'request' entirely unknown. With 0% schema coverage, this is a significant gap.
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 the generic verb 'manage' and names two resources: evidence artifacts and asynchronous jobs. It vaguely suggests scope but does not specify the operations (create, update, delete, etc.) nor does it clearly differentiate from sibling tools like object_get or catalog. 'Bounded' adds slight context but remains ambiguous.
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. The description does not mention any conditions, exclusions, or preferred scenarios. It only implies a domain (artifacts and jobs) without offering decision criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catalogC
Discover context-specific models, properties, relations, and operators.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | ||
| filters | No | ||
| context_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. 'Discover' implies a read-only operation, but no explicit mention of safety, side effects, or behavior is made. Pagination (cursor, limit) and filtering capabilities are not disclosed, leaving the agent unaware of how the tool behaves.
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 short but under-specifying. While brevity is good, the single vague sentence does not earn its place because it omits essential information. The structure is fine, but the content is too sparse to be useful.
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 complexity (3 parameters, nested filters, an output schema, and numerous sibling tools), a one-sentence description is far from complete. It does not explain the purpose of kind or filters, nor the context_id requirement. The agent cannot confidently invoke the tool based on this description.
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 0%, and the description adds no meaning to parameters like context_id, filters, or kind. It merely lists a few enum values already visible in the schema, failing to explain their semantics or usage. For a tool with a complex nested filter object, this is a critical gap.
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 the verb 'Discover' and names specific catalog entities (models, properties, relations, operators), giving a clear sense of what the tool provides. However, it omits other kinds present in the schema (e.g., object_types, semantic_classes, limits) and does not distinguish from sibling tools with overlapping functionality.
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 like object_query or object_resolve. It lacks any context about appropriate scenarios, prerequisites, or exclusions, leaving the agent without decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
connectivity_directA
Return one-hop driver or load evidence for exact design signal names.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes | ||
| context_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the transparency burden. It does disclose that the tool returns one-hop driver/load evidence and requires exact signal names, which are meaningful behavioral constraints. However, it does not mention error behavior, return format, or how bit_mode/npi_type affect results. The description provides basic transparency 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?
The description is a single, clear, and front-loaded sentence with no unnecessary words. It conveys the essential information efficiently and is appropriately sized for the tool's complexity.
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 having an output schema (which covers return values), the description is too brief to be complete. With no annotations and zero schema parameter descriptions, the description does not explain the purpose of bit_mode or npi_type, nor does it provide guidance on how to construct the request object. The tool is simple, but the description leaves key usage gaps.
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 0%, so the description must compensate. It mentions 'exact design signal names' (relating to signals) and 'driver or load' (relating to kind), but these are already evident from the enum. The description provides no information about bit_mode, npi_type, context_id, or the request structure, leaving significant semantic gaps.
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 ('Return') and a clear resource ('one-hop driver or load evidence for exact design signal names'). It explicitly scopes the operation to one-hop connectivity and exact signal names, distinguishing it from sibling tools like trace (which likely traverses multiple hops) and wave tools (which provide waveform data).
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 phrase 'one-hop' implies a use case: when you need only direct connectivity, not a full trace. However, there is no explicit guidance on when to use this tool versus alternatives, nor any exclusions. The usage is implied by the description's scope rather than stated directly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
context_manageC
Open, reload, close, list, get status, or release context objects.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | ||
| backend | No | ||
| context_id | No | ||
| object_ids | No | ||
| wave_specs | No | ||
| design_spec | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It lists actions but does not explain side effects, whether operations are destructive, or what 'status' and 'release_objects' entail. The description lacks critical details about state changes and 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 extremely brief and grammatically structured as a single list, but it is under-specified. It lacks the detail needed to be effective, so the brevity is a deficiency rather than a virtue.
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 complexity (6 parameters, multiple actions, an output schema, and nested spec objects), the description is grossly insufficient. It fails to explain the tool's role within the wider context of sibling tools or how the parameters relate to the actions.
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 zero parameter descriptions, and the description does not compensate by explaining the parameters. The action enum is mentioned, but parameters like context_id, backend, wave_specs, and design_spec are completely unexplained, leaving the agent without meaning for these fields.
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 explicitly lists the operations (open, reload, close, list, get status, release) and identifies the resource (context objects), making the tool's purpose clear. It does not explicitly differentiate from sibling tools, but the scope is distinct enough to be understood.
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, nor does it mention any prerequisites or context. It implies usage only through the listed actions, leaving the agent without sufficient decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mappingC
Resolve, validate, or explain deterministic design-to-wave mappings.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes | ||
| context_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It mentions 'deterministic' and enumerates actions, but does not disclose side effects, permissions, or output behavior. The action list is already present in the schema, so the added behavioral transparency is limited to the word 'deterministic'.
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 conveys the core purpose efficiently. There is no wasted wording, and it provides a concise high-level summary.
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 the rich, nested input schema (MappingRequest, MappingProfile, rules, etc.), the description is minimal and fails to explain important concepts like when to provide a profile versus pairs, what 'context_mode' means, or how actions differ. Even with an output schema, the tool's complexity demands more contextual guidance.
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 0%, and the description provides no information about context_id, request, profile, pairs, or context_mode. The complex input schema requires explanation, but the description offers none, leaving the agent to interpret cryptic field names like 'request' without guidance.
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 identifies the tool's purpose: resolving, validating, or explaining deterministic design-to-wave mappings. This specific resource ('design-to-wave mappings') distinguishes it from sibling tools like trace, catalog, and wave_manage.
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 like object_resolve or trace. It does not mention suitable contexts, exclusions, or preference over sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
object_getA
Read properties for exact ObjectRef entries returned by resolve or query.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes | ||
| context_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It indicates a safe read operation but does not disclose behavior like error handling, truncation via max_chars, or behavior with invalid references. The constraint 'exact ObjectRef entries' adds some transparency about required inputs.
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, compact sentence that immediately conveys the core action and scope. It uses no unnecessary words and is well-suited for quick parsing.
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 nested request schema and output schema, but the description gives only the core use case. It omits the optional configurable aspects (like property selection, character limits, relation inclusion), leaving the agent to infer those from the schema. While not incomplete to the point of unusability, more context would help.
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 0%, yet the description only vaguely references 'ObjectRef entries' and 'properties', aligning with two schema fields but omitting others like max_chars, include_available_relations, and wave_id. It does not compensate for the low coverage with parameter-specific 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 states the tool reads properties for exact ObjectRef entries, using a specific verb ('Read') and resource ('properties for exact ObjectRef entries') and distinguishes from siblings like object_resolve and object_query by focusing on already-resolved entries.
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 when to use it: after receiving ObjectRef entries from resolve or query. It does not explicitly list alternatives or exclusions, but the 'returned by resolve or query' provides clear context that narrows its purpose relative to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
object_queryB
Run a bounded declarative object query. Set model, scope, npi_types or semantic_classes; waveform queries also require wave_id.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes | ||
| context_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility. The term 'bounded' hints at limit enforcement, but the description omits details about pagination, cursor, max_scan limits, read-only behavior, or return semantics. It adds little beyond parameter hints.
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 short sentences lead with the core purpose and then provide parameter setup guidance. 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?
Given the complex input schema with recursive Where clauses and many optional parameters, plus no annotations, the description is far too sparse. It doesn't explain the query semantics, pagination, or role of context_id. Even with an output schema, the tool is under-described.
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 0% schema description coverage, the description names only model, scope, npi_types, semantic_classes, and wave_id, and omits the crucial 'where' filter, limit, cursor, max_scan, allow_global, and the nested request/context_id structure. The schema itself is highly detailed but description doesn't explain how to construct a query.
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 'Run a bounded declarative object query,' specifying the verb and resource clearly. It distinguishes from siblings by describing a declarative, bounded query rather than a direct get/traverse, though it doesn't explicitly name alternatives.
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 provides conditional guidance: 'waveform queries also require wave_id' and suggests which fields to set. However, it doesn't explain when to choose this tool over object_get/object_traverse or provide alternative tool names, leaving usage largely implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
object_resolveC
Resolve an exact object. For waveform signals set model='waveform', wave_id, and name; netlist is the default model.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes | ||
| context_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It does not disclose side effects, permissions, error behavior, or what 'resolve' does under the hood. The only behavioral detail is the default model, which is more of a parameter semantic.
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 short and front-loaded with the core purpose. The second sentence provides a concrete usage example without redundancy. It is efficient for the information it conveys.
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?
An output schema exists, so return values are covered. However, the description omits the role of context_id, the purpose of npi_type/object_id, and how this tool relates to sibling tools. It covers the main use case but is not complete for the full parameter space.
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 0% description coverage, but the description compensates partially by explaining the model parameter (default netlist) and the waveform-specific requirements for wave_id and name. However, it leaves npi_type, object_id, and context_id unexplained, so coverage is incomplete.
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 a specific action: 'Resolve an exact object', which implies a precise lookup rather than a query or traversal. It distinguishes from siblings like object_query or object_traverse by the word 'exact', though it doesn't explicitly contrast with object_get.
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 gives a specific usage pattern ('For waveform signals set model='waveform', wave_id, and name') but provides no guidance on when to use this tool versus alternatives like object_query or object_get. It does not mention exclusions or direct comparison to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
object_traverseC
Traverse a cataloged relation from ObjectRef roots with bounded depth.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes | ||
| context_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output 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 of behavioral disclosure. It only mentions 'bounded depth' and 'cataloged relation', failing to state read-only nature, pagination via cursor, filtering behavior, max_nodes limits, or error cases. This is a significant gap for an operation that likely traverses a complex graph.
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 zero wasted words. However, given the tool's complex nested schema, such extreme brevity borders on under-specification rather than being appropriately sized, so it doesn't earn a 5.
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 highly complex input schema with nested filter structures, no annotations, and an output schema (per context). The description covers only the basic traversal concept, omitting filtering, pagination, max_nodes constraints, and context_id semantics. The output schema mitigates return-value description needs, but the input side is still critically incomplete.
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 0%, and the description compensates only for 'roots' (ObjectRef roots) and 'depth' (bounded depth). It ignores critical parameters like filters, cursor, max_nodes, wave_id, and relation, leaving the agent to infer their meaning from the raw schema. The complex Where* filter types are entirely unexplained.
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 operation ('Traverse') and the resource ('cataloged relation') with specific modifiers ('ObjectRef roots', 'bounded depth'). This distinguishes it from object_get and object_query by focusing on relation traversal. However, it doesn't explicitly differentiate from the sibling tool 'trace', so it stops short of a 5.
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 given on when to use this tool versus alternatives like object_query or trace. The description does not mention any exclusions, prerequisites, or contextual conditions; the only hint is the verb 'Traverse', which merely implies a use case rather than stating it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
source_contextC
Read bounded source context anchored to an exact ObjectRef.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes | ||
| context_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It indicates a read operation but does not explain the bounded nature, required object resolution, or any side effects or limitations.
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, terse sentence with no wasted words. However, it is arguably too sparse for the tool's complexity, warranting a slight deduction.
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 the complex nested schema and no annotations, the description gives only a one-line summary. It does not cover usage context, parameter behavior, or output characteristics, leaving significant gaps for such a complex 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 0%, so the description must compensate. It does not explain any of the two top-level parameters (context_id, request) or the nested request fields, providing no semantic value beyond the schema's field names.
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'), names the resource ('bounded source context'), and specifies the anchor ('exact ObjectRef'), making it clear what this tool does and distinguishing it from sibling tools like trace or object_get.
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 like trace or object_resolve. It does not state prerequisites or exclusions, leaving the agent to infer usage 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.
traceB
Return a bounded driver, load, path, fanin, or fanout evidence graph.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes | ||
| context_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must convey behavioral traits. The word 'bounded' hints at limits (max_depth/max_nodes), and 'Return' implies a read operation, but the description does not disclose edge cases, errors, cost, or what the evidence graph contains. This is insufficient for full 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?
The description is a single sentence, front-loaded with the verb 'Return'. It is concise and every word adds value (e.g., 'bounded', the enumerated kinds). No wasted content.
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 having an output schema, the tool is complex with a nested request object containing six sub-parameters. The one-sentence description does not provide enough context for correct invocation, such as the role of roots, stop_at, or targets, or how the graph is constructed. It is far from 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?
Schema description coverage is 0%, so the description should compensate by explaining parameters. It lists the 'kind' values (driver, load, path, fanin, fanout) but provides no explanation of 'roots', 'stop_at', 'targets', 'max_depth', or 'max_nodes'. It adds minimal value 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's function: 'Return a bounded driver, load, path, fanin, or fanout evidence graph.' It names the specific resource (evidence graph) and enumerates graph types, distinguishing it from more specific siblings like trace_active_driver and trace_value_origin.
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 use cases, prerequisites, or exclusions. The agent is left to infer applicability from the enum values in the schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trace_active_driverB
Evaluate active and feasible driver branches for signals at a wave time.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes | ||
| context_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 action without explaining what 'feasible' means, whether the operation is read-only, or what the output represents. The parameters max_depth and max_nodes hint at traversal limits, but these are not described, leaving significant ambiguity.
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 unnecessary words, making it concise and well-structured. However, it sacrifices necessary detail for brevity, so it does not achieve a perfect score.
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 complex schema with multiple parameters and an output schema, but the description gives no indication of the return format, the meaning of 'feasible,' or how max_depth and max_nodes affect results. It lacks critical context for an agent to handle complex trace scenarios.
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 description mentions 'signals' and 'wave time,' which map to the 'signals' and 'time' fields, but it does not explain the purpose of 'context_id,' 'wave_id,' 'max_depth,' or 'max_nodes.' With 0% schema description coverage, the description fails to compensate for these 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 uses the specific verb 'Evaluate' and identifies the resource as 'active and feasible driver branches for signals at a wave time,' clearly indicating the tool's function. It does not explicitly differentiate from sibling tools like 'trace' or 'trace_value_origin,' but the focus on 'driver branches' provides some distinction.
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 clearly implies when to use the tool: when evaluating driver branches for signals at a wave time. However, it provides no explicit alternatives or exclusions, so it falls short of the highest score but is better than merely vague.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trace_value_originC
Trace sampled value origin across state boundaries at a wave time.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes | ||
| context_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose whether the tool is read-only, has side effects, requires special permissions, or what the output represents. 'Trace' implies a read operation, but this is not explicit. The description adds some context about state boundaries and wave time, but not enough to understand behavioral implications.
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 core purpose. No filler or repetition. It is appropriately sized for a simple purpose statement, though it sacrifices detail for brevity.
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 a complex nested request schema, many sibling tools, and no annotations, the description is severely incomplete. It does not explain return values, usage context, parameter structure, or how it differs from other trace tools. The output schema exists but the description does not help an agent understand what to expect or how to construct an 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?
The schema has 0% description coverage, and the description does not explain any parameter semantics. It hints at 'wave time' mapping to the 'time' field and 'sampled value' to 'signals', but does not clarify the required 'context_id' or the nested 'request' structure. The description fails to compensate for the lack of 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 a specific verb ('trace') and resource ('sampled value origin') with scope ('across state boundaries at a wave time'). It distinguishes from general 'trace' and sibling tools like 'trace_active_driver' by specifying the sampling and state-boundary context, but does not explicitly contrast with alternatives.
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 like 'trace_active_driver' or 'wave_value'. There is no mention of prerequisites, suitable scenarios, or exclusions. The only implied usage is a tracing scenario, but no explicit context is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wave_changesC
Read bounded waveform transitions. Request requires signals, start, and end.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes | ||
| context_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output 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 of behavioral disclosure. It says 'read' (suggesting non-destructive) and 'bounded' (implying limits), but does not disclose details about pagination, direction, max_changes, cursor behavior, or any side effects. The schema reveals parameters like direction and max_changes, but the description does not explain their behavioral implications.
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 redundant information. It is front-loaded with the core action ('Read bounded waveform transitions') and then specifies key requirements. It is appropriately sized for the information it conveys, though it could be slightly more detailed without becoming verbose.
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 complexity (multiple parameters, output schema, sibling tools), the description is severely under-specified. It does not explain return values, pagination behavior, direction semantics, or when to use this tool over alternatives. The output schema exists but does not compensate for the lack of context in the description.
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 0% description coverage, so the description must compensate, but it only names three required parameters (signals, start, end) without explaining their meaning or format. Other parameters such as cursor, wave_id, direction, and max_changes are not mentioned at all. The description adds minimal semantic value beyond the parameter names.
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 action: 'Read bounded waveform transitions.' This uses a specific verb ('read') and resource ('waveform transitions'), giving a clear purpose. While it doesn't explicitly contrast with sibling tools like wave_value or wave_compute, the phrase 'bounded' hints at a scoped read, which helps distinguish it from other wave-related 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 only states 'Request requires signals, start, and end,' which specifies input requirements but provides no guidance on when to use this tool versus alternatives like wave_value or wave_compute. There is no mention of use cases, exclusions, or alternative selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wave_computeC
Run a typed bounded waveform operation such as sample, statistics, compare, period, pulse, xz, or first_divergence.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes | ||
| context_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits beyond stating it runs an operation. It does not mention side effects, read-only nature, return format, or edge cases, which is especially insufficient for a complex 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 concise sentence with no wasted words and is front-loaded with the main action. However, its brevity omits critical details, and the term 'typed bounded' is unclear.
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 complex schema with many fields and no annotations, the description is severely incomplete. It fails to explain what a 'waveform operation' entails, how to construct the request, or important constraints, making it inadequate for an agent to invoke correctly.
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 0% description coverage, and the description does not explain the context_id or the request structure. It only lists some operation values, which are nested inside the request object, providing minimal parameter meaning.
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 runs a waveform operation and lists examples like sample, statistics, and compare. It conveys the core purpose but does not explain what these operations do or how this tool differs from sibling wave tools such as wave_value or wave_changes.
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?
There is no guidance on when to use this tool versus alternatives, no prerequisites, and no exclusions. The description merely lists operation names without providing context for appropriate use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wave_manageC
Attach, reload, detach, list, or get status for waveform resources.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | ||
| action | Yes | ||
| wave_id | No | ||
| context_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits, but it only restates the action enum from the schema. It does not mention side effects, required context_id semantics, permission implications, or what happens when attach/reload/detach are performed.
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, front-loaded sentence that efficiently enumerates the tool's operations. No filler or unnecessary detail.
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?
This is a multi-action tool with 4 parameters and no annotations, yet the description offers no parameter guidance, usage context, or behavioral details. The output schema exists but the description still leaves significant gaps for correct invocation (e.g., which parameters are needed for attach versus list).
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 0%, so the description must compensate, but it only lists actions already present in the schema enum. It gives no meaning for path, wave_id, or context_id, leaving the agent without clues about required or optional parameter combinations for each action.
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: managing waveform resources via attach, reload, detach, list, or status actions. This is specific and distinct from sibling tools like wave_value or wave_changes, which focus on reading values or changes rather than lifecycle management.
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, nor any exclusions or prerequisites. While the action list implies usage, there is no explicit context about selecting wave_manage over wave_value or wave_compute for particular tasks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wave_valueA
Read typed waveform values. Request requires signals and unit-bearing times such as ['200ns']; set wave_id when multiple waves are attached.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes | ||
| context_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. The verb 'Read' implies a non-mutating operation, and it discloses the wave_id condition, but it does not explain error behavior (e.g., if wave_id omitted with multiple waves) or any other side effects.
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 concise sentences cover the core purpose and key usage requirements without unnecessary detail. Front-loads the primary verb and object.
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 simplicity and the presence of an output schema, the description provides sufficient context for standard usage. It omits explanation of context_id and the 'typed' aspect of values, but these are not critical for operation.
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 0%, so the description must compensate. It adds meaning for times by giving a concrete unit-bearing example ('200ns') and explains when to set wave_id, but signals and context_id are left unnamed and unexplained.
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 opens with 'Read typed waveform values,' which clearly states the action (read) and the object (typed waveform values), distinguishing it from wave_manage (management) and wave_compute (computation). The mention of signals and times further specifies the scope.
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?
Provides clear usage context by specifying required inputs (signals, unit-bearing times) and a conditional parameter (wave_id when multiple waves are attached). Does not explicitly name alternative tools or exclusions, but the usage is well-contextualized.
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.
17 tool updates
v0.1.0- First observed
artifact - First observed
catalog - First observed
connectivity_direct - First observed
context_manage - First observed
mapping - First observed
object_get - First observed
object_query - First observed
object_resolve - First observed
object_traverse - First observed
source_context - First observed
trace - First observed
trace_active_driver - First observed
trace_value_origin - First observed
wave_changes - First observed
wave_compute - First observed
wave_manage - First observed
wave_value
TDQS
Most tools are clearly distinct, especially with object_* and wave_* prefixes. The only potential overlap is between trace and connectivity_direct, but the descriptions differentiate a general graph from a one-hop direct query. Specialized trace tools like trace_active_driver and trace_value_origin have specific purposes, reducing ambiguity.
Snake_case is used consistently, but the verb/noun arrangement is mixed: some are verb-first (trace, catalog), some are noun-verb (context_manage, object_resolve), and some are noun-noun (wave_value, source_context). There is structure via prefixes like object_ and wave_, but no uniform pattern across all tools.
The 17 tools are slightly above the ideal range but each addresses a distinct aspect of hardware design analysis, such as context lifecycle, object querying, tracing, waveform data access, and mapping. The count is justified by the breadth of the domain and does not feel bloated.
The toolset provides strong coverage for a read-only analysis bridge: lifecycle management for contexts and waveforms, object resolution/query/traversal, multiple trace types, waveform value/changes/compute, source context, and mapping. Minor gaps like an explicit list-scopes tool are likely covered by catalog, but overall the surface is comprehensive.
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
Read-only verifier for 25 ProofRelay MCP tools and non-confidential evidence bundles.
Read-only MCP server for The Quiet Protocol's engines, benchmarks, proof, and business data.
Read-only MCP server for wafergraph.com's semiconductor & AI supply-chain data: 30 tools, no auth.
The Cortex MCP server provides read-only access to real-time engineering context from the Cortex developer portal, allowing AI coding assistants to answer natural language questions about your organization's catalog (microservices, libraries, domains, teams, infrastructure), scorecards (engineering standards and best practices), initiatives (goals and deadlines), and Engineering Intelligence metrics. It includes tools for querying documentation, tracking personal entities, and accessing AI-assisted insights across the entire Cortex ecosystem.
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceAn MCP server that provides AI assistants with a persistent, sandboxed Python environment for waveform analysis, enabling loading and manipulation of VCD/FST/FSDB files and temporal pattern matching.9-
- AlicenseNot gradedqualityCmaintenanceAn MCP server for reading and querying FSDB waveform files, enabling AI assistants to browse hierarchy, search signals, and extract waveform data with value changes.13MIT
- AlicenseNot gradedqualityAmaintenanceMCP server for fast, bounded, read-only Git evidence, enabling AI agents to query commit history, diffs, status, and snapshots by parsing repository storage directly.345MIT
- AlicenseNot gradedqualityCmaintenanceRead-only MCP server exposing a W3C PROV knowledge graph of verified facts with provenance, enabling AI agents to list, search, and check facts while enforcing that writes remain CLI-only.MIT
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/nomatic163/silicon_truth_bridge'
If you have feedback or need assistance with the MCP directory API, please join our Discord server