@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 +131 -0
- package/README.md +78 -123
- package/README.zh-CN.md +2 -2
- package/docs/CONFIGURATION.en.md +7 -10
- package/docs/CONFIGURATION.md +5 -8
- package/docs/IMAGE_PROVIDERS.en.md +3 -5
- package/docs/IMAGE_PROVIDERS.md +3 -5
- package/docs/INSTALLATION.en.md +12 -0
- package/docs/INSTALLATION.md +20 -0
- package/docs/RESEARCH.en.md +1 -4
- package/docs/RESEARCH.md +1 -4
- package/docs/TOOLS.en.md +1 -1
- package/docs/TOOLS.md +1 -1
- package/omnischolar.config.example.json +16 -20
- package/package.json +2 -1
- package/pi-extension/dist/index.js +1 -1
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
|
-
|
|
5
|
+
[](https://pypi.org/project/luffysolution-omnischolar/)
|
|
6
|
+
[](https://www.npmjs.com/package/@luffysolution/omnischolar-pi)
|
|
7
|
+
[](https://www.npmjs.com/package/skills)
|
|
8
|
+
[](https://github.com/luffysolution-svg/omnischolar/releases)
|
|
6
9
|
|
|
7
|
-
|
|
10
|
+
简体中文 | [English](README.en.md)
|
|
8
11
|
|
|
9
|
-
|
|
12
|
+
OmniScholar 通过本地 Python MCP 服务,为 Codex、Claude Code、Cursor、OpenCode、Hermes 和 Pi 提供文献检索、Zotero 读取、PDF 解析、引用处理、材料数据和科研绘图工具。
|
|
10
13
|
|
|
11
|
-
|
|
14
|
+
它可以把在线文献记录与 Zotero 笔记放在一起处理,将经你确认的 PDF 交给 MinerU 解析,再把 Markdown 保存到普通文件夹或 Obsidian Vault。Zotero 全程只读。
|
|
12
15
|
|
|
13
|
-
|
|
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
|
-
|
|
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
|
-
|
|
27
|
+
OmniScholar 共提供 38 个工具,完整列表见[工具目录](docs/TOOLS.md)。
|
|
25
28
|
|
|
26
|
-
|
|
29
|
+
<details>
|
|
30
|
+
<summary>安装与部署</summary>
|
|
31
|
+
|
|
32
|
+
需要 Python 3.11 或更高版本。普通 Python 命令任选一种方式安装:
|
|
27
33
|
|
|
28
34
|
```sh
|
|
29
35
|
uv tool install luffysolution-omnischolar
|
|
30
|
-
#
|
|
36
|
+
# 或
|
|
31
37
|
pipx install luffysolution-omnischolar
|
|
32
|
-
#
|
|
38
|
+
# 或
|
|
33
39
|
python -m pip install luffysolution-omnischolar
|
|
34
40
|
```
|
|
35
41
|
|
|
36
|
-
|
|
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
|
-
|
|
51
|
+
如果希望用一条命令强制刷新并重装最新版:
|
|
59
52
|
|
|
60
|
-
|
|
53
|
+
```sh
|
|
54
|
+
uv tool install --reinstall luffysolution-omnischolar
|
|
55
|
+
```
|
|
61
56
|
|
|
62
|
-
|
|
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
|
-
|
|
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
|
-
|
|
78
|
-
|
|
79
|
-
### Claude Code plugin
|
|
71
|
+
### Claude Code 插件
|
|
80
72
|
|
|
81
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
124
|
-
|
|
125
|
-
The direct latest MCP command is:
|
|
96
|
+
### 通用安装器与独立 Skills
|
|
126
97
|
|
|
127
98
|
```sh
|
|
128
|
-
|
|
99
|
+
omnischolar install --dry-run claude
|
|
100
|
+
omnischolar install claude
|
|
101
|
+
omnischolar update claude
|
|
102
|
+
omnischolar uninstall claude
|
|
129
103
|
```
|
|
130
104
|
|
|
131
|
-
|
|
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
|
-
|
|
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
|
-
|
|
115
|
+
</details>
|
|
152
116
|
|
|
153
|
-
|
|
117
|
+
## Agent 配置提示词
|
|
154
118
|
|
|
155
|
-
|
|
119
|
+
可以将下面的提示词作为 Agent 的项目级指令或系统提示词基础:
|
|
156
120
|
|
|
157
|
-
|
|
121
|
+
```text
|
|
122
|
+
你是我的科研助理,使用 OmniScholar 完成文献检索、Zotero 阅读、PDF 解析、引用核对和科研资料整理。检索时优先使用可靠的学术来源,核对 DOI 与书目信息,并明确区分原文证据、推断和不确定内容。Zotero 只允许读取,禁止修改。上传 PDF、参考图或发起可能收费的请求前必须先征得我的确认;MinerU 只有在我确认后才能上传文件。将确认后的文献笔记和生成文件保存到配置的输出目录,保留已有手工修改,并报告最终文件路径。生成的科研图片只能作为示意图,不能当作实验数据或科研证据。
|
|
158
123
|
```
|
|
159
124
|
|
|
160
|
-
##
|
|
125
|
+
## 配置与 MCP 示例
|
|
161
126
|
|
|
162
|
-
|
|
127
|
+
首次启动 MCP 或运行安装器时,如果没有可发现的配置,OmniScholar 会创建用户级 `omnischolar.config.json` 模板。模板中的服务默认处于启用状态;填写 API key 后即可使用对应服务,没有凭据的服务不会自动发起请求。API key 可以直接填写到 `apiKey`,也可以用 `apiKeyEnv` 指定环境变量。
|
|
163
128
|
|
|
164
|
-
|
|
129
|
+
填写对应 API key 并启用服务后,即可直接使用 Ai4Scholar、图片生成、MinerU 和参考图上传。
|
|
165
130
|
|
|
166
|
-
|
|
131
|
+
根目录的 [`mcp.json`](mcp.json) 是可直接复制到支持 MCP 的 Agent 中的 stdio 示例,内容如下:
|
|
167
132
|
|
|
168
133
|
```json
|
|
169
134
|
{
|
|
170
|
-
"
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
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
|
-
|
|
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
|
-
|
|
149
|
+
```text
|
|
150
|
+
查找 5 篇关于固态电池界面的近期综述,按 DOI 去重,并给出开放获取版本。
|
|
183
151
|
|
|
184
|
-
|
|
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
|
-
|
|
154
|
+
我确认上传后,用 MinerU 解析这份 PDF,并把阅读笔记保存到 Obsidian Vault。
|
|
192
155
|
|
|
193
|
-
|
|
156
|
+
查询 Materials Project 中稳定的 Li-Fe-P-O 材料,将选中的记录导出为 CSV 和 CIF。
|
|
194
157
|
|
|
195
|
-
|
|
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
|
-
##
|
|
161
|
+
## 文档
|
|
207
162
|
|
|
208
|
-
- [
|
|
209
|
-
- [
|
|
210
|
-
- [
|
|
211
|
-
- [
|
|
212
|
-
- [
|
|
213
|
-
- [
|
|
163
|
+
- [安装与 Agent 配置](docs/INSTALLATION.md)
|
|
164
|
+
- [配置与服务凭据](docs/CONFIGURATION.md)
|
|
165
|
+
- [文献、Zotero、MinerU、引用与输出](docs/RESEARCH.md)
|
|
166
|
+
- [材料与化学](docs/MATERIALS.md)
|
|
167
|
+
- [科研绘图服务](docs/IMAGE_PROVIDERS.md)
|
|
168
|
+
- [工具目录](docs/TOOLS.md)
|
|
214
169
|
|
|
215
|
-
##
|
|
170
|
+
## 支持与许可证
|
|
216
171
|
|
|
217
|
-
OmniScholar
|
|
172
|
+
OmniScholar 使用 [MIT License](LICENSE) 开源。可以在 [GitHub Issues](https://github.com/luffysolution-svg/omnischolar/issues) 提交问题,或发送邮件到 `LuffySolution@gmail.com`。报告问题前,请删除 API key、签名 URL、私人论文内容和个人 Zotero 数据。
|
|
218
173
|
|
|
219
|
-
|
|
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
|
|
183
|
+
- MinerU 只在服务启用且配置了 API key 后接收选中的 PDF。
|
|
184
184
|
- 图片服务会接收提示词,以及你允许上传的参考图;生成和编辑可能消耗账户额度。
|
|
185
185
|
- Ai4Scholar 的部分调用可能消耗账户额度。仅保存 API key 不代表同意付费调用。
|
|
186
186
|
- 付费请求发生网络错误后,如果无法确定服务端是否已经受理,OmniScholar 不会自动重试。
|
package/docs/CONFIGURATION.en.md
CHANGED
|
@@ -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
|
|
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
|
-
|
|
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
|
```
|
package/docs/CONFIGURATION.md
CHANGED
|
@@ -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
|
-
|
|
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":
|
|
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":
|
|
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.
|
|
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
|
|
package/docs/IMAGE_PROVIDERS.md
CHANGED
|
@@ -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":
|
|
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":
|
|
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
|
-
|
|
63
|
+
提交任务前应明确图片要表达的科学内容、标签、单位、比例和文件格式。配置好图片服务 API key 后即可直接生成或上传参考图。
|
|
66
64
|
|
|
67
65
|
只能上传有权交给第三方处理的图片。图片保存后,返回结果中的签名 URL 和 base64 原文会被移除。下载文件会检查 HTTPS 地址、文件大小、MIME 类型和图片文件头;多文件任务缺少任一文件时,不发布不完整结果。
|
|
68
66
|
|
package/docs/INSTALLATION.en.md
CHANGED
|
@@ -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
|
package/docs/INSTALLATION.md
CHANGED
|
@@ -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 能找到该命令。
|
package/docs/RESEARCH.en.md
CHANGED
|
@@ -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
|
-
|
|
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
|
|
49
|
+
Paid or upload-capable tools require an enabled service with valid credentials.
|
package/docs/TOOLS.md
CHANGED
|
@@ -67,13 +67,13 @@
|
|
|
67
67
|
"maxPages": 10
|
|
68
68
|
},
|
|
69
69
|
"unpaywall": {
|
|
70
|
-
"enabled":
|
|
70
|
+
"enabled": true,
|
|
71
71
|
"apiKey": "",
|
|
72
72
|
"email": "researcher@example.edu",
|
|
73
73
|
"maxPages": 10
|
|
74
74
|
},
|
|
75
75
|
"easyscholar": {
|
|
76
|
-
"enabled":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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.
|
|
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.
|
|
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) => {
|