Mcp Notes — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Mcp Notes (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 for personal knowledge management with semantic search, git versioning, and knowledge graph capabilities.
localhost:6333)/v1/embeddings endpoint; default: localhost:8080)Requires vector-core.
pip install git+https://github.com/michaelkrauty/[email protected]
pip install git+https://github.com/michaelkrauty/mcp-notes.gitOr clone both repos and install locally:
git clone https://github.com/michaelkrauty/vector-core.git
git clone https://github.com/michaelkrauty/mcp-notes.git
pip install -e vector-core/
pip install -e mcp-notes/# Register with Claude Code:
claude mcp add notes -- mcp-notes
# Or add to your MCP client config (e.g., claude_desktop_config.json):
# {
# "mcpServers": {
# "notes": {
# "command": "mcp-notes",
# "env": {
# "VECTOR_QDRANT_URL": "http://localhost:6333",
# "VECTOR_EMBEDDING_URL": "http://localhost:8080",
# "VECTOR_EMBEDDING_MODEL": "your-model-name"
# }
# }
# }
# }--follow[[uuid]] syntax for inter-note references with backlink tracking| Tool | Description |
|---|---|
create_note | Create note with auto-generated UUID |
read_note | Read note by UUID |
update_note | Update title, content, tags, or category |
delete_note | Delete note (keeps git history) |
| Tool | Description |
|---|---|
search_notes | Hybrid semantic + keyword search with filters |
list_notes | List notes with tag/category filters |
find_similar_notes | Find semantically similar notes |
| Tool | Description |
|---|---|
get_note_history | Git commit history for a note |
restore_note_version | Restore note to previous commit |
| Tool | Description |
|---|---|
get_note_links | Outgoing, incoming (backlinks), and broken links |
| Tool | Description |
|---|---|
list_tags | All tags with note counts |
rename_tag | Rename tag across all notes |
merge_tags | Merge multiple tags into one |
| Tool | Description |
|---|---|
list_categories | Category hierarchy with counts |
move_category | Move/rename a category |
| Tool | Description |
|---|---|
add_glossary_entry | Add term with expansion, definition, domain |
lookup_term | Exact lookup by term or alias |
search_glossary | Semantic glossary search |
list_glossary | List entries with optional domain filter |
update_glossary_entry | Modify entry metadata |
delete_glossary_entry | Delete entry |
| Tool | Description |
|---|---|
add_fact | Add SPO triple with source tracking |
add_facts_batch | Batch import facts |
update_fact | Update fact metadata |
delete_fact | Delete fact and sources |
query_facts | Query by subject/predicate/object |
get_entity | All facts involving an entity |
list_facts | List fact summaries |
search_facts | Semantic fact search |
index_facts | Index facts for search |
find_connections | BFS graph traversal between entities |
get_neighbors | Immediate entity connections |
| Tool | Description |
|---|---|
get_facts_with_stale_sources | Facts with deleted/modified sources |
get_source_statistics | Source integrity stats |
check_fact_integrity | Check specific fact's sources |
revalidate_fact_sources | Reset sources after verification |
| Tool | Description |
|---|---|
reindex_notes | Force full reindex |
check_note_health | Validate note structure, find errors |
---
id: {uuid}
title: Note Title
created: 2024-01-01T00:00:00Z
modified: 2024-01-05T12:00:00Z
tags: [tag1, tag2]
links: [linked-uuid]
---
Markdown content with [[uuid]] links.subject: "Ada Lovelace" (type: person)
predicate: "works_at"
object: "Babbage Labs" (type: organization)
context: "as lead engineer"
confidence: 1.0
valid_from/to: date range
sources: [{type: note, id: uuid, location: "paragraph 3"}]| Data | Location |
|---|---|
| Notes | {NOTES_DIR}/notes/ (default ~/notes/notes/) |
| UUID index | {NOTES_DIR}/.index/ |
| Vectors | Qdrant collection notes_{hash} |
| Git repo | {NOTES_DIR}/.git/ |
| Facts & glossary | ~/.local/share/vector-core/ (configurable via VECTOR_SHARED_DATA_DIR) |
NOTES_DIR (default ~/notes) is the base directory. Actual note files live in the notes/ subdirectory within it. The base directory also contains .index/, .git/, and .locks/.
Notes stored as {slug}-{uuid}.md organized by category subdirectories.
| Variable | Default | Description |
|---|---|---|
NOTES_DIR | ~/notes | Notes storage directory |
NOTES_GIT_ENABLED | true | Enable git versioning |
NOTES_GIT_USER_NAME | Notes MCP | Git commit author |
NOTES_GIT_USER_EMAIL | notes@localhost | Git commit email |
NOTES_AUTO_INDEX | true | Auto-index on startup |
NOTES_COLLECTION_PREFIX | notes | Qdrant collection prefix |
Plus inherited vector-core settings (VECTOR_QDRANT_URL, VECTOR_EMBEDDING_URL, etc.).
# Filter by tag
tag:project-x
# Exclude a tag
-tag:archived
# Filter by category (exact match)
category:work/projects
# Date filters
after:2024-01-01
before:2024-06-30
# Title search
title:meeting notes
# Combined
project tag:active category:work after:2024-01-01Static data endpoints:
notes://index - Full note indexnotes://tags - All tags with countsnotes://categories - Category hierarchynotes://recent - Last 20 modified notesnotes://orphans - Notes with no backlinksnotes://broken-links - Broken reference summarynotes://parse-errors - Notes that failed to parseRequires vector-core components:
External libraries:
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.