Skip to main content
Glama
tkrishnav31

igrid-sce-mcp-tool

by tkrishnav31

igrid-sce-mcp-tool v4 — 읽기 / 쓰기 / 관리

기존 iGrid-Prometheus REST API를 위한 Node.js/JavaScript MCP 통합 레이어입니다. iGrid 백엔드와 기존 8개 도구 분할은 변경되지 않았습니다. 이 버전은 MCP 도구 수준에서 SAP BTP XSUAA 역할 기반 권한 부여를 추가합니다.

권한 부여 모델

이제 프로젝트는 3개의 XSUAA 범위, 3개의 역할 템플릿, 3개의 사전 정의된 역할 컬렉션을 정의합니다.

역할 컬렉션

역할 템플릿

범위

허용된 MCP 작업

iGrid-MCP-Read

Read

$XSAPPNAME.read

GET/읽기 도구만

iGrid-MCP-Write

Write

$XSAPPNAME.write

POST/쓰기 도구만

iGrid-MCP-Admin

Admin

$XSAPPNAME.read, $XSAPPNAME.write, $XSAPPNAME.admin

8개 도구 모두

권한 부여는 다운스트림 iGrid API 요청 전에 공통 MCP toolHandler 내부에서 확인됩니다. 필요한 범위가 없는 사용자는 Forbidden: MCP 도구 오류를 받습니다.

Related MCP server: agent-sudo-mcp

정확히 8개의 MCP 도구

Bearer 그룹 — src/tools/bearer-tools.js

  1. igrid_list_domains → GET /api/hub/datasets → 읽기/관리

  2. igrid_get_template → GET /api/hub/template/:domain → 읽기/관리

  3. igrid_run_agent → POST /api/ai/run → 쓰기/관리

  4. igrid_propose_action → POST /api/ai/action/propose → 쓰기/관리

  5. igrid_decide_action → POST /api/ai/action/decide → 쓰기/관리

  6. igrid_metrics → GET /api/ai/metrics → 읽기/관리

x-api-key 그룹 — src/tools/api-key-tools.js

  1. igrid_ingest_csv → POST /api/ingest/:domain → 쓰기/관리

  2. igrid_export_csv → GET /api/export/:domain → 읽기/관리

igrid_propose_action은 요청된 권한 부여 규칙이 실제 HTTP 작업을 기반으로 하고 이 도구가 POST를 사용하기 때문에 의도적으로 쓰기로 분류됩니다.

igrid_health MCP 도구는 노출되지 않습니다. /healthz는 애플리케이션 상태 엔드포인트로만 유지됩니다.

기존 다운스트림 iGrid 동작은 변경되지 않음

  • 6개 도구는 계속 iGrid Bearer/서비스 세션을 사용합니다.

  • igrid_ingest_csv 및 igrid_export_csv는 계속 iGrid x-api-key 채널을 사용합니다.

  • Destination 또는 Connectivity 서비스는 도입되지 않습니다.

  • 자격 증명이나 비밀번호는 하드코딩되지 않습니다.

중요 파일

xs-security.json                 XSUAA scopes, role templates, role collections
src/auth/xsuaa.js               XSUAA authentication + OAuth metadata
src/auth/authorization.js       Read/Write/Admin authorization checks
src/context/auth-context.js     Per-request auth context propagation
src/tools/response.js           Common MCP tool-level enforcement
src/tools/bearer-tools.js       6 Bearer tools and permission mapping
src/tools/api-key-tools.js      2 x-api-key tools and permission mapping

환경

IGRID_BASE_URL=https://igrid-prometheus.azurewebsites.net
IGRID_API_KEY=<IGRID_API_KEY>
IGRID_BEARER_TOKEN=<optional pre-issued iGrid Bearer>
IGRID_SERVICE_EMAIL=<optional approved iGrid service email>
IGRID_SERVICE_PASSWORD=<optional approved iGrid service password>
IGRID_MFA_CODE=<optional MFA code>
IGRID_MFA_BODY_JSON=<approved MFA JSON body using {{code}}>
IGRID_REQUEST_TIMEOUT_MS=30000

