Skip to main content
Glama
cflorczyk9

margins-mcp

by cflorczyk9

propose_wikilinks

Scan Obsidian vault pages for entity-like phrases and suggest wikilinks to matching pages. Works on a single page or across a folder scope with optional auto-apply.

Instructions

Scan vault pages for entity-shaped phrases and propose wikilinks to other vault pages that share the same slug. Two modes: (1) single-page — pass path, get a ranked list of {phrase, wikilink, occurrences} for that one page. (2) scope — pass scope (glob/folder), scan every matching page using one shared slug index (much faster than calling repeatedly), get aggregated suggestions across pages. With apply: true in scope mode, Margins stages one rewritten page per scanned page (a propose_page proposal that replaces every candidate phrase with its wikilink). Apply mode preserves the proposal-review contract — nothing lands until resolve_proposal accepts. Useful for A3/B3 personas (many files, few wikilinks): scope across a folder finds entity references that already have target pages.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pathNoPage path for single-page mode, e.g. 'wiki/career/career.md'. Mutually exclusive with scope.
applyNoOnly meaningful in scope mode. When true, stage a rewritten page per scanned page with all wikilink suggestions applied (one propose_page per page, NOT per phrase). Review/accept via list_proposals + resolve_proposal. Default false (suggest only).
scopeNoGlob for bulk-scope mode, e.g. 'wiki/sources/**' or 'Anatomy/*.md'. Mutually exclusive with path.
maxPagesNoCap on pages scanned in scope mode. Default 50.
maxSuggestionsNoCap on suggestions per page. Default 15.
Behavior4/5

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

Beyond annotations (non-destructive, non-read-only), explains that apply mode stages rewritten pages but respects the proposal-review contract (nothing lands until resolve_proposal). Notes that scope mode is faster and uses a shared slug index. No contradictions with annotations.

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?

Front-loaded with main purpose, then modes, then additional details. Every sentence contributes information. Well-structured and efficient with no redundancy.

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?

Describes return format for single-page (ranked list of {phrase, wikilink, occurrences}) and scope (aggregated suggestions). Covers apply mode and proposal workflow. Lacks error handling or edge cases, but sufficient given no output schema and clear parameter descriptions.

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?

Schema coverage is 100%, so baseline is 3. Description adds meaning: explains mutual exclusivity of path and scope, details apply behavior (stages one propose_page per scanned page), and caps for maxPages and maxSuggestions. Adds value beyond schema descriptors.

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?

Clearly states it scans vault pages for entity-shaped phrases and proposes wikilinks. Distinguishes two modes (single-page and scope) and mentions target personas (A3/B3). Specific verb+resource and differentiates from sibling tools like propose_page and propose_entity_stubs.

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

Usage Guidelines4/5

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

Describes when to use: scanning for entity-shaped phrases to propose wikilinks. Implicitly distinguishes from other propose tools (e.g., propose_page for rewriting). Mentions scenarios (many files, few wikilinks) and that scope mode is faster than repeated calls. Could be explicit about when not to use, but context is clear.

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

Install Server

Other Tools

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/cflorczyk9/Margins'

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