Skip to main content
Glama
mashriram

Azure MCP Server

by mashriram

Azure MCP 서버

대장간 배지

Azure 서비스와 상호 작용하기 위한 모델 컨텍스트 프로토콜 서버 구현입니다. 현재 Azure Blob Storage 및 Azure Cosmos DB(NoSQL API)를 지원합니다. 이 서버를 통해 수행되는 모든 작업은 자동으로 기록되며, audit://azure-operations 리소스 엔드포인트를 통해 액세스할 수 있습니다.

Claude Desktop App을 사용하여 로컬로 실행

Smithery를 통해 설치

Smithery를 통해 Claude Desktop용 Azure MCP 서버를 자동으로 설치하려면 다음을 수행합니다.

지엑스피1

수동 설치

  1. 저장소 복제: 이 저장소를 로컬 컴퓨터에 복제합니다.

  2. Azure 자격 증명 구성: Azure 자격 증명을 구성하세요. 이 서버에는 Blob Storage, Cosmos DB 및 App Configuration에 대한 적절한 권한이 있는 Azure 계정이 필요합니다. 다양한 방법으로 인증을 시도하는 DefaultAzureCredential 사용하는 것이 좋습니다.

    • 환경 변수: 다음 환경 변수를 설정합니다.

      • AZURE_STORAGE_ACCOUNT_URL : Azure Storage 계정의 URL(예: https://<your_account_name>.blob.core.windows.net ).

      • AZURE_COSMOSDB_ENDPOINT : Azure Cosmos DB 계정의 엔드포인트 URL입니다.

      • AZURE_COSMOSDB_KEY : Azure Cosmos DB 계정의 기본 키 또는 보조 키입니다. 중요: 이 키는 암호처럼 취급하고 안전하게 보관하세요.

      • AZURE_APP_CONFIGURATION_ENDPOINT : Azure 앱 구성 인스턴스의 URL입니다.

    • Azure CLI: 또는 Azure CLI를 사용하여 인증할 수 있습니다. 필요한 권한이 있는 계정으로 로그인했는지 확인하세요. 이 서버는 DefaultAzureCredential 사용하므로 환경 변수가 지정되지 않으면 Azure CLI 자격 증명으로 자동 인증됩니다. az login 사용하여 로그인하세요.

  3. Claude Desktop 구성: claude_desktop_config.json 파일에 다음 구성을 추가합니다.

    • macOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json

    • 윈도우: %APPDATA%/Claude/claude_desktop_config.json

    "mcpServers": {
      "mcp-server-azure": {
        "command": "uv",
        "args": [
          "--directory",
          "/path/to/repo/azure-mcp-server",
          "run",
          "azure-mcp-server"
        ]
      }
    }

    /path/to/repo/azure-mcp-server 복제된 저장소의 실제 경로로 바꿉니다.

  4. Claude Desktop 설치 및 실행: Claude 데스크톱 앱을 설치하고 엽니다.

  5. 설정 테스트: Claude에게 Azure 도구를 사용하여 읽기 또는 쓰기 작업을 수행하도록 요청합니다(예: Blob Storage 컨테이너 생성 또는 Cosmos DB에 항목 추가). 문제가 발생하면 여기에서 MCP 디버깅 설명서를 참조하세요.

Related MCP server: MCP Server for Apache OpenDAL™

사용 가능한 도구

Azure Blob 저장소 작업

  • blob_container_create: 새 Blob Storage 컨테이너를 생성합니다. container_name 이 필요합니다.

  • blob_container_list: 구성된 계정에 있는 모든 Blob Storage 컨테이너를 나열합니다.

  • blob_container_delete: Blob Storage 컨테이너를 삭제합니다. container_name 이 필요합니다.

  • blob_upload: Blob Storage 컨테이너에 blob(파일)을 업로드합니다. container_name , blob_name , file_content (Base64 인코딩)가 필요합니다.

  • blob_delete: Blob Storage 컨테이너에서 blob을 삭제합니다. container_name 과 blob_name 필요합니다.

  • blob_list: Blob Storage 컨테이너 내의 Blob을 나열합니다. container_name 이 필요합니다.

  • blob_read: Blob Storage에서 blob의 내용을 읽습니다. container_name 과 blob_name 필요합니다. 내용을 텍스트로 반환합니다.

Azure Cosmos DB(NoSQL API) 작업

컨테이너 운영

  • cosmosdb_container_create: 데이터베이스 내에 새로운 Cosmos DB 컨테이너를 생성합니다. container_name 과 partition_key 필요합니다. database_name 은 선택 사항이며 기본값은 defaultdb 입니다. partition_key 는 파티션 키를 정의하는 JSON 객체여야 합니다(예: {"paths": ["/myPartitionKey"], "kind": "Hash"} ).

  • cosmosdb_container_describe: Cosmos DB 컨테이너에 대한 세부 정보를 검색합니다. container_name 이 필요합니다. database_name 선택 사항이며 기본값은 defaultdb 입니다.

  • cosmosdb_container_list: 데이터베이스 내 모든 Cosmos DB 컨테이너를 나열합니다. database_name 은 선택 사항이며 기본값은 defaultdb 입니다.

  • cosmosdb_container_delete: Cosmos DB 컨테이너를 삭제합니다. container_name 이 필요합니다. database_name 선택 사항이며 기본값은 defaultdb 입니다.

품목 작업

  • cosmosdb_item_create: Cosmos DB 컨테이너 내에 새 항목을 생성합니다. container_name 과 item (항목을 나타내는 JSON 객체)이 필요합니다. database_name 은 선택 사항이며 기본값은 defaultdb 입니다. item 에 파티션 키 필드와 값이 포함되어 있는지 확인하세요.

  • cosmosdb_item_read: Cosmos DB 컨테이너에서 항목을 읽습니다. container_name , item_id , partition_key 필요합니다. database_name 선택 사항이며 기본값은 defaultdb 입니다. partition_key 는 읽을 항목의 파티션 키 값과 일치 해야 합니다 .

  • cosmosdb_item_replace: Cosmos DB 컨테이너 내의 기존 항목을 교체합니다. container_name , item_id , partition_key , 그리고 item (업데이트된 전체 항목을 나타내는 JSON 객체)이 필요합니다. database_name 은 선택 사항이며 기본값은 defaultdb 입니다. partition_key 는 교체되는 항목의 파티션 키 값과 일치 해야 합니다 .

  • cosmosdb_item_delete: Cosmos DB 컨테이너에서 항목을 삭제합니다. container_name , item_id , partition_key 필요합니다. database_name 선택 사항이며 기본값은 defaultdb 입니다. partition_key 는 삭제되는 항목의 파티션 키 값과 일치 해야 합니다 .

  • cosmosdb_item_query: SQL 쿼리를 사용하여 Cosmos DB 컨테이너의 항목을 쿼리합니다. container_name 과 query 필요합니다. database_name 선택 사항이며 기본값은 defaultdb 입니다. 매개변수화된 쿼리의 경우, parameters 배열을 선택적으로 사용할 수 있습니다.

Azure 앱 구성 작업

  • app_configuration_kv_read: Azure App Configuration에서 키-값을 읽습니다. key 매개 변수는 선택 사항이며 키 패턴으로 필터링할 수 있습니다(와일드카드 지원, 예: 'app1/ '). label 매개 변수는 레이블 값으로 필터링할 때 선택 사항입니다(레이블 없음은 '\0', 레이블 있음은 ' ').

  • app_configuration_kv_write: Azure App Configuration에서 키-값을 쓰거나 업데이트합니다. key 및 value 매개 변수가 필요합니다. 선택적 매개 변수로는 키-값에 레이블을 적용하는 label 과 콘텐츠 유형(예: 'application/json')을 지정하는 content_type 있습니다.

  • app_configuration_kv_delete: Azure App Configuration에서 키-값을 삭제합니다. key 매개 변수가 필요합니다. label 매개 변수는 선택 사항이며, 삭제할 레이블이 지정된 키 버전을 지정합니다.

중요한 Cosmos DB 참고 사항:

  • 파티션 키: Cosmos DB는 효율적인 데이터 저장 및 검색을 위해 파티션 키를 필요로 합니다. 컨테이너를 생성할 때 파티션 키를 정의 해야 합니다 . 항목을 읽거나, 바꾸거나, 삭제할 때는 액세스하는 항목에 대한 올바른 파티션 키 값을 제공 해야 합니다 . 파티션 키는 데이터 내의 속성입니다.

  • 대소문자 구분: Cosmos DB 리소스 이름(데이터베이스, 컨테이너, 항목 ID)과 파티션 키 값은 대소문자를 구분합니다. 도구 호출 시 대소문자를 정확하게 사용해야 합니다.

  • 기본 데이터베이스: database_name 지정하지 않으면 서버는 기본적으로 SampleDB 라는 데이터베이스를 사용합니다. 이 데이터베이스가 있는지 확인하거나 도구 호출 인수에 원하는 데이터베이스 이름을 명시적으로 제공하세요.

이 README는 Claude 데스크톱 애플리케이션과 함께 Azure MCP 서버를 설정하고 사용하는 데 필요한 정보를 제공합니다. Azure 자격 증명을 안전하게 관리하고 프로토콜에 대한 자세한 내용은 MCP 설명서를 참조하십시오.

Available Tools

19 tools
app_configuration_kv_deleteC

Delete a key-value from Azure App Configuration

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYesThe key to delete
labelNoThe label of the key-value to delete (optional)

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 of behavioral disclosure. While 'Delete' implies a destructive mutation, the description doesn't specify whether this operation is reversible, requires specific permissions, has side effects (e.g., affecting other configurations), or what happens on success/failure. This is a significant gap 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.

Conciseness5/5

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

The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, making it easy for an agent to parse quickly.

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's complexity (a destructive operation with no output schema and no annotations), the description is incomplete. It lacks crucial details like behavioral traits (e.g., idempotency, error handling), usage context relative to siblings, and expected outcomes, which are essential for safe and effective tool invocation.

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?

The input schema has 100% description coverage, clearly documenting both parameters ('key' and optional 'label'). The description doesn't add any additional meaning beyond what the schema provides, such as format examples or constraints. With high schema coverage, the baseline score of 3 is appropriate as the schema does the heavy lifting.

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 action ('Delete') and the resource ('a key-value from Azure App Configuration'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'app_configuration_kv_write' or 'blob_delete', which would require more specific context about Azure App Configuration vs. other services.

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?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing the key to exist), exclusions, or comparisons to siblings like 'app_configuration_kv_read' or 'app_configuration_kv_write', leaving the agent to infer usage from the tool name alone.

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

app_configuration_kv_readC

Read key-values from Azure App Configuration

ParametersJSON Schema
NameRequiredDescriptionDefault
keyNoThe key to read (optional, use * for wildcards, e.g. 'app1/*')
labelNoThe label filter (optional, use '\0' for no label, '*' for any label)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the action ('Read') without detailing aspects like authentication requirements, rate limits, error handling, or what happens if parameters are omitted (e.g., default behavior). This leaves significant gaps for a tool that interacts with a cloud service.

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, efficient sentence that directly states the tool's purpose without any unnecessary words. It is front-loaded and appropriately sized for its simple function.

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 complexity of interacting with Azure App Configuration, no annotations, and no output schema, the description is insufficient. It lacks details on return values, error cases, or behavioral nuances, making it incomplete for effective agent use in a real-world scenario.

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 the input schema fully documents both parameters ('key' and 'label') with descriptions and optionality. The description adds no additional semantic context beyond what's in the schema, resulting in the baseline score of 3.

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 ('Read') and resource ('key-values from Azure App Configuration'), making the purpose unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'app_configuration_kv_write' or 'app_configuration_kv_delete' beyond the verb choice, which is why it doesn't reach a perfect score.

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?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'app_configuration_kv_write' for writing or 'app_configuration_kv_delete' for deletion, nor does it specify any prerequisites or contextual cues for selection.

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

app_configuration_kv_writeB

Write or update a key-value in Azure App Configuration

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYesThe key to write
valueYesThe value to store
labelNoThe label for the key-value (optional)
content_typeNoContent type of the value (optional, e.g. 'application/json')

TDQS

B3.2/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 of behavioral disclosure. While 'Write or update' implies a mutation, it lacks details on permissions, idempotency, error handling, or side effects. For a write tool with zero annotation coverage, this is a significant gap in transparency.

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, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded and wastes no space, making it highly concise and well-structured.

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's complexity as a write operation with no annotations and no output schema, the description is incomplete. It lacks information on behavioral traits, return values, and usage context, which are critical for an AI agent to invoke it correctly and safely.

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 the schema fully documents all parameters. The description does not add any semantic details beyond what the schema provides, such as examples or constraints. Baseline 3 is appropriate when the schema handles parameter documentation effectively.

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 action ('Write or update') and resource ('a key-value in Azure App Configuration'), distinguishing it from sibling tools like app_configuration_kv_read (read) and app_configuration_kv_delete (delete). It precisely communicates the tool's function without redundancy.

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?

The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, such as authentication or existing configuration, nor does it differentiate from sibling tools beyond the obvious action contrast. Usage context is implied 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.

blob_container_createC

Create a new Blob Storage container

ParametersJSON Schema
NameRequiredDescriptionDefault
container_nameYesName of the Blob Storage container to create

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It states 'Create' which implies a write/mutation operation, but doesn't mention permissions required, whether it's idempotent, error conditions (e.g., naming constraints), or what happens on success/failure. For a creation tool with zero annotation coverage, this leaves significant 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 a single, clear sentence with zero wasted words. It's front-loaded with the core action and resource, making it immediately understandable. Every word earns its place in conveying the essential purpose.

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 creation tool with no annotations and no output schema, the description is insufficiently complete. It doesn't address what the tool returns, error handling, authentication requirements, or naming constraints. Given the complexity of creating a storage resource and the lack of structured metadata, the description should provide more contextual information.

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?

The schema description coverage is 100%, with the single parameter 'container_name' well-documented in the schema. The description adds no additional parameter information beyond what the schema provides, which is acceptable given the high schema coverage. The baseline score of 3 reflects adequate but minimal value added by the description.

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 action ('Create') and resource ('new Blob Storage container'), making the purpose immediately understandable. It distinguishes from siblings like blob_container_delete and blob_container_list by specifying creation rather than deletion or listing. However, it doesn't explicitly differentiate from cosmosdb_container_create, which creates a different type of container.

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?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing storage account access), when not to use it (e.g., if container already exists), or direct alternatives among siblings. The agent must infer usage from the tool name alone.

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