MCP_TRANSPORT=http
MCP_HOST=0.0.0.0
MCP_PORT=8080
MCP_PATH=/mcp

# Local stdio / local HTTP test authorization only.
# Ignored for a hosted request authenticated through XSUAA.
MCP_LOCAL_ROLE=Admin
MCP_HTTP_AUTH_TOKEN=

Bearer 도구의 경우 사전 발급된 IGRID_BEARER_TOKEN이 선호됩니다. 없는 경우 기존 토큰 관리자는 필요한 MFA 구성이 제공될 때 승인된 iGrid 로그인/MFA 계약을 사용할 수 있습니다.

빌드

npm install
npm run check
npm run security:check
npm test
npx mbt build -t mta_archives

BTP 배포

cf login
cf target -o <ORG> -s <SPACE>
cf deploy mta_archives/igrid-sce-mcp-tool_4.0.0.mtar -f

배포 후 iGrid 비밀 설정:

cf set-env igrid-sce-mcp-tool IGRID_API_KEY '<IGRID_API_KEY>'
cf set-env igrid-sce-mcp-tool IGRID_BEARER_TOKEN '<IGRID_BEARER_TOKEN>'
cf restart igrid-sce-mcp-tool

또는 승인된 서비스 로그인/MFA 흐름 사용 시:

cf set-env igrid-sce-mcp-tool IGRID_SERVICE_EMAIL '<SERVICE_EMAIL>'
cf set-env igrid-sce-mcp-tool IGRID_SERVICE_PASSWORD '<SERVICE_PASSWORD>'
cf set-env igrid-sce-mcp-tool IGRID_MFA_BODY_JSON '<APPROVED_JSON_WITH_{{code}}>'
cf restart igrid-sce-mcp-tool

XSUAA 역할 할당

배포는 xs-security.json에서 XSUAA 서비스 인스턴스 igrid-sce-mcp-tool-xsuaa를 생성/업데이트합니다.

배포 후 SAP BTP 서브어카운트에서:

  1. 보안 → 역할 컬렉션을 엽니다.

  2. 사전 정의된 컬렉션 iGrid-MCP-Read, iGrid-MCP-Write, iGrid-MCP-Admin이 존재하는지 확인합니다.

  3. 읽기 전용 사용자에게 iGrid-MCP-Read를 할당합니다.

  4. 쓰기 전용 사용자에게 iGrid-MCP-Write를 할당합니다.

  5. GET 및 POST MCP 도구가 모두 필요한 사용자에게만 iGrid-MCP-Admin을 할당합니다.

  6. MCP 클라이언트를 재인증하여 새 토큰에 할당된 범위가 포함되도록 합니다.

사용자가 읽기만 있는 경우 POST 도구는 MCP 계층에서 실패합니다. 사용자가 쓰기만 있는 경우 GET 도구는 실패합니다. 관리자는 8개 도구를 모두 호출할 수 있습니다.

OAuth / Claude 원격 MCP

배포된 엔드포인트 사용:

https://<BTP_ROUTE>/mcp

OAuth 검색 메타데이터는 이제 XSUAA read, write, admin 범위를 광고합니다. 사용자별 역할 적용을 위해 일반적으로 인증 코드인 사용자 토큰을 생성하는 OAuth 흐름을 사용하여 사용자의 BTP 역할 컬렉션이 토큰에 표시되도록 합니다.

서비스 키는 여전히 XSUAA OAuth 클라이언트 자격 증명을 제공할 수 있지만 client_credentials 토큰은 기술 클라이언트 ID이며 사람 사용자의 역할 컬렉션을 상속받은 것으로 취급해서는 안 됩니다.

로컬 stdio

로컬 stdio에는 BTP 사용자 JWT가 없으므로 역할 동작은 MCP_LOCAL_ROLE로 시뮬레이션됩니다. 기본값은 이전 로컬 동작을 유지하기 위해 Admin입니다.

읽기 전용 로컬 테스트:

MCP_LOCAL_ROLE=Read npm run start:stdio

쓰기 전용 로컬 테스트:

