0nmcp 2.0.0 → 2.1.0

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.md CHANGED
@@ -20,19 +20,19 @@
20
20
  [![MCP](https://img.shields.io/badge/MCP-Compatible-blueviolet?style=flat-square)](https://modelcontextprotocol.io)
21
21
  [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)
22
22
  [![Services](https://img.shields.io/badge/services-26+-blue?style=flat-square)](#-supported-services)
23
- [![Tools](https://img.shields.io/badge/tools-550-orange?style=flat-square)](#-all-tools)
23
+ [![Tools](https://img.shields.io/badge/tools-564-orange?style=flat-square)](#-all-tools)
24
24
  [![Community](https://img.shields.io/badge/community-1000%2B_devs-ff6600?style=flat-square)](#-community)
25
25
  [![GitHub Discussions](https://img.shields.io/github/discussions/0nork/0nMCP?style=flat-square&label=discussions)](https://github.com/0nork/0nMCP/discussions)
26
26
 
27
- **550 tools. 26 services. Zero configuration. One natural language interface.**
27
+ **564 tools. 26 services. Zero configuration. One natural language interface.**
28
28
 
29
- [Quick Start](#-installation) · [Services](#-supported-services) · [550 Tools](#-all-tools) · [.0n Standard](#-the-0n-standard) · [Unlocks](#-unlocks) · [Community](#-community) · [Contributing](#-contributing)
29
+ [Quick Start](#-installation) · [Services](#-supported-services) · [564 Tools](#-all-tools) · [.0n Standard](#-the-0n-standard) · [Unlocks](#-unlocks) · [Community](#-community) · [Contributing](#-contributing)
30
30
 
31
31
  </div>
32
32
 
33
33
  ---
34
34
 
35
- > **v1.7.0** — 550 tools across 26 services in 13 categories. Now with the **.0n Conversion Engine** (portable AI Brain bundles), **Vault** (machine-bound encrypted credential storage), **Application Engine** (build + distribute .0n apps), **Workflow Runtime** + **HTTP Server**, and a **CLI with named runs**. [See what's new](#-whats-new-in-v17).
35
+ > **v2.1.0** — 564 tools across 26 services in 13 categories. 714 total capabilities. Now with **Business Deed Transfer** (package + escrow + transfer entire digital businesses), **0nVault Containers** (Patent Pending #63/990,046 7 semantic layers, multi-party escrow, Seal of Truth), **Application Engine**, **Workflow Runtime** + **HTTP Server**, and **portable AI Brain bundles**. [See what's new](#-whats-new-in-v21).
36
36
 
37
37
  ---
38
38
 
@@ -157,7 +157,7 @@ Add to `~/Library/Application Support/Claude/claude_desktop_config.json` (Mac) o
157
157
  | **MongoDB** | Database | Find, insert, update, delete, aggregate documents via Atlas Data API |
158
158
  | **CRM** | CRM | **245 tools** — contacts, conversations, calendars, invoices, payments, products, pipelines, social media, custom objects, and more |
159
159
 
160
- **26 services. 550 tools. 13 categories. One interface.**
160
+ **26 services. 564 tools. 13 categories. One interface.**
161
161
 
162
162
  > **More coming:** QuickBooks, Asana, Intercom, AWS S3, Vercel, Cloudflare, Firebase, Figma...
163
163
 
@@ -267,26 +267,43 @@ The deepest CRM integration available in any MCP server. 245 tools across 12 mod
267
267
  | **Users** | 24 | Users, forms, surveys, funnels, media, companies, businesses |
268
268
  | **Objects** | 34 | Custom objects, associations, email, workflows, snapshots, links, campaigns, courses, SaaS |
269
269
 
270
- **550 total tools.** Universal orchestration (290 catalog tools across 26 services) + the most comprehensive CRM integration in the MCP ecosystem (245 dedicated tools).
270
+ **564 total tools.** Universal orchestration (290 catalog tools across 26 services) + the most comprehensive CRM integration in the MCP ecosystem (245 dedicated tools) + Vault (4 tools) + Vault Containers (8 tools) + Business Deed Transfer (6 tools) + Engine (6 tools) + App Builder (5 tools).
271
271
 
272
272
  > Every CRM tool is data-driven — defined as configuration, not code. Adding new endpoints takes minutes, not hours. See [CONTRIBUTING.md](CONTRIBUTING.md).
273
273
 
274
274
  ---
275
275
 
276
- ## What's New in v1.7
276
+ ## What's New in v2.1
277
277
 
278
- - **550 tools across 26 services** in 13 categories — 708 total capabilities
279
- - **.0n Conversion Engine** — import credentials from .env/CSV/JSON, auto-map to 26 services, verify API keys, generate configs for 7 AI platforms (Claude Desktop, Cursor, Windsurf, Gemini, Continue, Cline, OpenAI)
278
+ ### v2.1.0 Business Deed Transfer System
279
+
280
+ - **6 new tools**: `deed_create`, `deed_open`, `deed_inspect`, `deed_verify`, `deed_accept`, `deed_import`
281
+ - Package entire business digital assets into encrypted `.0nv` containers
282
+ - Chain of custody tracking with transfer history in audit_trail layer
283
+ - Auto-detection of credentials from .env/JSON/CSV via engine mapper
284
+ - Lifecycle: **CREATE → PACKAGE → ESCROW → ACCEPT → IMPORT → FLIP**
285
+
286
+ ### v2.0.0 — 0nVault Container System (Patent Pending #63/990,046)
287
+
288
+ - **8 new tools**: `vault_container_create/open/inspect/verify` + `escrow_create/escrow_unwrap/transfer/revoke`
289
+ - **7 semantic layers**: workflows, credentials, env_vars, mcp_configs, site_profiles, ai_brain, audit_trail
290
+ - Argon2id double-encryption for credential layer
291
+ - X25519 ECDH multi-party escrow (up to 8 parties, per-layer access matrix)
292
+ - **Seal of Truth**: SHA3-256 content-addressed integrity verification
293
+ - Ed25519 digital signatures, binary `.0nv` container format
294
+ - Transfer registry with replay prevention
295
+ - **Application Engine** — build, distribute, inspect, schedule `.0n` applications
296
+
297
+ ### v1.7.0 — Foundation
298
+
299
+ - 550 tools across 26 services in 13 categories — 708 total capabilities
300
+ - **.0n Conversion Engine** — import credentials, auto-map to 26 services, generate configs for 7 AI platforms
280
301
  - **Vault** — machine-bound encrypted credential storage (AES-256-GCM + PBKDF2-SHA512 + hardware fingerprint)
281
- - **Application Engine** build, distribute, inspect, and validate portable .0n application bundles
282
- - **Workflow Runtime** — load and execute `.0n` workflow files with template engine, conditions, and step chaining
283
- - **HTTP Server** — Express-based REST API, MCP over HTTP, and webhook receivers
284
- - **Named Runs / Hotkeys** — define command aliases in your SWITCH file, run them as `0nmcp launch`, `0nmcp hello`
285
- - **Interactive Shell** — `0nmcp shell` starts a REPL for `/command` execution
286
- - **Portable encryption** — passphrase-only AES-256-GCM (no machine fingerprint, works anywhere)
287
- - **245 CRM tools** — full API coverage across 12 modules
302
+ - **Workflow Runtime** + **HTTP Server** + **CLI with named runs**
288
303
  - **Three-Level Execution** (Patent Pending) — Pipeline → Assembly Line → Radial Burst
289
304
 
305
+ > **564 tools. 26 services. 714 total capabilities.** See [CHANGELOG.md](CHANGELOG.md) for full version history.
306
+
290
307
  ---
291
308
 
292
309
  ## How It Works
@@ -324,7 +341,7 @@ The orchestrator uses keyword matching to route tasks to the right service. Less
324
341
  | **Flexibility** | Say what you want | Triggers/actions only | Unlimited but complex |
325
342
  | **Maintenance** | Zero | Update broken zaps | Fix API changes |
326
343
  | **Open source** | Yes (MIT) | No | Depends |
327
- | **Tools available** | 550 | Varies | Whatever you build |
344
+ | **Tools available** | 564 | Varies | Whatever you build |
328
345
 
329
346
  ---
330
347
 
@@ -375,32 +392,62 @@ Every task execution is logged to `~/.0n/history/` as JSONL — full audit trail
375
392
 
376
393
  ```
377
394
  0nMCP/
378
- ├── index.js # Entry point — 7 universal tools + server startup
379
- ├── catalog.js # Service catalog — 26 integrations with endpoints
380
- ├── connections.js # Connection manager — ~/.0n/connections/*.0n
381
- ├── orchestrator.js # AI execution planner — the brain
382
- ├── webhooks.js # Webhook receiver and event processing
383
- ├── ratelimit.js # Per-service rate limiting with retry
384
- ├── cli.js # CLI init, connect, migrate, interactive setup
385
- ├── crm/ # 245 CRM tools across 12 modules
386
- ├── index.js # Tool orchestrator registers all modules
387
- ├── helpers.js # Data-driven tool factory registerTools()
388
- ├── auth.js # OAuth, tokens, snapshots, workflows
389
- │ ├── contacts.js # 23 contact management tools
390
- │ ├── conversations.js # 13 messaging tools
391
- │ ├── calendars.js # 27 calendar & scheduling tools
392
- │ ├── opportunities.js # 14 pipeline & deal tools
393
- │ ├── invoices.js # 20 invoicing tools
394
- │ ├── payments.js # 16 payment processing tools
395
- │ ├── products.js # 10 product catalog tools
396
- │ ├── locations.js # 24 location management tools
397
- │ ├── social.js # 35 social media & blog tools
398
- │ ├── users.js # 24 user & form tools
399
- └── objects.js # 34 custom object & association tools
395
+ ├── index.js # Entry point — MCP server startup
396
+ ├── catalog.js # Service catalog — 26 integrations with endpoints
397
+ ├── connections.js # Connection manager — ~/.0n/connections/*.0n
398
+ ├── orchestrator.js # AI execution planner — the brain
399
+ ├── workflow.js # WorkflowRunner .0n file execution
400
+ ├── server.js # Express HTTP server MCP over HTTP + webhooks
401
+ ├── webhooks.js # Webhook receiver and HMAC verification
402
+ ├── ratelimit.js # Per-service rate limiting with retry
403
+ ├── tools.js # Tool registration for catalog + engine tools
404
+ ├── cli.js # CLI 39KB, all commands
405
+ ├── crm/ # 245 CRM tools across 12 modules
406
+ │ ├── index.js # Tool orchestrator registers all modules
407
+ │ ├── helpers.js # Data-driven tool factory — registerTools()
408
+ │ ├── auth.js # OAuth, tokens, snapshots, workflows (5 tools)
409
+ │ ├── contacts.js # Contact management (23 tools)
410
+ │ ├── conversations.js # Messaging SMS, Email, WhatsApp, IG, FB (13 tools)
411
+ │ ├── calendars.js # Calendar & scheduling (27 tools)
412
+ │ ├── opportunities.js # Pipeline & deal management (14 tools)
413
+ │ ├── invoices.js # Invoicing (20 tools)
414
+ │ ├── payments.js # Payment processing (16 tools)
415
+ │ ├── products.js # Product catalog (10 tools)
416
+ ├── locations.js # Location management (24 tools)
417
+ │ ├── social.js # Social media & blogs (35 tools)
418
+ │ ├── users.js # User & form management (24 tools)
419
+ │ └── objects.js # Custom objects & associations (34 tools)
420
+ ├── vault/ # Encrypted credential storage + containers
421
+ │ ├── index.js # Vault entry — seal/unseal/verify/fingerprint (4 tools)
422
+ │ ├── container.js # 0nVault Container orchestrator
423
+ │ ├── crypto-container.js # AES-256-GCM + Argon2id encryption
424
+ │ ├── layers.js # 7 semantic layers
425
+ │ ├── escrow.js # X25519 ECDH multi-party escrow
426
+ │ ├── seal.js # Seal of Truth — SHA3-256 integrity
427
+ │ ├── registry.js # Transfer registry with replay prevention
428
+ │ ├── tools-container.js # 8 vault container tools
429
+ │ ├── deed.js # Business Deed Transfer core
430
+ │ ├── deed-collector.js # Asset collection from .env/JSON/CSV
431
+ │ ├── deed-importer.js # Import deeds into .0n ecosystem
432
+ │ ├── tools-deed.js # 6 deed transfer tools
433
+ │ └── cache.js # Vault cache layer
434
+ ├── engine/ # .0n Conversion Engine + App Builder
435
+ │ ├── index.js # Engine entry — 6 tools
436
+ │ ├── parser.js # Multi-format credential parser
437
+ │ ├── mapper.js # Auto-map credentials to 26 services
438
+ │ ├── validator.js # API key verification
439
+ │ ├── platforms.js # 7 AI platform config generators
440
+ │ ├── bundler.js # Portable .0n bundle creator
441
+ │ ├── cipher-portable.js # Passphrase-only AES-256-GCM
442
+ │ ├── application.js # Application Engine core
443
+ │ ├── app-builder.js # App builder
444
+ │ ├── app-server.js # App HTTP middleware
445
+ │ ├── operations.js # App operations
446
+ │ └── scheduler.js # CronScheduler class
400
447
  ├── types/
401
- │ └── index.d.ts # Full TypeScript definitions
448
+ │ └── index.d.ts # Full TypeScript definitions
402
449
  ├── package.json
403
- ├── LICENSE # MIT
450
+ ├── LICENSE # MIT
404
451
  └── CONTRIBUTING.md
405
452
  ```
406
453
 
@@ -410,8 +457,15 @@ Every task execution is logged to `~/.0n/history/` as JSONL — full audit trail
410
457
  | **Connection Manager** | Stores credentials as `.0n` files in `~/.0n/connections/` per the .0n standard |
411
458
  | **Orchestrator** | The brain — parses natural language, plans multi-step execution, calls APIs, chains data |
412
459
  | **CRM Modules** | 245 tools across 12 modules — data-driven, every tool is config not code |
460
+ | **Vault** | Machine-bound encrypted credential storage — AES-256-GCM + PBKDF2-SHA512 |
461
+ | **Vault Container System** | Patent Pending #63/990,046 — 7 semantic layers, multi-party escrow, Seal of Truth, binary .0nv format |
462
+ | **Business Deed Transfer** | Package + escrow + transfer entire digital businesses in encrypted containers |
463
+ | **Conversion Engine** | Import credentials from .env/CSV/JSON, auto-map to 26 services, generate 7 AI platform configs |
464
+ | **Application Engine** | Build, distribute, schedule .0n applications with CronScheduler + HTTP middleware |
465
+ | **Workflow Runtime** | Load and execute `.0n` workflow files with template engine, conditions, and step chaining |
466
+ | **HTTP Server** | Express-based REST API, MCP over HTTP, and webhook receivers |
413
467
  | **Rate Limiter** | Per-service rate limits with automatic retry and backoff |
414
- | **Webhook Handler** | Receive and process external events from connected services |
468
+ | **Webhook Handler** | HMAC-verified event processing Stripe, CRM, Slack, GitHub, Twilio, Shopify |
415
469
  | **Execution History** | Logs every task to `~/.0n/history/` as JSONL — full audit trail |
416
470
  | **TypeScript Defs** | Full type coverage for all exports, connections, workflows, and tools |
417
471
 
@@ -427,6 +481,16 @@ Every task execution is logged to `~/.0n/history/` as JSONL — full audit trail
427
481
  - **Execution history** — Full audit trail in `~/.0n/history/`
428
482
  - **Open source** — Audit every line yourself
429
483
 
484
+ ### 0nVault Container Security (Patent Pending)
485
+ - **AES-256-GCM** encryption for all container layers
486
+ - **Argon2id** double-encryption for credential layer (memory-hard, side-channel resistant)
487
+ - **Ed25519** digital signatures for container authenticity
488
+ - **Seal of Truth** — SHA3-256 content-addressed integrity verification
489
+ - **X25519 ECDH** multi-party escrow — up to 8 parties with per-layer access matrix
490
+ - **Binary .0nv format** — magic bytes `0x304E5350`, tamper-evident structure
491
+ - **Transfer registry** — replay prevention with chain of custody tracking
492
+ - **Machine-bound vault** — PBKDF2-SHA512 (100K iterations) + hardware fingerprint binding
493
+
430
494
  See [SECURITY.md](SECURITY.md) for our security policy and how to report vulnerabilities.
431
495
 
432
496
  ---
@@ -506,7 +570,7 @@ The tool factory handles registration, validation, API calls, error handling —
506
570
 
507
571
  ### Phase 0 — Foundation (Current)
508
572
 
509
- - [x] **26 services, 550 tools, 13 categories**
573
+ - [x] **26 services, 564 tools, 13 categories**
510
574
  - [x] Core orchestration engine with AI planning
511
575
  - [x] **245 CRM tools** — full API coverage across 12 modules
512
576
  - [x] Gmail, Google Sheets, Google Drive, Jira, Zendesk, Mailchimp, Zoom, Microsoft 365, MongoDB
@@ -589,7 +653,7 @@ We ship weekly. The codebase is active. The community is real. If you're buildin
589
653
 
590
654
  | Metric | |
591
655
  |--------|---|
592
- | **Tools shipped** | 550 |
656
+ | **Tools shipped** | 564 |
593
657
  | **Services integrated** | 26 |
594
658
  | **Categories** | 13 |
595
659
  | **CRM endpoints covered** | 245 / 245 (100%) |
@@ -640,7 +704,7 @@ node index.js
640
704
 
641
705
  | Project | Description |
642
706
  |---------|-------------|
643
- | **[0nMCP](https://github.com/0nork/0nMCP)** | Universal AI API Orchestrator — 550 tools, 26 services, natural language interface |
707
+ | **[0nMCP](https://github.com/0nork/0nMCP)** | Universal AI API Orchestrator — 564 tools, 26 services, Vault encryption, Business Deed transfer |
644
708
  | **[0n-spec](https://github.com/0nork/0n-spec)** | The .0n Standard — universal configuration format for AI orchestration |
645
709
  | **[0nork](https://github.com/0nork/0nork)** | The parent org — AI orchestration infrastructure |
646
710
 
@@ -655,7 +719,7 @@ node index.js
655
719
 
656
720
  <div align="center">
657
721
 
658
- **[Sponsor on GitHub](https://github.com/sponsors/0nork)** · **[Star the repo](https://github.com/0nork/0nMCP)** · **[Tell a friend](https://twitter.com/intent/tweet?text=0nMCP%20-%20550%20tools,%2026%20services,%20zero%20config.%20The%20universal%20AI%20API%20orchestrator.%20Free%20and%20open%20source.&url=https://github.com/0nork/0nMCP)**
722
+ **[Sponsor on GitHub](https://github.com/sponsors/0nork)** · **[Star the repo](https://github.com/0nork/0nMCP)** · **[Tell a friend](https://twitter.com/intent/tweet?text=0nMCP%20-%20564%20tools,%2026%20services,%20zero%20config.%20The%20universal%20AI%20API%20orchestrator.%20Free%20and%20open%20source.&url=https://github.com/0nork/0nMCP)**
659
723
 
660
724
  </div>
661
725
 
@@ -665,7 +729,7 @@ node index.js
665
729
 
666
730
  ### Stop building workflows. Start describing outcomes.
667
731
 
668
- **550 tools. 26 services. Zero config. MIT licensed. Community driven.**
732
+ **564 tools. 26 services. Zero config. MIT licensed. Community driven.**
669
733
 
670
734
  **[Get Started](https://github.com/0nork/0nMCP)** · **[Join the Community](https://0nmcp.com/community)** · **[Unlock Schedule](https://0nmcp.com/sponsor)** · **[Read the Docs](https://github.com/0nork/0n-spec)**
671
735
 
package/cli.js CHANGED
@@ -271,6 +271,13 @@ ${c.bright}Links:${c.reset}
271
271
  return;
272
272
  }
273
273
 
274
+ // Business Deed
275
+ if (command === 'deed') {
276
+ console.log(BANNER);
277
+ await handleDeed(args.slice(1));
278
+ return;
279
+ }
280
+
274
281
  // Engine
275
282
  if (command === 'engine') {
276
283
  console.log(BANNER);
@@ -763,6 +770,273 @@ ${c.bright}7 Semantic Layers:${c.reset}
763
770
  console.log(`Run ${c.cyan}0nmcp vault help${c.reset} for usage.`);
764
771
  }
765
772
 
773
+ async function handleDeed(args) {
774
+ const sub = args[0];
775
+
776
+ if (!sub || sub === 'help') {
777
+ console.log(`
778
+ ${c.bright}Business Deed — Digital Asset Transfer System${c.reset} ${c.yellow}(Patent Pending #63/990,046)${c.reset}
779
+
780
+ ${c.cyan}deed create${c.reset} Create a Business Deed (.0nv)
781
+ --name <name> Business name (required)
782
+ --from <file> Import credentials from .env, .json, or .csv
783
+ --passphrase <pass> Encryption passphrase
784
+ --output <file> Output file path
785
+
786
+ ${c.cyan}deed open <file>${c.reset} Open/decrypt a Business Deed
787
+ --passphrase <pass> Decryption passphrase
788
+ --layer <name> Only decrypt this layer
789
+
790
+ ${c.cyan}deed inspect <file>${c.reset} Inspect deed metadata (no passphrase needed)
791
+
792
+ ${c.cyan}deed verify <file>${c.reset} Verify Seal of Truth + Ed25519 signature
793
+
794
+ ${c.cyan}deed accept <file>${c.reset} Accept a deed transfer (buyer)
795
+ --passphrase <pass> Current deed passphrase
796
+ --buyer-name <name> Buyer's name
797
+ --buyer-email <email> Buyer's email
798
+ --new-passphrase <pass> New passphrase for re-encrypted deed
799
+
800
+ ${c.cyan}deed import <file>${c.reset} Import deed to live system config
801
+ --passphrase <pass> Decryption passphrase
802
+ --target <dir> Target directory (default: ~/.0n/)
803
+
804
+ ${c.cyan}deed export${c.reset} Collect + package in one step
805
+ --from <file> Source file (.env, .json, .csv)
806
+ --name <name> Business name
807
+ --passphrase <pass> Encryption passphrase
808
+ --output <file> Output file path
809
+
810
+ ${c.bright}Lifecycle:${c.reset} CREATE > PACKAGE > ESCROW > ACCEPT > IMPORT > FLIP
811
+ `);
812
+ return;
813
+ }
814
+
815
+ if (sub === 'create') {
816
+ const { BusinessDeed } = await import('./vault/deed.js');
817
+ const deed = new BusinessDeed();
818
+
819
+ const name = getFlag(args, '--name') || await promptInput('Business name: ');
820
+ const passphrase = getFlag(args, '--passphrase') || await promptInput('Passphrase: ');
821
+ const output = getFlag(args, '--output');
822
+ const from = getFlag(args, '--from');
823
+
824
+ let createOpts = { name, passphrase, output };
825
+
826
+ if (from) {
827
+ // Collect from file
828
+ const { collectCredentials } = await import('./vault/deed-collector.js');
829
+ console.log(`\n${c.bright}Collecting credentials from ${from}...${c.reset}`);
830
+ const collected = await collectCredentials({ envFile: from, jsonFile: from, csvFile: from });
831
+ createOpts.credentials = collected.credentials;
832
+ createOpts.envVars = collected.envVars;
833
+ console.log(` Found ${collected.credentialCount} credentials across ${collected.services.length} services`);
834
+ if (collected.services.length > 0) {
835
+ console.log(` Services: ${collected.services.join(', ')}`);
836
+ }
837
+ }
838
+
839
+ console.log(`\n${c.bright}Creating Business Deed...${c.reset}`);
840
+ try {
841
+ const result = await deed.create(createOpts);
842
+ console.log(`\n${c.green}✓ Business Deed created${c.reset}`);
843
+ console.log(` Business: ${c.cyan}${name}${c.reset}`);
844
+ console.log(` Transfer ID: ${c.cyan}${result.transferId}${c.reset}`);
845
+ console.log(` Seal of Truth: ${c.cyan}${result.sealHex}${c.reset}`);
846
+ console.log(` Services: ${result.services.join(', ') || 'none'}`);
847
+ console.log(` Credentials: ${result.credentialCount}`);
848
+ console.log(` Layers: ${result.layerCount}`);
849
+ console.log(` Size: ${result.containerSize} bytes`);
850
+ console.log(` File: ${c.yellow}${result.file}${c.reset}`);
851
+ } catch (err) {
852
+ console.log(`${c.red}Error: ${err.message}${c.reset}`);
853
+ process.exit(1);
854
+ }
855
+ return;
856
+ }
857
+
858
+ if (sub === 'open') {
859
+ const file = args[1];
860
+ if (!file) { console.log(`${c.red}Usage: deed open <file.0nv>${c.reset}`); process.exit(1); }
861
+
862
+ const { BusinessDeed } = await import('./vault/deed.js');
863
+ const deed = new BusinessDeed();
864
+ const passphrase = getFlag(args, '--passphrase') || await promptInput('Passphrase: ');
865
+ const layer = getFlag(args, '--layer');
866
+
867
+ try {
868
+ const result = await deed.open(file, passphrase, layer ? [layer] : null);
869
+
870
+ console.log(`\n${c.green}✓ Business Deed opened${c.reset}`);
871
+ console.log(` Transfer ID: ${c.cyan}${result.metadata.transferId}${c.reset}`);
872
+ console.log(` Seal valid: ${result.seal.valid ? c.green + '✓' : c.red + '✗'}${c.reset}`);
873
+ console.log(` Sig valid: ${result.signature.valid ? c.green + '✓' : c.red + '✗'}${c.reset}`);
874
+
875
+ if (result.deed) {
876
+ console.log(` Business: ${c.cyan}${result.deed.business?.name || 'Unknown'}${c.reset}`);
877
+ console.log(` Services: ${(result.deed.services || []).join(', ')}`);
878
+ console.log(` Transfers: ${(result.deed.transfer_history || []).length}`);
879
+ }
880
+
881
+ console.log(`\n${c.bright}Layers:${c.reset}`);
882
+ for (const [name, data] of Object.entries(result.layers)) {
883
+ if (name === 'audit_trail') continue;
884
+ const preview = JSON.stringify(data).substring(0, 100);
885
+ console.log(` ${c.cyan}${name}${c.reset}: ${preview}${preview.length >= 100 ? '...' : ''}`);
886
+ }
887
+ } catch (err) {
888
+ console.log(`${c.red}Error: ${err.message}${c.reset}`);
889
+ process.exit(1);
890
+ }
891
+ return;
892
+ }
893
+
894
+ if (sub === 'inspect') {
895
+ const file = args[1];
896
+ if (!file) { console.log(`${c.red}Usage: deed inspect <file.0nv>${c.reset}`); process.exit(1); }
897
+
898
+ const { BusinessDeed } = await import('./vault/deed.js');
899
+ const deed = new BusinessDeed();
900
+
901
+ try {
902
+ const info = deed.inspect(file);
903
+ console.log(`\n${c.bright}Business Deed Inspection${c.reset}`);
904
+ console.log(JSON.stringify(info, null, 2));
905
+ } catch (err) {
906
+ console.log(`${c.red}Error: ${err.message}${c.reset}`);
907
+ process.exit(1);
908
+ }
909
+ return;
910
+ }
911
+
912
+ if (sub === 'verify') {
913
+ const file = args[1];
914
+ if (!file) { console.log(`${c.red}Usage: deed verify <file.0nv>${c.reset}`); process.exit(1); }
915
+
916
+ const { BusinessDeed } = await import('./vault/deed.js');
917
+ const deed = new BusinessDeed();
918
+
919
+ try {
920
+ const v = deed.verify(file);
921
+ console.log(`\n${v.verified ? c.green + '✓ VERIFIED' : c.red + '✗ FAILED'}${c.reset}`);
922
+ console.log(` Seal of Truth: ${v.seal.valid ? c.green + 'Valid' : c.red + 'Invalid'}${c.reset} (${v.seal.algorithm})`);
923
+ console.log(` Signature: ${v.signature.valid ? c.green + 'Valid' : c.red + 'Invalid'}${c.reset} (${v.signature.algorithm})`);
924
+ console.log(` Transfer ID: ${v.transferId}`);
925
+ console.log(` Created: ${v.created}`);
926
+ console.log(` Patent: ${v.patent}`);
927
+ } catch (err) {
928
+ console.log(`${c.red}Error: ${err.message}${c.reset}`);
929
+ process.exit(1);
930
+ }
931
+ return;
932
+ }
933
+
934
+ if (sub === 'accept') {
935
+ const file = args[1];
936
+ if (!file) { console.log(`${c.red}Usage: deed accept <file.0nv>${c.reset}`); process.exit(1); }
937
+
938
+ const { BusinessDeed } = await import('./vault/deed.js');
939
+ const deed = new BusinessDeed();
940
+
941
+ const passphrase = getFlag(args, '--passphrase') || await promptInput('Current passphrase: ');
942
+ const buyerName = getFlag(args, '--buyer-name') || await promptInput('Buyer name: ');
943
+ const buyerEmail = getFlag(args, '--buyer-email') || await promptInput('Buyer email: ');
944
+ const newPassphrase = getFlag(args, '--new-passphrase');
945
+
946
+ try {
947
+ const result = await deed.accept(
948
+ file, passphrase,
949
+ { name: buyerName, email: buyerEmail },
950
+ newPassphrase,
951
+ );
952
+
953
+ console.log(`\n${c.green}✓ Business Deed accepted${c.reset}`);
954
+ console.log(` New Transfer ID: ${c.cyan}${result.transferId}${c.reset}`);
955
+ console.log(` New Seal: ${c.cyan}${result.sealHex}${c.reset}`);
956
+ console.log(` Buyer: ${buyerName} <${buyerEmail}>`);
957
+ console.log(` Prev Transfer: ${result.previousTransferId}`);
958
+ console.log(` File: ${c.yellow}${result.file}${c.reset}`);
959
+ } catch (err) {
960
+ console.log(`${c.red}Error: ${err.message}${c.reset}`);
961
+ process.exit(1);
962
+ }
963
+ return;
964
+ }
965
+
966
+ if (sub === 'import') {
967
+ const file = args[1];
968
+ if (!file) { console.log(`${c.red}Usage: deed import <file.0nv>${c.reset}`); process.exit(1); }
969
+
970
+ const { BusinessDeed } = await import('./vault/deed.js');
971
+ const deed = new BusinessDeed();
972
+
973
+ const passphrase = getFlag(args, '--passphrase') || await promptInput('Passphrase: ');
974
+ const target = getFlag(args, '--target');
975
+
976
+ try {
977
+ const report = await deed.importDeed(file, passphrase, target);
978
+
979
+ console.log(`\n${report.success ? c.green + '✓ Import complete' : c.red + '✗ Import had errors'}${c.reset}`);
980
+ if (report.connections.written.length > 0) {
981
+ console.log(` Connections: ${report.connections.written.join(', ')}`);
982
+ }
983
+ if (report.envFile) {
984
+ console.log(` Env file: ${report.envFile.file} (${report.envFile.written} vars)`);
985
+ }
986
+ if (report.workflows.count > 0) {
987
+ console.log(` Workflows: ${report.workflows.count}`);
988
+ }
989
+ if (report.brain.written.length > 0) {
990
+ console.log(` AI Brain: ${report.brain.written.join(', ')}`);
991
+ }
992
+ if (report.deed) {
993
+ console.log(` Business: ${c.cyan}${report.deed.business?.name || 'Unknown'}${c.reset}`);
994
+ }
995
+ if (report.errors.length > 0) {
996
+ console.log(` ${c.red}Errors: ${report.errors.join(', ')}${c.reset}`);
997
+ }
998
+ } catch (err) {
999
+ console.log(`${c.red}Error: ${err.message}${c.reset}`);
1000
+ process.exit(1);
1001
+ }
1002
+ return;
1003
+ }
1004
+
1005
+ if (sub === 'export') {
1006
+ const { BusinessDeed } = await import('./vault/deed.js');
1007
+ const deed = new BusinessDeed();
1008
+
1009
+ const from = getFlag(args, '--from');
1010
+ if (!from) { console.log(`${c.red}Usage: deed export --from <file> --name <name> --passphrase <pass>${c.reset}`); process.exit(1); }
1011
+
1012
+ const name = getFlag(args, '--name') || await promptInput('Business name: ');
1013
+ const passphrase = getFlag(args, '--passphrase') || await promptInput('Passphrase: ');
1014
+ const output = getFlag(args, '--output');
1015
+
1016
+ console.log(`\n${c.bright}Exporting Business Deed from ${from}...${c.reset}`);
1017
+ try {
1018
+ const result = await deed.export(
1019
+ { envFile: from, jsonFile: from, csvFile: from },
1020
+ { name, passphrase, output }
1021
+ );
1022
+
1023
+ console.log(`\n${c.green}✓ Business Deed exported${c.reset}`);
1024
+ console.log(` Business: ${c.cyan}${name}${c.reset}`);
1025
+ console.log(` Transfer ID: ${c.cyan}${result.transferId}${c.reset}`);
1026
+ console.log(` Services: ${result.services.join(', ') || 'none'}`);
1027
+ console.log(` Credentials: ${result.credentialCount}`);
1028
+ console.log(` File: ${c.yellow}${result.file}${c.reset}`);
1029
+ } catch (err) {
1030
+ console.log(`${c.red}Error: ${err.message}${c.reset}`);
1031
+ process.exit(1);
1032
+ }
1033
+ return;
1034
+ }
1035
+
1036
+ console.log(`${c.red}Unknown deed command: ${sub}${c.reset}`);
1037
+ console.log(`Run ${c.cyan}0nmcp deed help${c.reset} for usage.`);
1038
+ }
1039
+
766
1040
  async function handleEngine(args) {
767
1041
  const sub = args[0];
768
1042
 
package/index.js CHANGED
@@ -29,6 +29,7 @@ import { registerAllTools } from "./tools.js";
29
29
  import { registerCrmTools } from "./crm/index.js";
30
30
  import { registerVaultTools, autoUnseal } from "./vault/index.js";
31
31
  import { registerContainerTools } from "./vault/tools-container.js";
32
+ import { registerDeedTools } from "./vault/tools-deed.js";
32
33
  import { unsealedCache } from "./vault/cache.js";
33
34
  import { registerEngineTools } from "./engine/index.js";
34
35
 
@@ -40,7 +41,7 @@ const workflowRunner = new WorkflowRunner(connections);
40
41
 
41
42
  const server = new McpServer({
42
43
  name: "0nMCP",
43
- version: "2.0.0",
44
+ version: "2.1.0",
44
45
  });
45
46
 
46
47
  // ============================================================
@@ -80,6 +81,12 @@ registerEngineTools(server, z);
80
81
 
81
82
  registerContainerTools(server, z);
82
83
 
84
+ // ============================================================
85
+ // BUSINESS DEED TOOLS (digital asset transfer system)
86
+ // ============================================================
87
+
88
+ registerDeedTools(server, z);
89
+
83
90
  // ============================================================
84
91
  // START SERVER (stdio transport)
85
92
  // ============================================================
package/lib/stats.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "generated": "2026-02-25T10:54:43.654Z",
2
+ "generated": "2026-02-28T08:51:26.876Z",
3
3
  "catalogVersion": "1.2.2",
4
4
  "services": 26,
5
5
  "tools": 290,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "0nmcp",
3
- "version": "2.0.0",
3
+ "version": "2.1.0",
4
4
  "mcpName": "io.github.0nork/0nMCP",
5
5
  "description": "Universal AI API Orchestrator — 550 tools, 26 services, portable AI Brain bundles + machine-bound vault encryption + Application Engine. The most comprehensive MCP server available. Free and open source from 0nORK.",
6
6
  "type": "module",
@@ -73,6 +73,15 @@
73
73
  },
74
74
  "./vault/seal": {
75
75
  "import": "./vault/seal.js"
76
+ },
77
+ "./vault/deed": {
78
+ "import": "./vault/deed.js"
79
+ },
80
+ "./vault/deed-collector": {
81
+ "import": "./vault/deed-collector.js"
82
+ },
83
+ "./vault/deed-importer": {
84
+ "import": "./vault/deed-importer.js"
76
85
  }
77
86
  },
78
87
  "scripts": {
@@ -154,6 +163,13 @@
154
163
  "sha3",
155
164
  "argon2",
156
165
  "digital-asset-transfer",
166
+ "business-deed-transfer",
167
+ "workflow-runtime",
168
+ "http-server",
169
+ "cli",
170
+ "application-engine",
171
+ "container",
172
+ "mcp-registry",
157
173
  "0n",
158
174
  "0nork",
159
175
  "0nmcp"
@@ -227,6 +243,6 @@
227
243
  "triggers": 93,
228
244
  "totalCapabilities": 708,
229
245
  "categories": 13,
230
- "lastUpdated": "2026-02-25T10:54:43.654Z"
246
+ "lastUpdated": "2026-02-28T08:51:26.876Z"
231
247
  }
232
248
  }