blob_container_deleteC

Delete a Blob Storage container

ParametersJSON Schema
NameRequiredDescriptionDefault
container_nameYesName of the Blob Storage container to delete

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 of behavioral disclosure. It states the action is 'Delete,' implying a destructive mutation, but fails to disclose critical traits: whether deletion is permanent, if it requires specific permissions, what happens to contained blobs, or error conditions (e.g., non-empty containers). This leaves significant gaps in understanding the tool's behavior.

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, direct sentence with zero wasted words, making it highly concise and front-loaded. It immediately conveys the core action without unnecessary elaboration, which is efficient for a simple tool. Every word earns its place by stating the essential purpose clearly.

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's destructive nature and lack of annotations or output schema, the description is incomplete. It doesn't address key contextual aspects: the irreversible impact, prerequisites (e.g., empty container), error handling, or what the response contains. For a deletion tool with no structured safety hints, more detail is needed to ensure safe and correct usage.

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 the parameter 'container_name' fully documented in the schema. The description adds no additional meaning beyond what the schema provides, such as format constraints or examples. Since the schema handles the parameter documentation adequately, the baseline score of 3 is appropriate, though no extra value is contributed.

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 action ('Delete') and the resource ('a Blob Storage container'), making the purpose immediately understandable. It distinguishes from siblings like blob_container_create and blob_container_list by specifying deletion rather than creation or listing. However, it doesn't explicitly mention that this is irreversible or that it deletes all blobs within, which would make it more specific.

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?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., container must be empty or require force deletion), compare to blob_delete for individual blob removal, or warn about irreversible consequences. Without such context, users might misuse it without understanding the implications.

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

