DiceDB MCP logo

DiceDB MCP

by pottekkat

DiceDB MCP is a Model Context Protocol (MCP) server implementation for DiceDB, enabling interactions between AI applications and DiceDB database servers. It utilizes the DiceDB Go SDK for communication.

View on GitHub

Last updated: N/A

DiceDB MCP

A Model Context Protocol (MCP) server implementation for DiceDB to enable interactions between AI applications (hosts/clients) and DiceDB database servers.

This implementation uses the DiceDB Go SDK to communicate with DiceDB.

Check out the demo video to see it in action!

Features

  • PING DiceDB to check connectivity.
  • ECHO a message through DiceDB.
  • GET a value from DiceDB by key.
  • SET a key-value pair in DiceDB.
  • DEL one or more keys from DiceDB.
  • INCR the integer value of a key by one.
  • DECR the integer value of a key by one.

Installation

Prerequisites:

  • Go 1.24 or higher
go install github.com/pottekkat/dicedb-mcp@latest

Get the path to the dicedb-mcp binary:

which dicedb-mcp

Usage

With MCP Hosts/Clients

Add this to your claude_desktop_config.json for Claude Desktop or mcp.json for Cursor:

{
    "mcpServers": {
        "dicedb-mcp": {
            "command": "path/to/dicedb-mcp"
        }
    }
}

With OpenAI Agents SDK

The example below shows how to use the dicedb-mcp server with the OpenAI Agents SDK:

from agents import Agent, Runner, trace
from agents.mcp import MCPServer, MCPServerStdio
from dotenv import load_dotenv
import os
import openai
import asyncio

load_dotenv()


async def run(mcp_server: MCPServer, prompt: str, server_url: str):
    agent = Agent(name="DiceDB MCP",
                  instructions=f"""You can interact with a DiceDB database
                                  running at {server_url}, use
                                  this for url.""",
                  mcp_servers=[mcp_server],)
    result = await Runner.run(starting_agent=agent, input=prompt)
    print(result.final_output)


async def main():
    openai.api_key = os.getenv("OPENAI_API_KEY")

    prompt = "Can you change the value of the 'name' key to 'Rachel Green'?"
    server_url = "localhost:7379"

    async with MCPServerStdio(
        cache_tools_list=True,
        params={"command": "path/to/dicedb-mcp", "args": [""]},
    ) as server:
        with trace(workflow_name="DiceDB MCP"):
            await run(server, prompt, server_url)


if __name__ == "__main__":
    asyncio.run(main())

Available Tools

ping

Pings a DiceDB server to check connectivity.

echo

Echoes a message through the DiceDB server.

get

Retrieves a value from DiceDB by key.

set

Sets a key-value pair in DiceDB.

del

Deletes one or more keys from DiceDB.

incr

Increments the integer value of a key by one.

decr

Decrements the integer value of a key by one.

Development

Fork and clone the repository:

git clone https://github.com/username/dicedb-mcp.git

Change into the directory:

cd dicedb-mcp

Install dependencies:

make deps

Build the project:

make build

Update your MCP servers configuration to point to the local build:

{
    "mcpServers": {
        "dicedb-mcp": {
            "command": "/path/to/dicedb-mcp/dist/dicedb-mcp"
        }
    }
}

License

MIT License