@luffysolution/omnischolar-pi 0.1.1 → 0.1.2

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
@@ -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.2",
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.2" };
5
5
  export function resultText(result) {
6
6
  return result.content
7
7
  .map((item) => {