MCP Embedding Search
mcp-embedding-search
A Model Context Protocol (MCP) server that queries a Turso database containing embeddings and transcript segments. This tool allows users to search for relevant transcript segments by asking questions, without generating new embeddings.
Features
🔍 Vector similarity search for transcript segments
📊 Relevance scoring based on cosine similarity
📝 Complete transcript metadata (episode title, timestamps)
⚙️ Configurable search parameters (limit, minimum score)
🔄 Efficient database connection pooling
🛡️ Comprehensive error handling
📈 Performance optimized for quick responses
Configuration
This server requires configuration through your MCP client. Here are examples for different environments:
Cline Configuration
Add this to your Cline MCP settings:
{
"mcpServers": {
"mcp-embedding-search": {
"command": "node",
"args": ["/path/to/mcp-embedding-search/dist/index.js"],
"env": {
"TURSO_URL": "your-turso-database-url",
"TURSO_AUTH_TOKEN": "your-turso-auth-token"
}
}
}
}Claude Desktop Configuration
Add this to your Claude Desktop configuration:
{
"mcpServers": {
"mcp-embedding-search": {
"command": "node",
"args": ["/path/to/mcp-embedding-search/dist/index.js"],
"env": {
"TURSO_URL": "your-turso-database-url",
"TURSO_AUTH_TOKEN": "your-turso-auth-token"
}
}
}
}API
The server implements one MCP tool:
search_embeddings
Search for relevant transcript segments using vector similarity.
Parameters:
question(string, required): The query text to search forlimit(number, optional): Number of results to return (default: 5, max: 50)min_score(number, optional): Minimum similarity threshold (default: 0.5, range: 0-1)
Response format:
[
{
"episode_title": "Episode Title",
"segment_text": "Transcript segment content...",
"start_time": 123.45,
"end_time": 167.89,
"similarity": 0.85
}
// Additional results...
]Database Schema
This tool expects a Turso database with the following schema:
CREATE TABLE embeddings (
id INTEGER PRIMARY KEY AUTOINCREMENT,
transcript_id INTEGER NOT NULL,
embedding TEXT NOT NULL,
FOREIGN KEY(transcript_id) REFERENCES transcripts(id)
);
CREATE TABLE transcripts (
id INTEGER PRIMARY KEY AUTOINCREMENT,
episode_title TEXT NOT NULL,
segment_text TEXT NOT NULL,
start_time REAL NOT NULL,
end_time REAL NOT NULL
);The embedding column should contain vector embeddings that can be
used with the vector_distance_cos function.
Development
Setup
Clone the repository
Install dependencies:
npm installBuild the project:
npm run buildRun in development mode:
npm run devPublishing
The project uses changesets for version management. To publish:
Create a changeset:
npm run changesetVersion the package:
npm run versionPublish to npm:
npm run releaseContributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
MIT License - see the LICENSE file for details.
Acknowledgments
Built on the Model Context Protocol
Designed for efficient vector similarity search in transcript databases
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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-embedding-search'
If you have feedback or need assistance with the MCP directory API, please join our Discord server