Skip to main content
Glama

vector_search

Enables vector similarity search in Turso databases by querying specific vectors within a table, returning results based on similarity for advanced data analysis.

Instructions

Performs vector similarity search

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
databaseNoDatabase name (optional, uses context if not provided)
limitNoMaximum number of results (optional, default 10)
query_vectorYesQuery vector for similarity search
tableYesTable name
vector_columnYesColumn containing vectors

Implementation Reference

  • The async handler function that executes the vector similarity search using SQLite vector_distance and vector_from_json functions, constructs the query, executes it via database_client, and formats the results.
    async ({ table, vector_column, query_vector, limit = 10, database }) => { try { const database_name = resolve_database_name(database); if (database) set_current_database(database); // Construct a vector search query using SQLite's vector functions const vector_string = query_vector.join(','); const query = ` SELECT *, vector_distance(${vector_column}, vector_from_json(?)) as distance FROM ${table} ORDER BY distance ASC LIMIT ? `; const params = { 1: `[${vector_string}]`, 2: limit, }; const result = await database_client.execute_query( database_name, query, params, ); const formatted_result = format_query_result(result); return create_tool_response({ database: database_name, table, vector_column, query_vector, results: formatted_result, }); } catch (error) { return create_tool_error_response(error); } },
  • Zod input schema defining parameters for the vector_search tool: table, vector_column, query_vector, optional limit and database.
    const VectorSearchSchema = z.object({ table: z.string().describe('Table name'), vector_column: z.string().describe('Column containing vectors'), query_vector: z.array(z.number()).describe('Query vector for similarity search'), limit: z.number().optional().describe('Maximum number of results (optional, default 10)'), database: z.string().optional().describe('Database name (optional, uses context if not provided)'), });
  • Registration of the vector_search tool with McpServer using name, description, VectorSearchSchema, and the handler function.
    server.tool( { name: 'vector_search', description: 'Performs vector similarity search', schema: VectorSearchSchema, }, async ({ table, vector_column, query_vector, limit = 10, database }) => { try { const database_name = resolve_database_name(database); if (database) set_current_database(database); // Construct a vector search query using SQLite's vector functions const vector_string = query_vector.join(','); const query = ` SELECT *, vector_distance(${vector_column}, vector_from_json(?)) as distance FROM ${table} ORDER BY distance ASC LIMIT ? `; const params = { 1: `[${vector_string}]`, 2: limit, }; const result = await database_client.execute_query( database_name, query, params, ); const formatted_result = format_query_result(result); return create_tool_response({ database: database_name, table, vector_column, query_vector, results: formatted_result, }); } catch (error) { return create_tool_error_response(error); } }, );

Other Tools

Related Tools

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/spences10/mcp-turso-cloud'

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