MCP_LOCAL_ROLE=Write npm run start:stdio

전체 로컬 테스트:

MCP_LOCAL_ROLE=Admin npm run start:stdio

Claude Desktop/Code 예시:

{
  "mcpServers": {
    "igrid-sce-mcp-tool": {
      "command": "node",
      "args": ["/ABSOLUTE/PATH/igrid-sce-mcp-tool/src/server.js"],
      "env": {
        "MCP_TRANSPORT": "stdio",
        "MCP_LOCAL_ROLE": "Read",
        "IGRID_BASE_URL": "https://igrid-prometheus.azurewebsites.net",
        "IGRID_API_KEY": "<IGRID_API_KEY>",
        "IGRID_BEARER_TOKEN": "<IGRID_BEARER_TOKEN>"
      }
    }
  }
}

역할 승인 테스트

세 명의 사용자(또는 세 개의 사용자-역할 할당)를 사용하고 각 할당 후 새 토큰을 획득합니다.

읽기 사용자

예상 성공:

igrid_list_domains
igrid_get_template
igrid_metrics
igrid_export_csv

예상 Forbidden::

igrid_run_agent
igrid_propose_action
igrid_decide_action
igrid_ingest_csv

쓰기 사용자

예상 성공:

igrid_run_agent
igrid_propose_action
igrid_decide_action
igrid_ingest_csv

예상 Forbidden::

igrid_list_domains
igrid_get_template
igrid_metrics
igrid_export_csv

관리 사용자

8개 도구 모두 MCP 역할 검사를 통과해야 합니다. 다운스트림 iGrid 인증/권한 부여 및 요청 유효성 검사는 여전히 적용됩니다.

보안 참고 사항

  • 권한 확인은 iGrid API 호출 전에 발생합니다.

  • XSUAA는 인바운드 MCP 권한을 제어합니다. iGrid는 다운스트림 자격 증명 및 비즈니스 권한 부여에 대해 권한을 유지합니다.

  • iGrid API 키, iGrid 비밀번호, Bearer 토큰, XSUAA 클라이언트 비밀 또는 서비스 키를 소스 제어에 절대 넣지 마십시오.

  • 간결한 보안 모델은 README-SECURITY.md를 참조하십시오.

Available Tools

8 tools
igrid_decide_actionDecide governed actionA
Destructive

WRITE role: approve or reject a previously proposed action. Requires explicit humanConfirmed=true; iGrid remains authoritative for downstream authorization.

ParametersJSON Schema
NameRequiredDescriptionDefault
noteNo
requestNo
decisionYes
selectedIdsNo
humanConfirmedYes

TDQS

A3.9/5.0
Behavior4/5

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

Annotations declare destructiveHint=true, which the description reinforces by stating this is a 'WRITE role' action. The description adds critical behavioral info: the need for humanConfirmed=true and iGrid's downstream authorization authority, which goes beyond what annotations alone provide.

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 concise sentences that front-load the key message ('WRITE role') and critical constraint. Every sentence adds value, but some parameter details are missing, and the description could be slightly more efficient.

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?

Given 5 parameters (2 required), 0% schema coverage, no output schema, and a destructive action, the description covers the core governance constraint but omits important details: what 'note' is used for, how 'selectedIds' relates to the action, and what the tool returns upon success or failure.

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 0%, so the description must compensate. It adds meaning for 'humanConfirmed' (requires true) and implies intent for 'decision' (approve/reject). However, it does not explain other parameters like 'note', 'request', or 'selectedIds', leaving gaps.

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

Purpose4/5

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

The description uses specific verbs ('approve or reject') and identifies the resource ('previously proposed action'). It distinguishes from siblings like igrid_propose_action by focusing on the decision step.

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 warns that 'humanConfirmed=true' is required and mentions downstream authorization by iGrid, providing clear usage context. However, it does not explicitly list when not to use this tool or name alternatives.

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

igrid_export_csvExport governed CSVC
Read-only

READ role: export an iGrid domain through GET /api/export/:domain using the documented x-api-key M2M endpoint.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes

TDQS

C2.9/5.0
Behavior3/5

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

