Skip to main content
Glama

๐Ÿ› ๏ธ Solution Engineer Notion MCP Assistant

์†”๋ฃจ์…˜ ์—”์ง€๋‹ˆ์–ด(SE)์˜ ์—…๋ฌด ๊ธฐ๋ก, ์œ ์ง€๋ณด์ˆ˜ ์‚ฌ์ดํŠธ ๊ด€๋ฆฌ, ์ •๊ธฐ์ ๊ฒ€ ์ผ์ • ๋ฐ ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ… ๋‚ด์—ญ์„ ์ž์—ฐ์–ด ๋Œ€ํ™”๋กœ ๋…ธ์…˜(Notion)์— ์ž๋™ ์ ์žฌ ๋ฐ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•˜๋Š” MCP(Model Context Protocol) ์„œ๋ฒ„์ž…๋‹ˆ๋‹ค.


๐Ÿ“Œ ์ฃผ์š” ๊ธฐ๋Šฅ

  • ๐Ÿข ์œ ์ง€๋ณด์ˆ˜ ์‚ฌ์ดํŠธ ๊ด€๋ฆฌ (add_maintenance_site)

    • ๊ณ ๊ฐ์‚ฌ/์‚ฌ์ดํŠธ ์ •๋ณด, ๋‹ด๋‹น์ž ์—ฐ๋ฝ์ฒ˜, ์ ๊ฒ€ ์ฃผ๊ธฐ, ๋ฐฉ๋ฌธ ์œ„์น˜, ์‹œ์Šคํ…œ ํ™˜๊ฒฝ์„ ๋…ธ์…˜ DB์— ๋“ฑ๋ก ๋ฐ ์Šค๋งˆํŠธ ๊ฐฑ์‹ (Upsert)

  • ๐Ÿ“‹ ์—…๋ฌด ์ผ์ง€ ๋“ฑ๋ก (add_work_log)

    • ์˜จ์‚ฌ์ดํŠธ/์›๊ฒฉ ์ •๊ธฐ์ ๊ฒ€ ์ˆ˜ํ–‰ ์ผ์ง€, ์ฃผ์š” ์ž‘์—… ํ•ญ๋ชฉ ๋ฐ ๊ณ ๊ฐ์‚ฌ ์š”์ฒญ์‚ฌํ•ญ ์ž๋™ ํ…œํ”Œ๋ฆฟํ™”

  • ๐Ÿšจ ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ… ์‚ฌ๋ก€ ์ ์žฌ (add_troubleshooting)

    • ์žฅ์•  ํ˜„์ƒ, ์—๋Ÿฌ ๋กœ๊ทธ, ์›์ธ ๋ถ„์„, ์กฐ์น˜ ๋‚ด์šฉ, ์žฌ๋ฐœ ๋ฐฉ์ง€์ฑ…์„ ๊ตฌ์กฐํ™”ํ•˜์—ฌ ์ ์žฌ

  • ๐Ÿ” ์ด๋ ฅ ๋ฐ ์‚ฌ๋ก€ ๊ฒ€์ƒ‰ (list_maintenance_sites, list_work_logs, search_troubleshooting)

    • ๊ณผ๊ฑฐ ์ ๊ฒ€ ์ด๋ ฅ์ด๋‚˜ ์—๋Ÿฌ ํ‚ค์›Œ๋“œ(์˜ˆ: SSL, Token, DB Timeout)๋ฅผ ์ฆ‰์‹œ ๊ฒ€์ƒ‰


Related MCP server: Notion MCP Server

๐Ÿš€ ๋น ๋ฅธ ์‹œ์ž‘ (Quick Start)

1. ์‚ฌ์ „ ์š”๊ตฌ์‚ฌํ•ญ

  • Node.js: v18 ์ด์ƒ ๊ถŒ์žฅ

  • Notion Integration Token: Notion Developers์—์„œ ๋ฐœ๊ธ‰

2. ์„ค์น˜ ๋ฐ ๋นŒ๋“œ

# ์˜์กด์„ฑ ์„ค์น˜
npm install

# ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ •
cp .env.example .env
# .env ํŒŒ์ผ์„ ์—ด์–ด NOTION_API_KEY ๋ฐ 3๊ฐœ DB_ID ์ž…๋ ฅ

# TypeScript ๋นŒ๋“œ
npm run build

# ๋…ธ์…˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๋™ ํ™•์ธ
npm run inspect

3. Antigravity / Gemini CLI ์‹คํ–‰ (์˜จ๋””๋งจ๋“œ)

npm run se-agent

โš™๏ธ MCP ๋“ฑ๋ก ์„ค์ • (JSON)

Antigravity, Claude Desktop, ๋˜๋Š” ์ง€์›๋˜๋Š” AI ์—์ด์ „ํŠธ์— ๋“ฑ๋กํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

{
  "mcpServers": {
    "se-notion": {
      "command": "node",
      "args": ["<ํ”„๋กœ์ ํŠธ๊ฒฝ๋กœ>/dist/index.js"],
      "env": {
        "NOTION_API_KEY": "ntn_...",
        "MAINTENANCE_DB_ID": "3cd...",
        "WORKLOG_DB_ID": "3d9...",
        "TROUBLESHOOTING_DB_ID": "3d9..."
      }
    }
  }
}

๐Ÿ“š ๊ด€๋ จ ๋ฌธ์„œ

Available Tools

6 tools
add_maintenance_siteB

์œ ์ง€๋ณด์ˆ˜ ์‚ฌ์ดํŠธ(๊ณ ๊ฐ์‚ฌ) ์ •๋ณด๋ฅผ ๋“ฑ๋กํ•˜๊ฑฐ๋‚˜ ๊ธฐ์กด ์‚ฌ์ดํŠธ ์ •๋ณด๋ฅผ ๊ฐฑ์‹ ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ์กด ๋™์ผ ์‚ฌ์ดํŠธ๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ ๋ฎ์–ด์“ฐ์ง€ ์•Š๊ณ  ๊ธฐ์กด ํŽ˜์ด์ง€๋ฅผ ์Šค๋งˆํŠธ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.

ParametersJSON Schema
NameRequiredDescriptionDefault
notesNo์ถ”๊ฐ€ ํŠน์ด์‚ฌํ•ญ (์‚ฌ์šฉ์ž๊ฐ€ ๋ช…์‹œํ•œ ๊ฒฝ์šฐ๋งŒ ์ž…๋ ฅ)
locationNo๋ฐฉ๋ฌธ ์œ„์น˜ / ์ฃผ์†Œ
site_nameYes๊ณ ๊ฐ์‚ฌ ๋˜๋Š” ์‚ฌ์ดํŠธ๋ช… (์˜ˆ: ์กฐ๋‹ฌ์ฒญ, ๋„๋กœ๊ณต์‚ฌ ITS)
system_infoNo์‹œ์Šคํ…œ ํ™˜๊ฒฝ ์ •๋ณด (์‚ฌ์šฉ์ž๊ฐ€ ๋ช…์‹œํ•œ ๊ฒฝ์šฐ๋งŒ ์ž…๋ ฅ)
manager_nameNo๋‹ด๋‹น์ž ์ด๋ฆ„ ๋ฐ ์ง๊ธ‰ (์˜ˆ: ์ •์˜์€ ๋Œ€๋ฆฌ)
manager_emailNo๋‹ด๋‹น์ž ์ด๋ฉ”์ผ
manager_phoneNo๋‹ด๋‹น์ž ์—ฐ๋ฝ์ฒ˜
inspection_typeNo์ ๊ฒ€ ๋ฐฉ์‹ (๋ฐฉ๋ฌธ, ์›๊ฒฉ ๋“ฑ)
inspection_cycleNo์ ๊ฒ€ ์ฃผ๊ธฐ (์˜ˆ: ๋ถ„๊ธฐ ๋ฐฉ๋ฌธ(3,6,9,12), ์›”๊ฐ„ ์›๊ฒฉ ๋“ฑ)
next_inspection_dateNo๋‹ค์Œ ์˜ˆ์ • ์ ๊ฒ€์ผ (YYYY-MM-DD)

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations, the description carries full behavioral burden. It usefully discloses the non-destructive upsert behavior ('does not overwrite, smart-updates the existing page'), which is genuinely important for a write tool. However, it doesn't clarify what 'smart update' actually merges, what happens to omitted fields, permission requirements, or return behavior.

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?

