diff --git a/README.md b/README.md
index d2fd741e..ba184eaf 100644
--- a/README.md
+++ b/README.md
@@ -73,6 +73,7 @@ Official integrations are maintained by companies building production ready MCP
-
**[Couchbase](https://github.com/Couchbase-Ecosystem/mcp-server-couchbase)** - Interact with the data stored in Couchbase clusters.
-
**[Dart](https://github.com/its-dart/dart-mcp-server)** - Interact with task, doc, and project data in [Dart](https://itsdart.com), an AI-native project management tool
-
**[DevHub](https://github.com/devhub/devhub-cms-mcp)** - Manage and utilize website content within the [DevHub](https://www.devhub.com) CMS platform
+-
**[Dynatrace](https://github.com/dynatrace-oss/dynatrace-mcp)** - Manage and interact with the [Dynatrace Platform ](https://www.dynatrace.com/platform) for real-time observability and monitoring.
-
**[E2B](https://github.com/e2b-dev/mcp-server)** - Run code in secure sandboxes hosted by [E2B](https://e2b.dev)
-
**[EduBase](https://github.com/EduBase/MCP)** - Interact with [EduBase](https://www.edubase.net), a comprehensive e-learning platform with advanced quizzing, exam management, and content organization capabilities
-
**[Elasticsearch](https://github.com/elastic/mcp-server-elasticsearch)** - Query your data in [Elasticsearch](https://www.elastic.co/elasticsearch)
@@ -273,6 +274,7 @@ A growing set of community-developed and maintained servers demonstrates various
- **[Google Calendar](https://github.com/nspady/google-calendar-mcp)** - Google Calendar MCP Server for managing Google calendar events. Also supports searching for events by attributes like title and location.
- **[Google Custom Search](https://github.com/adenot/mcp-google-search)** - Provides Google Search results via the Google Custom Search API
- **[Google Sheets](https://github.com/xing5/mcp-google-sheets)** - Access and editing data to your Google Sheets.
+- **[Google Sheets](https://github.com/rohans2/mcp-google-sheets)** - A MCP Server written in TypeScript to access and edit data in your Google Sheets.
- **[Google Tasks](https://github.com/zcaceres/gtasks-mcp)** - Google Tasks API Model Context Protocol Server.
- **[Google Vertex AI Search](https://github.com/ubie-oss/mcp-vertexai-search)** - Provides Google Vertex AI Search results by grounding a Gemini model with your own private data
- **[GraphQL Schema](https://github.com/hannesj/mcp-graphql-schema)** - Allow LLMs to explore large GraphQL schemas without bloating the context.
diff --git a/package-lock.json b/package-lock.json
index 23e61d70..7555fa00 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -5435,7 +5435,7 @@
"version": "0.6.2",
"license": "MIT",
"dependencies": {
- "@modelcontextprotocol/sdk": "^1.10.1",
+ "@modelcontextprotocol/sdk": "^1.11.0",
"express": "^4.21.1",
"zod": "^3.23.8",
"zod-to-json-schema": "^3.23.5"
@@ -5450,9 +5450,9 @@
}
},
"src/everything/node_modules/@modelcontextprotocol/sdk": {
- "version": "1.10.1",
- "resolved": "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.10.1.tgz",
- "integrity": "sha512-xNYdFdkJqEfIaTVP1gPKoEvluACHZsHZegIoICX8DM1o6Qf3G5u2BQJHmgd0n4YgRPqqK/u1ujQvrgAxxSJT9w==",
+ "version": "1.11.0",
+ "resolved": "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.11.0.tgz",
+ "integrity": "sha512-k/1pb70eD638anoi0e8wUGAlbMJXyvdV4p62Ko+EZ7eBe1xMx8Uhak1R5DgfoofsK5IBBnRwsYGTaLZl+6/+RQ==",
"license": "MIT",
"dependencies": {
"content-type": "^1.0.5",
diff --git a/src/everything/README.md b/src/everything/README.md
index 4d51de51..261ce033 100644
--- a/src/everything/README.md
+++ b/src/everything/README.md
@@ -173,7 +173,7 @@ Optionally, you can add it to a file called `.vscode/mcp.json` in your workspace
}
```
-## Run with [HTTP+SSE Transport](https://modelcontextprotocol.io/specification/2024-11-05/basic/transports#http-with-sse) (deprecated as of [2025-03-26](https://modelcontextprotocol.io/specification/2025-03-26/basic/transports))
+## Running from source with [HTTP+SSE Transport](https://modelcontextprotocol.io/specification/2024-11-05/basic/transports#http-with-sse) (deprecated as of [2025-03-26](https://modelcontextprotocol.io/specification/2025-03-26/basic/transports))
```shell
cd src/everything
@@ -181,10 +181,37 @@ npm install
npm run start:sse
```
-## Run with [Streamable HTTP Transport](https://modelcontextprotocol.io/specification/2025-03-26/basic/transports#streamable-http)
+## Run from source with [Streamable HTTP Transport](https://modelcontextprotocol.io/specification/2025-03-26/basic/transports#streamable-http)
```shell
cd src/everything
npm install
npm run start:streamableHttp
```
+
+## Running as an installed package
+### Install
+```shell
+npm install -g @modelcontextprotocol/server-everything@latest
+````
+
+### Run the default (stdio) server
+```shell
+npx @modelcontextprotocol/server-everything
+```
+
+### Or specify stdio explicitly
+```shell
+npx @modelcontextprotocol/server-everything stdio
+```
+
+### Run the SSE server
+```shell
+npx @modelcontextprotocol/server-everything sse
+```
+
+### Run the streamable HTTP server
+```shell
+npx @modelcontextprotocol/server-everything streamableHttp
+```
+
diff --git a/src/everything/index.ts b/src/everything/index.ts
index c0ab77a2..801fe721 100644
--- a/src/everything/index.ts
+++ b/src/everything/index.ts
@@ -1,23 +1,37 @@
#!/usr/bin/env node
-import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
-import { createServer } from "./everything.js";
+// Parse command line arguments first
+const args = process.argv.slice(2);
+const scriptName = args[0] || 'stdio';
-async function main() {
- const transport = new StdioServerTransport();
- const { server, cleanup } = createServer();
-
- await server.connect(transport);
-
- // Cleanup on exit
- process.on("SIGINT", async () => {
- await cleanup();
- await server.close();
- process.exit(0);
- });
+async function run() {
+ try {
+ // Dynamically import only the requested module to prevent all modules from initializing
+ switch (scriptName) {
+ case 'stdio':
+ // Import and run the default server
+ await import('./stdio.js');
+ break;
+ case 'sse':
+ // Import and run the SSE server
+ await import('./sse.js');
+ break;
+ case 'streamableHttp':
+ // Import and run the streamable HTTP server
+ await import('./streamableHttp.js');
+ break;
+ default:
+ console.error(`Unknown script: ${scriptName}`);
+ console.log('Available scripts:');
+ console.log('- stdio');
+ console.log('- sse');
+ console.log('- streamableHttp');
+ process.exit(1);
+ }
+ } catch (error) {
+ console.error('Error running script:', error);
+ process.exit(1);
+ }
}
-main().catch((error) => {
- console.error("Server error:", error);
- process.exit(1);
-});
+run();
diff --git a/src/everything/package.json b/src/everything/package.json
index ffe6b7cd..553db407 100644
--- a/src/everything/package.json
+++ b/src/everything/package.json
@@ -22,7 +22,7 @@
"start:streamableHttp": "node dist/streamableHttp.js"
},
"dependencies": {
- "@modelcontextprotocol/sdk": "^1.10.1",
+ "@modelcontextprotocol/sdk": "^1.11.0",
"express": "^4.21.1",
"zod": "^3.23.8",
"zod-to-json-schema": "^3.23.5"
diff --git a/src/everything/sse.ts b/src/everything/sse.ts
index 7a02eb53..928916c7 100644
--- a/src/everything/sse.ts
+++ b/src/everything/sse.ts
@@ -2,6 +2,8 @@ import { SSEServerTransport } from "@modelcontextprotocol/sdk/server/sse.js";
import express from "express";
import { createServer } from "./everything.js";
+console.error('Starting SSE server...');
+
const app = express();
const { server, cleanup } = createServer();
diff --git a/src/everything/stdio.ts b/src/everything/stdio.ts
new file mode 100644
index 00000000..a98fbc53
--- /dev/null
+++ b/src/everything/stdio.ts
@@ -0,0 +1,26 @@
+#!/usr/bin/env node
+
+import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
+import { createServer } from "./everything.js";
+
+console.error('Starting default (STDIO) server...');
+
+async function main() {
+ const transport = new StdioServerTransport();
+ const {server, cleanup} = createServer();
+
+ await server.connect(transport);
+
+ // Cleanup on exit
+ process.on("SIGINT", async () => {
+ await cleanup();
+ await server.close();
+ process.exit(0);
+ });
+}
+
+main().catch((error) => {
+ console.error("Server error:", error);
+ process.exit(1);
+});
+
diff --git a/src/everything/streamableHttp.ts b/src/everything/streamableHttp.ts
index 3a87bc83..e6486dfa 100644
--- a/src/everything/streamableHttp.ts
+++ b/src/everything/streamableHttp.ts
@@ -4,6 +4,8 @@ import express, { Request, Response } from "express";
import { createServer } from "./everything.js";
import { randomUUID } from 'node:crypto';
+console.error('Starting Streamable HTTP server...');
+
const app = express();
const { server, cleanup } = createServer();
diff --git a/src/puppeteer/Dockerfile b/src/puppeteer/Dockerfile
index d0f58a3a..6bcfbb97 100644
--- a/src/puppeteer/Dockerfile
+++ b/src/puppeteer/Dockerfile
@@ -1,12 +1,12 @@
FROM node:22-bookworm-slim
-ENV DEBIAN_FRONTEND noninteractive
+ENV DEBIAN_FRONTEND=noninteractive
# for arm64 support we need to install chromium provided by debian
# npm ERR! The chromium binary is not available for arm64.
# https://github.com/puppeteer/puppeteer/issues/7740
-ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD true
+ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true
ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium
RUN apt-get update && \