Skip to main content
Glama
wuruiqi

academic-workflow-mcp

by wuruiqi

workflow_sync_check

Synchronize Zotero and Obsidian by detecting orphaned notes and deleted items. Supports bidirectional checks with dry-run mode.

Instructions

Bidirectional sync check between Zotero and Obsidian.

Three checks are performed depending on direction:

  1. "trash_to_obs" — Zotero items in trash → find orphaned Obsidian notes. When auto_apply=True, deletes those Obsidian notes.

  2. "obs_to_zotero" — Obsidian literature notes → find those whose Zotero item is gone (was deleted). When auto_apply=True, deletes orphan notes from Obsidian. Also finds Zotero items that had Obsidian notes created via workflow_attach_zotero_note but the note has since been deleted; when auto_apply=True, moves those Zotero items to trash.

  3. "both" — runs both directions above.

Default is dry_run mode (auto_apply=False) — reports findings without making any changes. Review the output before setting auto_apply=True.

Args: direction: "trash_to_obs" | "obs_to_zotero" | "both" auto_apply: False (default) = report only. True = actually delete/trash.

Returns: { "trash_to_obs": { "zotero_trash_items": [...], "orphan_notes_found": [...], # notes to delete "deleted_notes": [...], # notes actually deleted (auto_apply=True) }, "obs_to_zotero": { "obsidian_notes_total": int, "orphan_notes": [...], # notes with no Zotero item → delete note "deleted_orphan_notes": [...], "items_note_deleted": [...], # Zotero items whose notes were removed "trashed_items": [...], # items actually trashed (auto_apply=True) }, "auto_apply": bool, "summary": str, }

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
directionNoboth
auto_applyNo
Behavior4/5

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

No annotations are provided, so the description bears full responsibility. It details the destructive actions (deleting Obsidian notes, trashing Zotero items) when auto_apply=True, and the safe dry-run mode. It does not mention authorization or rate limits, but the behavioral effects are sufficiently covered.

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 well-organized with headings, bullet points, and a clear argument specification. Each sentence is informative, and the structure aids readability. It is appropriately sized for the tool's complexity.

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

Completeness5/5

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

Given the complexity of a bidirectional sync check with multiple sub-checks and side effects, and no output schema, the description provides a comprehensive explanation. It details all three direction modes, dry-run vs. auto_apply behavior, and the return structure in a pseudo-JSON format, making it complete for an agent to use.

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

Parameters5/5

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

With 0% schema description coverage, the description fully carries the burden. It clarifies the allowed values for 'direction' (trash_to_obs, obs_to_zotero, both) and explains the effect of 'auto_apply' (report only vs. actually delete/trash), adding critical meaning beyond the bare schema.

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 'Bidirectional sync check between Zotero and Obsidian' and enumerates three specific direction modes. It distinguishes itself from sibling tools like workflow_attach_zotero_note and workflow_sync_highlights by focusing on sync consistency rather than note creation or highlight synchronization.

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?

The description explains when to use each direction (trash_to_obs, obs_to_zotero, both) and explicitly warns about the dry_run default and the need to review output before setting auto_apply=True. However, it does not explicitly contrast with sibling tools or state when not to use this tool.

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/wuruiqi/academic-workflow-mcp'

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