affine-mcp-server 1.10.0 → 1.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +20 -7
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  A Model Context Protocol (MCP) server that integrates with AFFiNE (self‑hosted or cloud). It exposes AFFiNE workspaces and documents to AI assistants over stdio (default) or HTTP (`/mcp`).
4
4
 
5
- [![Version](https://img.shields.io/badge/version-1.10.0-blue)](https://github.com/dawncr0w/affine-mcp-server/releases)
5
+ [![Version](https://img.shields.io/badge/version-1.10.1-blue)](https://github.com/dawncr0w/affine-mcp-server/releases)
6
6
  [![MCP SDK](https://img.shields.io/badge/MCP%20SDK-1.17.2-green)](https://github.com/modelcontextprotocol/typescript-sdk)
7
7
  [![CI](https://github.com/dawncr0w/affine-mcp-server/actions/workflows/ci.yml/badge.svg)](https://github.com/dawncr0w/affine-mcp-server/actions/workflows/ci.yml)
8
8
  [![License](https://img.shields.io/badge/license-MIT-yellow)](LICENSE)
@@ -19,7 +19,7 @@ A Model Context Protocol (MCP) server that integrates with AFFiNE (self‑hosted
19
19
  - Tools: 61 focused tools with WebSocket-based document editing
20
20
  - Status: Active
21
21
 
22
- > New in v1.10.0: Added document search/discovery utilities, template and batch document workflows, optional OAuth-protected HTTP mode, richer CLI diagnostics, and an HTTP multi-session email/password auth fix.
22
+ > New in v1.10.1: Refreshed packaged docs and release metadata for the v1.10.x toolset, and tightened tag-publish validation with E2E coverage. No runtime or tool-behavior changes.
23
23
 
24
24
  ## Features
25
25
 
@@ -314,9 +314,9 @@ export PORT=3000
314
314
  npm run start:http
315
315
  ```
316
316
 
317
- Notes for oauth mode:
317
+ Notes for OAuth mode:
318
318
  - use HTTPS for non-local deployments
319
- - `AFFINE_MCP_HTTP_ALLOW_ALL_ORIGINS=true` is rejected in oauth mode
319
+ - `AFFINE_MCP_HTTP_ALLOW_ALL_ORIGINS=true` is rejected in OAuth mode
320
320
  - tokens are validated against the issuer discovery metadata and JWKS
321
321
  - the protected resource metadata is also served at `/.well-known/oauth-protected-resource/mcp` for path-specific discovery
322
322
  - `GET /healthz` and `GET /readyz` are available for deployment diagnostics
@@ -343,8 +343,8 @@ Render / Railway / VPS (public endpoint):
343
343
  - `AFFINE_MCP_AUTH_MODE=bearer` or `oauth`
344
344
  - `AFFINE_MCP_HTTP_HOST=0.0.0.0`
345
345
  - `AFFINE_MCP_HTTP_TOKEN=<strong-token>` (bearer mode)
346
- - `AFFINE_MCP_PUBLIC_BASE_URL=<public base URL>` (oauth mode)
347
- - `AFFINE_OAUTH_ISSUER_URL=<issuer URL>` (oauth mode)
346
+ - `AFFINE_MCP_PUBLIC_BASE_URL=<public base URL>` (OAuth mode)
347
+ - `AFFINE_OAUTH_ISSUER_URL=<issuer URL>` (OAuth mode)
348
348
  - `AFFINE_MCP_HTTP_ALLOWED_ORIGINS=<your client origin(s)>`
349
349
 
350
350
  Endpoints currently available:
@@ -362,24 +362,33 @@ Endpoints currently available:
362
362
  - `create_workspace` – create workspace with initial document
363
363
  - `update_workspace` – update workspace settings
364
364
  - `delete_workspace` – delete workspace permanently
365
+ - `list_workspace_tree` – return the workspace document hierarchy as a tree
366
+ - `get_orphan_docs` – find documents that are not linked from any parent doc in the sidebar tree
365
367
 
366
368
  ### Documents
367
369
  - `list_docs` – list documents with pagination (includes `node.tags`)
368
370
  - `list_tags` – list all tags in a workspace
369
371
  - `search_docs` – fast title search with substring/prefix/exact matching, optional tag filtering, and updatedAt sorting
370
- - `list_docs_by_tag` – list documents by tag
372
+ - `list_docs_by_tag` – list documents that contain the requested tag
373
+ - `get_docs_by_tag` – discover documents by case-insensitive tag substring and return `availableTags` when nothing matches
371
374
  - `get_doc` – get document metadata
375
+ - `get_doc_by_title` – find a document by title and return its Markdown content
372
376
  - `read_doc` – read document block content and plain text snapshot (WebSocket)
373
377
  - `export_doc_markdown` – export document content as markdown
374
378
  - `publish_doc` – make document public
375
379
  - `revoke_doc` – revoke public access
376
380
  - `create_doc` – create a new document (WebSocket)
377
381
  - `create_doc_from_markdown` – create a document from markdown content
382
+ - `create_doc_from_template` – clone a template doc, substitute `{{variables}}`, and optionally link it under a parent doc
383
+ - `duplicate_doc` – clone a document into a new doc, optionally under a parent doc
378
384
  - `create_tag` – create a reusable workspace-level tag
379
385
  - `add_tag_to_doc` – attach a tag to a document
380
386
  - `remove_tag_from_doc` – detach a tag from a document
387
+ - `update_doc_title` – rename a document in both workspace metadata and the internal page block
381
388
  - `append_paragraph` – append a paragraph block (WebSocket)
382
389
  - `append_block` – append canonical block types (text/list/code/media/embed/database/edgeless) with strict validation and placement control (`viewMode=kanban` enables preset-backed data views; `data_view` defaults to kanban)
390
+ - `move_doc` – move a document in the sidebar by relinking it under a different parent
391
+ - `batch_create_docs` – create up to 20 documents in a single call
383
392
  - `add_database_column` – add a column to a database block (`rich-text`, `select`, `multi-select`, `number`, `checkbox`, `link`, `date`)
384
393
  - `add_database_row` – add a row to a database block with values mapped by column name/ID (`title` / `Title` updates the built-in row title)
385
394
  - `read_database_columns` – read database schema metadata including column IDs/types, select options, and table view column mappings
@@ -388,6 +397,10 @@ Endpoints currently available:
388
397
  - `update_database_row` – batch update multiple cells on a database row (`createOption` defaults to `true` for select fields)
389
398
  - `append_markdown` – append markdown content to an existing document
390
399
  - `replace_doc_with_markdown` – replace the main note content with markdown content
400
+ - `list_children` – list the direct child docs linked from a document
401
+ - `list_backlinks` – list the parent/reference docs that link to a document
402
+ - `cleanup_orphan_embeds` – remove linked-doc embeds that point to missing docs
403
+ - `find_and_replace` – preview or apply text replacement across a document
391
404
  - `delete_doc` – delete a document (WebSocket)
392
405
 
393
406
  ### Comments
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "affine-mcp-server",
3
- "version": "1.10.0",
3
+ "version": "1.10.1",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "description": "Model Context Protocol server for AFFiNE - enables AI assistants to interact with AFFiNE workspaces, documents, and collaboration features.",