Skip to main content
Glama
AkM-2018

Amazon Neptune MCP Server

by AkM-2018

AWS Labs Amazon Neptune MCP Server

An Amazon Neptune MCP server that allows for fetching status, schema, and querying using openCypher and Gremlin for Neptune Database and openCypher for Neptune Analytics.

Features

The Amazon Neptune MCP Server provides the following capabilities:

  1. Run Queries: Execute openCypher and/or Gremlin queries against the configured database

  2. Schema: Get the schema in the configured graph as a text string

  3. Status: Find if the graph is "Available" or "Unavailable" to your server. This is useful in helping to ensure that the graph is connected.

AWS Requirements

  1. AWS CLI Configuration: You must have the AWS CLI configured with credentials and an AWS_PROFILE that has access to Amazon Neptune

  2. Amazon Neptune: You must have at least one Amazon Neptune Database or Amazon Neptune Analytics graph.

  3. IAM Permissions: Your IAM role/user must have appropriate permissions to:

    • Access Amazon Neptune

    • Query Amazon Neptune

  4. Access: The location where you are running the server must have access to the Amazon Neptune instance. Neptune Database resides in a private VPC so access into the private VPC. Neptune Analytics can be access either using a public endpoint, if configured, or the access will be needed to the private endpoint.

Note: This server will run any query sent to it, which could include both mutating and read-only actions. Properly configuring the permissions of the role to allow/disallow specific data plane actions as specified here:

Related MCP server: neo4j-server-remote

Prerequisites

  1. Install uv from Astral or the GitHub README

  2. Install Python using uv python install 3.10

Installation

Install MCP Server

Below is an example of how to configure your MCP client, although different clients may require a different format.

{
  "mcpServers": {
    "Neptune Query": {
      "command": "uvx",
      "args": ["awslabs.amazon-neptune-mcp-server@latest"],
      "env": {
        "FASTMCP_LOG_LEVEL": "INFO",
        "NEPTUNE_ENDPOINT": "<INSERT NEPTUNE ENDPOINT IN FORMAT SPECIFIED BELOW>"
      }
    }
  }
}

Docker Configuration

After building with docker build -t awslabs/amazon-neptune-mcp-server .:

{
  "mcpServers": {
    "awslabs.amazon-neptune-mcp-server": {
        "command": "docker",
        "args": [
          "run",
          "--rm",
          "-i",
          "awslabs/amazon-neptune-mcp-server"
        ],
        "env": {
        "FASTMCP_LOG_LEVEL": "INFO",
        "NEPTUNE_ENDPOINT": "<INSERT NEPTUNE ENDPOINT IN FORMAT SPECIFIED BELOW>"
        },
        "disabled": false,
        "autoApprove": []
    }
  }
}

When specifying the Neptune Endpoint the following formats are expected:

For Neptune Database: neptune-db://<Cluster Endpoint>

For Neptune Analytics: neptune-graph://<graph identifier>

Available Tools

4 tools
get_graph_schemaB

Get the schema for the graph including the vertex and edge labels as well as the (vertex)-[edge]->(vertex) combinations.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It describes what the tool returns (schema information) but lacks details on permissions, rate limits, error handling, or response format. For a tool with zero annotation coverage, this is insufficient, scoring a 2 due to missing critical behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured, using two sentences that efficiently convey the tool's purpose. It front-loads the main action ('Get the schema') and adds specific details without waste, making it easy to parse. Every sentence earns its place, justifying a score of 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (0 parameters, no output schema, no annotations), the description is adequate but has clear gaps. It explains what the tool retrieves but lacks output details or behavioral context, which is needed for full completeness. This meets the minimum viable standard, scoring a 3.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately focuses on the tool's purpose without redundant parameter details. This aligns with the baseline of 4 for zero-parameter tools, as it adds value by explaining what the tool does without unnecessary repetition.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with specific verbs ('Get the schema for the graph') and resources ('vertex and edge labels', 'combinations'), making it easy to understand what it does. It doesn't explicitly distinguish from sibling tools like 'get_graph_status' or query tools, but the focus on schema retrieval is distinct enough for a 4.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'get_graph_status' for status checks or query tools for data retrieval, leaving the agent without context for tool selection. This lack of comparative usage information results in a score of 2.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_graph_statusB

