Skip to main content
Glama
r2d2helm

Knowledge Assistant MCP Server

by r2d2helm

Knowledge Assistant MCP Server

Serveur MCP (Model Context Protocol) pour interroger un vault Obsidian depuis Claude Code.

Fonctionnalités

Outil

Description

knowledge_search

Recherche multi-termes avec logique AND

knowledge_read

Lire le contenu complet d'une note

knowledge_related

Trouver les notes liées à un concept

knowledge_stats

Statistiques du vault (notes, tags, types)

knowledge_explore_tag

Lister les notes par tag

knowledge_backlinks

Trouver les backlinks d'une note

knowledge_recent

Notes récemment modifiées

Installation

Prérequis

  • Python 3.10+

  • uv (gestionnaire de packages)

Configuration Claude Code

Linux/macOS

Ajouter dans ~/.claude/settings.json :

{
  "mcpServers": {
    "knowledge-assistant": {
      "type": "stdio",
      "command": "uv",
      "args": [
        "run",
        "--directory",
        "/path/to/knowledge-assistant-mcp",
        "python",
        "-m",
        "src.server"
      ],
      "env": {
        "KNOWLEDGE_VAULT_PATH": "/home/username/Documents/Knowledge",
        "KNOWLEDGE_INDEX_PATH": "/home/username/.knowledge/notes-index.json"
      }
    }
  }
}

Windows

{
  "mcpServers": {
    "knowledge-assistant": {
      "type": "stdio",
      "command": "uv",
      "args": [
        "run",
        "--directory",
        "C:\\path\\to\\knowledge-assistant-mcp",
        "python",
        "-m",
        "src.server"
      ],
      "env": {
        "KNOWLEDGE_VAULT_PATH": "C:\\Users\\username\\Documents\\Knowledge",
        "KNOWLEDGE_INDEX_PATH": "C:\\Users\\username\\.knowledge\\notes-index.json"
      }
    }
  }
}

Utilisation

Recherche multi-termes

knowledge_search("PowerShell UTF-8")

→ Trouve les notes contenant tous les termes (AND)

Lire une note

knowledge_read("Concepts/C_Zettelkasten.md")

Notes liées

knowledge_related("PowerShell")

Explorer un tag

knowledge_explore_tag("dev/powershell")

Configuration

Les chemins sont configurables via variables d'environnement :

Variable

Description

Défaut Linux/macOS

Défaut Windows

KNOWLEDGE_VAULT_PATH

Chemin du vault Obsidian

~/Documents/Knowledge

%USERPROFILE%\Documents\Knowledge

KNOWLEDGE_INDEX_PATH

Chemin du fichier d'index

~/.knowledge/notes-index.json

%USERPROFILE%\.knowledge\notes-index.json

KNOWLEDGE_CACHE_TTL

Durée du cache en secondes

60

60

Structure du Vault

Knowledge/
├── _Inbox/        # Nouvelles captures
├── Concepts/      # Notes atomiques (C_*)
├── Conversations/ # Sessions Claude
├── Projets/       # Notes projet
├── Références/    # Documentation
└── ...

Licence

MIT

Available Tools

9 tools
knowledge_explore_tagB

Find all notes with a specific tag.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagYesTag to search for (with or without #)

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It states the basic action but lacks behavioral details like whether it returns a list or count, if results are paginated, what happens with non-existent tags, or any rate limits. 'Find all notes' suggests a read operation, but this isn't explicitly confirmed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with zero waste. It's front-loaded with the core purpose and appropriately sized for a simple tool with one parameter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read tool with no annotations, no output schema, and 100% schema coverage, the description is minimally adequate. It covers the basic purpose but lacks details on behavior, output format, or sibling differentiation, leaving gaps in context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with the parameter 'tag' documented as 'Tag to search for (with or without #)'. The description adds no additional meaning beyond this, as it only restates 'specific tag'. Baseline 3 is appropriate since the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Find') and resource ('all notes'), with the specific constraint 'with a specific tag'. It doesn't explicitly differentiate from sibling tools like knowledge_search or knowledge_related, but the tag-based filtering is a clear specialization.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like knowledge_search (which might support tag filtering) or knowledge_related (which might find related notes). The description implies usage for tag-based queries but doesn't mention exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

knowledge_graphA

Generate a graph view of links between notes. Without center_note, returns the most connected clusters. With center_note, returns the subgraph around that note. Output is JSON with nodes[] and edges[] compatible with graph visualizations.

ParametersJSON Schema
NameRequiredDescriptionDefault
center_noteNoOptional. Title or path of the note to center the graph on. If not provided, returns clusters of most connected notes.
depthNoDepth of connections to include when center_note is provided (default: 2)
formatNoOutput format: 'json' for raw JSON, 'summary' for human-readable text (default: json)json

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses key behavioral traits: the tool returns JSON with nodes and edges compatible with graph visualizations, and it explains the two modes of operation (clusters vs. subgraph). However, it doesn't mention potential limitations like rate limits, authentication needs, or data size constraints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose, followed by usage guidelines and output format. Every sentence earns its place, with no wasted words, making it highly efficient and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (graph generation with optional parameters) and no output schema, the description does well by explaining the output format and behavior. However, it could be more complete by detailing error cases or performance considerations, though the lack of annotations isn't fully compensated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds some context by explaining the effect of 'center_note' on output, but doesn't provide additional meaning beyond what's in the schema descriptions. This meets the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Generate a graph view of links between notes.' It specifies the verb ('generate') and resource ('graph view of links between notes'), and distinguishes it from siblings by focusing on graph visualization rather than backlinks, tags, reading, or writing operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use this tool vs. alternatives: 'Without center_note, returns the most connected clusters. With center_note, returns the subgraph around that note.' This provides clear context for both scenarios and differentiates it from sibling tools like knowledge_backlinks or knowledge_related.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

knowledge_readB

Read the full content of a specific note. Use the path from search results or the note title.

ParametersJSON Schema
NameRequiredDescriptionDefault
note_pathYesPath to the note (e.g., 'Concepts/C_Zettelkasten.md') or note title

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It describes the read operation but lacks details on permissions, error handling (e.g., if the note doesn't exist), or output format (e.g., plain text, structured data). For a tool with zero annotation coverage, this is a significant gap in transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with zero waste, front-loading the core purpose and efficiently adding usage guidance. Every word serves a clear function, making it appropriately sized and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (single parameter, no output schema, no annotations), the description is minimally adequate but lacks completeness. It doesn't explain the return values or behavioral traits, which is a gap since there's no output schema to compensate. However, the simple nature of a read operation keeps it from being severely inadequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, so the schema already documents the 'note_path' parameter with examples. The description adds marginal value by reinforcing that the path can come from 'search results' or be a 'note title', but doesn't provide additional syntax or format details beyond what the schema provides, meeting the baseline for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Read' and the resource 'full content of a specific note', making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools like knowledge_search or knowledge_write, which would require a more specific scope statement.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides implied usage guidance by mentioning 'Use the path from search results or the note title', suggesting it's for retrieving content after identifying a note. However, it doesn't explicitly state when to use this tool versus alternatives like knowledge_search for finding notes or knowledge_write for modifying them, leaving some ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

knowledge_recentC

Get recently modified notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
countNoNumber of recent notes to return (default: 10)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool gets notes but doesn't mention critical aspects like whether it's read-only, requires authentication, has rate limits, or what the output format is. This leaves significant gaps in understanding how the tool behaves.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with zero waste. It's front-loaded with the core purpose, making it easy to parse quickly, which is ideal for conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what 'recently modified' entails (e.g., time window), the return format, or any behavioral traits. For a tool with no structured data beyond the input schema, this leaves too much unspecified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, with the 'count' parameter fully documented in the schema itself. The description doesn't add any meaning beyond the schema, such as explaining what 'recently modified' means (e.g., time frame). Baseline 3 is appropriate since the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with a specific verb ('Get') and resource ('recently modified notes'), making it immediately understandable. However, it doesn't differentiate from sibling tools like knowledge_search or knowledge_read, which might also retrieve notes, so it falls short of a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. With siblings like knowledge_search (for searching notes) and knowledge_read (for reading specific notes), there's no indication of when 'recently modified' retrieval is preferred, leaving usage ambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

knowledge_statsB

Get statistics about the Knowledge vault (total notes, types, tags, recent notes).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It states it's a read operation ('Get'), but doesn't disclose behavioral traits like whether it requires authentication, has rate limits, returns structured data, or how 'recent notes' is defined. The description is minimal and lacks operational context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with the core purpose, and lists specific statistics efficiently. Every word earns its place with no redundancy or wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 0 parameters and no output schema, the description is adequate but minimal. It specifies what statistics are retrieved, but lacks details on format, scope, or behavioral context. For a tool with no annotations, it could benefit from more operational transparency.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are 0 parameters, and schema description coverage is 100% (empty schema). The description adds no parameter information, which is appropriate here. Baseline for 0 parameters is 4, as no compensation is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and resource 'statistics about the Knowledge vault', specifying what metrics are included (total notes, types, tags, recent notes). It distinguishes from siblings like knowledge_read (read content) or knowledge_search (search), but doesn't explicitly contrast them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like knowledge_recent (which might overlap with 'recent notes') or knowledge_explore_tag (which might relate to tags). The description implies usage for statistical overviews but provides no explicit when/when-not rules or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

knowledge_writeA

Create a new note in the Knowledge vault with proper frontmatter and naming conventions. Naming conventions: C_ for concepts, YYYY-MM-DD_Conv_ for conversations, YYYY-MM-DD_Fix_ for troubleshooting notes. Checks for duplicates before creation.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesTitle of the note (will be used in filename and frontmatter)
contentYesBody content of the note in Markdown format
typeYesType of note: concept, conversation, troubleshooting, session, reference, project
tagsYesList of tags for the note (without # prefix)
folderNoOptional folder path. Defaults based on note type (e.g., 'Concepts' for concept)
relatedNoOptional list of related note titles for the 'related' frontmatter field

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behaviors: it creates notes with frontmatter, enforces naming conventions, and performs duplicate checks before creation. However, it doesn't mention potential side effects (e.g., file system changes), error handling, or response format, which would be helpful for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and front-loaded, starting with the core action ('Create a new note') followed by important constraints. Both sentences add value: the first covers creation and conventions, the second adds duplicate checking. There's no wasted verbiage, though it could be slightly more structured (e.g., separating behavioral aspects).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (mutation with 6 parameters, no annotations, no output schema), the description provides good context: it explains the creation purpose, naming rules, and duplicate checking. However, it lacks details on error conditions, response format, or how the 'type' parameter maps to the naming conventions, leaving some gaps for the agent to infer.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 6 parameters thoroughly. The description adds minimal parameter semantics beyond the schema—it mentions naming conventions that relate to the 'title' parameter and note types, but doesn't explain how parameters like 'folder' or 'related' interact with the creation process. Baseline 3 is appropriate when the schema does most of the work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Create a new note'), the target resource ('Knowledge vault'), and key behavioral aspects ('with proper frontmatter and naming conventions', 'Checks for duplicates before creation'). It distinguishes this tool from sibling tools like knowledge_read, knowledge_search, and knowledge_stats by focusing on creation rather than retrieval or analysis.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context through naming conventions (e.g., 'C_' for concepts, date-based prefixes for conversations/troubleshooting), but doesn't explicitly state when to use this tool versus alternatives like knowledge_write versus knowledge_read or knowledge_search. No explicit exclusions or prerequisites are mentioned, leaving the agent to infer usage from the naming rules.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 9 tool updatesv1.0.0
    • First observedknowledge_backlinks
    • First observedknowledge_explore_tag
    • First observedknowledge_graph
    • First observedknowledge_read
    • First observedknowledge_recent
    • First observedknowledge_related
    • First observedknowledge_search
    • First observedknowledge_stats
    • First observedknowledge_write

TDQS

A3.7/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose with no overlap: backlinks, tag exploration, graph generation, reading, recent notes, related concepts, search, statistics, and writing. The descriptions specify unique operations, making tool selection unambiguous for an agent.

Naming Consistency5/5

All tools follow a consistent 'knowledge_' prefix with descriptive suffixes (e.g., backlinks, explore_tag, graph), using snake_case uniformly. This predictable pattern enhances readability and reduces cognitive load for agents.

Tool Count5/5

With 9 tools, the set is well-scoped for a knowledge management server, covering core operations like CRUD (create, read, search), exploration (graph, related, tags), and analytics (stats, recent). Each tool earns its place without bloat.

Completeness5/5

The tool surface provides complete coverage for knowledge management: create (write), read, search, and explore (graph, related, tags, backlinks), plus analytics (stats, recent). There are no obvious gaps, enabling agents to handle full note lifecycles and discovery workflows.

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/r2d2helm/knowledge-assistant-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server