The description aligns with annotations (readOnlyHint=true, destructiveHint=false) and adds context about the authentication method (x-api-key M2M) and endpoint. However, it does not disclose additional behavioral traits such as response format, size limits, or error handling beyond what annotations already provide.

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 sentence with no wasted words, and the 'READ role:' prefix is front-loaded. However, it could be more structurally organized (e.g., separate usage notes from technical details).

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?

With only one parameter and no output schema, the description provides the endpoint and auth method but omits critical details: the output format (CSV), success/error responses, prerequisites (e.g., listing domains first), and typical usage context. This leaves the agent underinformed.

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

Parameters2/5

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

The schema has 0% description coverage for the single required parameter 'domain'. The description does not elaborate on the parameter's meaning, constraints, or format beyond the endpoint path hint. Since coverage is low, the description should compensate, but it fails to do so.

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 clearly states the verb 'export' and resource 'iGrid domain', and specifies the HTTP method and endpoint. However, it does not explicitly distinguish from sibling tools like igrid_ingest_csv (import) or igrid_list_domains, and the title mentions 'CSV' but the description omits the output format.

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?

No guidance is provided on when to use this tool versus alternatives. The 'READ role' prefix hints at read-only usage, but there is no explicit comparison to siblings or conditions for use.

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

igrid_get_templateGet domain CSV templateA
Read-only

READ role: return the contract-accurate CSV template for an iGrid domain.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes

TDQS

A4.4/5.0
Behavior4/5

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

The annotations already declare readOnlyHint=true and destructiveHint=false, so the agent knows this is a safe read operation. The description appropriately adds that the template is 'contract-accurate', which is meaningful behavioral context beyond the annotations—it implies the returned CSV matches a predefined contract schema.

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 efficiently conveys the verb, output, context (contract-accurate), and resource (iGrid domain). Every word earns its place with no 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?

Given the low complexity (1 parameter, no output schema, simple return type), the description is mostly complete. It could mention whether the template is downloaded or returned as a string, but the phrase 'return the ... CSV template' implies the tool returns the template data.

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 description coverage is 0%, so the description must compensate. It identifies the sole parameter 'domain' by stating 'for an iGrid domain'—this directly maps the parameter name to a meaningful concept (the iGrid domain). Though it doesn't elaborate on format, the mapping is clear and sufficient because there is only one required parameter.

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 uses the specific verb 'return' with the resource 'CSV template for an iGrid domain', and clarifies the result is 'contract-accurate'. It also distinguishes from sibling tools like igrid_export_csv and igrid_ingest_csv by naming the specific artifact type (template, not data export or ingestion).

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 the READ role requirement, implying authentication context, and the template name includes 'domain' which matches the sole required parameter. However, it does not explicitly state when an agent should use this tool versus alternatives like igrid_export_csv (to get template vs. export actual data) or igrid_ingest_csv (to import data).

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

igrid_ingest_csvIngest CSV into iGridC
Destructive

WRITE role: send CSV to iGrid through POST /api/ingest/:domain using the documented x-api-key M2M endpoint.

ParametersJSON Schema
NameRequiredDescriptionDefault
csvYes
domainYes

TDQS

C2.7/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, and the description adds 'WRITE role' and the HTTP method/endpoint, reinforcing the write nature. However, it does not explain what gets destroyed (e.g., overwrite? append?), error states, or idempotency. The added context is modest beyond annotations.

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

Conciseness4/5

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

The description is a single efficient sentence with no wasted words. It front-loads the key action and role. However, the technical phrasing (POST /api/ingest/:domain) may be overly detailed for an agent not aware of the API structure.

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?

Given the tool has no output schema and two parameters, the description should cover return values (e.g., success status), error handling, and prerequisites (e.g., domain must exist). None of these are addressed. The description is too minimal to be fully usable by an agent.

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

Parameters1/5

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