Two tightly written sentences that front-load the core purpose before the upsert caveat. No filler, though it is terse enough that it leaves behavioral questions open rather than earning a 5.

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 10-parameter write tool with no annotations and no output schema, the description is adequate but thin. It explains the core upsert semantics but omits what a successful call returns and how partial updates are resolved, which matters for an agent deciding what to pass.

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 100% with all 10 parameters documented in the schema, including Korean-language field hints and format examples. The description adds no parameter-level detail beyond this, so baseline 3 applies.

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

Purpose4/5

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

The description names a specific resource (maintenance site / client company) and states both operations: registration and update. It implicitly distinguishes itself from list_maintenance_sites by being the write-side counterpart, though it never names a sibling explicitly.

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?

There is no explicit when-to-use guidance, no prerequisites, and no routing to alternatives (e.g., when to use list_maintenance_sites to check first). The upsert behavior is described but the agent is not told under what circumstances to reach for this tool versus the work-log or troubleshooting siblings.

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

add_troubleshootingC

์—๋Ÿฌ ๋ฐ ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ… ์กฐ์น˜ ๋‚ด์—ญ์„ ๋…ธ์…˜์— ์ ์žฌํ•ฉ๋‹ˆ๋‹ค.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ… ์ œ๋ชฉ
symptomYes๋ฐœ์ƒ ํ˜„์ƒ
error_logNo์—๋Ÿฌ ๋กœ๊ทธ ๋‚ด์šฉ
site_nameNo๋ฐœ์ƒ ์‚ฌ์ดํŠธ๋ช…
preventionNo์žฌ๋ฐœ ๋ฐฉ์ง€ ๋Œ€์ฑ…
resolutionYesํ•ด๊ฒฐ ๋ฐ ์กฐ์น˜ ๋‚ด์šฉ
root_causeNo์›์ธ ๋ถ„์„

TDQS

C2.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 the full burden. It reveals the write target (Notion) but says nothing about required Notion permissions, whether an entry is created as a new page, whether duplicates are possible, whether the write is reversible, or what happens on partial failure โ€” all significant for a mutation tool with zero annotation coverage.

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

Conciseness4/5

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

A single front-loaded sentence that names the action, the content type, and the destination with zero filler. It is efficiently sized, though the extreme brevity is partly what leaves the behavioral gaps noted elsewhere.

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

Completeness2/5

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

For a 7-parameter mutation tool with no annotations and no output schema, the description is too thin: it does not confirm which fields are mandatory, does not describe the created record or any returned identifier, and gives no failure or retry behavior. Only the destination is disclosed.

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 100% and every one of the 7 fields carries its own Korean description, so the schema does the heavy lifting. The description adds no field-level meaning, no format hints for error_log, and no indication that title/symptom/resolution are the three required fields. Baseline 3 applies when the schema fully documents parameters.

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

Purpose4/5

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

States a specific verb (์ ์žฌํ•ฉ๋‹ˆ๋‹ค, 'loads/inserts') plus a clearly bounded resource (์—๋Ÿฌ ๋ฐ ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ… ์กฐ์น˜ ๋‚ด์—ญ) and the destination system (๋…ธ์…˜). This separates it from read-side siblings like search_troubleshooting and from the adjacent add_work_log, though it never names those siblings explicitly.

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?

There is no guidance on when to use this tool versus search_troubleshooting, add_work_log, or list_work_logs, and no prerequisites or timing conditions are stated. The agent must infer from the name alone that this is the write path for troubleshooting records.

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

add_work_logB

