@luffysolution/omnischolar-pi 0.1.1 → 0.1.3

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.
@@ -1,11 +1,11 @@
1
- # Agent configuration files
2
-
3
- - Portable Agent Plugin and Codex: root `plugin.json`, `mcp.json`, and `skills/`
4
- - Claude Code: `.claude-plugin/plugin.json`, root `.mcp.json`, and `skills/`
5
- - Cursor: root Agent Plugin files plus `.cursor-plugin/plugin.json`
6
- - OpenCode: merge `opencode.jsonc` into the project or user OpenCode config
7
- - Hermes: merge `hermes.yaml` into `~/.hermes/config.yaml`
1
+ # Agent configuration files
2
+
3
+ - Portable Agent Plugin and Codex: root `plugin.json`, `mcp.json`, and `skills/`
4
+ - Claude Code: `.claude-plugin/plugin.json`, root `.mcp.json`, and `skills/`
5
+ - Cursor: root Agent Plugin files plus `.cursor-plugin/plugin.json`
6
+ - OpenCode: merge `opencode.jsonc` into the project or user OpenCode config
7
+ - Hermes: merge `hermes.yaml` into `~/.hermes/config.yaml`
8
8
  - Pi: see `pi.md`; the npm Extension bridges the local MCP server
9
9
  - WorkBuddy/CodeBuddy: merge `workbuddy.json` into `~/.codebuddy/.mcp.json` or project `.mcp.json`
10
-
11
- All supported MCP entries start the local command `omnischolar mcp`. These files contain no provider credentials.
10
+
11
+ All supported MCP entries start the local command `omnischolar mcp`. These files contain no provider credentials.
@@ -1,5 +1,5 @@
1
- mcp_servers:
2
- omnischolar:
1
+ mcp_servers:
2
+ omnischolar:
3
3
  command: "omnischolar"
4
4
  args: ["mcp"]
5
5
  # Optional: restrict exposure with tools.include or tools.exclude.
@@ -1,11 +1,11 @@
1
- {
2
- "$schema": "https://opencode.ai/config.json",
3
- "mcp": {
4
- "omnischolar": {
5
- "type": "local",
6
- "command": ["omnischolar", "mcp"],
7
- "enabled": true,
8
- "timeout": 10000
9
- }
10
- }
11
- }
1
+ {
2
+ "$schema": "https://opencode.ai/config.json",
3
+ "mcp": {
4
+ "omnischolar": {
5
+ "type": "local",
6
+ "command": ["omnischolar", "mcp"],
7
+ "enabled": true,
8
+ "timeout": 10000
9
+ }
10
+ }
11
+ }
@@ -1,5 +1,5 @@
1
- # Pi
2
-
1
+ # Pi
2
+
3
3
  OmniScholar uses the npm-published `@luffysolution/omnischolar-pi` Extension to bridge its local MCP server into Pi. The full installer also copies Skills to `.pi/agent/skills` for user scope or `.pi/skills` for project scope.
4
4
 
5
5
  ```sh
@@ -8,6 +8,6 @@ omnischolar install pi
8
8
  pi install npm:@luffysolution/omnischolar-pi
9
9
  ```
10
10
 
11
- The Extension starts `omnischolar mcp`, discovers the server's tools, forwards calls and cancellation signals, and closes the MCP client when the Pi session ends.
11
+ The Extension starts the matching PyPI MCP through `uvx`, discovers the server's tools, forwards calls and cancellation signals, and closes the MCP client when the Pi session ends. A separate global `omnischolar` command is not required; `uv` must be on `PATH`.
12
12
 
13
13
  `omnischolar mcp install pi` remains `manual_required` because Pi uses an Extension instead of a native MCP settings file. Use the full `omnischolar install pi` command.
