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

4 Likes

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

1 Like

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.

1 Like

Thanks for your bug report! Sorry I’m just responding to it now, for some reason I don’t get email notifications from this forum (despite having ā€œreceive all notifications for this topicā€ enabled for this post).

I’ve opened the ā€œIssuesā€ section on the repo, and I’ll take a look into this bug next week.

@Tim_Simpson I’ve put up a fix in version v0.9.4: Release v0.9.4 Ā· JDNdeveloper/dynalist-mcp Ā· GitHub

Let me know if this resolved the issue for you!