Experimental MCP Service for Azure AI Search

by projectAcetylcholine

347 downloads Not rated yet MIT license
GitHub

About

An experimental MCP service for Azure AI Search in Python

Details

License
MIT license

Explore

- List and describe indices and their schemas.
- Create, modify, and delete indices.
- Add, query, and delete documents.
- Manage indexers, data sources, and skill sets.
- Fetch contents from local files or URLs.
- Supports service principal and API key authentication.

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Experimental MCP Service for Azure AI Search
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

Pre-Requisites

You will need to have configured a Service Principal that will be used to authentic against the AI Search service you are interacting with. You may also use the AI Search Key with read/write privilleges on the index dependening on what capabilities you are looking to leverage from the service.

Python 3.12 or later is needed, and you have to install uv as well to leverage the service.

The repository below contains a Terraform script that can accelerate the provisioning of an AI Search service and service principal necessary to help you get started.

list_index_names

READ_INDEX

list_index_schemas

READ_INDEX

retrieve_index_schema

READ_INDEX

create_index

WRITE_INDEX

modify_index

WRITE_INDEX

delete_index

WRITE_INDEX

add_document

WRITE_DOCUMENTS

delete_document

WRITE_DOCUMENTS

query_index

READ_DOCUMENTS

get_document_count

READ_DOCUMENTS

list_indexers

READ_INDEXER

get_indexer

READ_INDEXER

create_indexer

WRITE_INDEXER

delete_indexer

WRITE_INDEXER

list_data_sources

READ_INDEXER

get_data_source

READ_INDEXER

list_skill_sets

READ_INDEXER

get_skill_set

READ_INDEXER

fk_fetch_local_file_contents

FETCH_FILE_CONTENTS

fk_fetch_url_contents

FETCH_FILE_CONTENTS

For the time being, the following tools are available from the service:

| Tool Name | Tool Group | Tool Description |
|-----------------------------------------|---------------------|----------------------------------------------------------------------------------|
| list_index_names | READ_INDEX | Retrieve all names of indexes from the AI Search Service |
| list_index_schemas | READ_INDEX | Retrieve all index schemas from the AI Search Service |
| retrieve_index_schema | READ_INDEX | Retrieve the schema for a specific index from the AI Search Service |
| create_index | WRITE_INDEX | Creates a new index |
| modify_index | WRITE_INDEX | Modifies the index definition of an existing inde |
| delete_index | WRITE_INDEX | Removes an existing index |
| add_document | WRITE_DOCUMENTS | Adds a document to the index |
| delete_document | WRITE_DOCUMENTS | Removes a document from the index |
| query_index | READ_DOCUMENTS | Searches a specific index to retrieve matching documents |
| get_document_count | READ_DOCUMENTS | Returns the total number of documents in the index |
| list_indexers | READ_INDEXER | Retrieve all names of indexers from the AI Search Service |
| get_indexer | READ_INDEXER | Retrieve the full definition of a specific indexer from the AI Search Service |
| create_indexer | WRITE_INDEXER | Create a new indexer in the Search Service with the skill, index and data source |
| delete_indexer | WRITE_INDEXER | Delete an indexer from the AI Search Service by name |
| list_data_sources | READ_INDEXER | Retrieve all names of data sources from the AI Search Service |
| get_data_source | READ_INDEXER | Retrieve the full definition of a specific data source |
| list_skill_sets | READ_INDEXER | Retrieve all names of skill sets from the AI Search Service |
| get_skill_set | READ_INDEXER | Retrieve the full definition of a specific skill set |
| fk_fetch_local_file_contents | FETCH_FILE_CONTENTS | Retrieves the contents of a local file path (sample JSON, document etc) |
| fk_fetch_url_contents | FETCH_FILE_CONTENTS | Retrieves the contents of a URL (sample JSON, document etc) |

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "experimental mcp service for azure ai search": {
            "mcp-server-azure-ai-search-python-preview": {
                "command": "uv",
                "args": [
                    "build"
                ]
            }
        }
    }
}

McpServers

{
    "mcp-server-azure-ai-search-python-preview": {
        "command": "uv",
        "args": [
            "build"
        ]
    }
}

This experimental MCP service provides you with the following capabilities:

- Retrieve a List of AI Search Indices from your Service
- Get Details about the Schema and Configuration of a Specific AI Search Service
- Create new Indices
- Update Existing Indices
- Run Queries against specific AI Search Indices
- Create and Update indexers

Important Disclaimers

We are still implementing and testing out these capabilities.

Some of the tool groups described above are not yet available but would be coming soon.

We are continuously working on adding and upgrading the service capabilities. More tools are going to be added in the near future.

These tools have the ability to modify data in your AI Search Service.

Please note that all tools are currently marked experimental and may change behavior without advanced notice.

You should always review and verify all AI-generated content for accuracy and correctness.

Please proceed with caution and use at your own risk.

Available Tools

For the time being, the following tools are available from the service:

| Tool Name | Tool Group | Tool Description |
|-----------------------------------------|---------------------|----------------------------------------------------------------------------------|
| list_index_names | READ_INDEX | Retrieve all names of indexes from the AI Search Service |
| list_index_schemas | READ_INDEX | Retrieve all index schemas from the AI Search Service |
| retrieve_index_schema | READ_INDEX | Retrieve the schema for a specific index from the AI Search Service |
| create_index | WRITE_INDEX | Creates a new index |
| modify_index | WRITE_INDEX | Modifies the index definition of an existing inde |
| delete_index | WRITE_INDEX | Removes an existing index |
| add_document | WRITE_DOCUMENTS | Adds a document to the index |
| delete_document | WRITE_DOCUMENTS | Removes a document from the index |
| query_index | READ_DOCUMENTS | Searches a specific index to retrieve matching documents |
| get_document_count | READ_DOCUMENTS | Returns the total number of documents in the index |
| list_indexers | READ_INDEXER | Retrieve all names of indexers from the AI Search Service |
| get_indexer | READ_INDEXER | Retrieve the full definition of a specific indexer from the AI Search Service |
| create_indexer | WRITE_INDEXER | Create a new indexer in the Search Service with the skill, index and data source |
| delete_indexer | WRITE_INDEXER | Delete an indexer from the AI Search Service by name |
| list_data_sources | READ_INDEXER | Retrieve all names of data sources from the AI Search Service |
| get_data_source | READ_INDEXER | Retrieve the full definition of a specific data source |
| list_skill_sets | READ_INDEXER | Retrieve all names of skill sets from the AI Search Service |
| get_skill_set | READ_INDEXER | Retrieve the full definition of a specific skill set |
| fk_fetch_local_file_contents | FETCH_FILE_CONTENTS | Retrieves the contents of a local file path (sample JSON, document etc) |
| fk_fetch_url_contents | FETCH_FILE_CONTENTS | Retrieves the contents of a URL (sample JSON, document etc) |

MCP Service Tool Groups

We do not want your MCP Host to be overwhelmed with the amount of tools coming from this service.

These are the available tool groups and their purposes:

- READ_OPERATIONS - tools used for read-only operations
- WRITE_OPERATIONS - tools that are used for creating, modifying or removing entries. Alias for ALL
- READ_INDEX - tools used to list and describe the indices in the service
- WRITE_INDEX - tools used to Create, delete, update, or configure indices
- READ_DOCUMENTS - tools used to query the indices to retrieve documents
- WRITE_DOCUMENTS - tools for Adding, Updating or Deleting documents from an index
- WRITE_INDEXERS - tools used to configure indexers, data sources & skill sets
- READ_INDEXERS - tools used to retrieve information about data sources, skill sets and indexers

Pre-Requisites

You will need to have configured a Service Principal that will be used to authentic against the AI Search service you are interacting with. You may also use the AI Search Key with read/write privilleges on the index dependening on what capabilities you are looking to leverage from the service.

Python 3.12 or later is needed, and you have to install uv as well to leverage the service.

The repository below contains a Terraform script that can accelerate the provisioning of an AI Search service and service principal necessary to help you get started.

Installing Dependencies

Follow the links below to install uv, python and the module containing the MCP service

- Installing uv
- Installing Python if Necessary with uv

You can install the mcp service as follows:

````bash

uv build

pip install dist/mcp_server_azure_ai_search_preview-0.3.1-py3-none-any.whl

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.