Grafeo Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Grafeo Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
MCP server that exposes GrafeoDB - an embedded graph database - to AI agents via the Model Context Protocol.
One install, zero infrastructure. The MCP server is the database.
graph://schema, graph://stats, graph://nodes/{id}limit params and truncate large results# Install
uv tool install grafeo-mcp
# Or with pip
pip install grafeo-mcpAdd to claude_desktop_config.json:
{
"mcpServers": {
"grafeo": {
"command": "grafeo-mcp",
"env": {
"GRAFEO_DB_PATH": "/path/to/your/graph.db"
}
}
}
}Add to .mcp.json in your project root:
{
"mcpServers": {
"grafeo": {
"command": "grafeo-mcp",
"env": {
"GRAFEO_DB_PATH": "./graph.db"
}
}
}
}Add to .vscode/mcp.json:
{
"servers": {
"grafeo": {
"command": "grafeo-mcp",
"env": {
"GRAFEO_DB_PATH": "${workspaceFolder}/graph.db"
}
}
}
}For remote or multi-client setups:
grafeo-mcp streamable-http| Variable | Description | Default |
|---|---|---|
GRAFEO_DB_PATH | Path to the database file. Creates it if it doesn't exist | In-memory |
| Tool | Description |
|---|---|
execute_gql | Run GQL queries (Cypher syntax auto-normalized to GQL) |
| Tool | Description |
|---|---|
create_node | Create a node with labels and properties |
create_edge | Create a directed edge between two nodes |
get_node | Retrieve a node by ID |
update_node | Update properties on an existing node |
delete_node | Delete a node (with optional detach) |
update_edge | Update properties on an existing edge |
delete_edge | Delete an edge by ID |
get_neighbors | Explore a node's neighborhood (1-hop) |
search_nodes_by_label | Find nodes by label with pagination |
graph_info | Schema, stats, labels, edge types, indexes |
| Tool | Description |
|---|---|
batch_import | Bulk-create nodes and edges from JSON arrays |
| Tool | Description |
|---|---|
create_text_index | Create a full-text search index on a property |
search_text | Keyword search over indexed string properties |
| Tool | Description |
|---|---|
vector_search | k-NN similarity search (HNSW) |
mmr_search | Diversity-aware search (Maximal Marginal Relevance) |
create_vector_index | Create HNSW index on a label + property |
vector_graph_search | Hybrid: vector search + graph neighborhood expansion |
| Tool | Description |
|---|---|
pagerank | Rank nodes by importance |
dijkstra | Shortest weighted path between two nodes |
louvain | Community detection (Louvain modularity) |
betweenness_centrality | Find bridge/bottleneck nodes |
connected_components | Find disconnected subgraphs |
| URI | Description |
|---|---|
graph://schema | Rich schema: labels, properties, edge types |
graph://stats | Counts, memory, disk, config info |
graph://nodes/{node_id} | Node details + connection summary |
| Prompt | Description |
|---|---|
explore_graph | Guided exploration of the graph structure |
knowledge_extraction | Extract entities and relationships from text |
graph_analysis | Structural analysis: communities, PageRank, hubs |
similarity_search | Vector-powered semantic search with graph context |
| I want to... | Use this tool | Not this |
|---|---|---|
| Add a single node | create_node | execute_gql, batch_import |
| Add a single edge | create_edge | execute_gql |
| Load many nodes and edges at once | batch_import | create_node in a loop |
| Look up a node by ID | get_node | execute_gql |
| Update a node's properties | update_node | execute_gql |
| Delete a node | delete_node | execute_gql |
| Update an edge's properties | update_edge | execute_gql |
| Delete an edge | delete_edge | execute_gql |
| Browse nodes of a type | search_nodes_by_label | execute_gql |
| Explore one hop from a node | get_neighbors | execute_gql |
| Run a complex or multi-hop query | execute_gql | multiple get_neighbors |
| Search by keyword in text | search_text | execute_gql |
| Find similar nodes by embedding | vector_search | execute_gql |
| Find similar nodes + graph context | vector_graph_search | vector_search + get_neighbors |
| Find the most important nodes | pagerank | execute_gql |
| Find shortest path between two nodes | dijkstra | execute_gql |
| Detect communities | louvain | execute_gql |
| Understand the graph before querying | graph_info | search_nodes_by_label |
The batch_import tool lets edges reference nodes created in the same batch using @N notation, where N is the zero-based index into the nodes array:
batch_import(
nodes=[
{"labels": ["Person"], "properties": {"name": "Alice"}}, # @0
{"labels": ["Person"], "properties": {"name": "Bob"}}, # @1
],
edges=[
{"source_ref": "@0", "target_ref": "@1", "edge_type": "KNOWS"},
],
)You can also mix batch references with existing node IDs: {"source_ref": "@0", "target_ref": 42, ...}.
The execute_gql tool automatically normalizes common Cypher syntax to GQL so agents trained on Cypher work out of the box. Currently the following transformations are applied:
| Cypher keyword | GQL equivalent |
|---|---|
CREATE | INSERT |
Keywords that are shared between Cypher and GQL (such as MATCH, RETURN, WHERE, WITH, LIMIT, DETACH DELETE) pass through unchanged. Cypher-only keywords like MERGE or OPTIONAL MATCH are not supported and will produce a clear error message from the query engine.
git clone https://github.com/GrafeoDB/grafeo-mcp
cd grafeo-mcp
uv sync
uv run pytest # Run tests
uv run ruff check . # Lint
uv run ruff format . # Format
uv run ty check # Type checkgrafeo-memory-mcp) that wraps the high-level memory API — extract, reconcile, search, summarize. If you need AI memory management rather than raw graph access, use uv add grafeo-memory[mcp].Apache-2.0
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.