Skip to main content
Glama
nebula-contrib

NebulaGraph MCP Server

README.md
# Model Context Protocol Server for NebulaGraph


A Model Context Protocol (MCP) server implementation that provides access to [NebulaGraph](https://github.com/vesoft-inc/nebula).

[![PyPI - Version](https://img.shields.io/pypi/v/nebulagraph-mcp-server)](https://pypi.org/project/nebulagraph-mcp-server/)
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/nebulagraph-mcp-server)](https://pypi.org/project/nebulagraph-mcp-server/)
[![Lint and Test](https://github.com/PsiACE/nebulagraph-mcp-server/actions/workflows/test.yml/badge.svg)](https://github.com/PsiACE/nebulagraph-mcp-server/actions/workflows/test.yml)

## Features

- Seamless access to NebulaGraph 3.x .
- Get ready for graph exploration, you know, Schema, Query, and a few shortcut algorithms.
- Follow Model Context Protocol, ready to integrate with LLM tooling systems.
- Simple command-line interface with support for configuration via environment variables and .env files.

![LlamaIndex with NebulaGraph MCP](./assets/llamaindex-with-nebulagraph-mcp.png)

## Installation

```shell
pip install nebulagraph-mcp-server
```

## Usage

`nebulagraph-mcp-server` will load configs from `.env`, for example:

```
NEBULA_VERSION=v3 # only v3 is supported
NEBULA_HOST=<your-nebulagraph-server-host>
NEBULA_PORT=<your-nebulagraph-server-port>
NEBULA_USER=<your-nebulagraph-server-user>
NEBULA_PASSWORD=<your-nebulagraph-server-password>
```

> It requires the value of `NEBULA_VERSION` to be equal to v3 until we are ready for v5.

## Development

```shell
npx @modelcontextprotocol/inspector \
  uv run nebulagraph-mcp-server
```

## Credits

The layout and workflow of this repo is copied from [mcp-server-opendal](https://github.com/Xuanwo/mcp-server-opendal).

TDQS

B3.3/5.0

Scored across 5 tools

Disambiguation5/5

Each tool has a clearly distinct purpose with no overlap: execute_query for general queries, find_neighbors for vertex adjacency, find_path for pathfinding, get_space_schema for schema inspection, and list_spaces for space enumeration. The descriptions reinforce these distinct functions, making tool selection unambiguous.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern (e.g., execute_query, find_neighbors, list_spaces) with clear, descriptive verbs. There are no deviations in style or convention, making the naming predictable and easy to understand across the set.

Tool Count5/5

With 5 tools, this server is well-scoped for graph database operations, covering essential functions like querying, traversal, pathfinding, and schema management. Each tool earns its place without feeling excessive or insufficient for the domain.

Completeness4/5

The tool set provides strong coverage for core graph operations, including query execution, neighbor and path finding, and space/schema inspection. A minor gap exists in CRUD operations for vertices or edges (e.g., create, update, delete), but agents can likely work around this with queries.

Maintenance

ActivityInactive
ResponsivenessNo issues