Front-load (not memory) disambiguation into tool descriptions for 120-char prompt truncation

Ulysses truncates MCP tool descriptions to 120 chars in prompt text.
Moved '(not memory)' to first line of all four tool docstrings so the
disambiguation survives truncation. Kept Args/Returns sections intact.
This commit is contained in:
helm 2026-07-06 21:41:52 -04:00
parent edbb4b7152
commit 31a288933f

View file

@ -124,9 +124,7 @@ mcp = FastMCP("Obsidian Vaults")
@mcp.tool()
def get_vaults() -> dict[str, Any]:
"""FILESYSTEM TOOL — List all Obsidian vaults found on disk in the vaults root directory.
USE THIS TO: discover which vaults are available before browsing one.
"""FILESYSTEM TOOL (not memory) — List Obsidian vaults on disk. Use to discover available vaults before browsing one.
Returns a list of vaults with name, path, and note counts.
"""
@ -162,15 +160,7 @@ def list_vault(
include_directories: bool = True,
file_extensions: list[str] | None = None,
) -> dict[str, Any]:
"""FILESYSTEM TOOL — Reads your Obsidian vault from disk. Lists files and folders.
USE THIS TO: browse your campaign notes, discover what documents exist,
find folders, see the vault structure. Call this BEFORE get_vault_document
so you know what's available to read.
IMPORTANT: This reads the ACTUAL FILESYSTEM. It is NOT a memory search,
NOT a conversation search, NOT a database query. It looks at real files
and folders on disk in your Obsidian vault directory.
"""FILESYSTEM TOOL (not memory) — List files and folders in vault on disk. See structure before reading docs.
Args:
vault_name: Name of the vault (subdirectory name under vaults root)
@ -237,10 +227,7 @@ def list_vault(
@mcp.tool()
def get_vault_document(vault_name: str, doc_path: str) -> dict[str, Any]:
"""FILESYSTEM TOOL — Read a markdown document from a vault on disk.
USE THIS TO: read the full content of a note you discovered via list_vault
or search_vault. Returns the complete markdown text with metadata.
"""FILESYSTEM TOOL (not memory) — Read a markdown note from vault on disk. Use after list_vault to get content.
Args:
vault_name: Name of the vault.
@ -272,14 +259,7 @@ def get_vault_document(vault_name: str, doc_path: str) -> dict[str, Any]:
@mcp.tool()
def search_vault(vault_name: str, query: str, max_results: int = 50) -> dict[str, Any]:
"""FILESYSTEM TOOL — Full-text search across all markdown files on disk in a vault.
USE THIS TO: find which notes mention a character, location, or concept.
Searches the actual file contents of every .md file in the vault.
IMPORTANT: This searches REAL FILES on disk. It is NOT a memory search
or conversation search. It reads every markdown file and looks for your
query string inside the document text.
"""FILESYSTEM TOOL (not memory) — Search markdown files on disk. Find notes about characters, locations, concepts.
Args:
vault_name: Name of the vault to search.