!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())

[Skip to main content](#__docusaurus_skipToContent_fallback)

LangChain v0.2 is coming soon! Preview the new docs [here](/v0.2/docs/introduction/).

[

![🦜️🔗 Langchain](/v0.1/img/brand/wordmark.png)![🦜️🔗 Langchain](/v0.1/img/brand/wordmark-dark.png)

](/v0.1/)[Docs](/v0.1/docs/get_started/introduction/)[Use cases](/v0.1/docs/use_cases/)[Integrations](/v0.1/docs/integrations/platforms/)[API Reference](https://api.js.langchain.com)

[More](#)

*   [People](/v0.1/docs/people/)
*   [Community](/v0.1/docs/community/)
*   [Tutorials](/v0.1/docs/additional_resources/tutorials/)
*   [Contributing](/v0.1/docs/contributing/)

[v0.1](#)

*   [v0.2](https://js.langchain.com/v0.2/docs/introduction)
*   [v0.1](/v0.1/docs/get_started/introduction/)

[🦜🔗](#)

*   [LangSmith](https://smith.langchain.com)
*   [LangSmith Docs](https://docs.smith.langchain.com)
*   [LangChain Hub](https://smith.langchain.com/hub)
*   [LangServe](https://github.com/langchain-ai/langserve)
*   [Python Docs](https://python.langchain.com/)

[Chat](https://chatjs.langchain.com)[](https://github.com/langchain-ai/langchainjs)

Search

*   [Get started](/v0.1/docs/get_started/)
    
    *   [Introduction](/v0.1/docs/get_started/introduction/)
    *   [Installation](/v0.1/docs/get_started/installation/)
    *   [Quickstart](/v0.1/docs/get_started/quickstart/)
*   [LangChain Expression Language](/v0.1/docs/expression_language/)
    
    *   [Get started](/v0.1/docs/expression_language/get_started/)
    *   [Why use LCEL?](/v0.1/docs/expression_language/why/)
    *   [Interface](/v0.1/docs/expression_language/interface/)
    *   [Streaming](/v0.1/docs/expression_language/streaming/)
    *   [How to](/v0.1/docs/expression_language/how_to/routing/)
        
    *   [Cookbook](/v0.1/docs/expression_language/cookbook/)
        
    *   [LangChain Expression Language (LCEL)](/v0.1/docs/expression_language/)
*   [Modules](/v0.1/docs/modules/)
    
    *   [Model I/O](/v0.1/docs/modules/model_io/)
        
    *   [Retrieval](/v0.1/docs/modules/data_connection/)
        
        *   [Document loaders](/v0.1/docs/modules/data_connection/document_loaders/)
            
        *   [Text Splitters](/v0.1/docs/modules/data_connection/document_transformers/)
            
        *   [Retrievers](/v0.1/docs/modules/data_connection/retrievers/)
            
        *   [Retrieval](/v0.1/docs/modules/data_connection/)
        *   [Text embedding models](/v0.1/docs/modules/data_connection/text_embedding/)
            
        *   [Vector stores](/v0.1/docs/modules/data_connection/vectorstores/)
            
        *   [Indexing](/v0.1/docs/modules/data_connection/indexing/)
        *   [Experimental](/v0.1/docs/modules/data_connection/experimental/multimodal_embeddings/google_vertex_ai/)
            
            *   [Multimodal embedding models](/v0.1/docs/modules/data_connection/experimental/multimodal_embeddings/google_vertex_ai/)
                
            *   [Graph databases](/v0.1/docs/modules/data_connection/experimental/graph_databases/memgraph/)
                
                *   [Memgraph](/v0.1/docs/modules/data_connection/experimental/graph_databases/memgraph/)
                *   [Neo4j](/v0.1/docs/modules/data_connection/experimental/graph_databases/neo4j/)
    *   [Chains](/v0.1/docs/modules/chains/)
    *   [Agents](/v0.1/docs/modules/agents/)
        
    *   [More](/v0.1/docs/modules/memory/)
        
*   [Security](/v0.1/docs/security/)
*   [Guides](/v0.1/docs/guides/)
    
*   [Ecosystem](/v0.1/docs/ecosystem/)
    
*   [LangGraph](/v0.1/docs/langgraph/)
*   * * *
    

*   [](/v0.1/)
*   [Modules](/v0.1/docs/modules/)
*   [Retrieval](/v0.1/docs/modules/data_connection/)
*   Experimental
*   Graph databases
*   Memgraph

On this page

Memgraph
========

Setup[​](#setup "Direct link to Setup")
---------------------------------------

### Install LangChain dependencies[​](#install-langchain-dependencies "Direct link to Install LangChain dependencies")

Install the dependencies needed for Memgraph:

tip

See [this section for general instructions on installing integration packages](/v0.1/docs/get_started/installation/#installing-integration-packages).

*   npm
*   Yarn
*   pnpm

    npm install @langchain/openai neo4j-driver @langchain/community

    yarn add @langchain/openai neo4j-driver @langchain/community

    pnpm add @langchain/openai neo4j-driver @langchain/community

### Install Memgraph[​](#install-memgraph "Direct link to Install Memgraph")

Memgraph bundles the database along with various analytical tools into distinct Docker images. If you're new to Memgraph or you're in a developing stage, we recommend running Memgraph Platform with Docker Compose. Besides the database, it also includes all the tools you might need to analyze your data, such as command-line interface [mgconsole](https://memgraph.com/docs/getting-started/cli), web interface [Memgraph Lab](https://memgraph.com/docs/data-visualization) and a complete set of algorithms within a [MAGE](https://memgraph.com/docs/advanced-algorithms) library.

With the Docker running in the background, run the following command in the console:

Linux/MacOS:

    curl https://install.memgraph.com | sh

Windows:

    iwr https://windows.memgraph.com | iex

For other options of installation, check the [Getting started guide](https://memgraph.com/docs/getting-started).

Usage[​](#usage "Direct link to Usage")
---------------------------------------

The example below shows how to instantiate Memgraph graph, create a small database and retrieve information from the graph by generating Cypher query language statements using `GraphCypherQAChain`.

    import { MemgraphGraph } from "@langchain/community/graphs/memgraph_graph";import { OpenAI } from "@langchain/openai";import { GraphCypherQAChain } from "langchain/chains/graph_qa/cypher";/** * This example uses Memgraph database, an in-memory graph database. * To set it up follow the instructions on https://memgraph.com/docs/getting-started. */const url = "bolt://localhost:7687";const username = "";const password = "";const graph = await MemgraphGraph.initialize({ url, username, password });const model = new OpenAI({ temperature: 0 });// Populate the database with two nodes and a relationshipawait graph.query(  "CREATE (c1:Character {name: 'Jon Snow'}), (c2: Character {name: 'Olly'}) CREATE (c2)-[:KILLED {count: 1, method: 'Knife'}]->(c1);");// Refresh schemaawait graph.refreshSchema();const chain = GraphCypherQAChain.fromLLM({  llm: model,  graph,});const res = await chain.run("Who killed Jon Snow and how?");console.log(res);// Olly killed Jon Snow using a knife.

#### API Reference:

*   [MemgraphGraph](https://api.js.langchain.com/classes/langchain_community_graphs_memgraph_graph.MemgraphGraph.html) from `@langchain/community/graphs/memgraph_graph`
*   [OpenAI](https://api.js.langchain.com/classes/langchain_openai.OpenAI.html) from `@langchain/openai`
*   [GraphCypherQAChain](https://api.js.langchain.com/classes/langchain_chains_graph_qa_cypher.GraphCypherQAChain.html) from `langchain/chains/graph_qa/cypher`

Disclaimer ⚠️
=============

_Security note_: Make sure that the database connection uses credentials that are narrowly-scoped to only include necessary permissions. Failure to do so may result in data corruption or loss, since the calling code may attempt commands that would result in deletion, mutation of data if appropriately prompted or reading sensitive data if such data is present in the database. The best way to guard against such negative outcomes is to (as appropriate) limit the permissions granted to the credentials used with this tool. For example, [creating read only users](https://memgraph.com/docs/configuration/security#role-based-access-control-enterprise) for the database is a good way to ensure that the calling code cannot mutate or delete data. See the [security page](/v0.1/docs/security/) for more information.

* * *

#### Help us out by providing feedback on this documentation page:

[

Previous

Google Vertex AI

](/v0.1/docs/modules/data_connection/experimental/multimodal_embeddings/google_vertex_ai/)[

Next

Neo4j

](/v0.1/docs/modules/data_connection/experimental/graph_databases/neo4j/)

*   [Setup](#setup)
    *   [Install LangChain dependencies](#install-langchain-dependencies)
    *   [Install Memgraph](#install-memgraph)
*   [Usage](#usage)

Community

*   [Discord](https://discord.gg/cU2adEyC7w)
*   [Twitter](https://twitter.com/LangChainAI)

GitHub

*   [Python](https://github.com/langchain-ai/langchain)
*   [JS/TS](https://github.com/langchain-ai/langchainjs)

More

*   [Homepage](https://langchain.com)
*   [Blog](https://blog.langchain.dev)

Copyright © 2024 LangChain, Inc.