patchxnote-agent 0.2.16 → 0.2.17
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.
package/README.md
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
# PatchX Freenote Agent npm wrapper
|
|
2
2
|
|
|
3
|
+
> Version 0.2.17 supports account-wide mobile/desktop/web reads on GoServer Scheme B (0.20.85). Existing explicit mobile/desktop calls and valid authorization remain compatible. Discover the connected MCP tool schema before using optional platform parameters.
|
|
4
|
+
|
|
3
5
|
[English README](https://github.com/ZsTs119/patchx-freenote-agent#readme) | [简体中文说明](https://github.com/ZsTs119/patchx-freenote-agent/blob/main/README.zh-CN.md) | [飞书公开使用指南](https://patchx2025.feishu.cn/wiki/PnVRwYT7IirFPckairGcWPnHnCd)
|
|
4
6
|
|
|
5
7
|
This npm package is the installer and thin launcher wrapper for PatchX Freenote Agent. It downloads or verifies the matching native `patchxnote` CLI binary from GitHub Releases, verifies `checksums.txt`, and installs it into a user-writable directory before delegating runtime commands to that binary.
|
|
6
8
|
|
|
7
9
|
PatchX Freenote Agent is the local AI assistant connector for PatchX Freenote. It lets an MCP-capable AI assistant find PatchX Freenote records, inspect AI-generated results, create Markdown drafts, and manually send user-approved messages to Feishu, DingTalk, or another webhook.
|
|
8
10
|
|
|
9
|
-
Version `0.2.
|
|
11
|
+
Version `0.2.17` defaults to the production API at `https://freenote.patch-x.cn`. When upgrading from test, update or remove explicit server-address overrides in your CLI and MCP host configuration, then run `mcp login` in the same runtime and profile that launches MCP. Test credentials and records do not migrate to production.
|
|
10
12
|
|
|
11
13
|
This release supports the WorkBuddy connector's CLI authorization flow. Temporary token-refresh failures preserve the login session and return a retryable error; rejected refresh credentials require authorization again. WorkBuddy's connector update and official client verification are tracked separately.
|
|
12
14
|
|
|
@@ -15,7 +17,7 @@ Production service: [https://freenote.patch-x.cn/](https://freenote.patch-x.cn/)
|
|
|
15
17
|
Give this one-line prompt to an AI assistant:
|
|
16
18
|
|
|
17
19
|
```text
|
|
18
|
-
Help me connect PatchX Freenote MCP and install the PatchX Freenote MCP Skill when the client supports Agent Skills. Use the production service at https://freenote.patch-x.cn/ and the setup page at https://freenote.patch-x.cn/mcp/setup/; if existing configuration explicitly points to the old test service, update the server address used for this connection to production first. First, if this is a local command-capable environment, run npx -y patchxnote-agent@latest skill install on this machine so future or long sessions remember the PatchX Freenote SOP; if the current client does not support Skill installation, do not treat that as a connection blocker and continue with MCP setup according to the client's capabilities. Identify the MCP client you are running in: if this is a local MCP client such as Codex, Cursor, VS Code, Claude Desktop, Claude Code, or Windsurf, run npx -y patchxnote-agent@latest setup --client <client-id> on this machine in the same OS/runtime that will later launch the MCP server. If this is an AI client or cloud platform that cannot run local commands but supports Remote MCP, custom connectors, custom MCP services, or tool plugins, create a custom MCP connector named PatchX Freenote MCP and connect it with this PatchX Freenote Remote MCP URL: https://freenote.patch-x.cn/mcp. If you are not sure which client ID or config format to use, local clients should first run npx -y patchxnote-agent@latest mcp config and use the printed generic stdio config, while remote clients should look for a Remote MCP Server URL, MCP Server URL, or Custom Connector setup entry. For login, open the browser and let me complete PatchX Freenote phone-code authorization there; do not ask me to paste OTP codes, OAuth codes, authorization codes, access tokens, refresh tokens, or webhook secrets into chat. After setup, call patchxnote_get_current_user and patchxnote_list_memories with {"platform":"mobile","limit":5}
|
|
20
|
+
Help me connect PatchX Freenote MCP and install the PatchX Freenote MCP Skill when the client supports Agent Skills. Use the production service at https://freenote.patch-x.cn/ and the setup page at https://freenote.patch-x.cn/mcp/setup/; if existing configuration explicitly points to the old test service, update the server address used for this connection to production first. First, if this is a local command-capable environment, run npx -y patchxnote-agent@latest skill install on this machine so future or long sessions remember the PatchX Freenote SOP; if the current client does not support Skill installation, do not treat that as a connection blocker and continue with MCP setup according to the client's capabilities. Identify the MCP client you are running in: if this is a local MCP client such as Codex, Cursor, VS Code, Claude Desktop, Claude Code, or Windsurf, run npx -y patchxnote-agent@latest setup --client <client-id> on this machine in the same OS/runtime that will later launch the MCP server. If this is an AI client or cloud platform that cannot run local commands but supports Remote MCP, custom connectors, custom MCP services, or tool plugins, create a custom MCP connector named PatchX Freenote MCP and connect it with this PatchX Freenote Remote MCP URL: https://freenote.patch-x.cn/mcp. If you are not sure which client ID or config format to use, local clients should first run npx -y patchxnote-agent@latest mcp config and use the printed generic stdio config, while remote clients should look for a Remote MCP Server URL, MCP Server URL, or Custom Connector setup entry. For login, open the browser and let me complete PatchX Freenote phone-code authorization there; do not ask me to paste OTP codes, OAuth codes, authorization codes, access tokens, refresh tokens, or webhook secrets into chat. After setup, call patchxnote_get_current_user and patchxnote_list_memories with {"limit":5} when the discovered schema makes platform optional; otherwise retain {"platform":"mobile","limit":5} for the older installed schema. Verify the returned records and sources. References: https://github.com/ZsTs119/patchx-freenote-agent and https://patchx2025.feishu.cn/wiki/PnVRwYT7IirFPckairGcWPnHnCd
|
|
19
21
|
```
|
|
20
22
|
|
|
21
23
|
The npm package includes an Agent Skills package at `skills/patchxnote-mcp/`. Compatible agents can install or refresh it with:
|
|
@@ -100,6 +102,8 @@ npx -y patchxnote-agent@latest install --print-config
|
|
|
100
102
|
Common CLI examples:
|
|
101
103
|
|
|
102
104
|
```sh
|
|
105
|
+
patchxnote model-io list
|
|
106
|
+
patchxnote model-io list --platform web
|
|
103
107
|
patchxnote model-io list --platform mobile
|
|
104
108
|
patchxnote model-io packaged-result --request-id <request_id> --platform mobile --out ./packaged-result.json
|
|
105
109
|
patchxnote model-io provider-response --request-id <request_id> --platform mobile --out ./provider-response.json
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "patchxnote-agent",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.17",
|
|
4
4
|
"mcpName": "io.github.ZsTs119/patchxnote-agent",
|
|
5
5
|
"description": "Installer wrapper for the PatchX Freenote Agent CLI, local MCP server, and PatchX Freenote MCP Skill.",
|
|
6
6
|
"repository": {
|
|
@@ -69,7 +69,9 @@ npx -y patchxnote-agent@latest mcp status --verify
|
|
|
69
69
|
Then call the MCP tools `patchxnote_get_current_user` and `patchxnote_list_memories` with:
|
|
70
70
|
|
|
71
71
|
```json
|
|
72
|
-
{"
|
|
72
|
+
{"limit":5}
|
|
73
73
|
```
|
|
74
74
|
|
|
75
|
+
Inspect `tools/list` first: Scheme B tools make platform optional and support mobile/desktop/web. Use the default above for all account sources, or `{"platform":"web","limit":5}` to filter Web. If an older installed tool still requires platform, use its explicit mobile/desktop schema until upgrading. Existing valid authorization remains usable.
|
|
76
|
+
|
|
75
77
|
Report only the evidence actually obtained: configured, authenticated, tools listed, real tool called, published, indexed, or platform accepted.
|
|
@@ -7,13 +7,13 @@ Use this reference when installing, repairing, or verifying PatchX Freenote MCP
|
|
|
7
7
|
Chinese:
|
|
8
8
|
|
|
9
9
|
```text
|
|
10
|
-
请帮我接入 PatchX Freenote MCP,并在客户端支持 Agent Skills 时安装 PatchX Freenote MCP Skill。请使用生产服务地址 https://freenote.patch-x.cn/,接入页面为 https://freenote.patch-x.cn/mcp/setup/;如现有配置显式指定了旧测试地址,请先将本次接入使用的服务地址调整为上述生产地址。首先,如果当前是支持本地命令执行的环境,请在本机执行 npx -y patchxnote-agent@latest skill install,让后续新会话或长上下文能记住 PatchX Freenote SOP;如果当前客户端不支持 Skill 安装,不要判定为不能接入,请继续按客户端能力完成 MCP 接入。请识别你所在的 MCP 客户端:如果是 Codex、Cursor、VS Code、Claude Desktop、Claude Code、Windsurf 等本地 MCP 客户端,请在当前本机、并且在后续会启动 MCP 服务的同一个运行时执行 npx -y patchxnote-agent@latest setup --client <client-id>;如果是不支持本机命令但支持 Remote MCP、自定义连接器、自定义 MCP 服务或工具插件的 AI 客户端/云平台,请创建名为 PatchX Freenote MCP 的自定义 MCP 连接器,并使用这个 PatchX Freenote Remote MCP URL 完成接入:https://freenote.patch-x.cn/mcp。如果不确定客户端 ID 或配置格式,本地客户端先执行 npx -y patchxnote-agent@latest mcp config 并使用打印出的通用 stdio 配置,远程客户端则优先寻找 Remote MCP Server URL / MCP Server URL / Custom Connector 配置入口。登录时请打开浏览器让我完成 PatchX Freenote 手机号验证码授权,不要让我把验证码、OAuth code、授权码、access token、refresh token 或 webhook secret 粘贴到聊天里。完成后请调用 patchxnote_get_current_user 和 patchxnote_list_memories
|
|
10
|
+
请帮我接入 PatchX Freenote MCP,并在客户端支持 Agent Skills 时安装 PatchX Freenote MCP Skill。请使用生产服务地址 https://freenote.patch-x.cn/,接入页面为 https://freenote.patch-x.cn/mcp/setup/;如现有配置显式指定了旧测试地址,请先将本次接入使用的服务地址调整为上述生产地址。首先,如果当前是支持本地命令执行的环境,请在本机执行 npx -y patchxnote-agent@latest skill install,让后续新会话或长上下文能记住 PatchX Freenote SOP;如果当前客户端不支持 Skill 安装,不要判定为不能接入,请继续按客户端能力完成 MCP 接入。请识别你所在的 MCP 客户端:如果是 Codex、Cursor、VS Code、Claude Desktop、Claude Code、Windsurf 等本地 MCP 客户端,请在当前本机、并且在后续会启动 MCP 服务的同一个运行时执行 npx -y patchxnote-agent@latest setup --client <client-id>;如果是不支持本机命令但支持 Remote MCP、自定义连接器、自定义 MCP 服务或工具插件的 AI 客户端/云平台,请创建名为 PatchX Freenote MCP 的自定义 MCP 连接器,并使用这个 PatchX Freenote Remote MCP URL 完成接入:https://freenote.patch-x.cn/mcp。如果不确定客户端 ID 或配置格式,本地客户端先执行 npx -y patchxnote-agent@latest mcp config 并使用打印出的通用 stdio 配置,远程客户端则优先寻找 Remote MCP Server URL / MCP Server URL / Custom Connector 配置入口。登录时请打开浏览器让我完成 PatchX Freenote 手机号验证码授权,不要让我把验证码、OAuth code、授权码、access token、refresh token 或 webhook secret 粘贴到聊天里。完成后请调用 patchxnote_get_current_user 和 patchxnote_list_memories,如果发现的工具Schema允许省略platform,使用参数 {"limit":5} 默认读取本人全部来源;旧版Schema仍要求平台时使用 {"platform":"mobile","limit":5},核对返回记录及来源。参考资料:https://github.com/ZsTs119/patchx-freenote-agent 和 https://patchx2025.feishu.cn/wiki/PnVRwYT7IirFPckairGcWPnHnCd。
|
|
11
11
|
```
|
|
12
12
|
|
|
13
13
|
English:
|
|
14
14
|
|
|
15
15
|
```text
|
|
16
|
-
Help me connect PatchX Freenote MCP and install the PatchX Freenote MCP Skill when the client supports Agent Skills. Use the production service at https://freenote.patch-x.cn/ and the setup page at https://freenote.patch-x.cn/mcp/setup/; if existing configuration explicitly points to the old test service, update the server address used for this connection to production first. First, if this is a local command-capable environment, run npx -y patchxnote-agent@latest skill install on this machine so future or long sessions remember the PatchX Freenote SOP; if the current client does not support Skill installation, do not treat that as a connection blocker and continue with MCP setup according to the client's capabilities. Identify the MCP client you are running in: if this is a local MCP client such as Codex, Cursor, VS Code, Claude Desktop, Claude Code, or Windsurf, run npx -y patchxnote-agent@latest setup --client <client-id> on this machine in the same OS/runtime that will later launch the MCP server. If this is an AI client or cloud platform that cannot run local commands but supports Remote MCP, custom connectors, custom MCP services, or tool plugins, create a custom MCP connector named PatchX Freenote MCP and connect it with this PatchX Freenote Remote MCP URL: https://freenote.patch-x.cn/mcp. If you are not sure which client ID or config format to use, local clients should first run npx -y patchxnote-agent@latest mcp config and use the printed generic stdio config, while remote clients should look for a Remote MCP Server URL, MCP Server URL, or Custom Connector setup entry. For login, open the browser and let me complete PatchX Freenote phone-code authorization there; do not ask me to paste OTP codes, OAuth codes, authorization codes, access tokens, refresh tokens, or webhook secrets into chat. After setup, call patchxnote_get_current_user and patchxnote_list_memories with {"platform":"mobile","limit":5}
|
|
16
|
+
Help me connect PatchX Freenote MCP and install the PatchX Freenote MCP Skill when the client supports Agent Skills. Use the production service at https://freenote.patch-x.cn/ and the setup page at https://freenote.patch-x.cn/mcp/setup/; if existing configuration explicitly points to the old test service, update the server address used for this connection to production first. First, if this is a local command-capable environment, run npx -y patchxnote-agent@latest skill install on this machine so future or long sessions remember the PatchX Freenote SOP; if the current client does not support Skill installation, do not treat that as a connection blocker and continue with MCP setup according to the client's capabilities. Identify the MCP client you are running in: if this is a local MCP client such as Codex, Cursor, VS Code, Claude Desktop, Claude Code, or Windsurf, run npx -y patchxnote-agent@latest setup --client <client-id> on this machine in the same OS/runtime that will later launch the MCP server. If this is an AI client or cloud platform that cannot run local commands but supports Remote MCP, custom connectors, custom MCP services, or tool plugins, create a custom MCP connector named PatchX Freenote MCP and connect it with this PatchX Freenote Remote MCP URL: https://freenote.patch-x.cn/mcp. If you are not sure which client ID or config format to use, local clients should first run npx -y patchxnote-agent@latest mcp config and use the printed generic stdio config, while remote clients should look for a Remote MCP Server URL, MCP Server URL, or Custom Connector setup entry. For login, open the browser and let me complete PatchX Freenote phone-code authorization there; do not ask me to paste OTP codes, OAuth codes, authorization codes, access tokens, refresh tokens, or webhook secrets into chat. After setup, call patchxnote_get_current_user and patchxnote_list_memories with {"limit":5} when the discovered schema makes platform optional; otherwise retain {"platform":"mobile","limit":5} for the older installed schema. Verify the returned records and sources. References: https://github.com/ZsTs119/patchx-freenote-agent and https://patchx2025.feishu.cn/wiki/PnVRwYT7IirFPckairGcWPnHnCd
|
|
17
17
|
```
|
|
18
18
|
|
|
19
19
|
## Client Detection
|
|
@@ -91,7 +91,7 @@ Then verify real MCP capability:
|
|
|
91
91
|
1. `initialize`
|
|
92
92
|
2. `tools/list`
|
|
93
93
|
3. `tools/call patchxnote_get_current_user`
|
|
94
|
-
4.
|
|
94
|
+
4. Discover the content schema, then call `patchxnote_list_memories` with `{"limit":5}` for Scheme B or explicit `{"platform":"mobile","limit":5}` if the installed older schema requires it. Web filter: `{"platform":"web","limit":5}` when advertised.
|
|
95
95
|
|
|
96
96
|
If the client asks for a current tool count, answer from `tools/list`, not from this skill file or memory.
|
|
97
97
|
|
|
@@ -87,12 +87,12 @@ Run both commands in the same runtime that launches MCP. Do not remove mobile/de
|
|
|
87
87
|
|
|
88
88
|
Check:
|
|
89
89
|
|
|
90
|
-
-
|
|
90
|
+
- Is a source filter applied? Scheme B defaults to all sources and accepts mobile/desktop/web. Older installed tool schemas may still require explicit mobile/desktop.
|
|
91
91
|
- Is the account authenticated in this runtime?
|
|
92
92
|
- Is `patchxnote_search_memories` searching only current-session cache?
|
|
93
93
|
- Does `patchxnote_list_memories` need pagination?
|
|
94
94
|
|
|
95
|
-
Do not infer that
|
|
95
|
+
Do not infer that the whole account has no data from one source or one cached page. Check the default account query and its pagination; local cache search only covers loaded metadata.
|
|
96
96
|
|
|
97
97
|
## Tool Count Drift
|
|
98
98
|
|
|
@@ -4,13 +4,13 @@ Use this reference when the user wants to use PatchX Freenote data after MCP set
|
|
|
4
4
|
|
|
5
5
|
## Common Read Workflows
|
|
6
6
|
|
|
7
|
-
Recent
|
|
7
|
+
Recent memories across the current account (Scheme B):
|
|
8
8
|
|
|
9
9
|
```json
|
|
10
|
-
{"
|
|
10
|
+
{"limit":5}
|
|
11
11
|
```
|
|
12
12
|
|
|
13
|
-
Use `patchxnote_list_memories` for list entry points.
|
|
13
|
+
Use `patchxnote_list_memories` for list entry points. With Scheme B, omit `platform` for all account sources, or filter by `mobile`, `desktop`, or `web` (for example `{"platform":"web","limit":5}`). Retain each item platform and pass server cursors unchanged. Discover the connected tool schema first; older installed tools may still require mobile/desktop until upgraded.
|
|
14
14
|
|
|
15
15
|
Current user:
|
|
16
16
|
|
|
@@ -20,12 +20,12 @@ Current user:
|
|
|
20
20
|
|
|
21
21
|
Record detail:
|
|
22
22
|
|
|
23
|
-
- Use `patchxnote_get_memory` with the returned `id` and
|
|
23
|
+
- Use `patchxnote_get_memory` with the returned `id` and its `platform`. Platform may be omitted for a unique account record; if the server reports an ambiguous ID, specify its source.
|
|
24
24
|
- Treat metadata titles and snippets as record labels, not guaranteed original filenames.
|
|
25
25
|
|
|
26
26
|
Search:
|
|
27
27
|
|
|
28
|
-
-
|
|
28
|
+
- In the local-tool branch, `patchxnote_search_memories` searches only metadata already loaded in the current account session. Omit platform to search all loaded sources, or filter Web/App/PC. The OAuth proxy uses the server tool description and does not share this local cache.
|
|
29
29
|
- If search results are missing, list first, then search again if appropriate.
|
|
30
30
|
|
|
31
31
|
## Counting Summary Records
|
|
@@ -35,7 +35,7 @@ For "which files did I summarize" or "how many summaries":
|
|
|
35
35
|
1. Inspect live tool availability if the available tools are uncertain.
|
|
36
36
|
2. Page `patchxnote_list_memories` with `limit` up to 50 and the returned cursor.
|
|
37
37
|
3. Keep `event_summary` separate from `daily_digest`.
|
|
38
|
-
4. If counting source objects rather than rows, deduplicate `event_summary` records by `client_object_id
|
|
38
|
+
4. If counting source objects rather than rows, deduplicate `event_summary` records within the current account by (`platform`, `client_object_id`), preserving different origins.
|
|
39
39
|
5. State whether the count is complete, page-limited, filtered by platform, or based on currently returned records only.
|
|
40
40
|
|
|
41
41
|
Do not claim metadata titles are original local filenames.
|