@@ -1,214 +1,218 @@
1
- {
2
- "schemaVersion": 1,
3
- "runtime": {
4
- "cacheDirectory": ".omnischolar/cache",
5
- "python": "python",
6
- "logLevel": "info",
7
- "maxOutputBytes": 51200,
8
- "maxOutputLines": 2000,
9
- "maxResponseBytes": 16777216,
10
- "requestTimeoutSeconds": 30,
11
- "workspaceRoots": ["."]
12
- },
13
- "tools": {
14
- "groups": {
15
- "literature": true,
16
- "ai4scholar": true,
17
- "zotero": true,
18
- "parsing": true,
19
- "citation": true,
20
- "materials": true,
21
- "chemistry": true,
22
- "media": true
23
- },
24
- "disabled": []
25
- },
26
- "defaults": {
27
- "language": "en",
28
- "citationStyle": "apa",
29
- "literatureLimit": 20,
30
- "preferredLiteratureProviders": ["semantic-scholar", "openalex", "crossref"],
31
- "defaultImageProvider": "openai"
32
- },
33
- "research": {
34
- "fallback": true,
35
- "maxPages": 10,
36
- "cacheTtlSeconds": 3600,
37
- "providers": {
38
- "semantic-scholar": {
39
- "enabled": true,
40
- "apiKeyEnv": "OMNISCHOLAR_SEMANTIC_SCHOLAR_API_KEY",
41
- "maxPages": 10
42
- },
43
- "openalex": {
44
- "enabled": true,
45
- "email": "researcher@example.edu",
46
- "maxPages": 10
47
- },
48
- "pubmed": {
49
- "enabled": true,
50
- "apiKeyEnv": "OMNISCHOLAR_NCBI_API_KEY",
51
- "email": "researcher@example.edu",
52
- "tool": "omnischolar",
53
- "maxPages": 10
54
- },
55
- "arxiv": {
56
- "enabled": true,
57
- "maxPages": 10
58
- },
59
- "crossref": {
60
- "enabled": true,
61
- "email": "researcher@example.edu",
62
- "maxPages": 10
63
- },
64
- "unpaywall": {
65
- "enabled": false,
66
- "email": "researcher@example.edu",
67
- "maxPages": 10
68
- },
69
- "easyscholar": {
70
- "enabled": false,
71
- "apiKeyEnv": "OMNISCHOLAR_EASYSCHOLAR_API_KEY",
72
- "maxPages": 5
73
- }
74
- }
75
- },
76
- "ai4scholar": {
77
- "enabled": false,
78
- "baseUrl": "https://ai4scholar.net",
79
- "apiKeyEnv": "OMNISCHOLAR_AI4SCHOLAR_API_KEY",
80
- "timeoutSeconds": 60,
81
- "maxResponseBytes": 16777216,
82
- "allowPaid": false
83
- },
84
- "zotero": {
85
- "enabled": true,
86
- "baseUrl": "http://127.0.0.1:23119/api",
87
- "maxItems": 500
88
- },
89
- "mineru": {
90
- "enabled": false,
91
- "baseUrl": "https://mineru.net/api/v4",
92
- "lightweightBaseUrl": "https://mineru.net/api/v1/agent",
93
- "apiKeyEnv": "OMNISCHOLAR_MINERU_API_KEY",
94
- "model": "pipeline",
95
- "cacheDirectory": ".omnischolar/mineru",
96
- "pollIntervalSeconds": 2,
97
- "pollTimeoutSeconds": 600,
98
- "maxPdfBytes": 209715200,
99
- "allowExternalUpload": false,
100
- "allowLightweightFallback": false
101
- },
102
- "data": {
103
- "materialsProject": {
104
- "enabled": false,
105
- "baseUrl": "https://api.materialsproject.org",
106
- "apiKeyEnv": "OMNISCHOLAR_MATERIALS_PROJECT_API_KEY",
107
- "maxPages": 10
108
- },
109
- "casCommonChemistry": {
110
- "enabled": false,
111
- "apiKeyEnv": "OMNISCHOLAR_CAS_API_KEY",
112
- "baseUrl": null,
113
- "contractFile": null
114
- }
115
- },
116
- "media": {
117
- "allowExternalUpload": false,
118
- "allowPaid": false,
119
- "maxInputBytes": 26214400,
120
- "maxArtifactBytes": 52428800,
121
- "providers": {
122
- "openai": {
123
- "enabled": false,
124
- "apiKeyEnv": "OMNISCHOLAR_OPENAI_API_KEY",
125
- "baseUrl": "https://api.openai.com/v1",
126
- "models": {
127
- "gpt-image-1": {
128
- "capabilities": ["text-to-image", "image-to-image", "edit", "multi-reference"],
129
- "paid": true
130
- }
131
- },
132
- "options": {}
133
- },
134
- "google": {
135
- "enabled": false,
136
- "apiKeyEnv": "OMNISCHOLAR_GEMINI_API_KEY",
137
- "baseUrl": "https://generativelanguage.googleapis.com/v1beta",
138
- "models": {},
139
- "options": {}
140
- },
141
- "vertex": {
142
- "enabled": false,
143
- "apiKeyEnv": "OMNISCHOLAR_VERTEX_ACCESS_TOKEN",
144
- "project": "your-project",
145
- "location": "us-central1",
146
- "models": {},
147
- "options": {}
148
- },
149
- "xai": {
150
- "enabled": false,
151
- "apiKeyEnv": "OMNISCHOLAR_XAI_API_KEY",
152
- "baseUrl": "https://api.x.ai/v1",
153
- "models": {},
154
- "options": {}
155
- },
156
- "fal": {
157
- "enabled": false,
158
- "apiKeyEnv": "OMNISCHOLAR_FAL_API_KEY",
159
- "baseUrl": "https://fal.run",
160
- "models": {},
161
- "options": {}
162
- },
163
- "dashscope": {
164
- "enabled": false,
165
- "apiKeyEnv": "OMNISCHOLAR_DASHSCOPE_API_KEY",
166
- "baseUrl": "https://dashscope.aliyuncs.com/api/v1",
167
- "models": {},
168
- "options": {}
169
- },
170
- "qwen-cloud": {
171
- "enabled": false,
172
- "apiKeyEnv": "OMNISCHOLAR_QWEN_API_KEY",
173
- "baseUrl": "https://dashscope.aliyuncs.com/api/v1",
174
- "models": {},
175
- "options": {}
176
- },
177
- "atlas": {
178
- "enabled": false,
179
- "apiKeyEnv": "OMNISCHOLAR_ATLAS_API_KEY",
180
- "baseUrl": "https://your-atlas-provider.example/v1",
181
- "models": {},
182
- "options": {}
183
- },
184
- "custom": {
185
- "enabled": false,
186
- "apiKeyEnv": "OMNISCHOLAR_CUSTOM_IMAGE_API_KEY",
187
- "baseUrl": "https://images.example.edu/v1",
188
- "models": {
189
- "explicit-model-id": {
190
- "capabilities": ["text-to-image"],
191
- "paid": true
192
- }
193
- },
194
- "options": {
195
- "generationEndpoint": "images/generations",
196
- "editEndpoint": "images/edits"
197
- }
198
- }
199
- }
200
- },
201
- "sync": {
202
- "namespace": null,
203
- "cacheDirectory": ".omnischolar/sync",
204
- "conflictPolicy": "preserve-local",
205
- "recovery": true,
206
- "backup": true,
207
- "avoidUnnecessaryParse": true
208
- },
209
- "output": {
210
- "rootDirectory": "omnischolar-output",
211
- "conflictDirectory": ".conflicts",
212
- "safeWrites": true
213
- }
214
- }
1
+ {
2
+ "schemaVersion": 1,
3
+ "runtime": {
4
+ "cacheDirectory": ".omnischolar/cache",
5
+ "python": "python",
6
+ "logLevel": "info",
7
+ "maxOutputBytes": 51200,
8
+ "maxOutputLines": 2000,
9
+ "maxResponseBytes": 16777216,
10
+ "requestTimeoutSeconds": 30,
11
+ "workspaceRoots": ["."]
12
+ },
13
+ "tools": {
14
+ "groups": {
15
+ "literature": true,
16
+ "ai4scholar": true,
17
+ "zotero": true,
18
+ "parsing": true,
19
+ "citation": true,
20
+ "materials": true,
21
+ "chemistry": true,
22
+ "media": true
23
+ },
24
+ "disabled": []
25
+ },
26
+ "defaults": {
27
+ "language": "en",
28
+ "citationStyle": "apa",
29
+ "literatureLimit": 20,
30
+ "preferredLiteratureProviders": ["semantic-scholar", "openalex", "crossref"],
31
+ "defaultImageProvider": "openai"
32
+ },
33
+ "research": {
34
+ "fallback": true,
35
+ "maxPages": 10,
36
+ "cacheTtlSeconds": 3600,
37
+ "providers": {
38
+ "semantic-scholar": {
39
+ "enabled": true,
40
+ "apiKeyEnv": "OMNISCHOLAR_SEMANTIC_SCHOLAR_API_KEY",
41
+ "maxPages": 10
42
+ },
43
+ "openalex": {
44
+ "enabled": true,
45
+ "email": "researcher@example.edu",
46
+ "maxPages": 10
47
+ },
48
+ "pubmed": {
49
+ "enabled": true,
50
+ "apiKeyEnv": "OMNISCHOLAR_NCBI_API_KEY",
51
+ "email": "researcher@example.edu",
52
+ "tool": "omnischolar",
53
+ "maxPages": 10
54
+ },
55
+ "arxiv": {
56
+ "enabled": true,
57
+ "maxPages": 10
58
+ },
59
+ "crossref": {
60
+ "enabled": true,
61
+ "email": "researcher@example.edu",
62
+ "maxPages": 10
63
+ },
64
+ "unpaywall": {
65
+ "enabled": false,
66
+ "email": "researcher@example.edu",
67
+ "maxPages": 10
68
+ },
69
+ "easyscholar": {
70
+ "enabled": false,
71
+ "apiKeyEnv": "OMNISCHOLAR_EASYSCHOLAR_API_KEY",
72
+ "maxPages": 5
73
+ }
74
+ }
75
+ },
76
+ "ai4scholar": {
77
+ "enabled": false,
78
+ "baseUrl": "https://ai4scholar.net",
79
+ "apiKeyEnv": "OMNISCHOLAR_AI4SCHOLAR_API_KEY",
80
+ "timeoutSeconds": 60,
81
+ "maxResponseBytes": 16777216,
82
+ "allowPaid": false
83
+ },
84
+ "zotero": {
85
+ "enabled": true,
86
+ "baseUrl": "http://127.0.0.1:23119/api",
87
+ "maxItems": 500
88
+ },
89
+ "mineru": {
90
+ "enabled": false,
91
+ "baseUrl": "https://mineru.net/api/v4",
92
+ "lightweightBaseUrl": "https://mineru.net/api/v1/agent",
93
+ "apiKeyEnv": "OMNISCHOLAR_MINERU_API_KEY",
94
+ "model": "pipeline",
95
+ "cacheDirectory": ".omnischolar/mineru",
96
+ "pollIntervalSeconds": 2,
97
+ "pollTimeoutSeconds": 600,
98
+ "maxPdfBytes": 209715200,
99
+ "allowExternalUpload": false,
100
+ "allowLightweightFallback": false
101
+ },
102
+ "data": {
103
+ "materialsProject": {
104
+ "enabled": false,
105
+ "baseUrl": "https://api.materialsproject.org",
106
+ "apiKeyEnv": "OMNISCHOLAR_MATERIALS_PROJECT_API_KEY",
107
+ "maxPages": 10
108
+ },
109
+ "casCommonChemistry": {
110
+ "enabled": false,
111
+ "apiKeyEnv": "OMNISCHOLAR_CAS_API_KEY",
112
+ "baseUrl": null,
113
+ "contractFile": null
114
+ }
115
+ },
116
+ "media": {
117
+ "allowExternalUpload": false,
118
+ "allowPaid": false,
119
+ "maxInputBytes": 26214400,
120
+ "maxArtifactBytes": 52428800,
121
+ "providers": {
122
+ "openai": {
123
+ "enabled": false,
124
+ "apiKeyEnv": "OMNISCHOLAR_OPENAI_API_KEY",
125
+ "baseUrl": "https://api.openai.com/v1",
126
+ "models": {
127
+ "gpt-image-1": {
128
+ "capabilities": ["text-to-image", "image-to-image", "edit", "multi-reference"],
129
+ "paid": true
130
+ }
131
+ },
132
+ "options": {}
133
+ },
134
+ "google": {
135
+ "enabled": false,
136
+ "apiKeyEnv": "OMNISCHOLAR_GEMINI_API_KEY",
137
+ "baseUrl": "https://generativelanguage.googleapis.com/v1beta",
138
+ "models": {},
139
+ "options": {}
140
+ },
141
+ "vertex": {
142
+ "enabled": false,
143
+ "apiKeyEnv": "OMNISCHOLAR_VERTEX_ACCESS_TOKEN",
144
+ "project": "your-project",
145
+ "location": "us-central1",
146
+ "models": {},
147
+ "options": {}
148
+ },
149
+ "xai": {
150
+ "enabled": false,
151
+ "apiKeyEnv": "OMNISCHOLAR_XAI_API_KEY",
152
+ "baseUrl": "https://api.x.ai/v1",
153
+ "models": {},
154
+ "options": {}
155
+ },
156
+ "fal": {
157
+ "enabled": false,
158
+ "apiKeyEnv": "OMNISCHOLAR_FAL_API_KEY",
159
+ "baseUrl": "https://fal.run",
160
+ "models": {},
161
+ "options": {}
162
+ },
163
+ "dashscope": {
164
+ "enabled": false,
165
+ "apiKeyEnv": "OMNISCHOLAR_DASHSCOPE_API_KEY",
166
+ "baseUrl": "https://your-workspace.cn-beijing.maas.aliyuncs.com/api/v1",
167
+ "models": {},
168
+ "options": {
169
+ "workspace": "your-workspace"
170
+ }
171
+ },
172
+ "qwen-cloud": {
173
+ "enabled": false,
174
+ "apiKeyEnv": "OMNISCHOLAR_QWEN_API_KEY",
175
+ "baseUrl": "https://your-workspace.ap-southeast-1.maas.aliyuncs.com/api/v1",
176
+ "models": {},
177
+ "options": {
178
+ "workspace": "your-workspace"
179
+ }
180
+ },
181
+ "atlas": {
182
+ "enabled": false,
183
+ "apiKeyEnv": "OMNISCHOLAR_ATLAS_API_KEY",
184
+ "baseUrl": "https://your-atlas-provider.example/v1",
185
+ "models": {},
186
+ "options": {}
187
+ },
188
+ "custom": {
189
+ "enabled": false,
190
+ "apiKeyEnv": "OMNISCHOLAR_CUSTOM_IMAGE_API_KEY",
191
+ "baseUrl": "https://images.example.edu/v1",
192
+ "models": {
193
+ "explicit-model-id": {
194
+ "capabilities": ["text-to-image"],
195
+ "paid": true
196
+ }
197
+ },
198
+ "options": {
199
+ "generationEndpoint": "images/generations",
200
+ "editEndpoint": "images/edits"
201
+ }
202
+ }
203
+ }
204
+ },
205
+ "sync": {
206
+ "namespace": null,
207
+ "cacheDirectory": ".omnischolar/sync",
208
+ "conflictPolicy": "preserve-local",
209
+ "recovery": true,
210
+ "backup": true,
211
+ "avoidUnnecessaryParse": true
212
+ },
213
+ "output": {
214
+ "rootDirectory": "omnischolar-output",
215
+ "conflictDirectory": ".conflicts",
216
+ "safeWrites": true
217
+ }
218
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@luffysolution/omnischolar-pi",
3
- "version": "0.1.1",
3
+ "version": "0.1.3",
4
4
  "description": "Pi MCP bridge for the OmniScholar research toolkit",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -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.1" };
4
+ const CLIENT_INFO = { name: "omnischolar-pi", version: "0.1.3" };
5
5
  export function resultText(result) {
6
6
  return result.content
7
7
  .map((item) => {
@@ -38,8 +38,8 @@ export default function omnischolarExtension(pi) {
38
38
  return connection;
39
39
  connection = (async () => {
40
40
  transport = new StdioClientTransport({
41
- command: "omnischolar",
42
- args: ["mcp"],
41
+ command: "uvx",
42
+ args: ["--from", "luffysolution-omnischolar==0.1.3", "omnischolar", "mcp"],
43
43
  stderr: "pipe",
44
44
  });
45
45
  client = new Client(CLIENT_INFO);