Graph Schema
Complete reference for the Memgraph tool graph — every node type, edge type, and their properties.
Node Types
Tool
Represents a developer tool, library, or framework indexed from GitHub.
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
name | string | Required | — | Short unique name (e.g. "prisma") |
full_name | string | Required | — | GitHub owner/repo (e.g. "prisma/prisma") |
description | string | Required | — | One-line tool description from the repository |
url | string | Required | — | GitHub repository URL |
language | string | Optional | — | Primary programming language |
category | string | Optional | — | Primary category slug |
stars | number | Required | — | GitHub star count |
forks | number | Required | — | GitHub fork count |
open_issues | number | Required | — | Current open issue count |
license | string | Optional | — | SPDX license identifier |
health_score | number | Required | 0 | Computed health score (0–100) |
maintenance_score | number | Required | 0 | Maintenance sub-score (0–100) |
last_commit | string | Required | — | ISO 8601 timestamp of most recent commit |
created_at | string | Required | — | ISO 8601 repository creation date |
docs_url | string | Optional | — | External documentation URL |
homepage | string | Optional | — | Project homepage URL |
topics | string[] | Optional | [] | GitHub topics array |
nameRequiredstringShort unique name (e.g. "prisma")
full_nameRequiredstringGitHub owner/repo (e.g. "prisma/prisma")
descriptionRequiredstringOne-line tool description from the repository
urlRequiredstringGitHub repository URL
languageOptionalstringPrimary programming language
categoryOptionalstringPrimary category slug
starsRequirednumberGitHub star count
forksRequirednumberGitHub fork count
open_issuesRequirednumberCurrent open issue count
licenseOptionalstringSPDX license identifier
health_scoreRequirednumber0Computed health score (0–100)
maintenance_scoreRequirednumber0Maintenance sub-score (0–100)
last_commitRequiredstringISO 8601 timestamp of most recent commit
created_atRequiredstringISO 8601 repository creation date
docs_urlOptionalstringExternal documentation URL
homepageOptionalstringProject homepage URL
topicsOptionalstring[][]GitHub topics array
Category
A taxonomy grouping for related tools (e.g. “orm”, “testing”, “bundler”).
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
name | string | Required | — | Category slug (e.g. "orm", "testing") |
description | string | Optional | — | Human-readable category description |
tool_count | number | Required | 0 | Number of tools in this category |
nameRequiredstringCategory slug (e.g. "orm", "testing")
descriptionOptionalstringHuman-readable category description
tool_countRequirednumber0Number of tools in this category
Language
A programming language that tools are written in.
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
name | string | Required | — | Language name (e.g. "TypeScript") |
color | string | Optional | — | Hex color for UI display (e.g. "#3178c6") |
nameRequiredstringLanguage name (e.g. "TypeScript")
colorOptionalstringHex color for UI display (e.g. "#3178c6")
License
An open-source license type.
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
key | string | Required | — | Lowercase key (e.g. "mit", "apache-2.0") |
name | string | Required | — | Human-readable name (e.g. "MIT License") |
spdx_id | string | Required | — | SPDX identifier (e.g. "MIT") |
keyRequiredstringLowercase key (e.g. "mit", "apache-2.0")
nameRequiredstringHuman-readable name (e.g. "MIT License")
spdx_idRequiredstringSPDX identifier (e.g. "MIT")
Edge Types
RELATED_TO
(:Tool) → (:Tool)
Indicates two tools are related — through co-usage patterns, shared ecosystem, or integration capabilities. Weight is reinforced/attenuated by agent feedback.
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
weight | number | Required | 0.5 | Relationship strength (0.0–1.0) |
type | string | Required | — | Relationship kind: "co-usage" | "ecosystem" | "integration" |
created_at | string | Required | — | ISO 8601 edge creation timestamp |
last_reinforced | string | Optional | — | ISO 8601 timestamp of last feedback reinforcement |
weightRequirednumber0.5Relationship strength (0.0–1.0)
typeRequiredstringRelationship kind: "co-usage" | "ecosystem" | "integration"
created_atRequiredstringISO 8601 edge creation timestamp
last_reinforcedOptionalstringISO 8601 timestamp of last feedback reinforcement
BELONGS_TO
(:Tool) → (:Category)
Assigns a tool to a category. A tool may belong to multiple categories.
WRITTEN_IN
(:Tool) → (:Language)
Links a tool to a programming language it is written in.
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
is_primary | boolean | Required | false | Whether this is the primary language |
is_primaryRequiredbooleanfalseWhether this is the primary language
LICENSED_AS
(:Tool) → (:License)
Associates a tool with its open-source license.
ALTERNATIVE_TO
(:Tool) → (:Tool)
Marks two tools as alternatives that solve the same problem.
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
weight | number | Required | 0.5 | Relationship strength (0.0–1.0) |
similarity_score | number | Required | — | Computed feature similarity (0.0–1.0) |
weightRequirednumber0.5Relationship strength (0.0–1.0)
similarity_scoreRequirednumberComputed feature similarity (0.0–1.0)
DEPENDS_ON
(:Tool) → (:Tool)
Indicates a runtime or build-time dependency between tools.
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
version_constraint | string | Optional | — | Semver range (e.g. "^5.0.0") |
is_dev_dependency | boolean | Required | false | Whether this is a dev-only dependency |
version_constraintOptionalstringSemver range (e.g. "^5.0.0")
is_dev_dependencyRequiredbooleanfalseWhether this is a dev-only dependency
Example Cypher Queries
Common patterns for querying the tool graph:
Find related tools
// Find tools related to Prisma, ordered by relationship strength
MATCH (t:Tool {name: 'prisma'})-[r:RELATED_TO]->(related:Tool)
RETURN related.name, r.weight
ORDER BY r.weight DESC
LIMIT 10List tools by category
// List all tools in the "orm" category
MATCH (t:Tool)-[:BELONGS_TO]->(c:Category {name: 'orm'})
RETURN t.name, t.stars, t.health_score
ORDER BY t.health_score DESCFind alternatives
// Find alternatives to Express
MATCH (t:Tool {name: 'express'})-[r:ALTERNATIVE_TO]->(alt:Tool)
RETURN alt.name, r.similarity_score
ORDER BY r.similarity_score DESCTrace dependency tree
// Trace the dependency tree of a tool
MATCH path = (t:Tool {name: 'next'})-[:DEPENDS_ON*1..3]->(dep:Tool)
RETURN [n IN nodes(path) | n.name] AS chainMemgraph compatibility