์—…๋ฌด ์ผ์ง€ ๋ฐ ์ •๊ธฐ์ ๊ฒ€ ์ˆ˜ํ–‰ ๊ธฐ๋ก์„ ๋…ธ์…˜ ์—…๋ฌด์ผ์ง€ DB์— ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes์—…๋ฌด ์ œ๋ชฉ
summaryNo์ž‘์—… ์š”์•ฝ
site_nameNo๋Œ€์ƒ ์‚ฌ์ดํŠธ/๊ณ ๊ฐ์‚ฌ๋ช…
work_dateNo์ž‘์—… ์ผ์ž (YYYY-MM-DD)
work_typeNo์ž‘์—… ๊ตฌ๋ถ„ (์ •๊ธฐ์ ๊ฒ€, ๊ธด๊ธ‰์ง€์›, ํšŒ์˜ ๋“ฑ)
tasks_performedNo์ˆ˜ํ–‰ํ•œ ์ž‘์—… ํ•ญ๋ชฉ ๋ฆฌ์ŠคํŠธ
customer_requestsNo๊ณ ๊ฐ์‚ฌ ์š”์ฒญ/ํŠน์ด์‚ฌํ•ญ

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden. It discloses the write target (Notion work-log DB), but says nothing about whether the write is idempotent, what happens to duplicate dates/titles, whether it fails on missing fields, or what the caller gets back.

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

Conciseness5/5

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

A single sentence that front-loads the action and destination with zero filler. Nothing in it is wasted.

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

Completeness3/5

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

For a 7-parameter mutation tool with no annotations and no output schema, the description covers destination and record type but omits any note on required vs optional fields, error behavior, or result. The rich schema compensates for parameters, leaving the description minimally 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 description coverage is 100%, so every one of the 7 parameters is already documented in the schema, making 3 the baseline. The description adds no parameter-level meaning beyond naming the record types that can be logged.

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

Purpose4/5

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

The description states a specific verb (๋“ฑ๋ก/register) and resource (์—…๋ฌด ์ผ์ง€ ๋ฐ ์ •๊ธฐ์ ๊ฒ€ ์ˆ˜ํ–‰ ๊ธฐ๋ก), plus the destination system (๋…ธ์…˜ ์—…๋ฌด์ผ์ง€ DB). It is clear enough to separate from add_maintenance_site and add_troubleshooting, though it does not explicitly name those siblings.

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?

There is no guidance on when to use this tool versus add_troubleshooting, add_maintenance_site, or list_work_logs. Inclusion criteria are only implied by the tool name and the resource nouns in the sentence.

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

list_maintenance_sitesB

๋“ฑ๋ก๋œ ์œ ์ง€๋ณด์ˆ˜ ์‚ฌ์ดํŠธ ๋ชฉ๋ก์„ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค.

ParametersJSON Schema
NameRequiredDescriptionDefault
site_nameNo๊ฒ€์ƒ‰ํ•  ์‚ฌ์ดํŠธ๋ช… (์„ ํƒ)

TDQS

B3.1/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 the full behavioral burden. The verb ์กฐํšŒ implies a read, but the description says nothing about pagination, result size, ordering, or empty-result behavior for a list operation that could return many sites.

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

Conciseness5/5

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

A single, front-loaded sentence with no filler. Every word contributes to the stated purpose without padding.

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 read tool with full schema coverage and no output schema, the description is minimally sufficient. It omits any mention of the filtering parameter or result characteristics, leaving a noticeable gap even at this low complexity.

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 100% and the single optional site_name parameter is already documented in the schema. The description adds no filtering, matching, or format semantics beyond the structured field, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb (์กฐํšŒ) and resource (์œ ์ง€๋ณด์ˆ˜ ์‚ฌ์ดํŠธ ๋ชฉ๋ก), making it immediately distinguishable from the sibling add_maintenance_site. It is clear but does not explicitly name the alternative tool or scope of what is returned.

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?

There is no guidance on when to use this versus the sibling add_work_log/list_work_logs tools, nor any note that the optional site_name filter narrows results. The only usage signal is the implicit 'list' semantics of the name.

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

list_work_logsC

์—…๋ฌด ์ผ์ง€ ๋ชฉ๋ก์„ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNo๊ฒ€์ƒ‰์–ด (์„ ํƒ)

