Snowflake Snowpark Dbt
Mindrally/skills
Best practices for Snowpark Python (DataFrames, UDFs, UDTFs, stored procedures) and dbt with the dbt-snowflake adapter.
Serverless Aura Graph Analytics (AGA) GDS Sessions — covers GdsSessions, AuraGraphDataScience, AuraAPICredentials, DbmsConnectionInfo, SessionMemory, getorcreate, remote graph projection with…
$ npx skills add neo4j-contrib/neo4j-skills --skill neo4j-aura-graph-analytics-skill -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install neo4j-contrib/neo4j-skills neo4j-aura-graph-analytics-skill --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/neo4j-contrib/neo4j-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/neo4j-aura-graph-analytics-skill .claude/skills/neo4j-aura-graph-analytics-skill && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "neo4j-aura-graph-analytics-skill" agent skill from https://github.com/neo4j-contrib/neo4j-skills/tree/main/neo4j-aura-graph-analytics-skill into .claude/skills/neo4j-aura-graph-analytics-skill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "neo4j-aura-graph-analytics-skill", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/neo4j-contrib/neo4j-skills/tree/main/neo4j-aura-graph-analytics-skillType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add neo4j-contrib/neo4j-skills --skill neo4j-aura-graph-analytics-skill -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install neo4j-contrib/neo4j-skills neo4j-aura-graph-analytics-skill --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/neo4j-contrib/neo4j-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/neo4j-aura-graph-analytics-skill .agents/skills/neo4j-aura-graph-analytics-skill && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "neo4j-aura-graph-analytics-skill" agent skill from https://github.com/neo4j-contrib/neo4j-skills/tree/main/neo4j-aura-graph-analytics-skill into .agents/skills/neo4j-aura-graph-analytics-skill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "neo4j-aura-graph-analytics-skill", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add neo4j-contrib/neo4j-skills --skill neo4j-aura-graph-analytics-skill -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install neo4j-contrib/neo4j-skills neo4j-aura-graph-analytics-skill --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/neo4j-contrib/neo4j-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/neo4j-aura-graph-analytics-skill .cursor/skills/neo4j-aura-graph-analytics-skill && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "neo4j-aura-graph-analytics-skill" agent skill from https://github.com/neo4j-contrib/neo4j-skills/tree/main/neo4j-aura-graph-analytics-skill into .cursor/skills/neo4j-aura-graph-analytics-skill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "neo4j-aura-graph-analytics-skill", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/neo4j-contrib/neo4j-skills.git --path neo4j-aura-graph-analytics-skill--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add neo4j-contrib/neo4j-skills --skill neo4j-aura-graph-analytics-skill -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install neo4j-contrib/neo4j-skills neo4j-aura-graph-analytics-skill --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/neo4j-contrib/neo4j-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/neo4j-aura-graph-analytics-skill .gemini/skills/neo4j-aura-graph-analytics-skill && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "neo4j-aura-graph-analytics-skill" agent skill from https://github.com/neo4j-contrib/neo4j-skills/tree/main/neo4j-aura-graph-analytics-skill into .gemini/skills/neo4j-aura-graph-analytics-skill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "neo4j-aura-graph-analytics-skill", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install neo4j-contrib/neo4j-skills neo4j-aura-graph-analytics-skillInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add neo4j-contrib/neo4j-skills --skill neo4j-aura-graph-analytics-skill -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/neo4j-contrib/neo4j-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/neo4j-aura-graph-analytics-skill .github/skills/neo4j-aura-graph-analytics-skill && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "neo4j-aura-graph-analytics-skill" agent skill from https://github.com/neo4j-contrib/neo4j-skills/tree/main/neo4j-aura-graph-analytics-skill into .github/skills/neo4j-aura-graph-analytics-skill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "neo4j-aura-graph-analytics-skill", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add neo4j-contrib/neo4j-skills --skill neo4j-aura-graph-analytics-skill -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install neo4j-contrib/neo4j-skills neo4j-aura-graph-analytics-skill --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/neo4j-contrib/neo4j-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/neo4j-aura-graph-analytics-skill .opencode/skills/neo4j-aura-graph-analytics-skill && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "neo4j-aura-graph-analytics-skill" agent skill from https://github.com/neo4j-contrib/neo4j-skills/tree/main/neo4j-aura-graph-analytics-skill into .opencode/skills/neo4j-aura-graph-analytics-skill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "neo4j-aura-graph-analytics-skill", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
neo4j-aura-graph-analytics-skillServerless Aura Graph Analytics (AGA) GDS Sessions — covers GdsSessions, AuraGraphDataScience, AuraAPICredentials, DbmsConnectionInfo, SessionMemory, getorcreate, remote graph projection with…
Neo4j Aura Graph Analytics Skill is an agent skill from neo4j-contrib/neo4j-skills. Serverless Aura Graph Analytics (AGA) GDS Sessions — covers GdsSessions, AuraGraphDataScience, AuraAPICredentials, DbmsConnectionInfo, SessionMemory, getorcreate, remote graph projection with gds.graph.project.cypher and gds.graph.project.remote, gds.graph.project.native, gds.graph.construct, graphdatascience client 2.0 session endpoints, async compute and gds.jobs, AuraDB Cypher API memory/sessionId projection, algorithms, write-back, and session lifecycle. Use for AuraDB-connected, self-managed Neo4j, or…
Its SKILL.md is about 4.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files, including reference files (for example `README.md`, `references/limitations.md` and `references/workflows.md`).
It sits in Databases, covering Data warehousing, DataFrames and Serverless. It works with Neo4j and Snowflake. The repository describes itself as: Neo4j Skills for Coding and other Agents including Cypher. The licence is MIT.
8 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit bb30e1f. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
BashWebFetchFrom allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
pipFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
neo4j.comgithub.comFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
AURA_CLIENT_SECRETNEO4J_PASSWORDCLIENT_SECRETFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Neo4j Aura Graph Analytics Skill loads about 4.6k tokens when it runs, and up to ~5.8k if it reads all its reference files. Until then it costs about 208 tokens; SKILL.md has 1,080 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
allowed-tools: Bash, WebFetchAutomated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from neo4j-contrib/neo4j-skills at commit bb30e1f, republished under its MIT licence (© neo4j-contrib). 1,080 words, ~4,626 tokens.
.claude/skills/neo4j-aura-graph-analytics-skill/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.GdsSessions or using AuraGraphDataSciencegds.graph.project.remote(...){ memory: ... } or { sessionId: ... }neo4j-gds-skillneo4j-gds-skillneo4j-cypher-skillneo4j-snowflake-graph-analytics-skill| Deployment | Use |
|---|---|
| AuraDB Free | this skill — max m_2GB, 1 concurrent session, unbilled |
| Aura Pro + Graph Analytics plugin enabled (lightweight exploration, shared resources) | neo4j-gds-skill |
| Aura Pro / Pro Trial + session (isolated compute) | this skill — up to 128 GB (Pro) / 8 GB (Pro Trial), 100 / 3 concurrent sessions |
| AuraDB + Python client sessions | this skill |
| AuraDB + Cypher API | this skill for AGA-specific projection/session notes; neo4j-cypher-skill for query authoring |
| Self-managed Neo4j + AGA session | this skill |
| Self-managed Neo4j + embedded plugin | neo4j-gds-skill |
| Non-Neo4j data (Pandas, Spark) | this skill (standalone mode) |
graphdatascience >= 2.0 required; >= 2.1 recommendedv2 prefix — gds.page_rank.*, gds.graph.node_properties.*, gds.graph.construct(...)gds.verify_connectivity() after session creation — verifies session and, if attached, the source DBgds.delete() or sessions.delete(session_name=...) stops billingAuraAPICredentials.from_env() and DbmsConnectionInfo.from_env() — never hardcode credentialspip install "graphdatascience>=2.1" # 2.1 is the current stable release2.0 / 2.1 require: Python >= 3.10, neo4j driver 5.26–7.0, pandas 2–3, pyarrow 21–25, numpy <3.
2.0 renamed/reorganized the client. Pinned to 1.22 (graphdatascience<2)? Map:
| 1.x | 2.0 |
|---|---|
gds.v2.<endpoint> | gds.<endpoint> — v2 prefix gone; untyped 1.x endpoints removed |
gds.graph.project(graph_name, query) (remote) | gds.graph.project.cypher(graph_name, query) |
gds.graph.project_native(...) | gds.graph.project.native(...) |
GraphV2 / ModelV2 | Graph / Model — from graphdatascience import Graph |
Graph.drop(failIfMissing=) / Model.drop(failIfMissing=) | fail_if_missing= |
gds.v2.verify_session_connectivity() / gds.v2.verify_db_connectivity() | gds.verify_connectivity() — existed in 1.x too; v2 namespace gone |
run_cypher(..., retryable=) | removed — always retries |
gds.graph.project.cypher(database=...) | removed — gds.set_database(...) before projecting |
gds.graph.node_labels.mutate(write_concurrency=, job_id=) | parameters removed |
ArrowEndpointVersion.from_arrow_info | check_version_compatibility |
Migration guide: Neo4j GDS Python client 2.0 migration
2.0 additions: GdsSessions.estimate(algorithms=[...]) per-algorithm memory; GdsSessions.get_or_create(show_progress=...); keyword-only GdsSessions.delete(session_name=|session_id=) returns False when nothing deleted; overwrite=True on gds.graph.project / generate / construct / filter / sample drops a same-named graph first; gds.graph.drop(...) accepts multiple graphs → list[GraphInfo].
2.1 additions: gds.run_cypher(query, auto_commit=True) for CALL { … } IN TRANSACTIONS (2.0 default retryable transaction rejects it); gds.db_driver() → session client's managed neo4j.Driver (closed by gds.close()); mode="READ"/"WRITE" strings accepted for QueryMode.
from graphdatascience.session import AuraAPICredentials, GdsSessions
sessions = GdsSessions(api_credentials=AuraAPICredentials.from_env())
# Reads: AURA_CLIENT_ID, AURA_CLIENT_SECRET, AURA_PROJECT_ID (optional)
# Create API credentials in Aura Console → Account → API credentialsMember of multiple projects or organizations: set AURA_PROJECT_ID or pass project_id= — 2.1 checks organizations first when deriving the default project.
from graphdatascience.session import AlgorithmCategory, SessionMemory
# Per-algorithm + config — preferred
memory = sessions.estimate(
node_count=1_000_000,
relationship_count=5_000_000,
algorithms=["wcc", "louvain", "fast_rp"],
)
# or with config:
memory = sessions.estimate(
node_count=1_000_000,
relationship_count=5_000_000,
algorithms={"fast_rp": {"embedding_dimension": 128}},
)
# Coarse category estimate — 1.x style, still available
memory = sessions.estimate(
node_count=1_000_000,
relationship_count=5_000_000,
algorithm_categories=[
AlgorithmCategory.CENTRALITY,
AlgorithmCategory.NODE_EMBEDDING,
AlgorithmCategory.COMMUNITY_DETECTION,
],
)
# Returns SessionMemory tier, e.g. SessionMemory.m_8GB
# Fixed tiers: m_2GB … m_512GB — see references/limitations.mdMode A — AuraDB connected:
from graphdatascience.session import DbmsConnectionInfo, SessionMemory, CloudLocation
from datetime import timedelta
# Reads: AURA_INSTANCEID (takes precedence) or NEO4J_URI, plus NEO4J_USERNAME,
# NEO4J_PASSWORD, NEO4J_DATABASE
db_connection = DbmsConnectionInfo.from_env()
# Explicit: DbmsConnectionInfo(aura_instance_id=..., username=..., password=...)
gds = sessions.get_or_create(
session_name="my-analysis",
memory=memory,
db_connection=db_connection,
ttl=timedelta(hours=2),
)
gds.verify_connectivity()Mode B — Self-managed Neo4j:
# Same from_env() — set NEO4J_URI (e.g. "bolt://my-server:7687"), no AURA_INSTANCEID
gds = sessions.get_or_create(
session_name="my-analysis-sm",
memory=SessionMemory.m_8GB,
db_connection=DbmsConnectionInfo.from_env(),
ttl=timedelta(hours=2),
cloud_location=CloudLocation("gcp", "europe-west1"),
)
gds.verify_connectivity()Mode C — Standalone (no Neo4j DB):
gds = sessions.get_or_create(
session_name="my-standalone",
memory=SessionMemory.m_4GB,
ttl=timedelta(hours=1),
cloud_location=CloudLocation("gcp", "europe-west1"),
)
gds.verify_connectivity()get_or_create() is idempotent; reconnects to existing session by name.
From connected Neo4j (remote projection):
query = """
CALL () {
MATCH (p:Person)
OPTIONAL MATCH (p)-[r:KNOWS]->(p2:Person)
RETURN p AS source, r AS rel, p2 AS target,
p {.age, .score} AS sourceNodeProperties,
p2 {.age, .score} AS targetNodeProperties
}
RETURN gds.graph.project.remote(source, target, {
sourceNodeLabels: labels(source),
targetNodeLabels: labels(target),
sourceNodeProperties: sourceNodeProperties,
targetNodeProperties: targetNodeProperties,
relationshipType: type(rel)
})
"""
G, result = gds.graph.project.cypher(
graph_name="my-graph",
query=query,
undirected_relationship_types=["KNOWS"],
)
print(f"Projected {G.node_count()} nodes, {G.relationship_count()} relationships")CALL () { ... } required for multi-pattern MATCH. Use UNION inside CALL for multiple labels/rel types.
Remote query must use gds.graph.project.remote(...); graph name goes to gds.graph.project.cypher(...), not the query. Query containing gds.graph.project without .remote is auto-rewritten with a warning. undirectedRelationshipTypes / inverseIndexedRelationshipTypes inside the query → ValueError — pass as method args.
Only numeric node properties can be projected into a session; fetch string properties via db_node_properties when streaming.
Standalone sessions cannot remote-project — ValueError: Remote projection is only supported for attached Sessions.
1.x fallback: gds.graph.project(graph_name=..., query=...).
Native remote projection (no Cypher query) — gds.graph.project.native(...) projects from the attached DB by label/type filter:
G, result = gds.graph.project.native(
"my-graph",
["Person"], # node_label_filter
["KNOWS"], # relationship_type_filter
node_properties=["age", "score"],
undirected_relationship_types=["KNOWS"],
)Attached sessions only. Use project.native for label/type-filtered projections; use project.cypher for transformations, computed properties, or UNION heterogeneous patterns.
AuraDB Cypher API projection:
CYPHER runtime=parallel
MATCH (source)
OPTIONAL MATCH (source)-->(target)
RETURN gds.graph.project(
'my-graph',
source,
target,
{},
{ memory: '2GB' }
)Existing explicit session:
CYPHER runtime=parallel
MATCH (source)
OPTIONAL MATCH (source)-->(target)
RETURN gds.graph.project(
'my-graph',
source,
target,
{},
{ sessionId: '00000000-11111111' }
)Cypher API uses gds.graph.project(...), not gds.graph.project.remote(...). Put memory, ttl, sessionId, batchSize in fifth config argument.
Session management via Cypher API:
CALL gds.session.getOrCreate('test-session', '2GB', duration({minutes: 30}))
YIELD id, name, status
RETURN id, name, status
CALL gds.session.list()
YIELD id, name, status, memory
RETURN id, name, status, memoryImplicit Cypher API sessions delete when all projected graphs in session are dropped.
From Pandas DataFrames (standalone mode):
import pandas as pd
nodes_df = pd.DataFrame([
{"nodeId": 0, "labels": "Person", "age": 30},
{"nodeId": 1, "labels": "Person", "age": 25},
])
rels_df = pd.DataFrame([
{"sourceNodeId": 0, "targetNodeId": 1, "relationshipType": "KNOWS"},
])
G = gds.graph.construct("my-graph", [nodes_df], [rels_df])Required columns — nodes: nodeId (int), labels (str). Relationships: sourceNodeId, targetNodeId, relationshipType. Drop string node properties before construct() — sessions accept numeric properties only.
# Mutate — chain results without writing to DB
gds.page_rank.mutate(G, mutate_property="pagerank", damping_factor=0.85)
gds.fast_rp.mutate(G,
mutate_property="embedding",
embedding_dimension=128,
feature_properties=["pagerank"],
random_seed=42,
)
# Stream — inspect results as DataFrame
df = gds.page_rank.stream(G)
print(df.sort_values("score", ascending=False).head(10))
# Write — persist to connected Neo4j DB (connected modes only)
gds.louvain.write(G, write_property="community")ML pipelines: gds.pipeline.node_classification / link_prediction / node_regression — the only API in 2.0.
1.x fallback: gds.v2.page_rank.mutate(...); untyped 1.x endpoints like gds.pageRank.mutate(...) are gone in 2.0.
Plugin algorithm reference → neo4j-gds-skill; AGA limitations differ.
Long-running algorithms — non-blocking compute() returns a JobHandle:
import time
job = gds.page_rank.compute(G, mutate_property="pagerank")
while not job.done():
time.sleep(5)
print(f"Job status: {job.status()}")
if job.status() != "RUNNING_DONE":
raise RuntimeError(f"Algorithm job failed: {job.status()}")
result = job.result(wait=False) # raises JobNotFinishedError if not doneHandle methods: .job_id(), .status(), .done(), .wait(*, termination_flag=None), .cancel(), .summary(...), .result(wait=False).
Async projections return ProjectionJobHandle (gds.graph.project.native_async(...), cypher_async(...)); write-backs yield WriteJobHandle. List/recover jobs:
gds.jobs.list() # JobInfo per job: job_id, name
handle = gds.jobs.get(G, job_id) # concrete handle type for the job# Stream node properties
result_df = gds.graph.node_properties.stream(
G,
node_properties=["pagerank", "embedding"],
db_node_properties=["name"], # connected modes only — fetches string props from DB
)
result_df.head(10)Standalone mode: no db_node_properties; join source DataFrame:
result_df = gds.graph.node_properties.stream(G, ["pagerank"])
result_df.merge(nodes_df[["nodeId", "name"]], how="left")# Write node properties to connected Neo4j
gds.graph.node_properties.write(G, ["pagerank", "embedding"])
# Write relationship properties
gds.graph.relationships.write(G, "SIMILAR", ["score"])
# Query connected DB from session
gds.run_cypher("MATCH (n:Person) RETURN count(n)")
# Drop projected graph
gds.graph.drop(G)
# Delete session
sessions.delete(session_name="my-analysis")
# or: gds.delete()Write before delete; unwritten results lost when session closes.
# List active sessions
from pandas import DataFrame
DataFrame(sessions.list())
# Reconnect to existing session
gds = sessions.get_or_create(session_name="my-analysis", memory=..., db_connection=...)| Error | Cause | Fix |
|---|---|---|
AuthenticationError / 401 | Wrong CLIENT_ID/CLIENT_SECRET | Regenerate in Aura Console → Account → API credentials |
RuntimeError getting an already-expired session | TTL exceeded | sessions.list() to check; recreate session |
SessionNotFoundError | Session expired (TTL exceeded) or name typo | sessions.list() to check; recreate session |
GraphNotFoundError | Projection dropped or session reconnected without re-projecting | Re-run gds.graph.project.cypher() or gds.graph.construct() |
ValueError: Remote projection is only supported for attached Sessions. | Standalone session cannot remote-project | Use gds.graph.construct(...) from DataFrames instead |
NotAvailableInStandaloneSessions | Feature needs an attached DB (e.g. gds.topological_link_prediction, remote projection) | Attach a DB or pick another algorithm |
Algorithm job FAILED | Memory limit exceeded or unsupported algorithm | Increase SessionMemory; check NotAvailableOutsideAura for attached-only features |
MemoryEstimationExceeded | Graph larger than estimated | Re-estimate with actual counts; pick next tier up |
| Results empty after session reconnect | Results not written before session was closed | Always write/stream before gds.delete() |
String node properties not supported | String column in nodes DataFrame | Drop string columns before gds.graph.construct(); fetch strings later via db_node_properties |
AGA not enabled for project | AGA feature not activated | Enable in Aura Console → project settings |
Load on demand:
| Need | URL |
|---|---|
| AGA Python client docs | https://neo4j.com/docs/graph-data-science-client/current/aura-graph-analytics/ |
| AGA Cypher API docs | https://neo4j.com/docs/graph-data-science/current/aura-graph-analytics/cypher/ |
| Client migration guide 1.x → 2.0 | https://neo4j.com/docs/graph-data-science-client/current/migration-from-1x/ |
| AuraDB tutorial notebook | https://github.com/neo4j/graph-data-science-client/blob/main/examples/graph-analytics-serverless.ipynb |
| GDS algorithm reference | https://neo4j.com/docs/graph-data-science/current/algorithms/ |
AURA_CLIENT_ID, AURA_CLIENT_SECRET)AURA_INSTANCEID or NEO4J_URI, plus NEO4J_USERNAME, NEO4J_PASSWORD set for DbmsConnectionInfo.from_env()sessions.estimate(..., algorithms=[...]))gds.verify_connectivity() called after session creationgds.graph.project.cypher(graph_name, query) with gds.graph.project.remote(...) inside queryundirected_relationship_types passed as method args, never inside the querymemory or sessionIdgds.session.getOrCreate(...); implicit sessions dropped with projected graphRUNNING_DONE before reading resultssessions.delete(session_name=...) or gds.delete())© neo4j-contrib, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 3 other files (references) in neo4j-aura-graph-analytics-skill of neo4j-contrib/neo4j-skills.
Open the folder on GitHubat commit bb30e1f
Neo4j Aura Graph Analytics Skill next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Neo4j Aura Graph Analytics Skill this skillneo4j-contrib/neo4j-skills | 114 | — | ~4.6k | Automated safety check: Notes | MIT | |
| Snowflake Snowpark DbtMindrally/skills | 271 | — | ~2.5k | Automated safety check: Pass | Apache-2.0 | |
| Analyzing Dataastronomer/agents | 451 | — | ~1.3k | Automated safety check: Pass | Apache-2.0 | |
| Expensive Snowflake Query FinderAltimateAI/data-engineering-skills | 128 | — | ~662 | Automated safety check: Pass | MIT | |
| Managing Databasesrileyhilliard/claude-essentials | 130 | — | ~1.6k | Automated safety check: Pass | MIT | |
| Snowflake Developmentsickn33/agentic-awesome-skills | 47k | 2 repos | ~2.1k | Automated safety check: Pass | MIT |
Mindrally/skills
Best practices for Snowpark Python (DataFrames, UDFs, UDTFs, stored procedures) and dbt with the dbt-snowflake adapter.
astronomer/agents
Queries the data warehouse with SQL and answers business questions about data.
AltimateAI/data-engineering-skills
Ranks the costliest, slowest or heaviest-scanning Snowflake queries from query history and suggests how to optimize them.
rileyhilliard/claude-essentials
Guides database architecture for PostgreSQL, DuckDB, Parquet, PGVector, and Neo4j.
sickn33/agentic-awesome-skills
Comprehensive Snowflake development assistant covering SQL best practices, data pipeline design (Dynamic Tables, Streams, Tasks, Snowpipe), Cortex AI functions, Cortex Agents, Snowpark Python, dbt…
alirezarezvani/claude-skills
A skill your agent uses when writing Snowflake SQL, building data pipelines with Dynamic Tables or Streams/Tasks, using Cortex AI functions, creating Cortex Agents, writing Snowpark Python…
neo4j-contrib/neo4j-skills
Manages Neo4j Aura Agents via the v2beta1 REST API — create, list, get, update, delete, and invoke Aura agents backed by an AuraDB instance.
neo4j-contrib/neo4j-skills
Generates, optimizes, and validates Cypher 25 queries for Neo4j 2025.x and 2026.x.
neo4j-contrib/neo4j-skills
Orchestrates zero-to-running-app in 8 stages — prerequisites → context → provision → model → load → explore → query → build.
neo4j-contrib/neo4j-skills
Provisions and manages Neo4j Aura instances via CLI (aura-cli v1.7+) or REST API.
neo4j-contrib/neo4j-skills
Neo4j .NET Driver v6 — IDriver lifecycle, DI registration (singleton), ExecutableQuery fluent API, ExecuteReadAsync/ExecuteWriteAsync managed transactions, IResultCursor (FetchAsync/ ToListAsync)…
neo4j-contrib/neo4j-skills
Covers the Neo4j Go Driver v6 — driver lifecycle, ExecuteQuery, managed and explicit transactions, session config, error handling, data type mapping, and connection tuning.
Categories
Serverless Aura Graph Analytics (AGA) GDS Sessions — covers GdsSessions, AuraGraphDataScience, AuraAPICredentials, DbmsConnectionInfo, SessionMemory, getorcreate, remote graph projection with…. Neo4j Aura Graph Analytics Skill is an agent skill from neo4j-contrib/neo4j-skills.jobs, AuraDB Cypher API memory/sessionId projection, algorithms, write-back, and session lifecycle.
Neo4j Aura Graph Analytics Skill fits situations like: auraDB-connected; self-managed Neo4j; standalone DataFrame/Spark session workloads.
Run `npx skills add neo4j-contrib/neo4j-skills --skill neo4j-aura-graph-analytics-skill -a claude-code`. Or copy the skill folder (neo4j-aura-graph-analytics-skill in neo4j-contrib/neo4j-skills) into .claude/skills/neo4j-aura-graph-analytics-skill in your project. Claude Code loads it when a task matches its description.
Run `npx skills add neo4j-contrib/neo4j-skills --skill neo4j-aura-graph-analytics-skill -a codex`. Or copy the skill folder (neo4j-aura-graph-analytics-skill in neo4j-contrib/neo4j-skills) into .agents/skills/neo4j-aura-graph-analytics-skill in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add neo4j-contrib/neo4j-skills --skill neo4j-aura-graph-analytics-skill -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/neo4j-aura-graph-analytics-skill, .gemini/skills/neo4j-aura-graph-analytics-skill, .github/skills/neo4j-aura-graph-analytics-skill and .opencode/skills/neo4j-aura-graph-analytics-skill in your project.
Going by SKILL.md and its folder, Neo4j Aura Graph Analytics Skill needs the command-line tools its instructions call (pip) and credentials named AURA_CLIENT_SECRET, NEO4J_PASSWORD and CLIENT_SECRET. Our summary lists: Python 3; A credential in AURA_CLIENT_SECRET. Its frontmatter pre-approves these tools: Bash, WebFetch.
SKILL.md names 2 domains. In commands or code: neo4j.com and github.com; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Neo4j Aura Graph Analytics Skill is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.6k tokens (SKILL.md is roughly 19k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.2k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Neo4j Aura Graph Analytics Skill: Snowflake Snowpark Dbt (Mindrally/skills, 271 stars), Analyzing Data (astronomer/agents, 451 stars), Expensive Snowflake Query Finder (AltimateAI/data-engineering-skills, 128 stars) and Managing Databases (rileyhilliard/claude-essentials, 130 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
neo4j-contrib (a GitHub organization) maintains it in neo4j-contrib/neo4j-skills, which has 114 GitHub stars. The repository holds 28 skills in this directory. The repository was last updated on October 9, 2026.
Source: neo4j-contrib/neo4j-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.