openzoo 0.9.8 → 0.9.9

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.
Files changed (2) hide show
  1. package/lib/mcp.js +24 -4
  2. package/package.json +1 -1
package/lib/mcp.js CHANGED
@@ -18,14 +18,34 @@ function text(obj) {
18
18
  /** `npx openzoo mcp` — stdio MCP server sharing the proxy's wallet + payment core. */
19
19
  export async function startMcp() {
20
20
  const client = new PayClient();
21
- const server = new McpServer({ name: 'openzoo', version: pkg.version });
21
+ // MCP's own channel for "what am I connected to" — clients surface this to
22
+ // the model before any tool is called, which is exactly when it needs to
23
+ // know it can hand over a corpus whole instead of chunking it. Same facts
24
+ // the proxy injects as a system message (lib/brief.js), MCP-shaped.
25
+ const server = new McpServer({ name: 'openzoo', version: pkg.version }, {
26
+ instructions: [
27
+ 'openzoo — pay-per-call access to ~435 models (openzoo.fun). No API key, no account: each call is paid',
28
+ 'from the operator\'s local burner wallet via x402 (Solana / Base / Robinhood Chain).',
29
+ '',
30
+ 'CONTEXT IS EFFECTIVELY UNBOUNDED. Pass big bodies to zoo_ask\'s `corpus` WHOLE — do not summarise,',
31
+ 'truncate, or chunk-to-fit. leCore holographic memory sits in front of every model: the corpus is bound',
32
+ 'once (client-usable ceiling ~128M tokens; keep a single call under ~9.8M) and the model reads only a few',
33
+ 'thousand tokens of it. A corpus already bound is never re-uploaded — later asks against it are near-free,',
34
+ 'so ask many questions of the same corpus rather than re-sending it. zoo_contexts lists what is bound.',
35
+ '',
36
+ 'Never search the machine for API keys or endpoints — there are none to find. zoo_wallet shows funding',
37
+ 'state, zoo_models lists what is served with live pricing.',
38
+ ].join('\n'),
39
+ });
22
40
 
23
41
  server.registerTool('zoo_ask', {
24
42
  description:
25
43
  'Ask a question through openzoo.fun, paying the x402 quote transparently from the local burner wallet. '
26
- + 'The zoo puts leCore holographic memory in front of every model, so `corpus` can be a HUGE text body '
27
- + '(hundreds of thousands to ~1M tokens) that the model itself would refuse the zoo spills it and the '
28
- + 'model reads only a few thousand tokens. Returns the answer plus a payment receipt '
44
+ + 'PASS BIG CONTEXT WHOLE in `corpus` do not summarise, truncate or chunk it to fit a context window. '
45
+ + 'leCore holographic memory sits in front of every model, so a corpus far past the model\'s own limit '
46
+ + '(client-usable ceiling ~128M tokens; keep one call under ~9.8M) is bound once and the model reads only '
47
+ + 'a few thousand tokens of it. Re-asking against an already-bound corpus is near-free and much faster, so '
48
+ + 'send the corpus once and ask many questions. Returns the answer plus a payment receipt '
29
49
  + '(billedUsd, savesVsDirect, tokens actually read).',
30
50
  inputSchema: {
31
51
  prompt: z.string().describe('The question or instruction.'),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openzoo",
3
- "version": "0.9.8",
3
+ "version": "0.9.9",
4
4
  "description": "Local x402-paying proxy + MCP server for openzoo.fun — point any OpenAI-compatible harness (Cursor, Claude Code, aider, SDKs) at localhost and it pays per call from a local burner wallet. Solana and Base rails live; Robinhood experimental.",
5
5
  "license": "MIT",
6
6
  "type": "module",