blob_container_listB

List all Blob Storage containers

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/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 of behavioral disclosure. While 'List' implies a read-only operation, the description doesn't address whether this requires specific permissions, returns paginated results, includes metadata, or has rate limits. For a listing tool with zero annotation coverage, this leaves significant behavioral gaps unaddressed.

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, efficient sentence that states the core functionality without any wasted words. It's front-loaded with the essential action and resource, making it immediately scannable and appropriately sized for a simple listing tool.

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 the tool's simplicity (0 parameters, no output schema), the description is minimally adequate. However, with no annotations and no output schema, it should ideally provide more behavioral context (e.g., what the list returns, any limitations). The description covers the basic purpose but leaves the agent to assume details about the operation's behavior and results.

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 0 parameters with 100% schema description coverage, so the schema fully documents the absence of inputs. The description adds no parameter information, which is appropriate since there are no parameters to describe. The baseline for 0 parameters with full schema coverage is 4, as no additional parameter semantics are needed.

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 ('List') and resource ('all Blob Storage containers'), making the purpose immediately understandable. It distinguishes from siblings like blob_container_create and blob_container_delete by specifying a read-only listing operation. However, it doesn't explicitly differentiate from blob_list (which lists blobs within containers) or cosmosdb_container_list (which lists CosmosDB containers).

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?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when to use blob_container_list versus blob_list (for listing blobs within containers) or cosmosdb_container_list (for CosmosDB containers). There are no prerequisites, exclusions, or explicit alternatives named, leaving the agent to infer usage from context alone.

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

