Dynalist MCP Server: let AI agents read and write your documents

I’ve built an MCP (Model Context Protocol) server for Dynalist and wanted to share it with the community: https://github.com/JDNdeveloper/dynalist-mcp

It allows LLMs like Claude to read and write your Dynalist documents. Some things you can use it for:

  • Organizing and grouping items
    • “Reorganize my dynalist reading list alphabetically by author”
    • “Group the items in my grocery list by store aisle”
    • “Convert all the raw links in my dynalist reading list to markdown formatted links with the book title”
  • Doing research and writing findings back under each topic
    • “For each book in my reading list, add a short summary and the author’s other notable works”
    • “For each city in my travel list, add the best time to visit and average flight cost”
  • Sending action items to your inbox
    • “Add to my dynalist inbox all of the action items we’ve discussed in this session”
    • “Add each of these errands to my inbox: pick up dry cleaning, return library books, buy stamps”
  • Checking off completed items
    • “Check off everything we’ve completed in this session in this list: <paste dynalist link>”
    • “Mark all the groceries I already bought as done: eggs, milk, bread”

It covers the full Dynalist API* with tools for reading, writing, searching, and organizing documents (see the tools reference for details). It also includes an access control system, so you can restrict the LLM to certain folders or documents and enforce read-only access.

Because the agent can read your documents, you can store reusable workflows directly in Dynalist as a series of steps for it to follow. Then you can tell the agent, for example, “follow my dynalist skill for weekly review”, and it will read and execute those steps. See the README for best practices.

Setup: For Claude Desktop, download the latest .mcpb file from the releases page and install it via Settings > Extensions > Install Extension. For Claude Code and other MCP clients, see the README.

A word of caution: giving an LLM edit access to your documents carries risk, especially with smaller models that follow instructions less reliably. I’d recommend starting with read-only mode or restricting access to a test folder until you’re comfortable with it.

Feedback and bug reports are very welcome! Feel free to post here or open a GitHub issue.

Shout out to cristip73 for building https://github.com/cristip73/dynalist-mcp, which was the original basis for this project (it has since been fully rewritten and exposes a different set of tools).

*: Except file uploads

1 Like

Thank you! I’ve been dreaming for something like this for years.

Thank you for building this, it is a game changer! Have a bug report for you, but Issues are currently disabled on the repository. Can you turn Issues back on?

Here’s the short version on the bug:
Bug: integer params arrive as strings, rejected by schema validation. When called through the Claude Desktop / Cowork MCP bridge, read_document’s max_depth is received as a string (e.g. "2") and Zod rejects it with Expected number, received string. This makes depth-limited reads impossible, so large documents can’t be paged (they exceed the ~24,500-token response cap and there’s no way to take a shallow slice). Suggested fix: accept string-encoded integers, e.g. z.coerce.number() for max_depth (and any other numeric params). Some MCP clients serialize all tool arguments as strings, so coercion makes the server robust to them.