Developers

Connected in about five minutes.

There is no CognoDB SDK to learn. CognoDB speaks the Bolt protocol and understands Cypher, so the official Neo4j drivers are the client library — Python, JavaScript, Go, Java, .NET.

  1. 01

    Create an instance

    Sign up and create a free c0 instance. It provisions in well under a minute and you pick the region.

  2. 02

    Copy the connection details

    You get a bolt+ssc:// URI and a password. The password is shown exactly once — store it where your application reads its secrets.

  3. 03

    Point your driver at it

    Install the official Neo4j driver for your language if you do not already have it, and change the URI. No other code changes.

  4. 04

    Run Cypher

    Create a few nodes, run a traversal, and check the plan with EXPLAIN when it gets interesting.

Connection URI
bolt+ssc://db-7f3a2c1e.databases.cognodb.cloud

Encrypted end to end. The +ssc scheme trusts the endpoint certificate on first use — it is issued by CognoDB's own certificate authority.

from neo4j import GraphDatabase

driver = GraphDatabase.driver(
    "bolt+ssc://db-7f3a2c1e.databases.cognodb.cloud",
    auth=("cognodb", DB_PASSWORD),
)

with driver.session() as session:
    result = session.run(
        "MATCH (p:Person)-[:FOLLOWS]->(f) "
        "WHERE p.name = $name RETURN f.name AS name",
        name="Ada",
    )
    for record in result:
        print(record["name"])

Compatibility

What your driver can rely on.

Bolt 5.0 through 5.4, including the behaviours drivers depend on rather than just the handshake.

  • Routing, so cluster-aware drivers connect without special casing
  • Transaction functions with driver-side retry on transient errors
  • Explicit BEGIN / COMMIT / ROLLBACK and transaction timeouts
  • Parameterised queries — never string-concatenate Cypher
  • Server-side query plans via EXPLAIN and PROFILE
A query worth profilingcypher
// Everything a customer touched, two hops out
MATCH (c:Customer {email: $email})-[:PLACED]->(o:Order)
MATCH (o)-[:CONTAINS]->(p:Product)<-[:TAGGED_AS]-(t:Topic)
RETURN t.name AS topic, count(DISTINCT p) AS products
ORDER BY products DESC
LIMIT 10

MCP

Let an agent query the graph directly.

CognoDB ships an MCP server exposing two tools — read the schema, and run a query. An agent discovers what is in the graph instead of being limited to the tools you thought to write.

ClaudeCursorWindsurfClineZedJetBrainsWarpGemini CLI

Run it read-only when you want an agent to explore without the ability to write.

MCP client configurationjson
{
  "mcpServers": {
    "cognodb": {
      "command": "npx",
      "args": ["-y", "@cognodb/mcp"],
      "env": {
        "COGNODB_URI": "bolt+ssc://db-7f3a2c1e.databases.cognodb.cloud",
        "COGNODB_PASSWORD": "${DB_PASSWORD}"
      }
    }
  }
}

Migrate

Move an existing graph over.

If you already run a Bolt-speaking, Cypher graph, moving to CognoDB is a connection change, not a rewrite. Your driver, your queries and your data model come with you.

  • Repoint the driver URI — the same official driver, unchanged
  • Re-run your Cypher as-is; Bolt 5.0–5.4 and Cypher are the contract
  • Load an export with MERGE so replays can't duplicate the graph
  • Verify with node and relationship counts against your source

Capabilities the engine doesn't ship — vector search and graph algorithms like PageRank — won't come across. The differences page states exactly what is and isn't here.

The whole migration, more or lessdiff
# 1 · Point your existing driver at CognoDB — only the URI changes
- driver = GraphDatabase.driver("bolt+s://your-old-endpoint:7687", auth=...)
+ driver = GraphDatabase.driver("bolt+ssc://db-7f3a2c1e.databases.cognodb.cloud", auth=("cognodb", DB_PASSWORD))

# 2 · Load your export with MERGE so re-runs stay idempotent
UNWIND $rows AS row
MERGE (a:Node {id: row.id})
MERGE (b:Node {id: row.dst})
MERGE (a)-[:REL {at: row.ts}]->(b)

# 3 · Verify parity — counts should match your source
MATCH (n) RETURN count(n) AS nodes;
MATCH ()-[r]->() RETURN count(r) AS relationships;

Terraform

Instances as infrastructure code.

The CognoDB provider manages instances as resources, so provisioning a database per tenant or per environment is part of your normal plan and apply.

  • cognodb_instance resource and matching data source
  • Organization-scoped API keys for authentication
  • Name, tier, size and region under version control
  • Connection URI available as an output
main.tfhcl
terraform {
  required_providers {
    cognodb = {
      source = "wexaai/cognodb"
    }
  }
}

resource "cognodb_instance" "app" {
  name   = "orders-graph"
  tier   = "pro"
  size   = "g8"
  region = "us-east4"
}

output "uri" {
  value = cognodb_instance.app.uri
}

Start now

~98.7%

token efficiency at 2,000 entities — see the footnotes above

Create an instance and try it.

The free tier is enough to follow this whole page end to end.

First-graph path

Live
  1. Create a free instance

    No card. Ready in about a minute.

  2. Connect your driver

    bolt+ssc:// URI into the driver you already use.

  3. Write two MERGEs

    That's the entire shape of agent memory.

  4. Point an agent at it

    One MCP config block. No integration code.