blob_deleteC

Delete a blob from Blob Storage

ParametersJSON Schema
NameRequiredDescriptionDefault
container_nameYesName of the Blob Storage container
blob_nameYesName of the blob to delete

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 of behavioral disclosure. While 'Delete' implies a destructive mutation, it doesn't specify whether the deletion is permanent, reversible, requires specific permissions, or has side effects (e.g., affecting other blobs). For a destructive tool with zero annotation coverage, this is a significant gap in safety and operational context.

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, direct sentence with zero waste—it states the action and resource without fluff. It's appropriately sized for a simple tool and front-loaded with the core purpose, making it easy for an agent to parse quickly.

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's destructive nature, lack of annotations, and no output schema, the description is incomplete. It doesn't cover critical aspects like return values (e.g., success/failure indicators), error conditions, or behavioral nuances (e.g., idempotency). For a mutation tool with no structured safety hints, more context is needed to ensure reliable use.

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 both parameters (container_name, blob_name) clearly documented in the schema. The description adds no additional parameter details beyond what the schema provides, such as format examples or constraints. This meets the baseline score of 3 when the schema does the heavy lifting.

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 action ('Delete') and resource ('a blob from Blob Storage'), making the purpose immediately understandable. It distinguishes from siblings like blob_container_delete (which deletes containers) and blob_read/list/upload (which perform different operations). However, it doesn't specify whether this deletes a single blob or has broader scope, keeping it from a perfect score.

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?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing the blob to exist), exclusions (e.g., not for containers), or sibling tools like blob_container_delete for container deletion. Without such context, an agent might misuse it or overlook better options.

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

blob_listC

List blobs in a Blob Storage container

ParametersJSON Schema
NameRequiredDescriptionDefault
container_nameYesName of the Blob Storage container

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It states it's a list operation but doesn't cover important aspects like whether it's paginated, what format the output takes (e.g., list of blob names vs. metadata), authentication requirements, rate limits, or error conditions. This leaves significant gaps for an agent to understand how to use it effectively.

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, direct sentence that efficiently conveys the core purpose without any unnecessary words. It's appropriately sized for a simple list operation and front-loads the essential information, making it easy for an agent to parse quickly.

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 lack of annotations and output schema, the description is incomplete for a tool that likely returns structured data. It doesn't explain what the output contains (e.g., blob names, sizes, metadata) or handle complexities like pagination or error cases, which are crucial for an agent to use the tool correctly in a storage context.

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?

The schema description coverage is 100%, with the single parameter 'container_name' clearly documented in the schema. The description doesn't add any additional parameter semantics beyond what the schema already provides, such as format constraints or examples of valid container names, which keeps it at the baseline score.

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 action ('List') and resource ('blobs in a Blob Storage container'), making the tool's purpose immediately understandable. However, it doesn't differentiate from the sibling 'blob_container_list' tool, which lists containers rather than blobs within a container, missing an opportunity for clearer sibling distinction.

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?

The description provides no guidance on when to use this tool versus alternatives. There's no mention of prerequisites (e.g., needing an existing container), comparison to similar tools like 'blob_read' for individual blobs, or exclusions for when other tools might be more appropriate.

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

blob_readC

Read a blob's content from Blob Storage

ParametersJSON Schema
NameRequiredDescriptionDefault
container_nameYesName of the Blob Storage container
blob_nameYesName of the blob to read

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 of behavioral disclosure. It states the action ('Read') but doesn't mention whether this is a safe read operation, potential errors (e.g., if the blob doesn't exist), authentication requirements, rate limits, or the format of the returned content. This leaves significant gaps for an agent to understand the tool's behavior.

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, efficient sentence with zero waste. It's front-loaded with the core action and resource, making it easy to parse quickly. Every word earns its place without redundancy.

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 lack of annotations and output schema, the description is incomplete. It doesn't address what the tool returns (e.g., raw content, metadata), error conditions, or behavioral nuances. For a read operation with no structured output documentation, more context is needed to guide an agent effectively.

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?

The input schema has 100% description coverage, with clear parameter descriptions in the schema itself. The description doesn't add any meaning beyond what the schema provides, such as explaining the relationship between 'container_name' and 'blob_name' or providing examples. This meets the baseline of 3 when schema coverage is high.

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 action ('Read') and resource ('blob's content from Blob Storage'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'blob_list' or 'cosmosdb_item_read', which would require more specificity to earn 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?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing blob), exclusions, or comparisons to siblings like 'blob_list' for listing blobs or 'cosmosdb_item_read' for reading from a different service.

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

blob_uploadC

Upload a blob to Blob Storage

ParametersJSON Schema
NameRequiredDescriptionDefault
container_nameYesName of the Blob Storage container
blob_nameYesName of the blob in the container
file_contentYesBase64 encoded file content for upload

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but only states the basic action without behavioral details. It doesn't mention whether this is a write operation (implied but not explicit), what permissions are required, potential rate limits, error conditions, or what happens if a blob already exists (overwrite vs. error). This leaves significant gaps for a mutation 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, efficient sentence with zero wasted words. It's front-loaded with the core action and resource, making it immediately scannable and easy to parse. Every word earns its place by conveying essential information without redundancy.

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 mutation tool with no annotations and no output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., success confirmation, blob URL, error details), behavioral traits like idempotency or side effects, or how it fits into the broader blob storage workflow with siblings. This leaves the agent under-informed for safe invocation.

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?

The input schema has 100% description coverage, clearly documenting all three parameters (container_name, blob_name, file_content). The description adds no additional parameter semantics beyond what's in the schema, such as format constraints or examples. This meets the baseline of 3 since the schema does the heavy lifting.

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 action ('Upload') and target resource ('a blob to Blob Storage'), making the purpose immediately understandable. However, it doesn't differentiate itself from sibling tools like blob_container_create or blob_delete, which would require mentioning it specifically handles file content uploads rather than container or metadata operations.

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?

The description provides no guidance on when to use this tool versus alternatives like blob_container_create for creating containers first, or blob_read for retrieving blobs. It lacks any context about prerequisites (e.g., needing an existing container) or typical use cases, leaving the agent to infer usage from the name alone.

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

cosmosdb_container_createC

Create a new Cosmos DB container

ParametersJSON Schema
NameRequiredDescriptionDefault
container_nameYesName of the Cosmos DB container
database_nameNoName of the Cosmos DB database (optional, defaults to 'defaultdb')
partition_keyYesPartition key definition for the container (e.g., {'paths': ['/partitionKey'], 'kind': 'Hash'})

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but offers minimal behavioral insight. It states this creates a new container but doesn't disclose critical traits like required permissions, whether it's idempotent, potential costs, rate limits, or what happens on failure. For a creation tool with zero annotation coverage, this leaves significant gaps in understanding the operation's behavior.

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, clear sentence with zero wasted words. It's front-loaded with the core action and resource, making it immediately scannable and efficient. Every word earns its place without unnecessary elaboration.

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 this is a creation tool with no annotations and no output schema, the description is insufficiently complete. It doesn't explain what the tool returns (e.g., success confirmation, container details), error conditions, or behavioral nuances like idempotency. For a tool that creates resources in a database system, more context is needed to use it effectively.

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 the schema fully documents all three parameters (container_name, database_name, partition_key) with their types and descriptions. The description adds no additional parameter semantics beyond what's in the schema, which is acceptable given the high coverage, resulting in the baseline score of 3.

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 action ('Create') and resource ('Cosmos DB container'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like cosmosdb_container_describe or cosmosdb_container_list, which would require mentioning this is specifically for creating new containers rather than describing or listing existing ones.

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?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing database), when not to use it (e.g., if container already exists), or refer to sibling tools like cosmosdb_container_describe for checking existing containers first. The agent must infer usage from context alone.

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

cosmosdb_container_deleteC

Delete a Cosmos DB container

ParametersJSON Schema
NameRequiredDescriptionDefault
container_nameYesName of the Cosmos DB container
database_nameNoName of the Cosmos DB database (optional, defaults to 'defaultdb')

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 of behavioral disclosure. While 'Delete' implies a destructive mutation, it doesn't specify whether this action is irreversible, requires specific permissions, has side effects (e.g., data loss), or returns confirmation details. For a mutation tool with zero annotation coverage, this is a significant gap in transparency.

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, direct sentence with no wasted words, making it highly concise and front-loaded. Every word ('Delete a Cosmos DB container') earns its place by clearly conveying the core action and target.

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's complexity (destructive operation with 2 parameters) and lack of annotations or output schema, the description is incomplete. It doesn't address critical aspects like return values, error conditions, or safety warnings, which are essential for an agent to use this tool correctly in context with its siblings.

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 clear descriptions for both parameters in the input schema. The description doesn't add any additional meaning beyond what the schema provides (e.g., it doesn't explain parameter interactions or constraints), so it meets the baseline score of 3 where the schema does the heavy lifting.

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 action ('Delete') and resource ('a Cosmos DB container'), making the purpose immediately understandable. However, it doesn't distinguish this tool from other delete operations like 'blob_container_delete' or 'cosmosdb_item_delete', which would require mentioning it specifically removes containers (not items or blobs) to achieve a perfect score.

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. Given sibling tools like 'cosmosdb_container_describe' (for inspection) and 'cosmosdb_item_delete' (for deleting items within containers), the description lacks context about prerequisites (e.g., ensure container is empty) or warnings about irreversible deletion, which are critical for a destructive operation.

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

cosmosdb_container_describeB

Get details about a Cosmos DB container

ParametersJSON Schema
NameRequiredDescriptionDefault
container_nameYesName of the Cosmos DB container
database_nameNoName of the Cosmos DB database (optional, defaults to 'defaultdb')

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It implies a read-only operation ('Get details'), but doesn't specify whether it's safe, if it requires specific permissions, what happens on errors (e.g., if the container doesn't exist), or any rate limits. For a tool with zero annotation coverage, this lack of behavioral context is a significant gap, though it doesn't contradict any 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, efficient sentence that directly states the tool's purpose without any wasted words. It is front-loaded and appropriately sized for a simple read operation, making it easy for an agent to parse quickly. Every word earns its place by conveying essential information concisely.

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 the tool's low complexity (a read operation with two parameters) and high schema coverage, the description is minimally adequate. However, with no annotations and no output schema, it lacks details on behavioral traits (e.g., error handling) and return values (e.g., what details are included). This leaves gaps that could hinder an agent's ability to use the tool effectively, though it meets the basic requirement for a simple tool.

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?

The input schema has 100% description coverage, fully documenting both parameters (container_name and database_name) with their types and optionality. The description adds no additional parameter semantics beyond what the schema provides, such as format examples or constraints. According to the rules, with high schema coverage (>80%), the baseline is 3, which is appropriate here as the schema does the heavy lifting.

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 ('Get details about') and resource ('a Cosmos DB container'), making the purpose immediately understandable. It distinguishes from siblings like cosmosdb_container_create, cosmosdb_container_delete, and cosmosdb_container_list by specifying it retrieves details rather than creating, deleting, or listing containers. However, it doesn't specify what details are included (e.g., properties, settings, or metadata), which prevents a perfect score.

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?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when to choose this over cosmosdb_container_list for listing containers or cosmosdb_item_read for reading items within a container, nor does it specify prerequisites like authentication or required permissions. The absence of usage context leaves the agent without direction on appropriate tool selection.

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

cosmosdb_container_listC

List all Cosmos DB containers in a database

ParametersJSON Schema
NameRequiredDescriptionDefault
database_nameNoName of the Cosmos DB database (optional, defaults to 'defaultdb')

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action but does not cover critical aspects like whether this is a read-only operation, potential rate limits, authentication needs, or the format of the returned list (e.g., pagination). This leaves significant gaps for an agent to understand the tool's behavior.

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, clear sentence that efficiently conveys the core purpose without unnecessary words. It is front-loaded and appropriately sized for a simple list operation, making it easy for an agent to parse quickly.

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 lack of annotations and output schema, the description is incomplete. It does not address behavioral traits, return values, or usage context, which are essential for an agent to effectively select and invoke this tool in a real-world scenario with sibling alternatives available.

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 the single parameter 'database_name' fully documented in the schema as optional with a default. The description does not add any additional meaning beyond what the schema provides, such as examples or constraints, so it meets the baseline for adequate but not enhanced coverage.

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 action ('List') and resource ('all Cosmos DB containers in a database'), making the purpose immediately understandable. However, it does not explicitly differentiate from sibling tools like 'cosmosdb_container_describe' or 'blob_container_list', which would require more specific scope or context.

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 such as 'cosmosdb_container_describe' for detailed container info or 'blob_container_list' for blob storage. The description lacks context on prerequisites, exclusions, or typical scenarios for invocation.

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

cosmosdb_item_createC

Create a new item in a Cosmos DB container

ParametersJSON Schema
NameRequiredDescriptionDefault
container_nameYesName of the Cosmos DB container
database_nameNoName of the Cosmos DB database (optional, defaults to 'defaultdb')
itemYesItem data to create (JSON object)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It states 'Create' implying a write operation but doesn't cover critical aspects like authentication needs, error handling (e.g., conflicts), rate limits, or what happens on success (e.g., returns created item ID). For a mutation tool, this is a significant gap in transparency.

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, efficient sentence that directly states the tool's purpose without unnecessary words. It's front-loaded with the core action and resource, making it easy to parse quickly. Every word earns its place, with no redundancy or fluff.

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's complexity (mutation with 3 parameters, no output schema, and no annotations), the description is incomplete. It lacks information on return values, error conditions, prerequisites (e.g., container must exist), and behavioral traits like idempotency. For a database write operation, this leaves too many unknowns for reliable agent use.

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 clear descriptions for all parameters (container_name, database_name, item). The description adds no additional parameter semantics beyond what's in the schema, such as format details for 'item' or constraints on names. Baseline 3 is appropriate when the schema does the heavy lifting.

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 action ('Create') and target resource ('new item in a Cosmos DB container'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like cosmosdb_item_replace or cosmosdb_item_query, which would require more specific language about creating versus updating or querying items.

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?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., existing container/database), contrast with siblings like cosmosdb_item_replace for updates, or specify use cases (e.g., initial data insertion). This leaves the agent without context for tool selection.

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

cosmosdb_item_deleteC

Delete an item from a Cosmos DB container

ParametersJSON Schema
NameRequiredDescriptionDefault
container_nameYesName of the Cosmos DB container
database_nameNoName of the Cosmos DB database (optional, defaults to 'defaultdb')
item_idYesID of the item to delete
partition_keyYesPartition key value for the item

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool performs a deletion, which implies a destructive mutation, but doesn't mention critical aspects like whether the deletion is permanent, requires specific permissions, has rate limits, or returns confirmation. This leaves significant gaps for a destructive operation.

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, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, making it easy to parse quickly.

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 destructive tool with no annotations and no output schema, the description is incomplete. It lacks information on behavioral traits (e.g., permanence, permissions), output expectations, and usage context relative to siblings. Given the complexity of database operations, this minimal description doesn't provide enough guidance for safe and effective use.

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?

The description adds no parameter-specific information beyond what the input schema provides. Since schema description coverage is 100%, the baseline score is 3. The description doesn't explain parameter relationships (e.g., that 'partition_key' is required alongside 'item_id' for Cosmos DB operations) or provide usage examples.

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 action ('Delete') and resource ('an item from a Cosmos DB container'), making the purpose immediately understandable. However, it doesn't distinguish this tool from sibling tools like 'cosmosdb_container_delete' or 'blob_delete', which would require mentioning the specific resource type (item vs. container vs. blob).

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?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'cosmosdb_item_replace' for updates or 'cosmosdb_item_query' for finding items, nor does it specify prerequisites (e.g., needing to identify an item first) or exclusions (e.g., not for containers).

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

cosmosdb_item_queryC

Query items in a Cosmos DB container using SQL

ParametersJSON Schema
NameRequiredDescriptionDefault
container_nameYesName of the Cosmos DB container
database_nameNoName of the Cosmos DB database (optional, defaults to 'defaultdb')
queryYesCosmos DB SQL query string
parametersNoParameters for the SQL query (optional)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It states the action is a query but doesn't mention whether this is read-only (likely but not confirmed), what permissions are required, whether there are rate limits, what the return format looks like, or if there are pagination considerations. For a database query tool with zero annotation coverage, this is insufficient.

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, efficient sentence that gets straight to the point with zero wasted words. It's appropriately sized for the tool's complexity and front-loads the essential information.

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 this is a database query tool with no annotations, no output schema, and multiple sibling tools, the description is incomplete. It doesn't explain what the tool returns, how results are formatted, whether there are limitations on query complexity, or how it differs from other Cosmos DB item operations. The agent would need to guess about important behavioral aspects.

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 the schema already documents all four parameters thoroughly. The description mentions 'using SQL' which implies the query parameter accepts SQL syntax, but this doesn't add significant meaning beyond what the schema provides. The baseline of 3 is appropriate when the schema does the heavy lifting.

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 action ('Query items') and resource ('in a Cosmos DB container using SQL'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like cosmosdb_item_read or cosmosdb_item_create, which would require more specific scope information.

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?

The description provides no guidance on when to use this tool versus alternatives. With multiple Cosmos DB item operations available (create, read, delete, replace), there's no indication whether this is for complex queries versus simple lookups, or when SQL queries are preferred over direct item operations.

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

cosmosdb_item_readC

Read an item from a Cosmos DB container

ParametersJSON Schema
NameRequiredDescriptionDefault
container_nameYesName of the Cosmos DB container
database_nameNoName of the Cosmos DB database (optional, defaults to 'defaultdb')
item_idYesID of the item to read
partition_keyYesPartition key value for the item

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. While 'Read' implies a read-only operation, it doesn't specify important behavioral traits such as authentication requirements, error handling (e.g., what happens if the item doesn't exist), rate limits, or whether this is a safe operation. The description is too minimal to adequately inform the agent about how this tool behaves in practice.

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, clear sentence that efficiently communicates the core purpose without any wasted words. It's appropriately sized for a simple read operation and front-loads the essential information.

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 that this is a database operation with no annotations and no output schema, the description is insufficiently complete. It doesn't explain what format the returned item will be in (e.g., JSON document), whether it includes metadata, or what happens on errors. For a tool interacting with a complex system like Cosmos DB, more context is needed for the agent to use it effectively.

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 all parameters are documented in the input schema. The description adds no additional semantic context about the parameters beyond what's already in the schema (e.g., it doesn't explain relationships between parameters like why both item_id and partition_key are required). This meets the baseline expectation when schema coverage is high.

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 action ('Read') and resource ('an item from a Cosmos DB container'), making the purpose immediately understandable. However, it doesn't differentiate this tool from sibling tools like 'cosmosdb_item_query' or 'cosmosdb_container_describe', which also involve reading data from Cosmos DB but with different approaches.

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?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'cosmosdb_item_query' (for querying multiple items) or 'cosmosdb_container_describe' (for container metadata), leaving the agent to guess based on tool names alone. No explicit when/when-not instructions are provided.

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

