Skip to main content
Glama
weidongxu-microsoft

Azure Java SDK MCP Server

MCP Server in JavaScript

A Model Context Protocol (MCP) server implementation using JavaScript and the official MCP SDK.

Overview

This project demonstrates how to build an MCP server that can provide tools and resources to AI assistants. The Model Context Protocol enables secure, standardized connections between AI applications and external data sources.

Related MCP server: Azure DevOps MCP Server

Features

This MCP server includes the following tools:

  • azure-java-sdk-code-samples-mcp-server - Get readme.md for Azure Java SDK, which includes introduction, key concepts, and code samples

Prerequisites

  • Node.js (version 18 or higher)

  • npm or yarn package manager

Installation

  1. Clone or download this project

  2. Install dependencies:

npm install

Usage

Running the Server

Start the MCP server:

npm start

For development with debugging:

npm run dev

Or press F5 in VS Code to start debugging.

Connecting to AI Assistants

This MCP server can be connected to various AI assistants that support the Model Context Protocol:

  1. Claude Desktop - See MCP_CONFIG.md for configuration details

  2. Continue.dev - VS Code extension that supports MCP

  3. Other MCP clients - Any client that supports stdio transport

VS Code

Sample mcp.json for connect locally.

{
  // 💡 Inputs are prompted on first server start, then stored securely by VS Code.
  "inputs": [
  ],
  "servers": {
    "azure-java-sdk-mcp": {
      "type": "stdio",
      "command": "node",
      "args": [
        "<path-to-index.js>"
      ]
    }
  }
}

One may need to "start" it once, to cache the tools.

Available VS Code Tasks

  • Run MCP Server - Starts the server normally

  • Debug MCP Server - Starts with Node.js inspector for debugging

Development

Project Structure

├── index.js                     # Main MCP server implementation
├── package.json                 # Project configuration
├── .github/
│   └── copilot-instructions.md  # Copilot customization
└── README.md                    # This file

Adding New Tools

To add a new tool:

  1. Add the tool definition in the ListToolsRequestSchema handler

  2. Implement the tool logic in the CallToolRequestSchema handler

  3. Include proper input validation and error handling

Error Handling

The server uses McpError for proper error responses:

  • ErrorCode.InvalidRequest - For invalid parameters

  • ErrorCode.MethodNotFound - For unknown tools

  • ErrorCode.InternalError - For unexpected errors

MCP Protocol

This server implements the Model Context Protocol specification. For more information about MCP:

License

ISC License

Available Tools

1 tool
azure_java_sdk_code_samplesC

Get code samples for Azure Java SDK, the package name usually starts with 'azure-'

ParametersJSON Schema
NameRequiredDescriptionDefault
packageYespackage name of the Azure SDK, for example: 'azure-ai-inference'

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 what the tool does but lacks critical behavioral details such as whether this is a read-only operation, if it requires authentication, rate limits, error handling, or what format the code samples are returned in. For a tool with zero annotation coverage, this is a significant gap.

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 extremely concise with a single sentence that directly states the tool's purpose and includes a useful parameter hint. There is no wasted language, and it is front-loaded with the core functionality. Every word earns its place.

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 explain what the tool returns (e.g., sample code snippets, links, or documentation), behavioral traits, or error conditions. For a tool with no structured metadata, the description should provide more context to be fully helpful.

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 parameter 'package' fully documented in the input schema. The description adds marginal value by noting that package names 'usually start with 'azure-'', which provides context beyond the schema's example. However, it doesn't elaborate on parameter constraints or usage, so it meets the baseline for high schema 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 tool's purpose with a specific verb ('Get') and resource ('code samples for Azure Java SDK'), making it immediately understandable. It distinguishes the target resource by specifying 'package name usually starts with 'azure-''. However, without sibling tools, differentiation from alternatives isn't explicitly needed, so it doesn't reach the highest 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 or in what context it should be applied. It mentions the package naming convention, but this is more of a parameter hint than usage guidance. No explicit when/when-not instructions or prerequisites are included.

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

TDQS

B3/5.0
Disambiguation5/5

With only one tool, there is no possibility of ambiguity or overlap between tools. The tool has a clear and distinct purpose focused on retrieving code samples for the Azure Java SDK.

Naming Consistency5/5

Since there is only one tool, naming consistency is inherently perfect. The tool name follows a descriptive snake_case pattern that clearly indicates its function.

Tool Count2/5

A single tool is too few for a server named 'Azure Java SDK MCP Server', which suggests a broad domain like Azure services with Java SDK operations. This minimal toolset severely limits functionality and scope, making it inappropriate for the apparent purpose.

Completeness1/5

The toolset is severely incomplete for the domain implied by the server name. It only provides code samples, lacking any CRUD operations, management tasks, or other essential functions for interacting with Azure services via the Java SDK, leaving significant gaps that will cause agent failures.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • -
    license
    Not graded
    quality
    Not graded
    maintenance
    A reference server implementation for the Model Context Protocol that enables AI assistants to interact with Azure DevOps resources and perform operations such as project management, work item tracking, repository operations, and code search programmatically.
    7
  • -
    license
    B
    quality
    Not graded
    maintenance
    A Model Context Protocol server that enables AI assistants to fetch and understand GitHub repository documentation on-demand from DeepWiki during conversations.
    3

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/weidongxu-microsoft/mcp-azure-java-sdk-assist'

If you have feedback or need assistance with the MCP directory API, please join our Discord server