Back to MCP Servers

Weaviate MCP Server

Official Weaviate MCP server (Go) exposing two tools for inserting objects into and running hybrid search queries against a Weaviate vector database.

Data & Enrichment by Weaviate None active
Overview

The Weaviate MCP Server is an official, Go-based reference implementation of a Model Context Protocol server that lets an AI agent push objects into a Weaviate vector database and retrieve them using Weaviate's hybrid search. It is published in the weaviate/mcp-server-weaviate GitHub repository alongside a small test client that demonstrates a round-trip insert-then-query workflow.

The server exposes two tools: weaviate-insert-one, which writes a single object with arbitrary properties into a target collection, and weaviate-query, which performs a hybrid (vector plus keyword) search and returns a chosen set of properties. Both default to a DefaultCollection if no collection name is supplied, and the client example in the repo shows the tools being used against a WorldMap collection with continent, country, and city fields.

The project is intentionally minimal. The current implementation hardcodes the Weaviate connection to http://localhost:8080 and the README does not yet document environment variables, authentication, or a Claude Desktop config block. A TODO: get config from env comment in the source indicates env-based configuration is planned. For production use against Weaviate Cloud or a secured cluster you will likely need to fork and modify the connection setup.

Tools

Tool Description
weaviate-insert-one Insert a single object into a Weaviate collection. Falls back to the default collection if none is specified.
weaviate-query Retrieve objects from Weaviate using hybrid search and return a chosen set of properties.
Setup Guide

Prerequisites

  • Go toolchain (the server is written in Go)
  • A running Weaviate instance reachable at http://localhost:8080 (the connection is currently hardcoded in weaviate.go)
  • An MCP-compatible client such as Claude Desktop or Cursor

Clone and build

git clone https://github.com/weaviate/mcp-server-weaviate.git
cd mcp-server-weaviate
make build

make build compiles the server binary into the client/ directory as mcp-server. A second target, make run-client, runs the bundled Go test client (client/client.go) which inserts a sample object into a WorldMap collection and then issues a hybrid query against it.

MCP client configuration

The README does not yet ship a Claude Desktop config snippet. The server speaks MCP over stdio, so a typical configuration pointing at the compiled binary looks like:

{
  "mcpServers": {
    "weaviate": {
      "command": "/absolute/path/to/mcp-server-weaviate/client/mcp-server"
    }
  }
}

Notes

  • The Weaviate host, scheme, and port are hardcoded to localhost:8080 over HTTP. To target Weaviate Cloud or a secured cluster you currently need to edit weaviate.go and rebuild.
  • There is no built-in API key or OpenAI key handling in main.go yet, despite a TODO: get all WeaviateConn config from env comment.
  • For documentation lookups specifically (rather than data operations) Weaviate also ships a separate hosted Docs MCP server at https://weaviate-docs.mcp.kapa.ai.
Use Cases
  • Index structured records (people, places, products) into a local Weaviate collection from an agent conversation and immediately query them back with hybrid search.
  • Prototype RAG workflows where the agent writes intermediate facts to a vector store and retrieves them later in the same session.
  • Demo Weaviate hybrid search to stakeholders by letting them ask natural language questions like "What country is Valencia in?" against agent-inserted data.
  • Build a quick semantic memory layer for an experimental agent without writing custom Weaviate client code.
Example Prompts
  • "Insert an object into the WorldMap collection with continent Europe, country Spain, city Valencia."
  • "Query Weaviate for 'What country is Valencia in?' and return continent, country, and city."
  • "Add three product records to the Products collection with name, category, and description fields."
  • "Run a hybrid search for 'lightweight running shoes' and return the name and price properties."
Pros
  • Official Weaviate-org repository, so the contract is closer to canonical than community forks.
  • Tiny and easy to read: two tools, a single Go binary, and a working client example you can run end to end with make run-client.
  • Covers the two operations that matter most for agent memory: write one object and hybrid-search the collection.
Limitations
  • Very limited surface area: only insert-one and query. No batch insert, no schema/collection management, no delete, no update.
  • Connection settings (host, scheme, API key, OpenAI key) are hardcoded to localhost:8080. There is a TODO to read them from environment variables but it is not implemented.
  • README is sparse: no documented config JSON, no environment variables, and request/response bodies are shown as empty {}.
Alternatives
  • sajal2692/mcp-weaviate: community FastMCP-based Python server for Weaviate, deployable with uvx.
  • Weaviate Docs MCP Server: Weaviate's hosted MCP for searching documentation, not data, at https://weaviate-docs.mcp.kapa.ai.
  • Other vector DB MCP servers such as the official Qdrant or Pinecone MCP servers if you are choosing a stack rather than committed to Weaviate.