cosmosdb_item_replaceC

Replace an item in a Cosmos DB container

ParametersJSON Schema
NameRequiredDescriptionDefault
container_nameYesName of the Cosmos DB container
database_nameNoName of the Cosmos DB database (optional, defaults to 'defaultdb')
item_idYesID of the item to replace
partition_keyYesPartition key value for the item
itemYesUpdated item data (JSON object)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states 'Replace an item' which implies a destructive write operation, but doesn't clarify critical aspects: whether this overwrites the entire item or merges fields, what happens if the item doesn't exist (e.g., error vs. creation), authentication requirements, rate limits, or response format. For a mutation tool with zero annotation coverage, this is a significant gap in transparency.

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, efficient sentence that directly states the tool's purpose without unnecessary words. It's front-loaded with the core action and resource, making it easy to parse. Every part of the sentence earns its place by conveying essential information.

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 complexity of a database mutation tool with no annotations and no output schema, the description is incomplete. It lacks details on behavioral traits (e.g., overwrite behavior, error handling), usage context compared to siblings, and return values. For a tool that modifies data in a Cosmos DB container, more context is needed to guide safe and effective use.

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 parameters clearly documented in the schema (e.g., container_name, item_id, partition_key, item as JSON object). The description adds no additional parameter semantics beyond what's in the schema, such as format examples or constraints. According to the rules, with high schema coverage (>80%), the baseline is 3 even without param info in the description.

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 action ('Replace') and resource ('an item in a Cosmos DB container'), making the purpose immediately understandable. It distinguishes from siblings like cosmosdb_item_create, cosmosdb_item_delete, and cosmosdb_item_read by specifying replacement rather than creation, deletion, or reading. However, it doesn't explicitly differentiate from cosmosdb_item_query or other Cosmos DB operations beyond the basic verb.

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?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., existing item), contrast with cosmosdb_item_create for new items or cosmosdb_item_read for retrieval, or specify error conditions like missing items. This leaves the agent to infer usage from the name and context alone.

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. 19 tool updates
    • First observedapp_configuration_kv_delete
    • First observedapp_configuration_kv_read
    • First observedapp_configuration_kv_write
    • First observedblob_container_create
    • First observedblob_container_delete
    • First observedblob_container_list
    • First observedblob_delete
    • First observedblob_list
    • First observedblob_read
    • First observedblob_upload
    • First observedcosmosdb_container_create
    • First observedcosmosdb_container_delete
    • First observedcosmosdb_container_describe
    • First observedcosmosdb_container_list
    • First observedcosmosdb_item_create
    • First observedcosmosdb_item_delete
    • First observedcosmosdb_item_query
    • First observedcosmosdb_item_read
    • First observedcosmosdb_item_replace

TDQS

A3.5/5.0

Scored across 19 tools

Disambiguation5/5

Every tool has a clearly distinct purpose with no ambiguity. The tools are organized by Azure service (App Configuration, Blob Storage, Cosmos DB) and specific resource/action pairs, making it easy for an agent to select the correct tool without confusion. For example, blob_read and blob_upload target different operations on the same resource, but their names clearly differentiate them.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with underscores, such as 'app_configuration_kv_delete' and 'cosmosdb_item_query'. The naming is highly predictable across all 19 tools, using a service_resource_action structure that enhances readability and agent usability. There are no deviations in style or convention.

Tool Count4/5

With 19 tools, the count is slightly high but reasonable for covering multiple Azure services (App Configuration, Blob Storage, Cosmos DB). Each tool earns its place by providing specific CRUD operations, though it might feel a bit heavy compared to more focused servers. The scope is well-defined, avoiding extreme bloat.

Completeness5/5

The tool set offers complete CRUD/lifecycle coverage for each Azure service domain. For Blob Storage and Cosmos DB, it includes create, read, update (via replace or write), delete, and list operations, with no obvious gaps. App Configuration has read, write, and delete, covering its key-value management needs effectively.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers