Skip to content

Conversation

@Jonathan-Improving
Copy link

@Jonathan-Improving Jonathan-Improving commented Dec 1, 2025

Summary

Changes

Provides a full semantic search MCP for Valkey, leveraging its VSS capabilities, and encapsulating vector embeddings so that agents can interop using pure natural language and/or keywords.

User experience

The role of a data scientist would first add documents to the Valkey database using the add_documents MCP, under a specifically named collection, that can be sought using semantic search. The role of researcher would leverage the semantic_search MCP to seek for documents added under a specifically named collection, or query the list_collections MCP to find out what named collections are available for searching.

Checklist

If your change doesn't seem to apply, please leave them unchecked.

  • I have reviewed the contributing guidelines
  • I have performed a self-review of this change
  • Changes have been tested
  • Changes are documented

Not a breaking change.

RFC issue number:

Checklist:

  • Migration process documented
  • Implement warnings (if it can live side by side)

Acknowledgment

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of the project license.

@Jonathan-Improving Jonathan-Improving changed the title Semantic Search MCP for VAlkey Semantic Search MCP for Valkey Dec 1, 2025
Example:
provider = BedrockEmbeddings(
region_name="us-east-1",
model_id="amazon.titan-embed-text-v1"
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

}

except Exception as e:
return f"Error adding documents: {str(e)}"
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We didn't tell in our docstring about this return structure. Could we rather return here a dict smilar to that from the happy path? Something like:

return {
     "status": "failure",
     "added": 0,
     "failure_reason": str(e)
  }

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yep, the other methods return a list, so they're keeping the union of list and string for now. Might be worth thinking about that further though, I just wanted to keep the return structure clutter-free.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: To triage

Development

Successfully merging this pull request may close these issues.

3 participants