TDQS

C2.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 bears the full behavioral burden, yet it only implies a read via '์กฐํšŒ' and says nothing about pagination, result limits, sort order, or default scope. For a list tool with zero structured safety metadata, this is a significant disclosure gap.

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

Conciseness3/5

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

One short front-loaded sentence with no filler, but it is minimal to the point of conveying almost nothing actionable. It is concise without being informative.

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 zero-required-parameter list tool with no output schema, the essentials are technically covered by the name and schema. Missing pagination, ordering, and default-scope information keeps it at merely 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 description coverage is 100% and the single optional 'query' parameter is already documented as a search term, so the baseline is 3. The description adds no format, matching-rule, or empty-string semantics beyond the schema.

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

Purpose4/5

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

The description states a specific verb (์กฐํšŒํ•ฉ๋‹ˆ๋‹ค / retrieve) and resource (์—…๋ฌด ์ผ์ง€ ๋ชฉ๋ก / work log list), so an agent can tell it apart from mutation siblings like add_work_log. It does not, however, contrast itself with the other list-style sibling (list_maintenance_sites) or clarify scope beyond the resource noun.

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?

There is no guidance on when to use this tool versus alternatives such as add_work_log or search_troubleshooting, nor any mention of the optional keyword filter or default ordering/paging. The agent must infer usage entirely from the name.

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

search_troubleshootingC

ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ… ํ•ด๊ฒฐ ์‚ฌ๋ก€๋ฅผ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes๊ฒ€์ƒ‰ ํ‚ค์›Œ๋“œ

TDQS

C2.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 the full behavioral burden, yet it only says a search happens. It does not disclose that the operation is read-only, how results are ordered or limited, whether matching is exact or fuzzy, or what the result set looks like.

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

Conciseness4/5

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

A single short sentence with no filler and the key action front-loaded. It is efficient, though its brevity borders on under-specification rather than tight conciseness.

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 read tool with no output schema, the description is minimally adequate. It omits any note about result format, matching behavior, or empty-result handling, which leaves real gaps even for a tool this simple.

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 100% (the single query parameter is documented as ๊ฒ€์ƒ‰ ํ‚ค์›Œ๋“œ), so the schema already carries the parameter meaning. The description adds no keyword syntax, matching behavior, or format guidance, making the baseline 3 appropriate.

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

Purpose4/5

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

The description gives a specific verb (๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค) and a scoped resource (ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ… ํ•ด๊ฒฐ ์‚ฌ๋ก€), which is slightly more specific than the tool name alone because it clarifies that resolution cases are what is searched. It does not, however, distinguish this from siblings like list_work_logs or add_troubleshooting, 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.

Usage Guidelines2/5

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 the sibling list/add tools, nor any stated preconditions or exclusions. The agent must infer usage entirely from the name.

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. 6 tool updatesv1.0.0
    • First observedadd_maintenance_site
    • First observedadd_troubleshooting
    • First observedadd_work_log
    • First observedlist_maintenance_sites
    • First observedlist_work_logs
    • First observedsearch_troubleshooting

TDQS

B3.3/5.0

Scored across 6 tools

Disambiguation4/5

Each tool targets a distinct resource (maintenance sites, work logs, troubleshooting) with a clear action (add/list/search), so selection is generally unambiguous. Minor overlap exists between add_work_log and add_troubleshooting since a troubleshooting record could be seen as a work log, but the descriptions differentiate them adequately.

Naming Consistency5/5

All six tools follow a clean verb_noun pattern (add_, list_, search_ + resource), with no mixed conventions or vague verbs. The pattern is entirely predictable and readable.

Tool Count4/5

Six tools is well-scoped for a Notion-based maintenance tracking server covering three resource types. The set is slightly thin in that each resource gets only one or two operations, but every tool earns its place.

Completeness3/5

The surface covers create/list for sites and work logs and add/search for troubleshooting, plus site upsert. However, update and delete operations are absent for work logs and troubleshooting, and there is no single-item retrieval, leaving notable lifecycle gaps.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers