Skip to main content
Glama

db-kb-mcp-server

A static, read-only MCP server that exposes a database knowledge base (schema, relationships, workflows, and reasoning patterns) so Claude Code / Copilot can reason about a database it has no live connection to.

No DB connection required — the schema is assumed stable, and all content lives in kb/ as Markdown files.

Folder structure

kb/
  schema/         one file per table — columns, types, PK/FK, business meaning
  relationships/  FK-enforced and logical (non-enforced) relationships, grouped by subsystem
  workflows/      one file per customizable workflow — intents, tables touched, invariants
  patterns/       reusable reasoning recipes (e.g. reordering ordinal columns)
  glossary/       domain term definitions
server/
  src/            MCP server implementation (Node + TypeScript, @modelcontextprotocol/sdk)

Related MCP server: Oracle DB MCP

Tools exposed

Tool

Purpose

get_context

Call this first, once per session. Returns hard rules, doc inventory, and what to call next.

get_context_for_query

Preferred per-query context bundle: given the user's request, returns relevant tables + required docs (schema/workflow/relationships/patterns/glossary) and execution order in one response.

resolve_tables_for_query

Call this second, with the user's request verbatim. Fans out across workflows/patterns/relationships/schema and returns a ranked, reasoned list of which tables are actually relevant, plus matching docs and concrete next steps — this is what lets an agent go from "user asked X" to "these are the tables to work on" without guessing table names from general domain knowledge.

list_kb_docs

List all docs, optionally filtered by category

get_table_schema

Full schema doc for a table

get_relationships

FK + logical relationships, optionally filtered to a table

get_workflow

Workflow doc: intents, tables touched, invariants

get_reasoning_pattern

Reasoning recipe (e.g. reordering, choosing-column-values)

search_kb

Full-text search across all docs

get_glossary_term

Domain term lookup