Schema has 0% description coverage, and the description does not explain the 'csv' or 'domain' parameters beyond the endpoint reference. No details on CSV format, size limits (present in schema but not repeated), domain validation, or usage constraints. The description fails to compensate for the missing schema documentation.

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 'send CSV to iGrid through POST /api/ingest/:domain', which is a specific verb+resource action. It distinguishes from sibling tools like igrid_export_csv and igrid_list_domains. However, it does not clarify what 'ingest' accomplishes (e.g., load into grid, replace existing data), leaving the outcome ambiguous.

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?

No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites (e.g., domain must exist), when not to use it, or how it compares to siblings like igrid_export_csv or igrid_run_agent.

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

igrid_list_domainsList iGrid domainsA
Read-only

READ role: discover current iGrid hub datasets with counts and freshness.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=true and destructiveHint=false. The description reinforces this with 'READ role' and adds useful behavioral context about the return content (counts and freshness), going beyond the annotations by specifying what the user will learn from the tool.

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, tightly worded sentence that front-loads the read-only nature and immediately conveys the purpose. No unnecessary words or repetition.

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 parameterless read-only list tool, the description is sufficiently complete. It specifies the type of data returned (datasets, counts, freshness) and the safety profile via annotations and 'READ role'. Without an output schema, this gives the agent a reasonable expectation of the result.

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 tool has zero parameters, so the schema fully covers the parameter space. The description adds no parameter details, but no parameters exist to describe, making the baseline 4 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 uses the verb 'discover' and clearly identifies the resource as 'current iGrid hub datasets' with specific output details (counts and freshness). This distinguishes it from sibling tools like igrid_ingest_csv or igrid_export_csv, which have different purposes.

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 a read-only discovery use case, which is clear context. However, it does not explicitly state when to use this tool versus the alternatives, nor does it mention any exclusions or alternative tools.

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

igrid_metricsGet iGrid AI metricsA
Read-only

READ role: return token/cost observability metrics for the iGrid AI assistant.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds value by specifying exactly what kind of data is returned ('token/cost observability metrics'), which goes beyond the annotations. No contradictions exist. For a tool with no parameters, this is sufficient behavioral disclosure.

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 that front-loads the read role and immediately states what is returned. Every word is necessary and informative. No wasted text.

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?

Given the simplicity (no parameters, no output schema, clear purpose), the description fully satisfies completeness. It tells the agent exactly what the tool does and what data it returns. Combined with sibling names, the agent can infer when to use it.

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?

There are no parameters, and schema description coverage is 100% trivially. Baseline for zero parameters is 4. The description does not need to add parameter details. It correctly omits any irrelevant parameter information.

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 returns 'token/cost observability metrics' for the iGrid AI assistant. The verb 'return' combined with the specific resource 'metrics' makes the purpose unambiguous. It naturally distinguishes from siblings like igrid_export_csv or igrid_run_agent, which have different purposes.

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 phrase 'READ role' hints that this is for read-only observation, but there is no explicit guidance on when to use this tool versus alternatives. For example, it does not say when to use this over igrid_list_domains or igrid_get_template. Usage context is implied by the tool name and title but not explicitly stated.

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

igrid_propose_actionPropose governed actionA

WRITE role: submit a governed action proposal through POST /api/ai/action/propose. It remains a dry-run proposal and does not approve the action.

ParametersJSON Schema
NameRequiredDescriptionDefault
requestYes

TDQS

A3.7/5.0
Behavior3/5

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

Annotations indicate it is not read-only and not destructive. The description adds that it is a dry-run proposal and does not approve, which is useful. However, it does not disclose potential side effects (e.g., whether the proposal is stored), the request structure, or error behavior, leaving 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?

Two short sentences, each carrying essential information: the action being performed and its non-approving nature. No wasted words, and key details are front-loaded.

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 tool with one free-form object parameter and no output schema, the description should explain the expected structure of the request and the response. It only covers the high-level purpose and dry-run behavior, leaving the agent under-informed about how to use the input correctly.

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

Parameters2/5

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

The only parameter 'request' has no schema description (0% coverage) and the tool description does not explain what the request object should contain. It merely mentions 'governed action proposal,' providing minimal guidance for the agent to construct a valid request.

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 uses a specific verb ('submit') and resource ('governed action proposal'), explicitly names the endpoint, and clearly distinguishes from siblings by stating it does not approve the action, which contrasts with igrid_decide_action.

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

Usage Guidelines4/5

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

It states the role ('WRITE role') and that it is a dry-run proposal, implying use for submission without approval. However, it does not explicitly tell when to use this versus alternative tools like igrid_decide_action, leaving some inference needed.

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

igrid_run_agentRun iGrid AI agentC
Destructive

WRITE role: run an existing iGrid AI agent through POST /api/ai/run.

ParametersJSON Schema
NameRequiredDescriptionDefault
requestYes

TDQS

C2.6/5.0
Behavior2/5

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

The annotations already declare destructiveHint=true, so the agent knows this is a mutation tool. However, the description adds no context about what the mutation entails (e.g., side effects, irreversible actions, resource consumption). Given the annotation covers the destructive nature, but the description does not elaborate on specifics like state changes or concurrency limits.

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?

The description is short but not optimally structured. 'WRITE role' prefix is unclear and wastes space without adding value. The endpoint detail is helpful, but the single sentence tries to cover both purpose and endpoint. It could be more concise by removing 'WRITE role' and focusing on the agent execution context.

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?

Given the tool has a single, complex nested parameter with no schema definition, no output schema, and destructive annotations, the description is incomplete. It does not specify return values, error states, or how to structure the 'request' object. Sibling tools suggest a broader iGrid ecosystem, but no connection is made.

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

Parameters2/5

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

The input schema has one required parameter 'request' of type object with no schema definition (additionalProperties: true). Schema description coverage is 0%, so the description must compensate, but it only mentions the endpoint and does not explain the structure or expected content of the 'request' object. The nested object is completely undocumented.

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 ('run') and resource ('existing iGrid AI agent') and includes the exact endpoint (POST /api/ai/run). It distinguishes from siblings like igrid_export_csv and igrid_ingest_csv by focusing on agent execution rather than data export or ingestion. However, 'WRITE role' is ambiguous and would benefit from elaboration.

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?

No explicit guidance on when to use this tool vs alternatives. The description lists sibling tools but does not differentiate use cases. It does not state whether the agent must be pre-configured, what prerequisites exist, or when to choose this over igrid_decide_action or igrid_propose_action.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 8 tool updatesv4.0.0
    • First observedigrid_decide_action
    • First observedigrid_export_csv
    • First observedigrid_get_template
    • First observedigrid_ingest_csv
    • First observedigrid_list_domains
    • First observedigrid_metrics
    • First observedigrid_propose_action
    • First observedigrid_run_agent

TDQS

A3.7/5.0

Scored across 8 tools

Disambiguation5/5

Each tool targets a distinct operation: listing domains, exporting/ingesting CSV, getting templates, running agents, proposing/deciding actions, and metrics. There is no overlap or ambiguity between them.

Naming Consistency5/5

All tools follow the consistent pattern 'igrid_<verb>_<object>' (e.g., igrid_export_csv, igrid_propose_action). The name 'igrid_metrics' uses a noun instead of verb but still fits the pattern as a read operation. Overall, naming is highly predictable.

Tool Count5/5

With 8 tools, the server is well-scoped for its purpose: managing iGrid data domains and AI agent actions. The number is neither too small nor too large, each tool serves a clear function.

Completeness4/5

The tool surface covers key workflows: domain discovery, CSV import/export, template retrieval, agent execution, action governance, and metrics. Minor gaps exist, such as no tool for listing past proposed actions or viewing action history, but core functionality is complete.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    A
    maintenance
    Provides a trust and governance layer for AI agents, enabling secure API access, credential vaulting, paid execution with human approval, and automatic call resume.
    7 npm
    2
    -
  • A
    license
    A
    quality
    A
    maintenance
    Local zero-trust permission gateway for AI agents. Enforces policy-based tool authorization, human approvals, scoped permissions, and cryptographically verifiable audit logs.
    4
    56 PyPI
    5
    Apache 2.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides a secure MCP gateway for AI agents to access APIs without exposing raw credentials, with scoped access, audit logging, and OAuth support.
    MIT