Start a Weaviate instance via Docker Compose or connect to a Weaviate Cloud cluster; instantiate the Python client with weaviate.connect_to_local() or weaviate.connect_to_weaviate_cloud().
Create a collection (formerly class) with client.collections.create(name='NAME', properties=[Property(name='text', data_type=DataType.TEXT)], vectorizer_config=Configure.Vectorizer.text2vec_openai()) or another vectorizer.
Import objects using collection.data.insert_many([{'text': 'some content', ...}]) to batch-insert documents; Weaviate vectorizes them automatically if a vectorizer is configured.
Perform a hybrid search combining keyword (BM25) and vector similarity: collection.query.hybrid(query='search terms', alpha=0.5, limit=10) where alpha controls the balance between keyword and vector results.
Access each result object's properties and metadata (including score) from the returned objects list.
Add filters with the Filter helper class to restrict results by property values before running the hybrid query.
Known gotchas
The alpha parameter in hybrid search ranges from 0 (pure BM25 keyword) to 1 (pure vector); values outside this range are invalid.
Weaviate's v4 Python client has a significantly different API than the v3 client; mixing method calls from the two versions causes AttributeError.
If no vectorizer module is configured for a collection and you attempt a vector search, Weaviate returns an error; either configure a vectorizer or supply vectors explicitly during import.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp