0nmcp 1.2.2 → 1.3.1

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
@@ -19,20 +19,20 @@
19
19
  [![Node.js](https://img.shields.io/badge/node-%3E%3D18.0.0-brightgreen?style=flat-square)](https://nodejs.org)
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
- [![Services](https://img.shields.io/badge/services-17+-blue?style=flat-square)](#-supported-services)
23
- [![Tools](https://img.shields.io/badge/tools-252-orange?style=flat-square)](#-all-tools)
22
+ [![Services](https://img.shields.io/badge/services-26+-blue?style=flat-square)](#-supported-services)
23
+ [![Tools](https://img.shields.io/badge/tools-535-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
- **252 tools. 17 services. Zero configuration. One natural language interface.**
27
+ **535 tools. 26 services. Zero configuration. One natural language interface.**
28
28
 
29
- [Quick Start](#-installation) · [Services](#-supported-services) · [252 Tools](#-all-tools) · [.0n Standard](#-the-0n-standard) · [Community](#-community) · [Contributing](#-contributing)
29
+ [Quick Start](#-installation) · [Services](#-supported-services) · [535 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.2.0** — 245 CRM tools across 12 modules, full API coverage, rate limiting, webhooks, TypeScript definitions, and a growing open source community. [See what's new](#-whats-new-in-v12).
35
+ > **v1.3.0** — 535 tools across 26 services in 13 categories. Gmail, Google Sheets, Google Drive, Jira, Zendesk, Mailchimp, Zoom, Microsoft 365, and MongoDB now live. Full CRM coverage (245 tools), rate limiting, webhooks, TypeScript definitions, and a growing open source community. [See what's new](#-whats-new-in-v13).
36
36
 
37
37
  ---
38
38
 
@@ -146,11 +146,20 @@ Add to `~/Library/Application Support/Claude/claude_desktop_config.json` (Mac) o
146
146
  | **Supabase** | Database | Tables, auth users, storage buckets |
147
147
  | **Calendly** | Scheduling | Events, event types, availability |
148
148
  | **Google Calendar** | Scheduling | Events, calendars, CRUD |
149
+ | **Gmail** | Email | Send, read, search emails, manage labels, drafts, threads, attachments |
150
+ | **Google Sheets** | Database | Read/write spreadsheets, create sheets, append rows, batch operations |
151
+ | **Google Drive** | Storage | Upload, download, search, share files, manage folders, permissions |
152
+ | **Jira** | Dev Tools | Issues, projects, sprints, boards, transitions, comments, assignments |
153
+ | **Zendesk** | Support | Tickets, users, organizations, comments, tags, views, search |
154
+ | **Mailchimp** | Marketing | Campaigns, lists, members, templates, automations, reports |
155
+ | **Zoom** | Communication | Meetings, webinars, recordings, users, registrants |
156
+ | **Microsoft 365** | Productivity | Outlook mail, Teams messages, OneDrive files, calendar events |
157
+ | **MongoDB** | Database | Find, insert, update, delete, aggregate documents via Atlas Data API |
149
158
  | **CRM** | CRM | **245 tools** — contacts, conversations, calendars, invoices, payments, products, pipelines, social media, custom objects, and more |
150
159
 
151
- **17 services. 252 tools. One interface.**
160
+ **26 services. 535 tools. 13 categories. One interface.**
152
161
 
153
- > **More coming:** Mailchimp, QuickBooks, Jira, Asana, Zendesk, Intercom, Webflow, WordPress...
162
+ > **More coming:** QuickBooks, Asana, Intercom, AWS S3, Vercel, Cloudflare, Firebase, Figma...
154
163
 
155
164
  ---
156
165
 
@@ -175,9 +184,9 @@ Add to `~/Library/Application Support/Claude/claude_desktop_config.json` (Mac) o
175
184
  ### Multi-Step
176
185
 
177
186
  ```
178
- "Create a Stripe invoice for $1000, then email the link to john@client.com"
187
+ "Create a Stripe invoice for $1000, then email the link via Gmail to john@client.com"
179
188
 
180
- "Create a GitHub issue for the login bug, then post it to #bugs on Slack"
189
+ "Create a Jira issue for the login bug, then post it to #bugs on Slack"
181
190
 
182
191
  "Look up sarah@example.com in my CRM and send her a follow-up email"
183
192
  ```
@@ -235,7 +244,7 @@ One tool call. Everything deployed:
235
244
  | `connect_service` | Connect a new service with credentials |
236
245
  | `disconnect_service` | Remove a connected service |
237
246
  | `list_connections` | See what's connected and capability counts |
238
- | `list_available_services` | Browse all 17 services grouped by category |
247
+ | `list_available_services` | Browse all 26 services grouped by category |
239
248
  | `get_service_info` | Deep dive on a specific service — endpoints, auth, capabilities |
240
249
  | `api_call` | Direct API call to any connected service endpoint |
241
250
 
@@ -258,15 +267,19 @@ The deepest CRM integration available in any MCP server. 245 tools across 12 mod
258
267
  | **Users** | 24 | Users, forms, surveys, funnels, media, companies, businesses |
259
268
  | **Objects** | 34 | Custom objects, associations, email, workflows, snapshots, links, campaigns, courses, SaaS |
260
269
 
261
- **252 total tools.** Universal orchestration + the most comprehensive CRM integration in the MCP ecosystem.
270
+ **535 total tools.** Universal orchestration (290 catalog tools across 26 services) + the most comprehensive CRM integration in the MCP ecosystem (245 dedicated tools).
262
271
 
263
272
  > Every CRM tool is data-driven — defined as configuration, not code. Adding new endpoints takes minutes, not hours. See [CONTRIBUTING.md](CONTRIBUTING.md).
264
273
 
265
274
  ---
266
275
 
267
- ## What's New in v1.2
276
+ ## What's New in v1.3
268
277
 
269
- - **245 CRM tools** — up from 10. Full API coverage across 12 modules
278
+ - **26 services, 535 tools** — up from 17 services and 252 tools
279
+ - **9 new integrations** — Gmail, Google Sheets, Google Drive, Jira, Zendesk, Mailchimp, Zoom, Microsoft 365, MongoDB
280
+ - **13 categories** — added Storage, Support, and Marketing categories
281
+ - **Three-Level Execution Hierarchy** (Patent Pending) — Pipeline → Assembly Line → Radial Burst
282
+ - **245 CRM tools** — full API coverage across 12 modules
270
283
  - **Data-driven tool factory** — every tool is a config object, new endpoints in minutes
271
284
  - **Rate limiting** — built-in per-service rate limits with automatic retry
272
285
  - **Webhook support** — receive and process external events
@@ -285,7 +298,7 @@ The deepest CRM integration available in any MCP server. 245 tools across 12 mod
285
298
  │ for $500 and │ │ 2. Plan steps │ │ SendGrid │
286
299
  │ notify #sales" │ │ 3. Execute APIs │ │ Slack │
287
300
  │ │◀────│ 4. Chain data │◀────│ CRM │
288
- │ │ │ 5. Summarize │ │ + 13 more... │
301
+ │ │ │ 5. Summarize │ │ + 22 more... │
289
302
  └─────────────────┘ └──────────────────┘ └─────────────────┘
290
303
  ```
291
304
 
@@ -310,7 +323,7 @@ The orchestrator uses keyword matching to route tasks to the right service. Less
310
323
  | **Flexibility** | Say what you want | Triggers/actions only | Unlimited but complex |
311
324
  | **Maintenance** | Zero | Update broken zaps | Fix API changes |
312
325
  | **Open source** | Yes (MIT) | No | Depends |
313
- | **Tools available** | 252 | Varies | Whatever you build |
326
+ | **Tools available** | 535 | Varies | Whatever you build |
314
327
 
315
328
  ---
316
329
 
@@ -362,7 +375,7 @@ Every task execution is logged to `~/.0n/history/` as JSONL — full audit trail
362
375
  ```
363
376
  0nMCP/
364
377
  ├── index.js # Entry point — 7 universal tools + server startup
365
- ├── catalog.js # Service catalog — 17 integrations with endpoints
378
+ ├── catalog.js # Service catalog — 26 integrations with endpoints
366
379
  ├── connections.js # Connection manager — ~/.0n/connections/*.0n
367
380
  ├── orchestrator.js # AI execution planner — the brain
368
381
  ├── webhooks.js # Webhook receiver and event processing
@@ -392,7 +405,7 @@ Every task execution is logged to `~/.0n/history/` as JSONL — full audit trail
392
405
 
393
406
  | Component | What It Does |
394
407
  |-----------|-------------|
395
- | **Service Catalog** | Defines all 17 services — their base URLs, endpoints, auth patterns, and capabilities |
408
+ | **Service Catalog** | Defines all 26 services — their base URLs, endpoints, auth patterns, and capabilities |
396
409
  | **Connection Manager** | Stores credentials as `.0n` files in `~/.0n/connections/` per the .0n standard |
397
410
  | **Orchestrator** | The brain — parses natural language, plans multi-step execution, calls APIs, chains data |
398
411
  | **CRM Modules** | 245 tools across 12 modules — data-driven, every tool is config not code |
@@ -484,35 +497,71 @@ The tool factory handles registration, validation, API calls, error handling —
484
497
 
485
498
  ---
486
499
 
487
- ## Roadmap
500
+ ## Unlocks
488
501
 
489
- **Shipped:**
502
+ 0nMCP grows with its community. Every milestone unlocks new capabilities — the more developers who join, the more powerful the platform becomes.
490
503
 
504
+ **See the full unlock schedule at [0nmcp.com/sponsor](https://0nmcp.com/sponsor)**
505
+
506
+ ### Phase 0 — Foundation (Current)
507
+
508
+ - [x] **26 services, 535 tools, 13 categories**
491
509
  - [x] Core orchestration engine with AI planning
492
- - [x] 17 service integrations
493
- - [x] Multi-step execution with data chaining
494
510
  - [x] **245 CRM tools** — full API coverage across 12 modules
511
+ - [x] Gmail, Google Sheets, Google Drive, Jira, Zendesk, Mailchimp, Zoom, Microsoft 365, MongoDB
495
512
  - [x] Data-driven tool factory — config, not code
496
513
  - [x] Full snapshot deployment (pipeline + tags + values + workflows)
497
- - [x] Keyword fallback mode (works without Anthropic key)
498
514
  - [x] **.0n Standard** — universal config format (`~/.0n/`)
499
- - [x] **Execution history** JSONL logs in `~/.0n/history/`
500
- - [x] **Rate limiting** — per-service with automatic retry
501
- - [x] **Webhook support** — receive external events
502
- - [x] **TypeScript definitions** — full type coverage
503
- - [x] **CLI** — interactive setup, migration, colored output
515
+ - [x] Rate limiting, webhooks, TypeScript definitions, CLI
504
516
  - [x] **npm published** — `npx 0nmcp` live on npm
505
517
 
506
- **In Progress:**
518
+ ### Phase 1 — Essential Expansion (100 stars / $500 MRR)
519
+
520
+ - [ ] **OAuth flows** — connect services with one click
521
+ - [ ] **Credential encryption** — AES-256-GCM at-rest
522
+ - [ ] **QuickBooks** — accounting and invoicing
523
+ - [ ] **Asana** — project and task management
524
+ - [ ] **Intercom** — customer messaging
525
+ - [ ] Target: 30+ services, 620+ tools
526
+
527
+ ### Phase 2 — Full Stack (500 stars / $2K MRR)
507
528
 
508
- - [ ] **OAuth flows** — connect with one click (Q1 2026)
509
- - [ ] **Credential encryption** — AES-256-GCM at-rest (Q1 2026)
529
+ - [ ] **AWS S3** — cloud storage
530
+ - [ ] **Vercel** — deployment management
531
+ - [ ] **Cloudflare** — DNS, workers, security
510
532
  - [ ] **Scheduled tasks** — "every Monday, send a report"
511
- - [ ] **More services** — 50+ planned (Mailchimp, QuickBooks, Jira, Asana...)
533
+ - [ ] **Conditionals** — "if balance < $100, alert me"
534
+ - [ ] Target: 35+ services, 750+ tools
535
+
536
+ ### Phase 3 — Platform (1,000 stars / $5K MRR)
537
+
512
538
  - [ ] **Plugin system** — bring your own services
513
539
  - [ ] **Web dashboard** — manage connections visually
514
- - [ ] **Conditionals** — "if balance < $100, alert me"
515
- - [ ] **Test suite** comprehensive unit + integration tests
540
+ - [ ] **Workflow marketplace** — share and discover automations
541
+ - [ ] **Firebase, Figma, WordPress, Webflow**
542
+ - [ ] Target: 42+ services, 900+ tools
543
+
544
+ ### Phase 4 — Industry Packs (5,000 stars / $15K MRR)
545
+
546
+ - [ ] Healthcare, Legal, Real Estate, and E-Commerce industry packs
547
+ - [ ] **Twilio Flex, Square, Plaid, DocuSign**
548
+ - [ ] Target: 55+ services, 1,200+ tools
549
+
550
+ ### Phase 5 — Ecosystem Dominance (10,000 stars / $50K MRR)
551
+
552
+ - [ ] Multi-agent orchestration
553
+ - [ ] Self-hosted enterprise edition
554
+ - [ ] Real-time streaming execution
555
+ - [ ] Target: 75+ services, 2,000+ tools
556
+
557
+ ### Phase 6 — The Singularity (25,000+ stars / $100K+ MRR)
558
+
559
+ - [ ] Autonomous agent mode
560
+ - [ ] Cross-organization federation
561
+ - [ ] AI-generated service adapters
562
+ - [ ] Target: 100+ services, 5,000+ tools
563
+
564
+ > Every unlock is permanent. Once a milestone is hit, the feature ships for everyone — free and open source forever.
516
565
 
517
566
  ---
518
567
 
@@ -520,27 +569,28 @@ The tool factory handles registration, validation, API calls, error handling —
520
569
 
521
570
  0nMCP is built in the open by a growing network of developers who believe AI orchestration should be free, composable, and community-owned.
522
571
 
523
- **The 0n community is 1,000+ developers strong** — building integrations, shipping tools, and pushing the boundaries of what MCP can do.
572
+ **The 0n community is growing fast** — building integrations, shipping tools, and pushing the boundaries of what MCP can do.
524
573
 
525
574
  ### This is not a side project. This is infrastructure.
526
575
 
527
576
  We ship weekly. The codebase is active. The community is real. If you're building with MCP, you're already one of us.
528
577
 
529
- ### Get Involved
578
+ ### Join the Community
530
579
 
580
+ - **[0nmcp.com/community](https://0nmcp.com/community)** — community hub with guides, events, and resources
581
+ - **[GitHub Discussions](https://github.com/0nork/0nMCP/discussions)** — ask questions, share ideas, show off what you built
582
+ - **[Sponsor on GitHub](https://github.com/sponsors/0nork)** — fund the next unlock and get your name on the wall
531
583
  - **Star this repo** — it helps more than you think
532
- - **Open an issue** — [bugs, ideas, questions](https://github.com/0nork/0nMCP/issues)
533
- - **Join the discussion** — [GitHub Discussions](https://github.com/0nork/0nMCP/discussions)
534
584
  - **Submit a PR** — [Contributing Guide](CONTRIBUTING.md)
535
585
  - **Learn the .0n Standard** — [0n-spec](https://github.com/0nork/0n-spec)
536
- - **Spread the word** — tell a developer friend
537
586
 
538
587
  ### Community Stats
539
588
 
540
589
  | Metric | |
541
590
  |--------|---|
542
- | **Tools shipped** | 252 |
543
- | **Services integrated** | 17 |
591
+ | **Tools shipped** | 535 |
592
+ | **Services integrated** | 26 |
593
+ | **Categories** | 13 |
544
594
  | **CRM endpoints covered** | 245 / 245 (100%) |
545
595
  | **npm packages** | 3 ([0nmcp](https://www.npmjs.com/package/0nmcp), [0nork](https://www.npmjs.com/package/0nork), [0n-spec](https://www.npmjs.com/package/0n-spec)) |
546
596
  | **Open source repos** | 3 |
@@ -589,7 +639,7 @@ node index.js
589
639
 
590
640
  | Project | Description |
591
641
  |---------|-------------|
592
- | **[0nMCP](https://github.com/0nork/0nMCP)** | Universal AI API Orchestrator — 252 tools, 17 services, natural language interface |
642
+ | **[0nMCP](https://github.com/0nork/0nMCP)** | Universal AI API Orchestrator — 535 tools, 26 services, natural language interface |
593
643
  | **[0n-spec](https://github.com/0nork/0n-spec)** | The .0n Standard — universal configuration format for AI orchestration |
594
644
  | **[0nork](https://github.com/0nork/0nork)** | The parent org — AI orchestration infrastructure |
595
645
 
@@ -604,7 +654,7 @@ node index.js
604
654
 
605
655
  <div align="center">
606
656
 
607
- **[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-%20252%20tools,%2017%20services,%20zero%20config.%20The%20universal%20AI%20API%20orchestrator.%20Free%20and%20open%20source.&url=https://github.com/0nork/0nMCP)**
657
+ **[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-%20535%20tools,%2026%20services,%20zero%20config.%20The%20universal%20AI%20API%20orchestrator.%20Free%20and%20open%20source.&url=https://github.com/0nork/0nMCP)**
608
658
 
609
659
  </div>
610
660
 
@@ -614,9 +664,9 @@ node index.js
614
664
 
615
665
  ### Stop building workflows. Start describing outcomes.
616
666
 
617
- **252 tools. 17 services. Zero config. MIT licensed. Community driven.**
667
+ **535 tools. 26 services. Zero config. MIT licensed. Community driven.**
618
668
 
619
- **[Get Started](https://github.com/0nork/0nMCP)** · **[Join the Community](https://github.com/0nork/0nMCP/discussions)** · **[Read the Docs](https://github.com/0nork/0n-spec)**
669
+ **[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)**
620
670
 
621
671
  ---
622
672
 
package/catalog.js CHANGED
@@ -461,6 +461,306 @@ export const SERVICE_CATALOG = {
461
461
  }),
462
462
  },
463
463
 
464
+ // ── Gmail ───────────────────────────────────────────────────
465
+ gmail: {
466
+ name: "Gmail",
467
+ type: "email",
468
+ description: "Email — send, receive, labels, threads, drafts, search",
469
+ baseUrl: "https://gmail.googleapis.com/gmail/v1",
470
+ authType: "oauth",
471
+ credentialKeys: ["access_token"],
472
+ capabilities: [
473
+ { name: "send_email", actions: ["send"], description: "Send emails" },
474
+ { name: "manage_messages", actions: ["list", "get", "delete", "trash"], description: "Read, search, and manage messages" },
475
+ { name: "manage_drafts", actions: ["create", "list", "send"], description: "Create and manage drafts" },
476
+ { name: "manage_labels", actions: ["list", "create", "update"], description: "Organize with labels" },
477
+ { name: "manage_threads", actions: ["list", "get"], description: "View conversation threads" },
478
+ ],
479
+ endpoints: {
480
+ list_messages: { method: "GET", path: "/users/me/messages", query: ["q", "maxResults", "labelIds", "pageToken"] },
481
+ get_message: { method: "GET", path: "/users/me/messages/{messageId}", query: ["format"] },
482
+ send_message: { method: "POST", path: "/users/me/messages/send", body: { raw: "" } },
483
+ trash_message: { method: "POST", path: "/users/me/messages/{messageId}/trash" },
484
+ untrash_message: { method: "POST", path: "/users/me/messages/{messageId}/untrash" },
485
+ list_threads: { method: "GET", path: "/users/me/threads", query: ["q", "maxResults", "pageToken"] },
486
+ get_thread: { method: "GET", path: "/users/me/threads/{threadId}" },
487
+ create_draft: { method: "POST", path: "/users/me/drafts", body: { message: { raw: "" } } },
488
+ list_drafts: { method: "GET", path: "/users/me/drafts" },
489
+ send_draft: { method: "POST", path: "/users/me/drafts/send", body: { id: "" } },
490
+ list_labels: { method: "GET", path: "/users/me/labels" },
491
+ create_label: { method: "POST", path: "/users/me/labels", body: { name: "" } },
492
+ get_profile: { method: "GET", path: "/users/me/profile" },
493
+ },
494
+ authHeader: (creds) => ({
495
+ "Authorization": `Bearer ${creds.access_token}`,
496
+ "Content-Type": "application/json",
497
+ }),
498
+ },
499
+
500
+ // ── Google Sheets ───────────────────────────────────────────
501
+ google_sheets: {
502
+ name: "Google Sheets",
503
+ type: "database",
504
+ description: "Spreadsheets — read, write, append, create, format cells",
505
+ baseUrl: "https://sheets.googleapis.com/v4",
506
+ authType: "oauth",
507
+ credentialKeys: ["access_token"],
508
+ capabilities: [
509
+ { name: "manage_spreadsheets", actions: ["create", "get"], description: "Create and get spreadsheet metadata" },
510
+ { name: "manage_values", actions: ["get", "update", "append", "clear"], description: "Read, write, and append cell values" },
511
+ { name: "manage_sheets", actions: ["create", "delete"], description: "Add and remove sheets within a spreadsheet" },
512
+ ],
513
+ endpoints: {
514
+ create_spreadsheet: { method: "POST", path: "/spreadsheets", body: { properties: { title: "" } } },
515
+ get_spreadsheet: { method: "GET", path: "/spreadsheets/{spreadsheetId}" },
516
+ get_values: { method: "GET", path: "/spreadsheets/{spreadsheetId}/values/{range}" },
517
+ update_values: { method: "PUT", path: "/spreadsheets/{spreadsheetId}/values/{range}", query: ["valueInputOption"], body: { values: [] } },
518
+ append_values: { method: "POST", path: "/spreadsheets/{spreadsheetId}/values/{range}:append", query: ["valueInputOption"], body: { values: [] } },
519
+ clear_values: { method: "POST", path: "/spreadsheets/{spreadsheetId}/values/{range}:clear" },
520
+ batch_get: { method: "GET", path: "/spreadsheets/{spreadsheetId}/values:batchGet", query: ["ranges"] },
521
+ batch_update: { method: "POST", path: "/spreadsheets/{spreadsheetId}/values:batchUpdate", body: { data: [], valueInputOption: "USER_ENTERED" } },
522
+ },
523
+ authHeader: (creds) => ({
524
+ "Authorization": `Bearer ${creds.access_token}`,
525
+ "Content-Type": "application/json",
526
+ }),
527
+ },
528
+
529
+ // ── Google Drive ────────────────────────────────────────────
530
+ google_drive: {
531
+ name: "Google Drive",
532
+ type: "storage",
533
+ description: "Cloud storage — files, folders, sharing, search, permissions",
534
+ baseUrl: "https://www.googleapis.com/drive/v3",
535
+ authType: "oauth",
536
+ credentialKeys: ["access_token"],
537
+ capabilities: [
538
+ { name: "manage_files", actions: ["list", "get", "create", "delete", "copy"], description: "Upload, download, and manage files" },
539
+ { name: "manage_permissions", actions: ["create", "list", "delete"], description: "Share files and manage access" },
540
+ { name: "search_files", actions: ["search"], description: "Search across Drive" },
541
+ ],
542
+ endpoints: {
543
+ list_files: { method: "GET", path: "/files", query: ["q", "pageSize", "orderBy", "fields", "pageToken"] },
544
+ get_file: { method: "GET", path: "/files/{fileId}", query: ["fields"] },
545
+ create_file: { method: "POST", path: "/files", body: { name: "", mimeType: "", parents: [] } },
546
+ copy_file: { method: "POST", path: "/files/{fileId}/copy", body: { name: "" } },
547
+ update_file: { method: "PATCH", path: "/files/{fileId}", body: { name: "" } },
548
+ delete_file: { method: "DELETE", path: "/files/{fileId}" },
549
+ create_permission: { method: "POST", path: "/files/{fileId}/permissions", body: { role: "", type: "", emailAddress: "" } },
550
+ list_permissions: { method: "GET", path: "/files/{fileId}/permissions" },
551
+ delete_permission: { method: "DELETE", path: "/files/{fileId}/permissions/{permissionId}" },
552
+ generate_ids: { method: "GET", path: "/files/generateIds", query: ["count"] },
553
+ },
554
+ authHeader: (creds) => ({
555
+ "Authorization": `Bearer ${creds.access_token}`,
556
+ "Content-Type": "application/json",
557
+ }),
558
+ },
559
+
560
+ // ── Jira ────────────────────────────────────────────────────
561
+ jira: {
562
+ name: "Jira",
563
+ type: "project",
564
+ description: "Project management — issues, sprints, boards, projects, epics, JQL search",
565
+ baseUrl: "https://{domain}.atlassian.net/rest/api/3",
566
+ authType: "basic",
567
+ credentialKeys: ["email", "apiToken", "domain"],
568
+ capabilities: [
569
+ { name: "manage_issues", actions: ["create", "get", "update", "delete", "search", "transition"], description: "Full issue lifecycle management" },
570
+ { name: "manage_projects", actions: ["list", "get"], description: "List and view projects" },
571
+ { name: "manage_sprints", actions: ["list"], description: "View sprints and boards" },
572
+ { name: "manage_comments", actions: ["create", "list"], description: "Add and view issue comments" },
573
+ ],
574
+ endpoints: {
575
+ search_issues: { method: "POST", path: "/search", body: { jql: "", maxResults: 50 } },
576
+ create_issue: { method: "POST", path: "/issue", body: { fields: { project: {}, summary: "", issuetype: {}, description: {} } } },
577
+ get_issue: { method: "GET", path: "/issue/{issueIdOrKey}", query: ["fields", "expand"] },
578
+ update_issue: { method: "PUT", path: "/issue/{issueIdOrKey}", body: { fields: {} } },
579
+ delete_issue: { method: "DELETE", path: "/issue/{issueIdOrKey}" },
580
+ transition_issue: { method: "POST", path: "/issue/{issueIdOrKey}/transitions", body: { transition: { id: "" } } },
581
+ get_transitions: { method: "GET", path: "/issue/{issueIdOrKey}/transitions" },
582
+ add_comment: { method: "POST", path: "/issue/{issueIdOrKey}/comment", body: { body: {} } },
583
+ list_comments: { method: "GET", path: "/issue/{issueIdOrKey}/comment" },
584
+ list_projects: { method: "GET", path: "/project", query: ["maxResults", "startAt"] },
585
+ get_project: { method: "GET", path: "/project/{projectIdOrKey}" },
586
+ assign_issue: { method: "PUT", path: "/issue/{issueIdOrKey}/assignee", body: { accountId: "" } },
587
+ },
588
+ authHeader: (creds) => ({
589
+ "Authorization": "Basic " + Buffer.from(`${creds.email}:${creds.apiToken}`).toString("base64"),
590
+ "Content-Type": "application/json",
591
+ }),
592
+ },
593
+
594
+ // ── Zendesk ─────────────────────────────────────────────────
595
+ zendesk: {
596
+ name: "Zendesk",
597
+ type: "support",
598
+ description: "Customer support — tickets, users, organizations, search, macros",
599
+ baseUrl: "https://{subdomain}.zendesk.com/api/v2",
600
+ authType: "basic",
601
+ credentialKeys: ["email", "apiToken", "subdomain"],
602
+ capabilities: [
603
+ { name: "manage_tickets", actions: ["create", "list", "get", "update", "delete"], description: "Full ticket lifecycle" },
604
+ { name: "manage_users", actions: ["create", "list", "search"], description: "Manage end-users and agents" },
605
+ { name: "manage_organizations", actions: ["list", "get"], description: "View organizations" },
606
+ { name: "search", actions: ["search"], description: "Full-text search across tickets, users, orgs" },
607
+ ],
608
+ endpoints: {
609
+ list_tickets: { method: "GET", path: "/tickets.json", query: ["page", "per_page", "sort_by", "sort_order"] },
610
+ get_ticket: { method: "GET", path: "/tickets/{ticketId}.json" },
611
+ create_ticket: { method: "POST", path: "/tickets.json", body: { ticket: { subject: "", description: "", priority: "" } } },
612
+ update_ticket: { method: "PUT", path: "/tickets/{ticketId}.json", body: { ticket: {} } },
613
+ delete_ticket: { method: "DELETE", path: "/tickets/{ticketId}.json" },
614
+ list_ticket_comments: { method: "GET", path: "/tickets/{ticketId}/comments.json" },
615
+ search: { method: "GET", path: "/search.json", query: ["query", "sort_by", "sort_order"] },
616
+ list_users: { method: "GET", path: "/users.json", query: ["role", "page", "per_page"] },
617
+ create_user: { method: "POST", path: "/users.json", body: { user: { name: "", email: "" } } },
618
+ get_user: { method: "GET", path: "/users/{userId}.json" },
619
+ list_organizations: { method: "GET", path: "/organizations.json" },
620
+ list_macros: { method: "GET", path: "/macros.json" },
621
+ },
622
+ authHeader: (creds) => ({
623
+ "Authorization": "Basic " + Buffer.from(`${creds.email}/token:${creds.apiToken}`).toString("base64"),
624
+ "Content-Type": "application/json",
625
+ }),
626
+ },
627
+
628
+ // ── Mailchimp ───────────────────────────────────────────────
629
+ mailchimp: {
630
+ name: "Mailchimp",
631
+ type: "marketing",
632
+ description: "Email marketing — audiences, campaigns, automations, templates, analytics",
633
+ baseUrl: "https://{dc}.api.mailchimp.com/3.0",
634
+ authType: "api_key",
635
+ credentialKeys: ["apiKey"],
636
+ capabilities: [
637
+ { name: "manage_audiences", actions: ["list", "get"], description: "View and manage audiences/lists" },
638
+ { name: "manage_members", actions: ["create", "update", "list", "search"], description: "Add and manage subscribers" },
639
+ { name: "manage_campaigns", actions: ["create", "list", "send"], description: "Create and send email campaigns" },
640
+ { name: "manage_templates", actions: ["list"], description: "View email templates" },
641
+ ],
642
+ endpoints: {
643
+ list_audiences: { method: "GET", path: "/lists", query: ["count", "offset"] },
644
+ get_audience: { method: "GET", path: "/lists/{listId}" },
645
+ add_member: { method: "POST", path: "/lists/{listId}/members", body: { email_address: "", status: "subscribed" } },
646
+ update_member: { method: "PATCH", path: "/lists/{listId}/members/{subscriberHash}", body: {} },
647
+ list_members: { method: "GET", path: "/lists/{listId}/members", query: ["count", "offset", "status"] },
648
+ search_members: { method: "GET", path: "/search-members", query: ["query", "list_id"] },
649
+ list_campaigns: { method: "GET", path: "/campaigns", query: ["count", "offset", "status", "type"] },
650
+ create_campaign: { method: "POST", path: "/campaigns", body: { type: "regular", recipients: {}, settings: {} } },
651
+ send_campaign: { method: "POST", path: "/campaigns/{campaignId}/actions/send" },
652
+ get_campaign_report: { method: "GET", path: "/reports/{campaignId}" },
653
+ list_templates: { method: "GET", path: "/templates", query: ["count", "type"] },
654
+ list_automations: { method: "GET", path: "/automations" },
655
+ },
656
+ authHeader: (creds) => {
657
+ const dc = creds.apiKey.split("-").pop();
658
+ return {
659
+ "Authorization": "Basic " + Buffer.from(`anystring:${creds.apiKey}`).toString("base64"),
660
+ "Content-Type": "application/json",
661
+ };
662
+ },
663
+ },
664
+
665
+ // ── Zoom ────────────────────────────────────────────────────
666
+ zoom: {
667
+ name: "Zoom",
668
+ type: "communication",
669
+ description: "Video conferencing — meetings, webinars, recordings, users",
670
+ baseUrl: "https://api.zoom.us/v2",
671
+ authType: "oauth",
672
+ credentialKeys: ["access_token"],
673
+ capabilities: [
674
+ { name: "manage_meetings", actions: ["create", "list", "get", "update", "delete"], description: "Schedule and manage meetings" },
675
+ { name: "manage_recordings", actions: ["list", "get", "delete"], description: "Access meeting recordings" },
676
+ { name: "manage_users", actions: ["list", "get"], description: "View Zoom users" },
677
+ { name: "manage_webinars", actions: ["list", "create"], description: "Schedule webinars" },
678
+ ],
679
+ endpoints: {
680
+ list_meetings: { method: "GET", path: "/users/{userId}/meetings", query: ["type", "page_size", "page_number"] },
681
+ create_meeting: { method: "POST", path: "/users/{userId}/meetings", body: { topic: "", type: 2, start_time: "", duration: 60 } },
682
+ get_meeting: { method: "GET", path: "/meetings/{meetingId}" },
683
+ update_meeting: { method: "PATCH", path: "/meetings/{meetingId}", body: {} },
684
+ delete_meeting: { method: "DELETE", path: "/meetings/{meetingId}" },
685
+ list_recordings: { method: "GET", path: "/users/{userId}/recordings", query: ["from", "to", "page_size"] },
686
+ get_recording: { method: "GET", path: "/meetings/{meetingId}/recordings" },
687
+ delete_recording: { method: "DELETE", path: "/meetings/{meetingId}/recordings" },
688
+ list_users: { method: "GET", path: "/users", query: ["status", "page_size", "page_number"] },
689
+ get_user: { method: "GET", path: "/users/{userId}" },
690
+ },
691
+ authHeader: (creds) => ({
692
+ "Authorization": `Bearer ${creds.access_token}`,
693
+ "Content-Type": "application/json",
694
+ }),
695
+ },
696
+
697
+ // ── Microsoft Graph (Outlook, Teams, OneDrive) ──────────────
698
+ microsoft: {
699
+ name: "Microsoft 365",
700
+ type: "productivity",
701
+ description: "Outlook mail, Teams messages, OneDrive files, calendar — via Microsoft Graph API",
702
+ baseUrl: "https://graph.microsoft.com/v1.0",
703
+ authType: "oauth",
704
+ credentialKeys: ["access_token"],
705
+ capabilities: [
706
+ { name: "manage_mail", actions: ["send", "list", "get", "delete"], description: "Send and manage Outlook email" },
707
+ { name: "manage_events", actions: ["create", "list", "update", "delete"], description: "Manage Outlook calendar events" },
708
+ { name: "manage_files", actions: ["list", "get", "upload"], description: "OneDrive file management" },
709
+ { name: "manage_teams", actions: ["send", "list"], description: "Send Teams messages and list channels" },
710
+ { name: "manage_users", actions: ["list", "get"], description: "View organization users" },
711
+ ],
712
+ endpoints: {
713
+ send_mail: { method: "POST", path: "/me/sendMail", body: { message: { subject: "", body: {}, toRecipients: [] } } },
714
+ list_messages: { method: "GET", path: "/me/messages", query: ["$top", "$skip", "$filter", "$select", "$orderby"] },
715
+ get_message: { method: "GET", path: "/me/messages/{messageId}" },
716
+ delete_message: { method: "DELETE", path: "/me/messages/{messageId}" },
717
+ list_events: { method: "GET", path: "/me/events", query: ["$top", "$filter", "$orderby"] },
718
+ create_event: { method: "POST", path: "/me/events", body: { subject: "", start: {}, end: {}, attendees: [] } },
719
+ update_event: { method: "PATCH", path: "/me/events/{eventId}", body: {} },
720
+ delete_event: { method: "DELETE", path: "/me/events/{eventId}" },
721
+ list_drive_items: { method: "GET", path: "/me/drive/root/children" },
722
+ get_drive_item: { method: "GET", path: "/me/drive/items/{itemId}" },
723
+ search_drive: { method: "GET", path: "/me/drive/root/search(q='{query}')" },
724
+ list_teams: { method: "GET", path: "/me/joinedTeams" },
725
+ list_channels: { method: "GET", path: "/teams/{teamId}/channels" },
726
+ send_channel_message: { method: "POST", path: "/teams/{teamId}/channels/{channelId}/messages", body: { body: { content: "" } } },
727
+ get_user: { method: "GET", path: "/me" },
728
+ },
729
+ authHeader: (creds) => ({
730
+ "Authorization": `Bearer ${creds.access_token}`,
731
+ "Content-Type": "application/json",
732
+ }),
733
+ },
734
+
735
+ // ── MongoDB Atlas ───────────────────────────────────────────
736
+ mongodb: {
737
+ name: "MongoDB",
738
+ type: "database",
739
+ description: "NoSQL database — find, insert, update, delete, aggregate via Atlas Data API",
740
+ baseUrl: "https://data.mongodb-api.com/app/{appId}/endpoint/data/v1",
741
+ authType: "api_key",
742
+ credentialKeys: ["apiKey", "appId"],
743
+ capabilities: [
744
+ { name: "manage_documents", actions: ["find", "insert", "update", "delete"], description: "CRUD operations on documents" },
745
+ { name: "aggregate", actions: ["aggregate"], description: "Run aggregation pipelines" },
746
+ ],
747
+ endpoints: {
748
+ find_one: { method: "POST", path: "/action/findOne", body: { dataSource: "", database: "", collection: "", filter: {} } },
749
+ find_many: { method: "POST", path: "/action/find", body: { dataSource: "", database: "", collection: "", filter: {}, limit: 100 } },
750
+ insert_one: { method: "POST", path: "/action/insertOne", body: { dataSource: "", database: "", collection: "", document: {} } },
751
+ insert_many: { method: "POST", path: "/action/insertMany", body: { dataSource: "", database: "", collection: "", documents: [] } },
752
+ update_one: { method: "POST", path: "/action/updateOne", body: { dataSource: "", database: "", collection: "", filter: {}, update: {} } },
753
+ update_many: { method: "POST", path: "/action/updateMany", body: { dataSource: "", database: "", collection: "", filter: {}, update: {} } },
754
+ delete_one: { method: "POST", path: "/action/deleteOne", body: { dataSource: "", database: "", collection: "", filter: {} } },
755
+ aggregate: { method: "POST", path: "/action/aggregate", body: { dataSource: "", database: "", collection: "", pipeline: [] } },
756
+ },
757
+ authHeader: (creds) => ({
758
+ "api-key": creds.apiKey,
759
+ "Content-Type": "application/json",
760
+ "Access-Control-Request-Headers": "*",
761
+ }),
762
+ },
763
+
464
764
  };
465
765
 
466
766
  // ── Helpers ────────────────────────────────────────────────
package/index.js CHANGED
@@ -34,7 +34,7 @@ const orchestrator = new Orchestrator(connections);
34
34
 
35
35
  const server = new McpServer({
36
36
  name: "0nMCP",
37
- version: "1.2.1",
37
+ version: "1.3.1",
38
38
  });
39
39
 
40
40
  // ============================================================
@@ -113,9 +113,18 @@ Examples:
113
113
  - CRM: { "access_token": "..." }
114
114
  - HubSpot: { "accessToken": "..." }
115
115
  - Shopify: { "accessToken": "...", "store": "mystore" }
116
- - Supabase: { "apiKey": "...", "projectRef": "..." }`,
116
+ - Supabase: { "apiKey": "...", "projectRef": "..." }
117
+ - Gmail: { "access_token": "..." }
118
+ - Google Sheets: { "access_token": "..." }
119
+ - Google Drive: { "access_token": "..." }
120
+ - Jira: { "email": "...", "apiToken": "...", "domain": "mycompany" }
121
+ - Zendesk: { "email": "...", "apiToken": "...", "subdomain": "mycompany" }
122
+ - Mailchimp: { "apiKey": "...-us21" }
123
+ - Zoom: { "access_token": "..." }
124
+ - Microsoft 365: { "access_token": "..." }
125
+ - MongoDB: { "apiKey": "...", "appId": "..." }`,
117
126
  {
118
- service: z.string().describe("Service key (e.g., stripe, sendgrid, twilio, slack, crm, github, notion, airtable, openai, shopify, hubspot, supabase, discord, linear, resend, calendly, google_calendar)"),
127
+ service: z.string().describe("Service key (e.g., stripe, sendgrid, twilio, slack, crm, github, notion, airtable, openai, shopify, hubspot, supabase, discord, linear, resend, calendly, google_calendar, gmail, google_sheets, google_drive, jira, zendesk, mailchimp, zoom, microsoft, mongodb)"),
119
128
  credentials: z.record(z.string()).describe("Service credentials as key-value pairs"),
120
129
  },
121
130
  async ({ service, credentials }) => {