Agent Mcp Notes — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Agent Mcp Notes (MCP Server) 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 Notes is a powerful memory server that helps AI assistants remember and connect information over time. Think of it as a smart knowledge graph where you can store facts about people, projects, or concepts, link them together, and retrieve them intelligently—perfect for building AI agents with long-term memory.
Whether you're tracking user preferences, maintaining project context, or building relationship maps, MCP Notes provides a structured way to persist, search, and traverse your knowledge graph with confidence scores, timestamps, and rich metadata.
# Clone the repository
git clone <your-repo-url>
cd mcp_notes
# Install dependencies
npm install
# Build the TypeScript code
npm run buildnpm startThe server runs on stdio and connects to any MCP-compatible client.
{
"entities": [
{
"name": "Alice",
"entityType": "person",
"observations": [
"Alice is a software engineer",
{
"content": "Alice lives in San Francisco",
"confidence": 0.9,
"source": "user_profile"
}
]
}
]
}Create relations between entities:
{
"relations": [
{
"from": "Alice",
"to": "Bob",
"relationType": "works with"
}
]
}create_entitiesCreate multiple new entities in the knowledge graph.
Parameters:
entities (array): Array of entity objects with:name (string): The name of the entityentityType (string): The type of the entityobservations (array): Initial observations (can be strings or objects with content, confidence, source)metadata (object, optional): Additional metadata for the entityadd_observationsAdd new observations to existing entities.
Parameters:
observations (array): Array of observation additions with:entityName (string): Name of the entitycontents (array): Observations to add (can be strings or objects with content, confidence, source)create_relationsCreate relations between entities.
Parameters:
relations (array): Array of relation objects with:from (string): Source entity nameto (string): Target entity namerelationType (string): Type of relation (use active voice)delete_entitiesDelete entities and their associated relations.
Parameters:
entityNames (array of strings): Names of entities to deletedelete_observationsDelete specific observations from entities.
Parameters:
deletions (array): Array of deletion objects with:entityName (string): Name of the entityobservations (array of strings): Observations to deletedelete_relationsDelete relations from the knowledge graph.
Parameters:
relations (array): Array of relation objects to deleteopen_nodesRetrieve specific entities by name.
Parameters:
names (array of strings): Entity names to retrieveread_graphRead the entire knowledge graph including all entities and relations.
search_nodesSearch for entities matching a query.
Parameters:
query (string): Search query (matches entity names, types, and observation content)query_by_timeQuery entities and observations by time range using createdAt/updatedAt timestamps.
Parameters:
since (string, optional): ISO timestamp for start of time range (inclusive)until (string, optional): ISO timestamp for end of time range (inclusive)limit (number, optional): Maximum number of results to returnsort (string, optional): Sort order by updatedAt - "asc" or "desc" (default: "desc")get_recentGet the most recently updated entities.
Parameters:
limit (number, optional): Maximum number of recent entities to return (default: 10)traverse_graphTraverse the knowledge graph from a starting entity to find connected entities via relations.
Parameters:
start (string, required): Name of the entity to start traversal fromdepth (number, optional): Number of hops to traverse (default: 1)direction (string, optional): Direction of traversal - "out" (outgoing relations), "in" (incoming relations), or "both" (default: "both")# Build
npm run build
# Watch mode for development
npm run devTypeScript types are defined in src/types.ts for:
Observations are rich objects with metadata:
interface Observation {
content: string;
createdAt: string; // ISO timestamp
confidence?: number; // 0-1
source?: string;
}Entities include timestamps and optional metadata:
interface Entity {
name: string;
entityType: string;
observations: Observation[];
createdAt: string; // ISO timestamp
updatedAt: string; // ISO timestamp
metadata?: Record<string, unknown>;
}Legacy data with plain-string observations is automatically migrated on load. Plain strings are converted to Observation objects with createdAt set to the current time.
Add this server to your MCP client configuration:
{
"mcpServers": {
"memory": {
"command": "node",
"args": ["/path/to/mcp_notes/dist/index.js"]
}
}
}src/index.ts - Main MCP server with tool handlerssrc/memoryService.ts - Core memory service managing the knowledge graphsrc/types.ts - TypeScript type definitionsMIT
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.