Every doc is also exposed as an MCP resource (kb://<category>/<id>).

Running locally (stdio — simplest, per-user)

npm install
npm run build

By default, the server auto-loads kb/ from the repository root (resolved relative to server/dist/index.js, not the shell's current working directory). Override with KB_ROOT only when you want to point to another KB folder.

Then add to Claude Code:

claude mcp add db-kb -- node D:/Tasks/GTech_MCPServer/server/dist/index.js

Or set KB_ROOT to point at a KB folder elsewhere:

KB_ROOT=/path/to/kb node server/dist/index.js

Integration checklist (what users need on their machine)

Local stdio integration

Required on each user machine:

  • Node.js 18+ (recommended current LTS)

  • A local copy of:

    • server/dist/index.js (or full repo + build output)

    • kb/ folder (the knowledge base content)

Typical MCP config (example .mcp.json snippet):

{
  "mcpServers": {
    "db-kb": {
      "command": "node",
      "args": ["D:\\Tasks\\GTech_MCPServer\\server\\dist\\index.js"]
    }
  }
}

Optional when kb/ lives elsewhere:

{
  "mcpServers": {
    "db-kb": {
      "command": "node",
      "args": ["D:\\Tasks\\GTech_MCPServer\\server\\dist\\index.js"],
      "env": {
        "KB_ROOT": "D:\\MyKb"
      }
    }
  }
}

Hosted HTTP integration

Required on user machine:

  • Only the MCP server URL (no local kb/ copy needed)

Client should use:

  • transport: http

  • URL: https://<host>:<port>/mcp (include /mcp)

Running as a hosted server (HTTP — pluggable via URL for everyone)

MCP_TRANSPORT=http PORT=8787 npm start

Deploy this anywhere (small VM, container, internal server). Then each teammate adds the URL once:

claude mcp add --transport http db-kb https://your-host:8787/mcp

No cloning, no file sync — everyone always gets the current KB content.

The HTTP server keeps one McpServer/transport pair per MCP session (keyed by the mcp-session-id the SDK assigns on initialize), not per HTTP request — sessions span many requests, so a naive "new server per request" implementation breaks the handshake (tools/call fails with "Server not initialized" on the very next request). Verified end-to-end with a manual initializenotifications/initializedtools/call sequence over curl.

Updating the knowledge base

  1. Edit/add Markdown files under kb/.

  2. If running the hosted HTTP variant, redeploy/restart the server — it loads kb/ once at startup (schema is assumed static; restart to pick up doc changes).

  3. Use kb/schema/_TEMPLATE.md as the starting point for new tables.

Live read-only SQL access (Oracle SQLcl MCP Server)

Alongside the static KB server, this project bundles Oracle's official SQLcl (v26.2, downloaded to tools/sqlcl/) running in MCP mode — for verifying live schema/data against the actual Oracle instance. This is a separate, more sensitive server from db-kb: it needs real DB credentials and should not be shared as broadly as the KB server.

One-time setup (per machine, not committed to the repo)

  1. Save a connection using SQLcl's own encrypted connection store. Run -nolog first, then type the connect command at the interactive prompt (or pipe it via stdin) — passing connect ... as command-line arguments gets misparsed as a script filename. Also pass -thin — on Windows, SQLcl defaults to OCI/thick mode and fails with no ocijdbc23 in java.library.path unless a full Oracle Instant Client is on the path; thin mode needs no native client at all:

    tools/sqlcl/bin/sql -thin -nolog
    SQL> connect -save mydb -savepwd myuser/mypassword@myhost:1521/myservice

    Credentials are stored locally under ~/.dbtools (SQLcl's own encrypted store) — never commit this directory or put credentials in .mcp.json.

  2. Use a read-only DB account for myuser — grant only SELECT on the relevant schemas. This is the real enforcement boundary; SQLcl's own restrict levels are a second layer, not a substitute for DB-level permissions.

  3. Verify the saved connection actually works: connect -name mydb then select 1 from dual;.

Already wired into .mcp.json

"oracle-sqlcl": { "command": "tools/sqlcl/bin/sql", "args": ["-thin", "-mcp"] }

MCP mode defaults to restrict level 4 (most restrictive) unless overridden with -R. It exposes 5 core tools: list-connections, connect, disconnect, run-sql, run-sqlcl. The connect tool only accepts a saved connection name (from step 1 above) — it never accepts raw credentials over MCP, so nothing sensitive passes through the AI session itself.

Auditing

Every session is logged: V$SESSION.MODULE records the MCP client, V$SESSION.ACTION records the calling LLM, and SQLcl creates a DBTOOLS$MCP_LOG table recording every interaction/SQL statement executed — useful for reviewing what was actually run against the live DB.

Division of responsibility with the KB server

  • db-kb (this repo's server/) — static schema/workflow knowledge, safe to share broadly, no DB connection.

  • oracle-sqlcl — live queries against the real instance, needs a read-only DB account, keep access scoped to people authorized to query production/test data.

Adding a new workflow doc

Copy the structure in kb/workflows/approval-chain-workflow.md:

  • List common user intents mapped to concrete table/column changes.

  • List invariants that must hold after any change.

  • Link to relevant schema docs and reasoning patterns with [[slug]] (informal — for human navigation; the tools don't resolve these automatically yet).

Available Tools

10 tools
get_contextGTech Networks DB: get oriented before doing anything elseA

[GTech / Hexagon HxGN NetWorks Core (G/Technology) database only] ALWAYS call this first, but ONLY if the user's request concerns the GTech / Hexagon HxGN NetWorks Core (G/Technology) database — its G3E_* schema, feature/component model, workflows, legends, styles, or placement configurations. If it's not clear whether the request relates to this specific system (as opposed to some other database, application, or MCP server you have access to), ASK THE USER to confirm before calling this or any other tool from this server — do not assume. Once confirmed relevant, this returns the KB's purpose, hard rules (read-only/advisory, never fabricate, always propose not execute), and an inventory of what's documented, so you know what's available before searching for anything specific.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations, the description fully discloses behavioral expectations: read-only/advisory rules, never fabricate, propose not execute. It also describes the return structure (purpose, rules, inventory).

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?

The description is somewhat verbose but front-loads critical information. Every sentence contributes value; minor reduction possible.

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

Completeness5/5

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

For a parameterless tool with no output schema, the description fully covers purpose, usage rules, and return content. It is complete.

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

Parameters4/5

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

No parameters exist, so the description need not add param details. Baseline 4 is appropriate for zero-parameter tools.

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 clearly identifies the tool as an entry point for the GTech/Hexagon database, specifying the exact system and when to use it. It distinguishes itself from sibling tools by being the mandatory first call.

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

Usage Guidelines5/5

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

Explicitly states when to call (first, if database relevant) and when not to (if unclear, ask user). Provides clear context for decision-making.

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

get_context_for_queryGTech Networks DB: get complete context bundle for one user queryA

[GTech / Hexagon HxGN NetWorks Core (G/Technology) database only] Only call this for requests already confirmed to concern the GTech/NetWorks Core database. This is a one-shot context pack for an agent: it resolves relevant tables and returns the required docs (schema/workflow/relationships/patterns/glossary) plus hard rules and execution order so the next reasoning step has all required context.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax tables to recommend, default 8
queryYesThe user's request, in their own words
include_full_docsNoIf true (default), include full docs; if false, include summaries only

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It discloses that the tool resolves tables and returns docs plus rules, but does not mention behavioral traits such as potential latency, side effects, or whether it is a pure read operation. Some guidance is present but not comprehensive.

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 paragraph, front-loaded with the usage constraint. Every sentence adds value: it specifies database context, purpose as one-shot context pack, and what it returns. No redundant information.

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

Completeness4/5

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

Given the tool's complexity and the sibling tools, the description is fairly complete. It explains what it does, when to use, and what it returns. However, there is no output schema, and the description could be slightly more explicit about the structure of the returned context pack.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents all parameters. The description does not add significant meaning beyond the schema, e.g., it mentions resolving tables but does not explain how parameters like 'limit' or 'include_full_docs' affect the result.

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 clearly states the specific verb 'get context bundle' and resource 'one-shot context pack for an agent', and distinguishes from siblings like 'get_table_schema' or 'resolve_tables_for_query' by indicating it returns a comprehensive set of docs including schema, workflows, and rules.

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?

The description explicitly states when to use: 'Only call this for requests already confirmed to concern the GTech/NetWorks Core database'. It implies it is a preparatory step, but does not explicitly state when not to use or compare directly to alternatives.

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

get_glossary_termGTech Networks DB: get glossary termA

[GTech / Hexagon HxGN NetWorks Core (G/Technology) database only] Look up a GTech/NetWorks Core domain term's definition (e.g. Feature, Component, Legend).

ParametersJSON Schema
NameRequiredDescriptionDefault
termYes

TDQS

A3.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It only states that it looks up a term definition but does not disclose any behavioral traits like error handling (e.g., if term not found), authentication requirements, or whether it has side effects. This is minimal for a tool with no 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?

The description is a single sentence with a database-specific preamble, front-loading the restriction. No unnecessary words; every part earns its place.

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?

For a simple one-parameter lookup tool, the description covers the purpose and parameter meaning. However, it does not specify the return format (e.g., definition as string, object with fields) or behavior for missing terms. Given no output schema and no annotations, it is minimally adequate but has gaps.

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

Parameters4/5

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

The schema gives no description for the 'term' parameter, but the tool description adds meaning by specifying it is a GTech/NetWorks Core domain term and provides examples (e.g., Feature, Component, Legend). This helps the agent understand what kind of string to provide.

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 clearly states the tool looks up a glossary term's definition in a specific database (GTech/Hexagon). It provides examples of terms (Feature, Component, Legend), making the purpose precise and differentiating it from sibling tools that deal with contexts, relationships, or 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?

The description indicates the tool is for looking up definitions of domain terms in a specific database, implying use cases where such definitions are needed. It does not explicitly state when not to use it or mention alternatives, but the sibling context suggests it's specialized for this purpose.

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

get_reasoning_patternGTech Networks DB: get reasoning/insertion patternA

[GTech / Hexagon HxGN NetWorks Core (G/Technology) database only] Get a documented reasoning recipe for a class of change in the GTech/NetWorks Core schema — e.g. how to insert a new row so it renders correctly, how to reorder/renumber ordinal columns, how to pick which column value to set for a given user intent.

ParametersJSON Schema
NameRequiredDescriptionDefault
topicYesTopic or slug, e.g. 'reordering', 'new-approval-step'

TDQS

A4.2/5.0
Behavior4/5

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

No annotations are provided, but the description clearly indicates a read-only fetch operation ('Get a documented reasoning recipe'). It does not mention any destructive side effects, authorization needs, or rate limits, but the nature of the tool is transparently a retrieval.

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, front-loaded sentence that states the scope, action, and purpose with examples. Every part adds value; no redundant or wasted words.

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

Completeness4/5

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

For a simple one-parameter tool with no output schema, the description adequately explains what the tool does and provides usage examples. It could mention the return format, but this is minor given the tool's clarity.

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

Parameters4/5

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

The input schema has 100% coverage for the single parameter 'topic', providing an example. The description adds value by giving additional concrete topic examples ('reordering', 'new-approval-step'), which helps the agent understand valid inputs beyond the schema's example.

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 specifies the tool fetches a reasoning recipe for database changes, scoped to GTech/Hexagon HxGN NetWorks Core, with concrete examples (e.g., inserting a row, reordering columns). This clearly distinguishes it from sibling tools like get_table_schema or get_glossary_term.

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?

The description implies usage by providing examples of when to use (e.g., 'how to insert a new row', 'how to reorder/renumber'), but does not explicitly state when not to use or provide alternative tools for other tasks. Usage context is implied rather than explicit.

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

get_relationshipsGTech Networks DB: get relationships for a tableA

[GTech / Hexagon HxGN NetWorks Core (G/Technology) database only] Get documented relationships (FK-enforced and logical/non-enforced) involving a GTech/NetWorks Core table.

ParametersJSON Schema
NameRequiredDescriptionDefault
tableNoIf omitted, returns the full relationship map

TDQS

A3.8/5.0
Behavior2/5

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

No annotations are provided, so the description bears full responsibility. It discloses it returns both FK-enforced and logical relationships, and the optional parameter behavior, but lacks details on auth, rate limits, error handling, or whether the operation is read-only, which leaves behavioral gaps.

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 two sentences, front-loading scope and returning behavior. No redundant phrases; every word adds value.

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

Completeness4/5

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

For a simple tool with one optional parameter and no output schema, the description adequately covers what it returns (both FK and logical relationships) and the behavior when the parameter is omitted. It could mention that the operation is read-only, but overall it is sufficient.

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

Parameters4/5

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

Schema coverage is 100% with one parameter. The description adds valuable semantics beyond the schema: it explains that omitting the parameter returns the full relationship map, which is not captured in the schema's generic 'description'.

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 clearly specifies the tool's purpose: gets documented relationships (FK-enforced and logical) for a GTech/NetWorks Core table. It uses a specific verb ('get') and resource ('relationships for a table'), and distinguishes from sibling tools like get_table_schema.

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?

The description limits usage to GTech/NetWorks Core database only, providing clear context. However, it does not explicitly state when not to use this tool or suggest alternatives (e.g., use get_table_schema for column metadata).

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

get_table_schemaGTech Networks DB: get table schema docA

[GTech / Hexagon HxGN NetWorks Core (G/Technology) database only] Get the full schema documentation for a specific table in the GTech/NetWorks Core (G3E_*) schema: columns, types, PK/FK, and business-meaning notes (e.g. which column drives display order). Do not use for tables belonging to any other database/system.

ParametersJSON Schema
NameRequiredDescriptionDefault
tableYesTable name, case-insensitive

TDQS

A4.2/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. Describes what the tool returns (columns, types, PK/FK, business-meaning notes). Does not state authorization needs or rate limits, but the expected read-only behavior is implied by 'Get' and scope. Could mention if it requires database connectivity, but overall transparent.

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?

Single well-structured sentence with database restriction front-loaded in brackets. No wasted words, concise yet informative.

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

Completeness4/5

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

For a simple tool with 1 parameter and no output schema, the description covers purpose, return content, and usage restriction. Could be slightly improved by noting it only works for existing tables, but current text is adequate.

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

Parameters3/5

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

Schema coverage is 100% with one parameter 'table' described as case-insensitive. Description adds minimal new semantic meaning beyond schema, only reiterating 'specific table' and scope. Baseline 3 is appropriate; description does not significantly compensate.

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?

Description clearly states verb (get), resource (full schema documentation for a specific table), and scope (GTech/NetWorks Core G3E_* schema). Explicitly distinguishes from other systems by stating 'Do not use for tables belonging to any other database/system.' No sibling differentiation needed beyond that.

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?

Explicitly says 'Do not use for tables belonging to any other database/system,' which provides a clear when-not-to-use guideline. Implies usage for GTech tables needing schema docs, but does not explicitly name alternative tools like get_relationships or resolve_tables_for_query for related tasks.

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

get_workflowGTech Networks DB: get workflow docB

[GTech / Hexagon HxGN NetWorks Core (G/Technology) database only] Get the documentation for a specific GTech/NetWorks Core workflow: purpose, tables/rows touched, insertion patterns, and invariants.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesWorkflow name or slug, case-insensitive, partial match allowed

TDQS

B3.4/5.0
Behavior3/5

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

Describes the tool's function and output, but does not explicitly mention that it is read-only or any other behavioral traits (no annotations are provided to compensate).

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?

Single sentence, front-loaded with the database restriction, no filler words.

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

Completeness4/5

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

Sufficient for a simple read tool with one parameter; could mention output format or error handling, but not necessary.

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

Parameters3/5

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

Schema coverage is 100% with a detailed parameter description in the schema; the tool description adds no further semantics beyond what the schema provides.

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?

Clearly states it gets workflow documentation listing specific content (purpose, tables/rows, etc.), but does not explicitly differentiate from sibling tools like get_context or get_table_schema.

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

Usage Guidelines2/5

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

Indicates the tool is database-specific (GTech/Hexagon), but provides no guidance on when to use this versus alternatives or when not to use it.

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

list_kb_docsGTech Networks DB: list knowledge base documentsA

[GTech / Hexagon HxGN NetWorks Core (G/Technology) database only] List all documents in the GTech/NetWorks Core knowledge base, optionally filtered by category (schema, relationships, workflows, patterns, glossary). Not relevant to any other database or system.

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNo

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations provided, the description must fully disclose behavioral traits. It implies a read-only operation ('List'), but does not mention any potential side effects, authentication requirements, rate limits, pagination, or ordering. The description is minimal but adequate for a simple list tool.

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?

The description is a single, efficient sentence with a parenthetical list of categories. It is front-loaded with the database scope. No extraneous words. Slightly lacks structure but is concise.

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

Completeness4/5

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

Given the tool has one optional parameter, no output schema, and a set of sibling tools, the description covers the essential: database specificity and filtering. It could mention the output format (e.g., what fields are returned) but is otherwise complete for a list operation.

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

Parameters3/5

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

Schema description coverage is 0%, so the description adds meaning beyond the schema by listing possible category values (schema, relationships, workflows, patterns, glossary). However, it does not specify if these are the only valid values, case sensitivity, or format constraints. It partially compensates for missing schema descriptions.

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 clearly states the verb (List), resource (documents in GTech/NetWorks Core knowledge base), and scope (optionally filtered by category). It also specifies the database context, distinguishing it from sibling tools that operate on other databases or provide single-item retrieval.

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?

The description provides clear context about the applicable database (GTech/NetWorks Core) and states it is not relevant to other systems. It lists the filter categories, but does not explicitly compare with siblings like search_kb or get_context for scenarios where a filtered list vs search is appropriate. Still, it gives a reasonable usage hint.

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

resolve_tables_for_queryGTech Networks DB: resolve which tables/docs are relevant to a user queryA

[GTech / Hexagon HxGN NetWorks Core (G/Technology) database only] Only call this for requests already confirmed to concern the GTech/NetWorks Core database (see get_context). Given a natural-language user request (e.g. 'add a new approval step', 'change the order components display in'), returns a ranked list of relevant tables with reasons, plus matching workflow/pattern/relationship docs and concrete next steps. Call this after get_context and before fetching any specific table schema — it tells you WHICH schema docs to fetch instead of guessing.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax tables to recommend, default 8
queryYesThe user's request, in their own words

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It describes output behavior but does not explicitly state it is read-only or non-destructive, nor mention any side effects, authorization needs, or rate limits. Adequate but not fully transparent.

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?

Concise and well-structured; front-loads the domain restriction in brackets. Each of the three sentences adds value: scope, prerequisite, and output. No redundancy or fluff.

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

Completeness4/5

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

Given no output schema, the description compensates by describing return content (ranked list with reasons, workflow/pattern/relationship docs, concrete next steps). Covers prerequisites and workflow position. Lack of response format details prevents a 5.

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

Parameters3/5

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

Schema coverage is 100% with both parameters (query, limit) already described. The tool description does not add significant new semantics beyond restating schema info. Baseline 3 is appropriate.

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 clearly states the tool resolves tables/docs relevant to a user query for the GTech/NetWorks Core database, using specific verbs ('returns a ranked list of relevant tables with reasons...'). It distinguishes from siblings like get_table_schema and get_context by specifying its position in the workflow.

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

Usage Guidelines5/5

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

Explicitly says when to call ('Only call this for requests already confirmed to concern the GTech/NetWorks Core database'), provides sequencing ('Call this after get_context and before fetching any specific table schema'), and explains its value ('tells you WHICH schema docs to fetch instead of guessing').

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

search_kbGTech Networks DB: search the knowledge baseA

[GTech / Hexagon HxGN NetWorks Core (G/Technology) database only] Full-text search across all GTech/NetWorks Core knowledge base docs (schema, relationships, workflows, patterns, glossary). Only useful for requests already confirmed to concern this specific database — irrelevant to other systems.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryYes

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses the scope (specific database) and basic search behavior, but lacks details on edge cases (e.g., empty results) or any 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.

Conciseness5/5

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

The description is two sentences long, front-loaded with the critical scope, and contains no filler. Every sentence adds value without redundancy.

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

Completeness4/5

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

For a 2-parameter search tool with no output schema, the description adequately covers purpose and scope. It could mention the return format or result type to improve completeness, but overall it is sufficient for an agent to understand the tool's role.

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%, but the description does not explain the purpose or constraints of the 'query' and 'limit' parameters beyond what is in the schema. The user must infer how to format queries or how limit affects results.

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 specifies a clear verb ('full-text search') and resource ('GTech/NetWorks Core knowledge base docs'), and explicitly limits the scope to a specific database, distinguishing it from sibling tools which target narrower aspects.

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?

The description states that the tool is only useful for requests confirmed to concern the GTech database, providing clear context. However, it does not explicitly list when to avoid using it or suggest alternative sibling tools.

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. 10 tool updatesv0.1.0
    • First observedget_context
    • First observedget_context_for_query
    • First observedget_glossary_term
    • First observedget_reasoning_pattern
    • First observedget_relationships
    • First observedget_table_schema
    • First observedget_workflow
    • First observedlist_kb_docs
    • First observedresolve_tables_for_query
    • First observedsearch_kb

TDQS

A4.2/5.0

Scored across 10 tools

Disambiguation5/5

Each tool has a clearly distinct purpose, from overall context retrieval to specific schema, glossary, and workflow lookups. The detailed descriptions eliminate ambiguity.

Naming Consistency5/5

All tool names follow a consistent verb_noun snake_case pattern (e.g., get_glossary_term, list_kb_docs), making them predictable and easy to use.

Tool Count5/5

10 tools is well-scoped for a knowledge base query server. Each tool serves a specific function without overlapping or being superfluous.

Completeness5/5

The tool set covers all necessary aspects of interacting with the KB: context, schema, relationships, workflows, patterns, glossary, and search. No obvious gaps for its read-only purpose.

Maintenance

ActivityStale
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    B
    maintenance
    A read-only MCP server that exposes dbt project artifacts and data quality result tables (BigQuery/Postgres) to LLM clients, enabling deep introspection, run-history analysis, source freshness, test coverage, and lineage walks.
    27
    35 npm
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Read-only MCP server that lets coding AI agents inspect Oracle Database schema through live metadata.
    -
  • A
    license
    A
    quality
    C
    maintenance
    A read-only MCP server that provides AI coding tools with database schema structure (tables, columns, keys, relationships) without exposing row data.
    3
    Apache 2.0
  • A
    license
    B
    quality
    C
    maintenance
    Read-only MCP server for exploring and analyzing SQL Server objects (tables, views, triggers, stored procedures) from Claude Code.
    8
    628 npm
    MIT