@luffysolution/omnischolar-pi 0.1.12 → 0.1.14

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.en.md ADDED
@@ -0,0 +1,131 @@
1
+ # OmniScholar
2
+
3
+ <!-- mcp-name: io.github.luffysolution-svg/omnischolar -->
4
+
5
+ [中文](README.md) | English
6
+
7
+ OmniScholar adds literature search, local Zotero reading, PDF parsing, citation tools, materials data, and scientific image generation to coding agents through a local Python MCP server.
8
+
9
+ It can search public indexes, combine online records with your Zotero notes, send an approved PDF to MinerU, and publish Markdown into a regular folder or an Obsidian vault. Zotero access is read-only.
10
+
11
+ ## Features
12
+
13
+ - Search Semantic Scholar, OpenAlex, PubMed/PMC, arXiv, Crossref, Unpaywall, easyScholar, Google Scholar, and Google Patents
14
+ - Retrieve paper details, authors, citations, references, recommendations, snippets, datasets, and journal metrics
15
+ - Read Zotero collections, items, notes, annotations, attachments, indexed text, and local PDF paths without changing the library
16
+ - Parse selected PDFs with MinerU and keep text, formulas, tables, and figures together
17
+ - Find citation candidates, check bibliographic identity, and format accepted references
18
+ - Query Materials Project and export JSON, CSV, Markdown, or CIF
19
+ - Generate or edit scientific illustrations with configured image services
20
+ - Preserve local Markdown edits and place incoming conflict versions in `.conflicts/`
21
+
22
+ OmniScholar exposes 38 tools. See the [tool list](docs/TOOLS.en.md).
23
+
24
+ <details>
25
+ <summary>Install and connect an agent</summary>
26
+
27
+ Python 3.11 or newer is required:
28
+
29
+ ```sh
30
+ uv tool install luffysolution-omnischolar
31
+ # or
32
+ pipx install luffysolution-omnischolar
33
+ # or
34
+ python -m pip install luffysolution-omnischolar
35
+ ```
36
+
37
+ Check, update, or uninstall the Python command:
38
+
39
+ ```sh
40
+ omnischolar --version
41
+ omnischolar doctor --json
42
+ uv tool upgrade luffysolution-omnischolar
43
+ uv tool uninstall luffysolution-omnischolar
44
+ ```
45
+
46
+ Codex plugin:
47
+
48
+ ```sh
49
+ codex plugin marketplace add luffysolution-svg/omnischolar --ref main
50
+ codex plugin add omnischolar@omnischolar
51
+ codex plugin marketplace upgrade omnischolar
52
+ codex plugin remove omnischolar@omnischolar
53
+ ```
54
+
55
+ Claude Code plugin:
56
+
57
+ ```text
58
+ /plugin marketplace add luffysolution-svg/omnischolar
59
+ /plugin install omnischolar@omnischolar
60
+ ```
61
+
62
+ Pi package:
63
+
64
+ ```sh
65
+ pi install npm:@luffysolution/omnischolar-pi
66
+ pi update npm:@luffysolution/omnischolar-pi
67
+ pi remove npm:@luffysolution/omnischolar-pi
68
+ ```
69
+
70
+ The standalone Skills CLI is optional because the plugins bundle their Skills:
71
+
72
+ ```sh
73
+ npx skills add luffysolution-svg/omnischolar --skill '*' --agent codex --global --yes
74
+ npx skills update --global --yes
75
+ npx skills remove --skill '*' --agent codex --global --yes
76
+ ```
77
+
78
+ The plugin and host configurations start the latest PyPI MCP with:
79
+
80
+ ```sh
81
+ uvx --from luffysolution-omnischolar@latest omnischolar mcp
82
+ ```
83
+
84
+ </details>
85
+
86
+ ## Agent configuration prompt
87
+
88
+ Use this as a starting prompt for an agent:
89
+
90
+ ```text
91
+ You are my research assistant using OmniScholar. Search and cite reliable scholarly sources, verify DOI and bibliographic identity, and clearly distinguish evidence from inference. You may read Zotero but must never modify it. Ask before uploading any PDF or reference image to an external service or making a paid request. For PDF reading, use MinerU only after I approve the upload. Save approved literature notes and generated artifacts to the configured output directory, preserve local edits, and report the exact output paths. Treat generated scientific figures as illustrations, never as experimental evidence.
92
+ ```
93
+
94
+ ## Configuration and examples
95
+
96
+ On the first MCP start or installer run, OmniScholar creates a complete user-level `omnischolar.config.json` template. Services in the template are enabled by default; after you provide an API key, the corresponding service is ready to use, while services without credentials do not make requests automatically. API keys can be entered directly as `apiKey`, or supplied through the named `apiKeyEnv` environment variable.
97
+
98
+ Enable the service and fill in its API key to use Ai4Scholar, image generation, MinerU, and reference-image uploads directly.
99
+
100
+ The root [`mcp.json`](mcp.json) is a reusable MCP stdio example. It intentionally contains no API keys: the MCP process reads the global [`omnischolar.config.example.json`](omnischolar.config.example.json), which can be created with `omnischolar config init`. The plugin copy is [`.mcp.json`](.mcp.json).
101
+
102
+ Configure the Obsidian output location, paper folders, Markdown files, and parsed image assets with `output.rootDirectory`, `output.literatureDirectory`, `output.folderNameTemplate`, `output.filenameTemplate`, `output.filenameSeparator`, and `output.assetFilenameTemplate`; see [literature and output configuration](docs/RESEARCH.en.md).
103
+
104
+ ## Try it
105
+
106
+ ```text
107
+ Find five recent reviews about solid-state battery interfaces. Deduplicate by DOI and show open-access copies.
108
+
109
+ Find this DOI in my Zotero library and summarize my notes and annotations without changing Zotero.
110
+
111
+ After I approve the upload, parse this PDF with MinerU and save a reading note in my Obsidian vault.
112
+
113
+ Query stable Li-Fe-P-O materials in Materials Project and export the selected records as CSV and CIF.
114
+
115
+ Create a labelled illustration of this mechanism. Treat it as a draft, not experimental data.
116
+ ```
117
+
118
+ ## Documentation
119
+
120
+ - [Installation and agent setup](docs/INSTALLATION.en.md)
121
+ - [Configuration and service credentials](docs/CONFIGURATION.en.md)
122
+ - [Literature, Zotero, MinerU, citations, and output](docs/RESEARCH.en.md)
123
+ - [Materials and chemistry](docs/MATERIALS.en.md)
124
+ - [Scientific image providers](docs/IMAGE_PROVIDERS.en.md)
125
+ - [Tool list](docs/TOOLS.en.md)
126
+
127
+ ## Support and license
128
+
129
+ OmniScholar is open source under the [MIT License](LICENSE). Open a [GitHub issue](https://github.com/luffysolution-svg/omnischolar/issues) or email `LuffySolution@gmail.com`. Remove keys, signed URLs, private paper content, and personal Zotero data before sending a report.
130
+
131
+ Third-party services and datasets keep their own terms and licenses. See [`THIRD_PARTY_NOTICES.md`](THIRD_PARTY_NOTICES.md).
package/README.md CHANGED
@@ -2,90 +2,82 @@
2
2
 
3
3
  <!-- mcp-name: io.github.luffysolution-svg/omnischolar -->
4
4
 
5
- English | [简体中文](README.zh-CN.md)
5
+ [![PyPI](https://img.shields.io/pypi/v/luffysolution-omnischolar?logo=pypi&label=PyPI)](https://pypi.org/project/luffysolution-omnischolar/)
6
+ [![npm](https://img.shields.io/npm/v/%40luffysolution%2Fomnischolar-pi?logo=npm&label=npm)](https://www.npmjs.com/package/@luffysolution/omnischolar-pi)
7
+ [![npx Skills](https://img.shields.io/badge/npx%20Skills-supported-CB3837?logo=npm&logoColor=white)](https://www.npmjs.com/package/skills)
8
+ [![Release](https://img.shields.io/github/v/release/luffysolution-svg/omnischolar?logo=github)](https://github.com/luffysolution-svg/omnischolar/releases)
6
9
 
7
- OmniScholar adds literature search, local Zotero reading, PDF parsing, citation tools, materials data, and scientific image generation to coding agents through a local Python MCP server.
10
+ 简体中文 | [English](README.en.md)
8
11
 
9
- It can search public indexes, combine online records with your Zotero notes, send an approved PDF to MinerU, and publish Markdown into a regular folder or an Obsidian vault. Zotero access is read-only.
12
+ OmniScholar 通过本地 Python MCP 服务,为 Codex、Claude Code、Cursor、OpenCode、Hermes Pi 提供文献检索、Zotero 读取、PDF 解析、引用处理、材料数据和科研绘图工具。
10
13
 
11
- ## Features
14
+ 它可以把在线文献记录与 Zotero 笔记放在一起处理,将经你确认的 PDF 交给 MinerU 解析,再把 Markdown 保存到普通文件夹或 Obsidian Vault。Zotero 全程只读。
12
15
 
13
- - Search Semantic Scholar, OpenAlex, PubMed/PMC, arXiv, Crossref, Unpaywall, easyScholar, Google Scholar, and Google Patents
14
- - Retrieve paper details, authors, citations, references, recommendations, snippets, datasets, and journal metrics
15
- - Read Zotero collections, items, notes, annotations, attachments, indexed text, and local PDF paths without changing the library
16
- - Parse selected PDFs with MinerU and keep text, formulas, tables, and figures together
17
- - Find citation candidates, check bibliographic identity, and format accepted references
18
- - Query Materials Project and export JSON, CSV, Markdown, or CIF
19
- - Generate or edit scientific illustrations with configured image services
20
- - Preserve local Markdown edits and place incoming conflict versions in `.conflicts/`
16
+ ## 功能
21
17
 
22
- OmniScholar exposes 38 tools. See the [tool list](docs/TOOLS.en.md).
18
+ - 检索 Semantic Scholar、OpenAlex、PubMed/PMC、arXiv、Crossref、Unpaywall、easyScholar、Google Scholar Google Patents
19
+ - 查询论文详情、作者、参考文献、施引文献、推荐、全文片段、数据集和期刊指标
20
+ - 读取 Zotero 收藏夹、条目、笔记、批注、附件、索引文本和本地 PDF 路径,不修改文献库
21
+ - 使用 MinerU 提取指定 PDF 的正文、公式、表格和图片
22
+ - 查找引用候选,核对书目信息,再按要求生成参考文献
23
+ - 查询 Materials Project,并导出 JSON、CSV、Markdown 或 CIF
24
+ - 调用已配置的图片服务生成或编辑科研示意图
25
+ - 保留手工修改过的 Markdown,把待合并版本放入 `.conflicts/`
23
26
 
24
- ## Install
27
+ OmniScholar 共提供 38 个工具,完整列表见[工具目录](docs/TOOLS.md)。
25
28
 
26
- Python 3.11 or newer is required:
29
+ <details>
30
+ <summary>安装与部署</summary>
31
+
32
+ 需要 Python 3.11 或更高版本。普通 Python 命令任选一种方式安装:
27
33
 
28
34
  ```sh
29
35
  uv tool install luffysolution-omnischolar
30
- # or
36
+ #
31
37
  pipx install luffysolution-omnischolar
32
- # or
38
+ #
33
39
  python -m pip install luffysolution-omnischolar
34
40
  ```
35
41
 
36
- For development from a source checkout, replace the package name with `.`.
37
-
38
- The distribution name is `luffysolution-omnischolar`; the command and Python package are `omnischolar`.
39
-
40
- Check the installation:
42
+ 检查、更新和卸载:
41
43
 
42
44
  ```sh
43
45
  omnischolar --version
44
46
  omnischolar doctor --json
45
- ```
46
-
47
- Update or uninstall the Python command:
48
-
49
- ```sh
50
47
  uv tool upgrade luffysolution-omnischolar
51
48
  uv tool uninstall luffysolution-omnischolar
52
- pipx upgrade luffysolution-omnischolar
53
- pipx uninstall luffysolution-omnischolar
54
- python -m pip install --upgrade luffysolution-omnischolar
55
- python -m pip uninstall luffysolution-omnischolar
56
49
  ```
57
50
 
58
- ## Connect an agent
51
+ 如果希望用一条命令强制刷新并重装最新版:
59
52
 
60
- ### Codex app and Codex CLI plugin
53
+ ```sh
54
+ uv tool install --reinstall luffysolution-omnischolar
55
+ ```
61
56
 
62
- Install [`uv`](https://docs.astral.sh/uv/getting-started/installation/) first, then add the OmniScholar Git marketplace and install the plugin:
57
+ ### Codex 插件
63
58
 
64
59
  ```sh
65
60
  codex plugin marketplace add luffysolution-svg/omnischolar --ref main
66
61
  codex plugin add omnischolar@omnischolar
62
+ codex plugin marketplace upgrade omnischolar
67
63
  ```
68
64
 
69
- In the ChatGPT desktop app, restart the app, open **Plugins**, select the **OmniScholar** marketplace, and install or enable **OmniScholar**. In Codex CLI, run `/plugins` to browse the same marketplace.
70
-
71
- The plugin bundles all eight Skills and starts its local MCP server from the latest PyPI release:
65
+ ChatGPT 桌面应用中重启应用后打开 **Plugins**,选择 **OmniScholar** 并安装或启用;Codex CLI 可运行 `/plugins` 浏览插件。插件已经包含 Skills,并通过下面的命令启动 PyPI 最新 MCP:
72
66
 
73
67
  ```sh
74
68
  uvx --from luffysolution-omnischolar@latest omnischolar mcp
75
69
  ```
76
70
 
77
- No separate `pip install` is required for this plugin path. `@latest` asks `uvx` to resolve the latest package instead of pinning this plugin to a release number. Provider credentials and optional service settings remain in your OmniScholar configuration; plugin installation does not collect them.
78
-
79
- ### Claude Code plugin
71
+ ### Claude Code 插件
80
72
 
81
- Install [`uv`](https://docs.astral.sh/uv/getting-started/installation/) first. In Claude Code, add the GitHub marketplace and install the plugin:
73
+ Claude Code 会话中运行:
82
74
 
83
75
  ```text
84
76
  /plugin marketplace add luffysolution-svg/omnischolar
85
77
  /plugin install omnischolar@omnischolar
86
78
  ```
87
79
 
88
- For scripts or a regular terminal, use the non-interactive shell commands:
80
+ 普通终端也可以运行:
89
81
 
90
82
  ```sh
91
83
  claude plugin marketplace add luffysolution-svg/omnischolar
@@ -93,26 +85,7 @@ claude plugin install omnischolar@omnischolar --scope user
93
85
  claude plugin update omnischolar@omnischolar --scope user
94
86
  ```
95
87
 
96
- Run `/reload-plugins` if the install summary asks for it, then start a new session. The plugin automatically starts the latest `uvx` MCP server and exposes namespaced Skills such as `/omnischolar:scholar-search`. No separate Python installation is required.
97
-
98
- ### Host configuration installer
99
-
100
- Preview the files that will change, then install the local MCP entry and Skills:
101
-
102
- ```sh
103
- omnischolar install --dry-run claude
104
- omnischolar install claude
105
- ```
106
-
107
- Replace `claude` with `codex`, `cursor`, `opencode`, `hermes`, `pi`, or `workbuddy`. Codex, Claude Code, Cursor, OpenCode, Pi, and WorkBuddy/CodeBuddy support both user and project scopes. Hermes supports user-level MCP configuration; project-level installation adds Skills and reports that MCP setup is manual.
108
-
109
- ```sh
110
- omnischolar install cursor --scope project
111
- omnischolar update cursor --scope project
112
- omnischolar uninstall cursor --scope project
113
- ```
114
-
115
- For Pi, the full installer runs `pi install npm:@luffysolution/omnischolar-pi` and installs the bundled Skills separately. The npm Extension starts the matching PyPI MCP through `uvx`, discovers its tools, and registers them with Pi; a separate global Python CLI installation is not required. You can also install the Extension directly:
88
+ ### Pi Extension
116
89
 
117
90
  ```sh
118
91
  pi install npm:@luffysolution/omnischolar-pi
@@ -120,100 +93,82 @@ pi update npm:@luffysolution/omnischolar-pi
120
93
  pi remove npm:@luffysolution/omnischolar-pi
121
94
  ```
122
95
 
123
- WorkBuddy/CodeBuddy uses `~/.codebuddy/.mcp.json` for user scope and `.mcp.json` for project scope. It does not publish a portable Skills path, so its installer configures MCP and reports Skills as `manual_required`.
124
-
125
- The direct latest MCP command is:
96
+ ### 通用安装器与独立 Skills
126
97
 
127
98
  ```sh
128
- uvx --from luffysolution-omnischolar@latest omnischolar mcp
99
+ omnischolar install --dry-run claude
100
+ omnischolar install claude
101
+ omnischolar update claude
102
+ omnischolar uninstall claude
129
103
  ```
130
104
 
131
- Normally the agent starts this process from its MCP configuration. The installer checks `initialize`, `tools/list`, and `omnischolar_status` after writing a supported configuration.
132
-
133
- Full host and update instructions are in [Installation](docs/INSTALLATION.en.md).
134
-
135
- ### Standalone Skills CLI
136
-
137
- Plugins already bundle their declared Skills. Use the official Skills CLI separately when you want to install the repository's Skills directly into an agent:
105
+ 也可以使用官方 Skills CLI 单独安装 Skills;插件已经包含这些 Skills,通常不需要重复安装:
138
106
 
139
107
  ```sh
140
- # User scope; replace codex with claude-code, pi, cursor, or another supported agent
141
108
  npx skills add luffysolution-svg/omnischolar --skill '*' --agent codex --global --yes
142
109
  npx skills update --global --yes
143
110
  npx skills remove --skill '*' --agent codex --global --yes
144
111
  ```
145
112
 
146
- ## Try it
147
-
148
- ```text
149
- Find five recent reviews about solid-state battery interfaces. Deduplicate by DOI and show open-access copies.
113
+ 完整的各 Agent 路径、项目级安装和故障排查见[安装说明](docs/INSTALLATION.md)。
150
114
 
151
- Find this DOI in my Zotero library and summarize my notes and annotations without changing Zotero.
115
+ </details>
152
116
 
153
- After I approve the upload, parse this PDF with MinerU and save a reading note in my Obsidian vault.
117
+ ## Agent 配置提示词
154
118
 
155
- Query stable Li-Fe-P-O materials in Materials Project and export the selected records as CSV and CIF.
119
+ 可以将下面的提示词作为 Agent 的项目级指令或系统提示词基础:
156
120
 
157
- Create a labelled illustration of this mechanism. Treat it as a draft, not experimental data.
121
+ ```text
122
+ 你是我的科研助理,使用 OmniScholar 完成文献检索、Zotero 阅读、PDF 解析、引用核对和科研资料整理。检索时优先使用可靠的学术来源,核对 DOI 与书目信息,并明确区分原文证据、推断和不确定内容。Zotero 只允许读取,禁止修改。上传 PDF、参考图或发起可能收费的请求前必须先征得我的确认;MinerU 只有在我确认后才能上传文件。将确认后的文献笔记和生成文件保存到配置的输出目录,保留已有手工修改,并报告最终文件路径。生成的科研图片只能作为示意图,不能当作实验数据或科研证据。
158
123
  ```
159
124
 
160
- ## Configuration
125
+ ## 配置与 MCP 示例
161
126
 
162
- On the first MCP start or installer run, if no discoverable config exists, OmniScholar creates a complete user-level `omnischolar.config.json` template with all service sections and credential fields. You can also create it explicitly with `omnischolar config init`. API keys may be entered directly as `apiKey`; `apiKeyEnv` is an optional alternative when you prefer environment variables.
127
+ 首次启动 MCP 或运行安装器时,如果没有可发现的配置,OmniScholar 会创建用户级 `omnischolar.config.json` 模板。模板中的服务默认处于启用状态;填写 API key 后即可使用对应服务,没有凭据的服务不会自动发起请求。API key 可以直接填写到 `apiKey`,也可以用 `apiKeyEnv` 指定环境变量。
163
128
 
164
- Customize the Obsidian output location, paper folders, Markdown files, and parsed image assets with `output.rootDirectory`, `output.literatureDirectory`, `output.folderNameTemplate`, `output.filenameTemplate`, `output.filenameSeparator`, and `output.assetFilenameTemplate`; see [literature and output configuration](docs/RESEARCH.en.md).
129
+ 填写对应 API key 并启用服务后,即可直接使用 Ai4Scholar、图片生成、MinerU 和参考图上传。
165
130
 
166
- A small local configuration can start with Zotero and the output directory:
131
+ 根目录的 [`mcp.json`](mcp.json) 是可直接复制到支持 MCP Agent 中的 stdio 示例,内容如下:
167
132
 
168
133
  ```json
169
134
  {
170
- "schemaVersion": 1,
171
- "runtime": { "workspaceRoots": ["./research-inputs"] },
172
- "zotero": {
173
- "enabled": true,
174
- "baseUrl": "http://127.0.0.1:23119/api"
175
- },
176
- "output": { "rootDirectory": "./research-output" }
135
+ "mcpServers": {
136
+ "omnischolar": {
137
+ "type": "stdio",
138
+ "command": "uvx",
139
+ "args": ["--from", "luffysolution-omnischolar@latest", "omnischolar", "mcp"]
140
+ }
141
+ }
177
142
  }
178
143
  ```
179
144
 
180
- OpenAlex, PubMed, arXiv, and Crossref work without API keys. Other services are enabled separately. Configuration fields and provider examples are in [Configuration](docs/CONFIGURATION.en.md).
145
+ `mcp.json` 只负责启动 MCP,不保存 API key;服务凭据和 Obsidian 输出位置填写在 [`omnischolar.config.example.json`](omnischolar.config.example.json) 对应字段中,可执行 `omnischolar config init` 创建实际配置。插件内部使用的配置文件是 [`.mcp.json`](.mcp.json)。文件夹、Markdown 文件和图片附件命名可通过 `output` 区块自定义,详见[文献与输出配置](docs/RESEARCH.md)
146
+
147
+ ## 使用示例
181
148
 
182
- ## Files, uploads, and charges
149
+ ```text
150
+ 查找 5 篇关于固态电池界面的近期综述,按 DOI 去重,并给出开放获取版本。
183
151
 
184
- - Zotero requests go only to the local API on port `23119` and use GET.
185
- - MinerU receives a PDF only when `allowExternalUpload` is enabled in the config and confirmed again in that tool call.
186
- - Image services receive prompts and any reference images selected for upload. Generation may use account credit.
187
- - Ai4Scholar calls may use account credit. A stored key does not by itself approve a paid call.
188
- - A failed paid request is not retried automatically when the provider may already have accepted it.
189
- - Generated images are illustrations. They are not measurements, experimental evidence, or scientific results.
152
+ 在我的 Zotero 中找到这个 DOI,汇总笔记和批注,不要修改 Zotero。
190
153
 
191
- See [`PRIVACY.md`](PRIVACY.md) and [Configuration](docs/CONFIGURATION.en.md) before enabling uploads or paid services.
154
+ 我确认上传后,用 MinerU 解析这份 PDF,并把阅读笔记保存到 Obsidian Vault。
192
155
 
193
- ## Included Skills
156
+ 查询 Materials Project 中稳定的 Li-Fe-P-O 材料,将选中的记录导出为 CSV 和 CIF。
194
157
 
195
- | Skill | Use |
196
- |---|---|
197
- | `omnischolar` | Choose and combine tools for a research request |
198
- | `scholar-search` | Literature, patents, authors, citation graphs, journals, and datasets |
199
- | `zotero-research` | Local Zotero matching, notes, annotations, and attachments |
200
- | `paper-reading` | MinerU parsing and close reading of text, formulas, tables, and figures |
201
- | `academic-citation` | Evidence checks, citation candidates, formatting, and bibliographies |
202
- | `scientific-figure` | Image generation, editing, review, and scientific labelling |
203
- | `materials-project` | Materials screening, properties, provenance, phase data, and export |
204
- | `chemical-data` | CAS Common Chemistry records when an official interface description is configured |
158
+ 为这个机理绘制带标签的示意图。图片只是草稿,不得写成实验数据。
159
+ ```
205
160
 
206
- ## Documentation
161
+ ## 文档
207
162
 
208
- - [Installation and agent setup](docs/INSTALLATION.en.md)
209
- - [Configuration and service credentials](docs/CONFIGURATION.en.md)
210
- - [Literature, Zotero, MinerU, citations, and output](docs/RESEARCH.en.md)
211
- - [Materials and chemistry](docs/MATERIALS.en.md)
212
- - [Scientific image providers](docs/IMAGE_PROVIDERS.en.md)
213
- - [Tool list](docs/TOOLS.en.md)
163
+ - [安装与 Agent 配置](docs/INSTALLATION.md)
164
+ - [配置与服务凭据](docs/CONFIGURATION.md)
165
+ - [文献、ZoteroMinerU、引用与输出](docs/RESEARCH.md)
166
+ - [材料与化学](docs/MATERIALS.md)
167
+ - [科研绘图服务](docs/IMAGE_PROVIDERS.md)
168
+ - [工具目录](docs/TOOLS.md)
214
169
 
215
- ## Support and license
170
+ ## 支持与许可证
216
171
 
217
- OmniScholar is open source under the [MIT License](LICENSE). Open a [GitHub issue](https://github.com/luffysolution-svg/omnischolar/issues) or email `LuffySolution@gmail.com`. Remove keys, signed URLs, private paper content, and personal Zotero data before sending a report.
172
+ OmniScholar 使用 [MIT License](LICENSE) 开源。可以在 [GitHub Issues](https://github.com/luffysolution-svg/omnischolar/issues) 提交问题,或发送邮件到 `LuffySolution@gmail.com`。报告问题前,请删除 API key、签名 URL、私人论文内容和个人 Zotero 数据。
218
173
 
219
- Third-party services and datasets keep their own terms and licenses. See [`THIRD_PARTY_NOTICES.md`](THIRD_PARTY_NOTICES.md).
174
+ 第三方服务和数据遵循各自的条款与许可证,详见 [`THIRD_PARTY_NOTICES.md`](THIRD_PARTY_NOTICES.md)
package/README.zh-CN.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # OmniScholar
2
2
 
3
- [English](README.md) | 简体中文
3
+ [English](README.en.md) | 简体中文
4
4
 
5
5
  OmniScholar 通过本地 Python MCP 服务,为 Codex、Claude Code、Cursor、OpenCode、Hermes 和 Pi 等 Agent 提供文献检索、Zotero 读取、PDF 解析、引用处理、材料数据和科研绘图工具。
6
6
 
@@ -180,7 +180,7 @@ OpenAlex、PubMed、arXiv 和 Crossref 无需 API key。其他服务按需启用
180
180
  ## 文件、上传与费用
181
181
 
182
182
  - Zotero 只连接本机 `23119` 端口,并且只发送 GET 请求。
183
- - MinerU 只有在配置和本次工具调用都确认 `allowExternalUpload` 后,才会接收选中的 PDF。
183
+ - MinerU 只在服务启用且配置了 API key 后接收选中的 PDF。
184
184
  - 图片服务会接收提示词,以及你允许上传的参考图;生成和编辑可能消耗账户额度。
185
185
  - Ai4Scholar 的部分调用可能消耗账户额度。仅保存 API key 不代表同意付费调用。
186
186
  - 付费请求发生网络错误后,如果无法确定服务端是否已经受理,OmniScholar 不会自动重试。
@@ -16,6 +16,8 @@ The first matching file is used; files are not merged:
16
16
 
17
17
  Relative paths resolve from the config file. Misspelled fields and invalid values are rejected.
18
18
 
19
+ Services in the example configuration are enabled by default. Fill in the relevant API key to use them directly.
20
+
19
21
  If none of the first four sources exists, the first MCP start or installer run creates a complete user-level configuration template. The template includes all service sections, `apiKey`, `apiKeyEnv`, and Vertex fields such as `project` and `location`. On Windows this is normally `%LOCALAPPDATA%\\omnischolar\\omnischolar.config.json`, on Linux `~/.config/omnischolar/omnischolar.config.json`, and on macOS `~/Library/Application Support/omnischolar/omnischolar.config.json`. You can also run `omnischolar config init`. Existing configuration is never overwritten. Nested files created by older versions are not migrated or read automatically; copy settings manually if needed.
20
22
 
21
23
  ## Minimal config
@@ -65,8 +67,7 @@ API keys may be entered directly in the provider's `apiKey` field:
65
67
  "schemaVersion": 1,
66
68
  "ai4scholar": {
67
69
  "enabled": true,
68
- "apiKey": "paste Ai4Scholar API key here",
69
- "allowPaid": false
70
+ "apiKey": "paste Ai4Scholar API key here"
70
71
  },
71
72
  "data": {
72
73
  "materialsProject": {
@@ -97,7 +98,7 @@ Credential order is `apiKey`, the variable named by `apiKeyEnv`, then the servic
97
98
  | Unpaywall | Contact email required |
98
99
  | easyScholar | API key required |
99
100
  | Zotero | No key; the local API must be enabled |
100
- | MinerU | API key and explicit PDF upload approval |
101
+ | MinerU | API key |
101
102
  | Ai4Scholar | API key; some calls use account credit |
102
103
  | Materials Project | API key required |
103
104
  | Image services | Provider key, model, and endpoint as required |
@@ -105,11 +106,8 @@ Credential order is `apiKey`, the variable named by `apiKeyEnv`, then the servic
105
106
 
106
107
  ## Paid calls and uploads
107
108
 
108
- A stored key does not approve spending or upload.
109
-
110
- - Ai4Scholar and image generation require `allowPaid` in the config and again in the individual tool call.
111
- - MinerU and reference-image uploads require `allowExternalUpload` in the config and again in the tool call.
112
- - Sync recovery only repairs local files; it does not reuse previous upload approval.
109
+ After the relevant API key is configured, Ai4Scholar, image generation, MinerU, and reference-image uploads work directly. Providers without keys do not make requests automatically.
110
+ - Sync recovery only repairs local files.
113
111
  - If a paid request times out after the provider may have accepted it, OmniScholar does not retry automatically.
114
112
 
115
113
  ## Literature search
@@ -141,8 +139,7 @@ A stored key does not approve spending or upload.
141
139
  "mineru": {
142
140
  "enabled": true,
143
141
  "apiKeyEnv": "OMNISCHOLAR_MINERU_API_KEY",
144
- "model": "pipeline",
145
- "allowExternalUpload": false
142
+ "model": "pipeline"
146
143
  }
147
144
  }
148
145
  ```
@@ -16,6 +16,8 @@ OmniScholar 使用 `schemaVersion: 1` 的 JSON 配置。可直接复制根目录
16
16
 
17
17
  相对路径以配置文件所在目录为基准。拼错字段名或填写不合法的值时,程序会直接报错。
18
18
 
19
+ 示例配置中的服务默认启用。填写对应 API key 后即可直接使用。
20
+
19
21
  如果前四项都不存在,第一次启动 MCP 或执行安装命令时会自动创建用户级完整配置模板。模板包含所有服务区块、`apiKey`、`apiKeyEnv` 以及 Vertex 的 `project`、`location` 等字段;Windows 通常位于 `%LOCALAPPDATA%\omnischolar\omnischolar.config.json`,Linux 通常位于 `~/.config/omnischolar/omnischolar.config.json`,macOS 通常位于 `~/Library/Application Support/omnischolar/omnischolar.config.json`。也可以运行 `omnischolar config init` 主动创建;程序不会覆盖已有配置。旧版本生成的嵌套目录文件不会自动迁移或读取,请按需手动复制设置。
20
22
 
21
23
  ## 最小配置
@@ -65,8 +67,7 @@ API key 可以直接写入对应服务的 `apiKey`。例如:
65
67
  "schemaVersion": 1,
66
68
  "ai4scholar": {
67
69
  "enabled": true,
68
- "apiKey": "在这里填写 Ai4Scholar API key",
69
- "allowPaid": false
70
+ "apiKey": "在这里填写 Ai4Scholar API key"
70
71
  },
71
72
  "data": {
72
73
  "materialsProject": {
@@ -105,10 +106,7 @@ API key 可以直接写入对应服务的 `apiKey`。例如:
105
106
 
106
107
  ## 付费与上传
107
108
 
108
- 保存 key 不会自动允许付费或上传。
109
-
110
- - Ai4Scholar 和图片生成需在配置中启用 `allowPaid`,调用时还要再次确认 `allowPaid`。
111
- - MinerU 与参考图上传需在配置中启用 `allowExternalUpload`,调用时还要再次确认同名参数。
109
+ 填写对应 API key 后即可使用 Ai4Scholar、图片生成、MinerU 和参考图上传。CAS 需要正式接口契约文件,DashScope/Qwen 需要 workspace 地址。
112
110
  - 同步恢复只处理本地文件,不会沿用以前的上传许可。
113
111
  - 付费请求超时后,如果服务端结果不明确,程序不会自动重试。
114
112
 
@@ -141,8 +139,7 @@ API key 可以直接写入对应服务的 `apiKey`。例如:
141
139
  "mineru": {
142
140
  "enabled": true,
143
141
  "apiKeyEnv": "OMNISCHOLAR_MINERU_API_KEY",
144
- "model": "pipeline",
145
- "allowExternalUpload": false
142
+ "model": "pipeline"
146
143
  }
147
144
  }
148
145
  ```
@@ -25,8 +25,6 @@ Each model must explicitly declare the operation it supports. A model name appea
25
25
  "defaultImageProvider": "fal"
26
26
  },
27
27
  "media": {
28
- "allowPaid": false,
29
- "allowExternalUpload": false,
30
28
  "providers": {
31
29
  "fal": {
32
30
  "enabled": true,
@@ -36,7 +34,7 @@ Each model must explicitly declare the operation it supports. A model name appea
36
34
  "options": {}
37
35
  },
38
36
  "dashscope": {
39
- "enabled": false,
37
+ "enabled": true,
40
38
  "apiKeyEnv": "OMNISCHOLAR_DASHSCOPE_API_KEY",
41
39
  "baseUrl": "https://your-workspace.cn-beijing.maas.aliyuncs.com/api/v1",
42
40
  "models": {},
@@ -45,7 +43,7 @@ Each model must explicitly declare the operation it supports. A model name appea
45
43
  }
46
44
  },
47
45
  "qwen-cloud": {
48
- "enabled": false,
46
+ "enabled": true,
49
47
  "apiKeyEnv": "OMNISCHOLAR_QWEN_API_KEY",
50
48
  "baseUrl": "https://your-workspace.ap-southeast-1.maas.aliyuncs.com/api/v1",
51
49
  "models": {},
@@ -62,7 +60,7 @@ A custom service needs an exact `baseUrl`, model ID, capability list, and genera
62
60
 
63
61
  ## Generate and edit
64
62
 
65
- Before submitting a task, define the scientific content, labels, units, aspect ratio, and file format. Generation requires `allowPaid` for that call. Uploading a reference image also requires `allowExternalUpload` for that call.
63
+ Before submitting a task, define the scientific content, labels, units, aspect ratio, and file format. Once the image provider key is configured, generation and reference-image upload are directly available.
66
64
 
67
65
  Upload only images you may share with the selected service. After files are saved, signed URLs and base64 source data are removed from the returned payload. Downloads are checked for public HTTPS, file size, MIME type, and image signature. If one file in a multi-file result is missing, the incomplete set is not published.
68
66
 
@@ -25,8 +25,6 @@ OmniScholar 可连接 OpenAI、xAI、Gemini、Vertex AI、fal.ai、DashScope/Qwe
25
25
  "defaultImageProvider": "fal"
26
26
  },
27
27
  "media": {
28
- "allowPaid": false,
29
- "allowExternalUpload": false,
30
28
  "providers": {
31
29
  "fal": {
32
30
  "enabled": true,
@@ -36,7 +34,7 @@ OmniScholar 可连接 OpenAI、xAI、Gemini、Vertex AI、fal.ai、DashScope/Qwe
36
34
  "options": {}
37
35
  },
38
36
  "dashscope": {
39
- "enabled": false,
37
+ "enabled": true,
40
38
  "apiKeyEnv": "OMNISCHOLAR_DASHSCOPE_API_KEY",
41
39
  "baseUrl": "https://your-workspace.cn-beijing.maas.aliyuncs.com/api/v1",
42
40
  "models": {},
@@ -45,7 +43,7 @@ OmniScholar 可连接 OpenAI、xAI、Gemini、Vertex AI、fal.ai、DashScope/Qwe
45
43
  }
46
44
  },
47
45
  "qwen-cloud": {
48
- "enabled": false,
46
+ "enabled": true,
49
47
  "apiKeyEnv": "OMNISCHOLAR_QWEN_API_KEY",
50
48
  "baseUrl": "https://your-workspace.ap-southeast-1.maas.aliyuncs.com/api/v1",
51
49
  "models": {},
@@ -62,7 +60,7 @@ OmniScholar 可连接 OpenAI、xAI、Gemini、Vertex AI、fal.ai、DashScope/Qwe
62
60
 
63
61
  ## 生成与编辑
64
62
 
65
- 提交任务前应明确图片要表达的科学内容、标签、单位、比例和文件格式。生成需要本次 `allowPaid` 授权;上传参考图还需要本次 `allowExternalUpload` 授权。
63
+ 提交任务前应明确图片要表达的科学内容、标签、单位、比例和文件格式。配置好图片服务 API key 后即可直接生成或上传参考图。
66
64
 
67
65
  只能上传有权交给第三方处理的图片。图片保存后,返回结果中的签名 URL 和 base64 原文会被移除。下载文件会检查 HTTPS 地址、文件大小、MIME 类型和图片文件头;多文件任务缺少任一文件时,不发布不完整结果。
68
66
 
@@ -12,6 +12,18 @@ pipx install luffysolution-omnischolar
12
12
  python -m pip install luffysolution-omnischolar
13
13
  ```
14
14
 
15
+ If the tool is already installed, `uv tool install` keeps the existing version instead of upgrading it. Use this command to get the latest PyPI release:
16
+
17
+ ```sh
18
+ uv tool upgrade luffysolution-omnischolar
19
+ ```
20
+
21
+ To force a cache refresh and reinstall the latest compatible release:
22
+
23
+ ```sh
24
+ uv tool install --reinstall luffysolution-omnischolar
25
+ ```
26
+
15
27
  Update or uninstall the Python command:
16
28
 
17
29
  ```sh
@@ -12,6 +12,18 @@ pipx install luffysolution-omnischolar
12
12
  python -m pip install luffysolution-omnischolar
13
13
  ```
14
14
 
15
+ 如果该工具已经安装,`uv tool install` 会保持现有版本,不会自动升级。要获取 PyPI 最新版本,请使用:
16
+
17
+ ```sh
18
+ uv tool upgrade luffysolution-omnischolar
19
+ ```
20
+
21
+ 需要强制刷新并重新安装时使用:
22
+
23
+ ```sh
24
+ uv tool install --reinstall luffysolution-omnischolar
25
+ ```
26
+
15
27
  更新或卸载 Python 命令:
16
28
 
17
29
  ```sh
@@ -205,6 +217,14 @@ npx skills remove --skill '*' -a codex -y
205
217
 
206
218
  这组命令只安装 Skills,不会安装 `omnischolar` Python 命令。通过 Codex/Claude plugin 或 Pi Extension 安装时,插件/安装器已经处理了对应 Skills,不需要重复执行。
207
219
 
220
+ ## Agent 配置提示词
221
+
222
+ 可以将下面的提示词作为 Agent 的项目级指令或系统提示词基础:
223
+
224
+ ```text
225
+ 你是我的科研助理,使用 OmniScholar 完成文献检索、Zotero 阅读、PDF 解析、引用核对和科研资料整理。检索时优先使用可靠的学术来源,核对 DOI 与书目信息,并明确区分原文证据、推断和不确定内容。Zotero 只允许读取,禁止修改。上传 PDF、参考图或发起可能收费的请求前必须先征得我的确认;MinerU 只有在我确认后才能上传文件。将确认后的文献笔记和生成文件保存到配置的输出目录,保留已有手工修改,并报告最终文件路径。生成的科研图片只能作为示意图,不能当作实验数据或科研证据。
226
+ ```
227
+
208
228
  ## MCP 连接失败
209
229
 
210
230
  1. 运行 `omnischolar --version`,确认 Agent 的 PATH 能找到该命令。
@@ -51,10 +51,7 @@ Notes and annotations are personal reading context, not evidence from the public
51
51
 
52
52
  `omnischolar_parse` validates the PDF, computes SHA-256, and asks MinerU to return text, formulas, tables, and figures. Results are cached; the same file and parser settings can return a cache hit.
53
53
 
54
- Upload requires both approvals:
55
-
56
- 1. `mineru.allowExternalUpload` is `true` in the config;
57
- 2. `allowExternalUpload` is `true` in the individual `omnischolar_parse` call.
54
+ After MinerU is enabled and its API key is configured, parsing is directly available; OmniScholar does not upload without credentials.
58
55
 
59
56
  OmniScholar does not upload a Zotero attachment automatically. Confirm the exact item and file, then approve that upload separately. `force` creates a new parse and upload, so it needs fresh approval.
60
57
 
package/docs/RESEARCH.md CHANGED
@@ -51,10 +51,7 @@ Zotero 笔记和批注属于个人阅读记录,不应当作论文原文证据
51
51
 
52
52
  `omnischolar_parse` 检查 PDF 文件、计算 SHA-256,并使用 MinerU 返回正文、公式、表格和图片。解析结果会缓存;同一文件和解析设置再次调用时可直接命中缓存。
53
53
 
54
- 上传必须同时得到两次确认:
55
-
56
- 1. 配置中的 `mineru.allowExternalUpload` 为 `true`;
57
- 2. 本次 `omnischolar_parse` 调用中的 `allowExternalUpload` 为 `true`。
54
+ 配置好 MinerU API key 并启用服务后即可解析;OmniScholar 不会在没有凭据时自动上传。
58
55
 
59
56
  OmniScholar 不会自动把 Zotero 附件上传到 MinerU。应先确认具体条目和文件,再单独批准上传。`force` 会重新解析并产生一次新上传,因此也需要新的授权。
60
57
 
package/docs/TOOLS.en.md CHANGED
@@ -46,4 +46,4 @@ Tool and capability names match the values returned to agents.
46
46
  | `omnischolar_image_service` | media | `media.service` | none | yes | none | free |
47
47
 
48
48
  Arguments not declared in a tool's input schema are rejected.
49
- Paid or upload-capable tools require both configuration and per-call authorization.
49
+ Paid or upload-capable tools require an enabled service with valid credentials.
package/docs/TOOLS.md CHANGED
@@ -46,4 +46,4 @@
46
46
  | `omnischolar_image_service` | media | `media.service` | none | yes | none | free |
47
47
 
48
48
  未在输入 schema 中声明的参数会被拒绝。
49
- 付费或上传工具必须同时通过配置开关和本次调用的显式授权。
49
+ 付费或上传工具需要启用对应服务并配置有效凭据。
@@ -67,13 +67,13 @@
67
67
  "maxPages": 10
68
68
  },
69
69
  "unpaywall": {
70
- "enabled": false,
70
+ "enabled": true,
71
71
  "apiKey": "",
72
72
  "email": "researcher@example.edu",
73
73
  "maxPages": 10
74
74
  },
75
75
  "easyscholar": {
76
- "enabled": false,
76
+ "enabled": true,
77
77
  "apiKey": "",
78
78
  "apiKeyEnv": "OMNISCHOLAR_EASYSCHOLAR_API_KEY",
79
79
  "maxPages": 5
@@ -81,13 +81,12 @@
81
81
  }
82
82
  },
83
83
  "ai4scholar": {
84
- "enabled": false,
84
+ "enabled": true,
85
85
  "baseUrl": "https://ai4scholar.net",
86
86
  "apiKey": "",
87
87
  "apiKeyEnv": "OMNISCHOLAR_AI4SCHOLAR_API_KEY",
88
88
  "timeoutSeconds": 60,
89
- "maxResponseBytes": 16777216,
90
- "allowPaid": false
89
+ "maxResponseBytes": 16777216
91
90
  },
92
91
  "zotero": {
93
92
  "enabled": true,
@@ -95,7 +94,7 @@
95
94
  "maxItems": 500
96
95
  },
97
96
  "mineru": {
98
- "enabled": false,
97
+ "enabled": true,
99
98
  "baseUrl": "https://mineru.net/api/v4",
100
99
  "lightweightBaseUrl": "https://mineru.net/api/v1/agent",
101
100
  "apiKey": "",
@@ -105,19 +104,18 @@
105
104
  "pollIntervalSeconds": 2,
106
105
  "pollTimeoutSeconds": 600,
107
106
  "maxPdfBytes": 209715200,
108
- "allowExternalUpload": false,
109
107
  "allowLightweightFallback": false
110
108
  },
111
109
  "data": {
112
110
  "materialsProject": {
113
- "enabled": false,
111
+ "enabled": true,
114
112
  "baseUrl": "https://api.materialsproject.org",
115
113
  "apiKey": "",
116
114
  "apiKeyEnv": "OMNISCHOLAR_MATERIALS_PROJECT_API_KEY",
117
115
  "maxPages": 10
118
116
  },
119
117
  "casCommonChemistry": {
120
- "enabled": false,
118
+ "enabled": true,
121
119
  "apiKey": "",
122
120
  "apiKeyEnv": "OMNISCHOLAR_CAS_API_KEY",
123
121
  "baseUrl": null,
@@ -125,13 +123,11 @@
125
123
  }
126
124
  },
127
125
  "media": {
128
- "allowExternalUpload": false,
129
- "allowPaid": false,
130
126
  "maxInputBytes": 26214400,
131
127
  "maxArtifactBytes": 52428800,
132
128
  "providers": {
133
129
  "openai": {
134
- "enabled": false,
130
+ "enabled": true,
135
131
  "apiKey": "",
136
132
  "apiKeyEnv": "OMNISCHOLAR_OPENAI_API_KEY",
137
133
  "baseUrl": "https://api.openai.com/v1",
@@ -144,7 +140,7 @@
144
140
  "options": {}
145
141
  },
146
142
  "google": {
147
- "enabled": false,
143
+ "enabled": true,
148
144
  "apiKey": "",
149
145
  "apiKeyEnv": "OMNISCHOLAR_GEMINI_API_KEY",
150
146
  "baseUrl": "https://generativelanguage.googleapis.com/v1beta",
@@ -152,7 +148,7 @@
152
148
  "options": {}
153
149
  },
154
150
  "vertex": {
155
- "enabled": false,
151
+ "enabled": true,
156
152
  "apiKey": "",
157
153
  "apiKeyEnv": "OMNISCHOLAR_VERTEX_ACCESS_TOKEN",
158
154
  "project": "your-project",
@@ -161,7 +157,7 @@
161
157
  "options": {}
162
158
  },
163
159
  "xai": {
164
- "enabled": false,
160
+ "enabled": true,
165
161
  "apiKey": "",
166
162
  "apiKeyEnv": "OMNISCHOLAR_XAI_API_KEY",
167
163
  "baseUrl": "https://api.x.ai/v1",
@@ -169,7 +165,7 @@
169
165
  "options": {}
170
166
  },
171
167
  "fal": {
172
- "enabled": false,
168
+ "enabled": true,
173
169
  "apiKey": "",
174
170
  "apiKeyEnv": "OMNISCHOLAR_FAL_API_KEY",
175
171
  "baseUrl": "https://fal.run",
@@ -177,7 +173,7 @@
177
173
  "options": {}
178
174
  },
179
175
  "dashscope": {
180
- "enabled": false,
176
+ "enabled": true,
181
177
  "apiKey": "",
182
178
  "apiKeyEnv": "OMNISCHOLAR_DASHSCOPE_API_KEY",
183
179
  "baseUrl": "https://your-workspace.cn-beijing.maas.aliyuncs.com/api/v1",
@@ -187,7 +183,7 @@
187
183
  }
188
184
  },
189
185
  "qwen-cloud": {
190
- "enabled": false,
186
+ "enabled": true,
191
187
  "apiKey": "",
192
188
  "apiKeyEnv": "OMNISCHOLAR_QWEN_API_KEY",
193
189
  "baseUrl": "https://your-workspace.ap-southeast-1.maas.aliyuncs.com/api/v1",
@@ -197,7 +193,7 @@
197
193
  }
198
194
  },
199
195
  "atlas": {
200
- "enabled": false,
196
+ "enabled": true,
201
197
  "apiKey": "",
202
198
  "apiKeyEnv": "OMNISCHOLAR_ATLAS_API_KEY",
203
199
  "baseUrl": "https://your-atlas-provider.example/v1",
@@ -205,7 +201,7 @@
205
201
  "options": {}
206
202
  },
207
203
  "custom": {
208
- "enabled": false,
204
+ "enabled": true,
209
205
  "apiKey": "",
210
206
  "apiKeyEnv": "OMNISCHOLAR_CUSTOM_IMAGE_API_KEY",
211
207
  "baseUrl": "https://images.example.edu/v1",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@luffysolution/omnischolar-pi",
3
- "version": "0.1.12",
3
+ "version": "0.1.14",
4
4
  "description": "Pi MCP bridge for the OmniScholar research toolkit",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -29,6 +29,7 @@
29
29
  "files": [
30
30
  "pi-extension/dist",
31
31
  "README.md",
32
+ "README.en.md",
32
33
  "README.zh-CN.md",
33
34
  "LICENSE",
34
35
  "PRIVACY.md",
@@ -1,7 +1,7 @@
1
1
  import { Client } from "@modelcontextprotocol/sdk/client/index.js";
2
2
  import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";
3
3
  import { Type } from "typebox";
4
- const CLIENT_INFO = { name: "omnischolar-pi", version: "0.1.12" };
4
+ const CLIENT_INFO = { name: "omnischolar-pi", version: "0.1.14" };
5
5
  export function resultText(result) {
6
6
  return result.content
7
7
  .map((item) => {