AI Search MCP server (legacy)
Visualização
Esse recurso está em Pré-lançamento público.
O servidor MCP de Pesquisa AI é um endpoint MCP de Workspace legado do Databricks que permite aos agentes a execução de pesquisas semânticas sobre seus índices de Pesquisa AI para encontrar documentos relevantes, com os resultados governados pelas permissões do Unity Catalog. A consulta a um índice requer incorporações gerenciadas pelo Databricks.
Abordagem recomendada
Para novos agentes Python, use ferramentas de recuperador do AI Bridge para fazer query diretamente nos seus índices de Pesquisa de AI.
Padrão de URL | Escopo OAuth |
|---|---|
|
|
O AI Search era anteriormente o Vector Search. O prefixo de URL /api/2.0/mcp/vector-search/ anterior e o escopo vector-search ainda funcionam.
Parâmetros de pesquisa de AI _meta
O AI Search é compatível com os seguintes parâmetros _meta:
Nome do parâmetro | Tipo | Descrição |
|---|---|---|
|
| Lista separada por vírgulas de nomes de colunas a serem retornados nos resultados da pesquisa. Exemplo: Se não especificado, todas as colunas (exceto colunas internas que começam com "__") são retornadas. |
|
| Lista separada por vírgulas de nomes de colunas cujo conteúdo o modelo de reclassificação usa para reclassificação. O reclassificador usa este conteúdo para reclassificar todos os resultados da pesquisa para melhorar a relevância. Exemplo: Se não especificado, a reclassificação não é realizada. |
|
| strings JSON contendo filtros a serem aplicados à pesquisa. Deve ser um JSON válido. Exemplo: Se não especificado, nenhum filtro é aplicado. |
|
| Se deve incluir a pontuação de similaridade nos resultados retornados. Valores suportados: default: |
|
| Número de resultados a retornar. Exemplo: |
|
| Algoritmo de pesquisa a ser usado para recuperar resultados. Valores compatíveis: default: |
|
| Limite mínimo de pontuação de similaridade para filtrar resultados. Resultados com pontuações abaixo deste limite são excluídos. Exemplo: Se não especificado, nenhum filtro de pontuação é aplicado. |
Para obter informações detalhadas sobre esses parâmetros, consulte a documentação do SDK do Python para AI Search.
Exemplo: configurar resultados máximos e filtros para a recuperação de Pesquisa de AI
Este exemplo mostra como usar parâmetros _meta para configurar o comportamento da Pesquisa de IA enquanto permite queries dinâmicas do seu agente usando o SDK MCP Python oficial.
Nesse cenário, você deseja:
- Limite sempre os resultados da pesquisa a exatamente 3 itens para tempos de resposta consistentes
- Pesquise apenas documentação recente (atualizada após 01/01/2024) para verificar a relevância
- Use a pesquisa híbrida para obter maior precisão do que a pesquisa vetorial pura
- Retornar apenas colunas específicas (id, text e metadata)
- Incluir pontuações de similaridade nos resultados
- Excluir resultados com pontuações de similaridade abaixo de 0,5
- Use a reclassificação em colunas de texto e título para melhorar a relevância
Para execução deste exemplo, configure seu ambiente Python para desenvolvimento de MCP gerenciado:
# Import required libraries for MCP client and Databricks authentication
import asyncio
from databricks.sdk import WorkspaceClient
from databricks_mcp.oauth_provider import DatabricksOAuthClientProvider
from mcp.client.streamable_http import streamablehttp_client
from mcp.client.session import ClientSession
from mcp.types import CallToolRequest, CallToolResult
async def run_vector_search_tool_call_with_meta():
# Initialize Databricks workspace client for authentication
workspace_client = WorkspaceClient()
# Construct the MCP server URL for your specific catalog and schema
# Replace <workspace-hostname>, YOUR_CATALOG, and YOUR_SCHEMA with your values
mcp_server_url = "https://<workspace-hostname>/api/2.0/mcp/ai-search/YOUR_CATALOG/YOUR_SCHEMA"
# Establish connection to the MCP server with OAuth authentication
async with streamablehttp_client(
url=mcp_server_url,
auth=DatabricksOAuthClientProvider(workspace_client),
) as (read_stream, write_stream, _):
# Create an MCP session for making tool calls
async with ClientSession(read_stream, write_stream) as session:
# Initialize the session before making requests
await session.initialize()
# Create the tool call request with both dynamic and preset parameters
request = CallToolRequest(
method="tools/call",
params={
# Tool name follows the pattern: CATALOG__SCHEMA__INDEX_NAME
"name": "YOUR_CATALOG__YOUR_SCHEMA__YOUR_INDEX_NAME",
# Dynamic arguments - typically provided by your AI agent or user input
"arguments": {
"query": "How do I reset my password?" # This comes from your agent
},
# Meta parameters - preset configuration to control search behavior
"_meta": {
"num_results": "3", # Limit to 3 results for consistent performance
"filters": '{"updated_after": "2024-01-01"}', # JSON string for date filtering
"query_type": "HYBRID", # Use hybrid search for better relevance
"columns": "id,text,metadata", # Return only specific columns
"score_threshold": "0.5", # Filter out results with similarity score < 0.5
"include_score": "true", # Include similarity scores in results
"columns_to_rerank": "text,title" # Use reranker on these columns for better quality
}
}
)
# Send the request and get the response
response = await session.send_request(request, CallToolResult)
return response
# Execute the async function and get results
response = asyncio.run(run_vector_search_tool_call_with_meta())