Skip to content
neode 1.0 alpha

Ground Text2Cypher in the live schema.

A model of the graph already exists in your code — the models you defined. ontologyMarkdown() renders it as a document an agent can be grounded on: entities, properties, relationships and what each is for. This page shows the real output for a Northwind-shaped model set, captured by the build.

grounding.ts prompt in · graph out
const systemPrompt = [
  'You write Cypher against the graph described below.',
  'Only use the entities, properties and relationships listed.',
  '',
  ontologyMarkdown(),
].join('\n')
PURCHASED PART_OF SUPPLIED_BY HANDLED_BY Customer Order Product Supplier Employee
ontologyMarkdown() · captured from the verified build · northwind schema · 6 entities, 104 lines
# Graph ontology

## Customer

A company or person that buys products

Labels: Customer

### Properties

- `_id` (internalId)
- `customerID` (string, unique): Natural key from the source system
- `companyName` (string, required): Trading name shown on invoices
- `contactName` (string): Who to call about an order
- `country` (string): Two-letter ISO country the customer ships to

### Relationships

- `ORDERS` :PURCHASED out -> Order: Every order this customer has placed, newest first when read

## Order

One purchase: an employee handled it, it contains products

Labels: Order

### Properties

- `_id` (internalId)
- `orderID` (string, unique)
- `orderDate` (date): The day the customer placed the order
- `requiredDate` (date)
- `shippedDate` (date): Empty until the warehouse ships
- `freight` (float)

### Relationships

- `PRODUCTS` :CONTAINS out -> Product: Line items: the products on this order
- `EMPLOYEE` :HANDLED_BY out -> Employee: The salesperson who took the order

## Product

A product the company stocks and sells

Labels: Product

### Properties

- `_id` (internalId)
- `productID` (string, unique)
- `productName` (string, required)
- `unitPrice` (float): Current list price, per unit
- `unitsInStock` (integer): Warehouse stock on hand; 0 means back-ordered
- `discontinued` (boolean): True once the product is withdrawn — exclude from new orders

### Relationships

- `CATEGORY` :PART_OF out -> Category: Exactly one category groups each product
- `SUPPLIER` :SUPPLIED_BY out -> Supplier: The vendor the product is sourced from

## Category

Groups products for browsing and reporting

Labels: Category

### Properties

- `_id` (internalId)
- `categoryID` (string, unique)
- `categoryName` (string, required)

## Supplier

The vendor a product is sourced from

Labels: Supplier

### Properties

- `_id` (internalId)
- `supplierID` (string, unique)
- `companyName` (string, required)
- `country` (string)

## Employee

A salesperson who takes orders; reports to another employee

Labels: Employee

### Properties

- `_id` (internalId)
- `employeeID` (string, unique)
- `firstName` (string, required)
- `lastName` (string, required)
- `title` (string)
- `hireDate` (date)

### Relationships

- `REPORTS_TO` :REPORTS_TO out -> Employee: The managing employee — self-referencing, the org chart is a hierarchy

The agent-facing surface.

Text2Cypher grounding
Put the live ontology in the system prompt so generated Cypher sticks to entities, properties and relationships that exist.
MCP resources
The same schema document is the natural thing to expose as a resource to MCP clients.
Agent skills
Skills that teach a coding agent how to build with neode ship in the package.
llms.txt
The repo generates it, and this site ships it, so any agent can read the API without scraping. Read ours.
Open the playground API reference and llms.txt