Skip to main content

Azure AI Agent Service + Azure AI Search MCP Server

A Model Context Protocol (MCP) server that enables Claude Desktop to search your content using Azure AI services. Choose between Azure AI Agent Service (with both document search and web search) or direct Azure AI Search integration.

demo


Overview

This project provides two MCP server implementations to connect Claude Desktop with Azure search capabilities:

  1. Azure AI Agent Service Implementation (Recommended) - Uses the powerful Azure AI Agent Service to provide:

    • Azure AI Search Tool - Search your indexed documents with AI-enhanced results
    • Bing Web Grounding Tool - Search the web with source citations
  2. Direct Azure AI Search Implementation - Connects directly to Azure AI Search with three methods:

    • Keyword Search - Exact lexical matches
    • Vector Search - Semantic similarity using embeddings
    • Hybrid Search - Combination of keyword and vector searches

Features

  • AI-Enhanced Search - Azure AI Agent Service optimizes search results with intelligent processing
  • Multiple Data Sources - Search both your private documents and the public web
  • Source Citations - Web search results include citations to original sources
  • Flexible Implementation - Choose between Azure AI Agent Service or direct Azure AI Search integration
  • Seamless Claude Integration - All search capabilities accessible through Claude Desktop's interface
  • Customizable - Easy to extend or modify search behavior

Quick Links


Requirements

  • Python: Version 3.10 or higher
  • Claude Desktop: Latest version
  • Azure Resources:
    • Azure AI Search service with an index containing vectorized text data
    • For Agent Service: Azure AI Project with Azure AI Search and Bing connections
  • Operating System: Windows or macOS (instructions provided for Windows, but adaptable)

Azure AI Agent Service Implementation (Recommended)

Setup Guide

  1. Project Directory:

    mkdir mcp-server-azure-ai-search
    cd mcp-server-azure-ai-search
    
  2. Create a .env File:

    echo "PROJECT_CONNECTION_STRING=your-project-connection-string" > .env
    echo "MODEL_DEPLOYMENT_NAME=your-model-deployment-name" >> .env
    echo "AI_SEARCH_CONNECTION_NAME=your-search-connection-name" >> .env
    echo "BING_CONNECTION_NAME=your-bing-connection-name" >> .env
    echo "AI_SEARCH_INDEX_NAME=your-index-name" >> .env
    
  3. Set Up Virtual Environment:

    uv venv
    .venv\Scripts\activate
    uv pip install "mcp[cli]" azure-identity python-dotenv azure-ai-projects
    
  4. Use the azure_ai_agent_service_server.py script for integration with Azure AI Agent Service.

Azure AI Agent Service Setup

Before using the implementation, you need to:

  1. Create an Azure AI Project:

    • Go to the Azure Portal and create a new Azure AI Project
    • Note the project connection string and model deployment name
  2. Create an Azure AI Search Connection:

    • In your Azure AI Project, add a connection to your Azure AI Search service
    • Note the connection name and index name
  3. Create a Bing Web Search Connection:

    • In your Azure AI Project, add a connection to Bing Search service
    • Note the connection name
  4. Authenticate with Azure:

    az login
    

Configuring Claude Desktop

{
  "mcpServers": {
    "azure-ai-agent": {
      "command": "C:\\path\\to\\.venv\\Scripts\\python.exe",
      "args": ["C:\\path\\to\\azure_ai_agent_service_server.py"],
      "env": {
        "PROJECT_CONNECTION_STRING": "your-project-connection-string",
        "MODEL_DEPLOYMENT_NAME": "your-model-deployment-name",
        "AI_SEARCH_CONNECTION_NAME": "your-search-connection-name",
        "BING_CONNECTION_NAME": "your-bing-connection-name",
        "AI_SEARCH_INDEX_NAME": "your-index-name"
      }
    }
  }
}

Note: Replace path placeholders with your actual project paths.


Direct Azure AI Search Implementation

For those who prefer direct Azure AI Search integration without the Agent Service:

  1. Create a different .env File:

    echo "AZURE_SEARCH_SERVICE_ENDPOINT=https://your-service-name.search.windows.net" > .env
    echo "AZURE_SEARCH_INDEX_NAME=your-index-name" >> .env
    echo "AZURE_SEARCH_API_KEY=your-api-key" >> .env
    
  2. Install Dependencies:

    uv pip install "mcp[cli]" azure-search-documents==11.5.2 azure-identity python-dotenv
    
  3. Use the azure_search_server.py script for direct integration with Azure AI Search.

  4. Configure Claude Desktop:

    {
      "mcpServers": {
        "azure-search": {
          "command": "C:\\path\\to\\.venv\\Scripts\\python.exe",
          "args": ["C:\\path\\to\\azure_search_server.py"],
          "env": {
            "AZURE_SEARCH_SERVICE_ENDPOINT": "https://your-service-name.search.windows.net",
            "AZURE_SEARCH_INDEX_NAME": "your-index-name",
            "AZURE_SEARCH_API_KEY": "your-api-key"
          }
        }
      }
    }
    

Testing the Server

  1. Restart Claude Desktop to load the new configuration
  2. Look for the MCP tools icon (hammer icon) in the bottom-right of the input field
  3. Try queries such as:
    • "Search for information about AI in my Azure Search index"
    • "Search the web for the latest developments in LLMs"
    • "Find information about neural networks using hybrid search"

Troubleshooting

  • Server Not Appearing:

    • Check Claude Desktop logs (located at %APPDATA%\Claude\logs\mcp*.log on Windows)
    • Verify file paths and environment variables in the configuration
    • Test running the server directly: python azure_ai_agent_service_server.py or uv run python azure_ai_agent_service_server.py
  • Azure AI Agent Service Issues:

    • Ensure your Azure AI Project is correctly configured
    • Verify that connections exist and are properly configured
    • Check your Azure authentication status

Customizing Your Server

  • Modify Tool Instructions: Adjust the instructions provided to each agent to change how they process queries
  • Add New Tools: Use the @mcp.tool() decorator to integrate additional tools
  • Customize Response Formatting: Edit how responses are formatted and returned to Claude Desktop
  • Adjust Web Search Parameters: Modify the web search tool to focus on specific domains

License

This project is licensed under the MIT License.

Metadata

Release files for iflow-mcp_farzad528-mcp-server-azure-ai-agents 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for iflow-mcp_farzad528-mcp-server-azure-ai-agents 0.1.0
File Size Uploaded
iflow_mcp_farzad528_mcp_server_azure_ai_agents-0.1.0.tar.gz 11.1 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for iflow-mcp_farzad528-mcp-server-azure-ai-agents 0.1.0
File Interpreter ABI Platform
iflow_mcp_farzad528_mcp_server_azure_ai_agents-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 22.1 MB

Release files / iflow_mcp_farzad528_mcp_server_azure_ai_agents-0.1.0.tar.gz

Download URL iflow_mcp_farzad528_mcp_server_azure_ai_agents-0.1.0.tar.gz
Size 11.1 MB
Tags Source
SHA-256 checksum
How to use checksums
472a76235af1bb5f69b3d7039505be1d136706caf74a8af2ce3cc542fa0d7183
BLAKE2b-256 checksum
How to use checksums
1d0b56eebf87e59a08ec5d5a57324b353b913472becb22367348aab8430c1973
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / iflow_mcp_farzad528_mcp_server_azure_ai_agents-0.1.0-py3-none-any.whl

Download URL iflow_mcp_farzad528_mcp_server_azure_ai_agents-0.1.0-py3-none-any.whl
Size 11.1 MB
Tags Python 3
SHA-256 checksum
How to use checksums
3cd47e4cb279885418547491ece627397ed9c82120fedfa320317de3a89fcd53
BLAKE2b-256 checksum
How to use checksums
8922d07c9cf629fe8951af80627d794f36510a37c676ad4ac5a80dc8e6959d26
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page