Get the status of the currently configured Amazon Neptune graph.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It states this is a read operation ('Get'), implying it's non-destructive, but doesn't mention authentication requirements, rate limits, error conditions, or what 'status' entails (e.g., health metrics, configuration details). The description is minimal and lacks operational context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with no wasted words. It's front-loaded with the core action ('Get the status'), making it immediately clear. Every word earns its place, and there's no redundancy or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (0 parameters, no annotations, no output schema), the description is incomplete. It doesn't explain what 'status' includes (e.g., uptime, version, connectivity) or the return format, leaving the agent guessing. For a status-checking tool, this lacks necessary operational context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and schema description coverage is 100% (empty schema). The description doesn't need to explain parameters, and it correctly implies no inputs are required by focusing on the 'currently configured' graph. This meets the baseline of 4 for zero-parameter tools.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Get') and resource ('status of the currently configured Amazon Neptune graph'), making the purpose immediately understandable. It doesn't explicitly differentiate from sibling tools like 'get_graph_schema' or query tools, but the focus on 'status' rather than schema or query execution provides implicit distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'get_graph_schema' or the query tools. It doesn't mention prerequisites (e.g., whether a graph must be configured first) or typical use cases (e.g., health checks, monitoring). The agent receives no explicit usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_gremlin_queryC

Executes the provided Tinkerpop Gremlin against the graph.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool executes a query but doesn't describe what that entails—e.g., whether it's read-only or mutative, if it requires specific permissions, potential side effects, or response format. This leaves significant gaps for a query execution tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with zero waste. It's front-loaded and appropriately sized for the tool's complexity, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, 0% schema coverage, and no output schema, the description is incomplete. It lacks details on behavioral traits, parameter usage, and expected outputs, which are crucial for a query execution tool with potential complexity and side effects.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the schema provides no parameter details. The description mentions 'the provided Tinkerpop Gremlin' which hints at the 'query' parameter's content, but it doesn't explain the query format, syntax, or any constraints, offering minimal semantic value beyond the parameter name.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Executes') and the resource ('Tinkerpop Gremlin against the graph'), making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools like 'run_opencypher_query' beyond mentioning Gremlin specifically, which is implied but not contrasted.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'run_opencypher_query' for OpenCypher queries or when to prefer one query language over another, leaving usage context unclear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_opencypher_queryC

Executes the provided openCypher against the graph.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
parametersNo

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the basic action without details on permissions, rate limits, error handling, or what 'executes' entails (e.g., read-only vs. mutating queries). This leaves significant gaps in understanding the tool's behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with zero waste. It is appropriately sized and front-loaded, clearly stating the tool's purpose without unnecessary elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of a query execution tool with no annotations, no output schema, and low schema coverage, the description is incomplete. It lacks details on return values, error cases, and behavioral traits, making it inadequate for an agent to use the tool effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for undocumented parameters. It mentions 'provided openCypher' which hints at the 'query' parameter but does not explain the 'parameters' parameter or provide any syntax, format, or examples. This adds minimal value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the tool 'Executes the provided openCypher against the graph,' which clearly identifies the action (executes) and resource (openCypher query on a graph). However, it lacks specificity about what openCypher is or how it differs from sibling tools like run_gremlin_query, making it somewhat vague rather than fully distinguishing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It does not mention sibling tools like run_gremlin_query for different query languages or get_graph_schema for schema inspection, leaving the agent without context for tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 4 tool updatesv1.0.1
    • First observedget_graph_schema
    • First observedget_graph_status
    • First observedrun_gremlin_query
    • First observedrun_opencypher_query

TDQS

B3.2/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose with no overlap: get_graph_schema retrieves schema information, get_graph_status checks system status, run_gremlin_query executes Gremlin queries, and run_opencypher_query executes openCypher queries. The descriptions make it unambiguous which tool to use for each type of operation.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern with snake_case: get_graph_schema, get_graph_status, run_gremlin_query, and run_opencypher_query. The naming is predictable and readable throughout the set.

Tool Count4/5

With 4 tools, the count is reasonable for a graph database server, covering schema, status, and query execution. It might be slightly thin for advanced operations like data manipulation or monitoring, but it's well-scoped for core functionality.

Completeness3/5

The tools cover schema retrieval, status checks, and query execution for two query languages (Gremlin and openCypher), which is good for basic operations. However, there are notable gaps: no tools for creating/updating/deleting data, managing configurations, or handling transactions, which could limit agent workflows in a database context.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • -
    license
    A
    quality
    Not graded
    maintenance
    Enables access to Amazon Managed Prometheus workspaces through natural language queries. Supports listing workspaces, executing PromQL queries, and retrieving workspace details and metrics with AWS authentication.
    4
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables interaction with Neo4j graph databases through Cypher queries, supporting both read and write operations, schema exploration, and remote database connections via SSE or STDIO transport protocols.
    5
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants to interact with Gremlin-compatible graph databases through natural language, supporting schema discovery, complex graph queries, relationship analysis, and data import/export operations.
    18
    9
    MIT

Appeared in Searches

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/AkM-2018/tmp_amazon_neptune_mcp_server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server