From cf9f66c14ebf4e8b99b9647ea11965051dc2b895 Mon Sep 17 00:00:00 2001 From: Kumbham Ajay Goud Date: Mon, 18 Aug 2025 15:31:23 +0530 Subject: [PATCH 01/31] feat: add MCP roots protocol support to everything server - Add roots capability declaration with listChanged: true - Implement roots/list_changed notification handler - Add initialization handler to request initial roots from client - Add new listRoots tool to demonstrate roots functionality - Add comprehensive logging for roots protocol events - Update README.md with roots documentation Resolves #2552 The everything server now demonstrates all MCP features including the roots protocol. This provides a complete reference implementation for client developers to test their roots protocol implementation against, even though this server doesn't access files directly. --- src/everything/README.md | 19 +++++ src/everything/everything.ts | 145 ++++++++++++++++++++++++++++++++--- 2 files changed, 155 insertions(+), 9 deletions(-) diff --git a/src/everything/README.md b/src/everything/README.md index 7c98b858..466e9cc2 100644 --- a/src/everything/README.md +++ b/src/everything/README.md @@ -89,6 +89,13 @@ This MCP server attempts to exercise all the features of the MCP protocol. It is - `structuredContent` field conformant to the output schema - A backward compatible Text Content field, a SHOULD advisory in the specification +11. `listRoots` + - Lists the current MCP roots provided by the client + - Demonstrates the roots protocol capability even though this server doesn't access files + - No inputs required + - Returns: List of current roots with their URIs and names, or a message if no roots are set + - Shows how servers can interact with the MCP roots protocol + ### Resources The server provides 100 test resources in two formats: @@ -129,6 +136,18 @@ Resource features: - Returns: Multi-turn conversation with an embedded resource reference - Shows how to include resources directly in prompt messages +### Roots + +The server demonstrates the MCP roots protocol capability: + +- Declares `roots: { listChanged: true }` capability to indicate support for roots +- Handles `roots/list_changed` notifications from clients +- Requests initial roots during server initialization +- Provides a `listRoots` tool to display current roots +- Logs roots-related events for demonstration purposes + +Note: This server doesn't actually access files, but demonstrates how servers can interact with the roots protocol for clients that need to understand which directories are available for file operations. + ### Logging The server sends random-leveled log messages every 15 seconds, e.g.: diff --git a/src/everything/everything.ts b/src/everything/everything.ts index 19dd646c..97d22bdc 100644 --- a/src/everything/everything.ts +++ b/src/everything/everything.ts @@ -12,11 +12,13 @@ import { LoggingLevel, ReadResourceRequestSchema, Resource, + RootsListChangedNotificationSchema, SetLevelRequestSchema, SubscribeRequestSchema, Tool, ToolSchema, UnsubscribeRequestSchema, + type Root, } from "@modelcontextprotocol/sdk/types.js"; import { z } from "zod"; import { zodToJsonSchema } from "zod-to-json-schema"; @@ -96,6 +98,8 @@ const GetResourceLinksSchema = z.object({ .describe("Number of resource links to return (1-10)"), }); +const ListRootsSchema = z.object({}); + const StructuredContentSchema = { input: z.object({ location: z @@ -129,7 +133,8 @@ enum ToolName { GET_RESOURCE_REFERENCE = "getResourceReference", ELICITATION = "startElicitation", GET_RESOURCE_LINKS = "getResourceLinks", - STRUCTURED_CONTENT = "structuredContent" + STRUCTURED_CONTENT = "structuredContent", + LIST_ROOTS = "listRoots" } enum PromptName { @@ -160,6 +165,7 @@ export const createServer = () => { logging: {}, completions: {}, elicitation: {}, + roots: { listChanged: true }, }, instructions } @@ -171,6 +177,9 @@ export const createServer = () => { let logLevel: LoggingLevel = "debug"; let logsUpdateInterval: NodeJS.Timeout | undefined; + + // Roots state management + let currentRoots: Root[] = []; const messages = [ { level: "debug", data: "Debug-level message" }, { level: "info", data: "Info-level message" }, @@ -529,6 +538,12 @@ export const createServer = () => { inputSchema: zodToJsonSchema(StructuredContentSchema.input) as ToolInput, outputSchema: zodToJsonSchema(StructuredContentSchema.output) as ToolOutput, }, + { + name: ToolName.LIST_ROOTS, + description: + "Lists the current MCP roots provided by the client. Demonstrates the roots protocol capability even though this server doesn't access files.", + inputSchema: zodToJsonSchema(ListRootsSchema) as ToolInput, + }, ]; return { tools }; @@ -728,10 +743,10 @@ export const createServer = () => { properties: { color: { type: 'string', description: 'Favorite color' }, number: { type: 'integer', description: 'Favorite number', minimum: 1, maximum: 100 }, - pets: { - type: 'string', - enum: ['cats', 'dogs', 'birds', 'fish', 'reptiles'], - description: 'Favorite pets' + pets: { + type: 'string', + enum: ['cats', 'dogs', 'birds', 'fish', 'reptiles'], + description: 'Favorite pets' }, } } @@ -791,11 +806,10 @@ export const createServer = () => { type: "resource_link", uri: resource.uri, name: resource.name, - description: `Resource ${i + 1}: ${ - resource.mimeType === "text/plain" + description: `Resource ${i + 1}: ${resource.mimeType === "text/plain" ? "plaintext resource" : "binary blob resource" - }`, + }`, mimeType: resource.mimeType, }); } @@ -819,11 +833,44 @@ export const createServer = () => { } return { - content: [ backwardCompatiblecontent ], + content: [backwardCompatiblecontent], structuredContent: weather }; } + if (name === ToolName.LIST_ROOTS) { + ListRootsSchema.parse(args); + + if (currentRoots.length === 0) { + return { + content: [ + { + type: "text", + text: "No roots are currently set. This could mean:\n" + + "1. The client doesn't support the MCP roots protocol\n" + + "2. The client hasn't provided any roots yet\n" + + "3. The client provided empty roots" + } + ] + }; + } + + const rootsList = currentRoots.map((root, index) => { + return `${index + 1}. ${root.name || 'Unnamed Root'}\n URI: ${root.uri}`; + }).join('\n\n'); + + return { + content: [ + { + type: "text", + text: `Current MCP Roots (${currentRoots.length} total):\n\n${rootsList}\n\n` + + "Note: This server demonstrates the roots protocol capability but doesn't actually access files. " + + "The roots are provided by the MCP client and can be used by servers that need file system access." + } + ] + }; + } + throw new Error(`Unknown tool: ${name}`); }); @@ -873,6 +920,86 @@ export const createServer = () => { return {}; }); + // Roots protocol handlers + server.setNotificationHandler(RootsListChangedNotificationSchema, async () => { + try { + // Request the updated roots list from the client + const response = await server.listRoots(); + if (response && 'roots' in response) { + currentRoots = response.roots; + + // Log the roots update for demonstration + await server.notification({ + method: "notifications/message", + params: { + level: "info", + logger: "everything-server", + data: `Roots updated: ${currentRoots.length} root(s) received from client`, + }, + }); + } + } catch (error) { + await server.notification({ + method: "notifications/message", + params: { + level: "error", + logger: "everything-server", + data: `Failed to request roots from client: ${error instanceof Error ? error.message : String(error)}`, + }, + }); + } + }); + + // Handle post-initialization setup for roots + server.oninitialized = async () => { + const clientCapabilities = server.getClientCapabilities(); + + if (clientCapabilities?.roots) { + try { + const response = await server.listRoots(); + if (response && 'roots' in response) { + currentRoots = response.roots; + + await server.notification({ + method: "notifications/message", + params: { + level: "info", + logger: "everything-server", + data: `Initial roots received: ${currentRoots.length} root(s) from client`, + }, + }); + } else { + await server.notification({ + method: "notifications/message", + params: { + level: "warning", + logger: "everything-server", + data: "Client returned no roots set", + }, + }); + } + } catch (error) { + await server.notification({ + method: "notifications/message", + params: { + level: "error", + logger: "everything-server", + data: `Failed to request initial roots from client: ${error instanceof Error ? error.message : String(error)}`, + }, + }); + } + } else { + await server.notification({ + method: "notifications/message", + params: { + level: "info", + logger: "everything-server", + data: "Client does not support MCP roots protocol", + }, + }); + } + }; + const cleanup = async () => { if (subsUpdateInterval) clearInterval(subsUpdateInterval); if (logsUpdateInterval) clearInterval(logsUpdateInterval); From afd3ae2dc1dc735d8a3cfcc5f18df2f37b74f0b1 Mon Sep 17 00:00:00 2001 From: "Amir Ardeshir, DVM, MPVM, PhD" <9605033+aardeshir@users.noreply.github.com> Date: Fri, 22 Aug 2025 19:02:03 -0500 Subject: [PATCH 02/31] Create README.md for YouTube MCP Server Added README.md for YouTube MCP Server with features and installation instructions. --- src/youtube/README.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 src/youtube/README.md diff --git a/src/youtube/README.md b/src/youtube/README.md new file mode 100644 index 00000000..f39273dd --- /dev/null +++ b/src/youtube/README.md @@ -0,0 +1,19 @@ +# YouTube MCP Server + +MCP server for YouTube Data API integration - search videos, manage playlists. + +## Features + +- Search YouTube videos +- Create playlists +- Add videos to playlists +- List user playlists +- Delete playlists +- OAuth2 authentication + +## Installation + +### NPM Package +```bash +npm install -g @a.ardeshir/youtube-mcp +youtube-mcp-setup # Run OAuth setup wizard From ec914212651ff90fe5896f886ae58d590c827aad Mon Sep 17 00:00:00 2001 From: "claude[bot]" <209825114+claude[bot]@users.noreply.github.com> Date: Sun, 24 Aug 2025 03:27:40 +0000 Subject: [PATCH 03/31] Improve parameter descriptions in sequential-thinking for better LLM type safety Update thoughtNumber and totalThoughts parameter descriptions to use positive-only examples that guide LLMs toward correct numeric type usage. This addresses the issue where LLMs sometimes generate string values (e.g. "1") instead of numeric values (e.g. 1) for integer parameters. Co-authored-by: Ola Hungerford --- src/sequentialthinking/index.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/sequentialthinking/index.ts b/src/sequentialthinking/index.ts index bd486fdb..34986971 100644 --- a/src/sequentialthinking/index.ts +++ b/src/sequentialthinking/index.ts @@ -206,12 +206,12 @@ You should: }, thoughtNumber: { type: "integer", - description: "Current thought number", + description: "Current thought number (numeric value, e.g., 1, 2, 3)", minimum: 1 }, totalThoughts: { type: "integer", - description: "Estimated total thoughts needed", + description: "Estimated total thoughts needed (numeric value, e.g., 5, 10)", minimum: 1 }, isRevision: { From aa3297738a505cea073f30f5f25d566d3f7a0590 Mon Sep 17 00:00:00 2001 From: "Amir Ardeshir, DVM, MPVM, PhD" <9605033+aardeshir@users.noreply.github.com> Date: Sun, 24 Aug 2025 09:39:07 -0500 Subject: [PATCH 04/31] Add YouTube MCP entry to README --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 19f5cbb8..eb178db0 100644 --- a/README.md +++ b/README.md @@ -1201,6 +1201,7 @@ A growing set of community-developed and maintained servers demonstrates various - **[YouTube](https://github.com/Klavis-AI/klavis/tree/main/mcp_servers/youtube)** - Extract Youtube video information (with proxies support). - **[YouTube](https://github.com/ZubeidHendricks/youtube-mcp-server)** - Comprehensive YouTube API integration for video management, Shorts creation, and analytics. - **[YouTube DLP](https://github.com/AgentX-ai/youtube-dlp-server)** - Retrieve video information, subtitles, and top comments with proxies. +- **[YouTube MCP](src/youtube)** - Create playlists from song lists with OAuth2. Search videos, manage playlists, let AI curate your YouTube collections. - **[Youtube Uploader MCP](https://github.com/anwerj/youtube-uploader-mcp)** - AI‑powered YouTube uploader—no CLI, no YouTube Studio. - **[YouTube Video Summarizer](https://github.com/nabid-pf/youtube-video-summarizer-mcp)** - Summarize lengthy youtube videos. - **[yutu](https://github.com/eat-pray-ai/yutu)** - A fully functional MCP server and CLI for YouTube to automate YouTube operation. From 0a7cfc673ae5cae78207d4730311a5721f8462d5 Mon Sep 17 00:00:00 2001 From: Motta Kin Date: Tue, 26 Aug 2025 01:02:02 +0200 Subject: [PATCH 05/31] Add ticketmaster-mcp-server --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 63039d1c..e4a3c40e 100644 --- a/README.md +++ b/README.md @@ -1142,6 +1142,7 @@ A growing set of community-developed and maintained servers demonstrates various - **[Think MCP](https://github.com/Rai220/think-mcp)** - Enhances any agent's reasoning capabilities by integrating the think-tools, as described in [Anthropic's article](https://www.anthropic.com/engineering/claude-think-tool). - **[Think Node MCP](https://github.com/abhinav-mangla/think-tool-mcp)** - Enhances any agent's reasoning capabilities by integrating the think-tools, as described in [Anthropic's article](https://www.anthropic.com/engineering/claude-think-tool). (Works with Node) - **[Ticketmaster](https://github.com/delorenj/mcp-server-ticketmaster)** - Search for events, venues, and attractions through the Ticketmaster Discovery API +- **[Ticketmaster MCP Server](https://github.com/mochow13/ticketmaster-mcp-server)** - A Model Context Protocol (MCP) server implemented in Streamable HTTP transport that allows AI models to interact with the Ticketmaster Discovery API, enabling searching events, venues, and attractions. - **[TickTick](https://github.com/alexarevalo9/ticktick-mcp-server)** - A Model Context Protocol (MCP) server designed to integrate with the TickTick task management platform, enabling intelligent context-aware task operations and automation. - **[TigerGraph](https://github.com/custom-discoveries/TigerGraph_MCP)** - A community built MCP server that interacts with TigerGraph Graph Database. - **[tip.md](https://github.com/tipdotmd#-mcp-server-for-ai-assistants)** - An MCP server that enables AI assistants to interact with tip.md's crypto tipping functionality, allowing agents or supporters to tip registered developers directly from AI chat interfaces. From e87e79635df8d611094bf8067ed4d5a260e6ae9f Mon Sep 17 00:00:00 2001 From: Frederik Bauer Date: Tue, 26 Aug 2025 11:51:13 +0200 Subject: [PATCH 06/31] docs: Add Wikifunctions to community servers list --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 63039d1c..cb3577ad 100644 --- a/README.md +++ b/README.md @@ -1201,6 +1201,7 @@ A growing set of community-developed and maintained servers demonstrates various - **[Wikidata MCP](https://github.com/zzaebok/mcp-wikidata)** - Wikidata MCP server that interact with Wikidata, by searching identifiers, extracting metadata, and executing sparql query. - **[Wikidata SPARQL](https://github.com/QuentinCody/wikidata-sparql-mcp-server)** - Unofficial REMOTE MCP server for Wikidata's SPARQL endpoint, providing access to structured knowledge data, entity relationships, and semantic queries for research and data analysis. - **[Wikipedia MCP](https://github.com/Rudra-ravi/wikipedia-mcp)** - Access and search Wikipedia articles via MCP for AI-powered information retrieval. +- **[Wikifunctions](https://github.com/Fredibau/wikifunctions-mcp-fredibau)** - Allowing AI models to discover and execute functions from the WikiFunctions library. - **[WildFly MCP](https://github.com/wildfly-extras/wildfly-mcp)** - WildFly MCP server that enables LLM to interact with running WildFly servers (retrieve metrics, logs, invoke operations, ...). - **[Windows CLI](https://github.com/SimonB97/win-cli-mcp-server)** - MCP server for secure command-line interactions on Windows systems, enabling controlled access to PowerShell, CMD, and Git Bash shells. - **[Windsor](https://github.com/windsor-ai/windsor_mcp)** - Windsor MCP (Model Context Protocol) enables your LLM to query, explore, and analyze your full-stack business data integrated into Windsor.ai with zero SQL writing or custom scripting. From 6464d332d57809b303616807d1874f35fc1a03b3 Mon Sep 17 00:00:00 2001 From: Frederik Bauer Date: Tue, 26 Aug 2025 12:26:20 +0200 Subject: [PATCH 08/31] docs: Small change in description for Wikifunctions server --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index cb3577ad..30d64e67 100644 --- a/README.md +++ b/README.md @@ -1200,8 +1200,8 @@ A growing set of community-developed and maintained servers demonstrates various - **[Whois MCP](https://github.com/bharathvaj-ganesan/whois-mcp)** - MCP server that performs whois lookup against domain, IP, ASN and TLD. - **[Wikidata MCP](https://github.com/zzaebok/mcp-wikidata)** - Wikidata MCP server that interact with Wikidata, by searching identifiers, extracting metadata, and executing sparql query. - **[Wikidata SPARQL](https://github.com/QuentinCody/wikidata-sparql-mcp-server)** - Unofficial REMOTE MCP server for Wikidata's SPARQL endpoint, providing access to structured knowledge data, entity relationships, and semantic queries for research and data analysis. -- **[Wikipedia MCP](https://github.com/Rudra-ravi/wikipedia-mcp)** - Access and search Wikipedia articles via MCP for AI-powered information retrieval. - **[Wikifunctions](https://github.com/Fredibau/wikifunctions-mcp-fredibau)** - Allowing AI models to discover and execute functions from the WikiFunctions library. +- **[Wikipedia MCP](https://github.com/Rudra-ravi/wikipedia-mcp)** - Access and search Wikipedia articles via MCP for AI-powered information retrieval. - **[WildFly MCP](https://github.com/wildfly-extras/wildfly-mcp)** - WildFly MCP server that enables LLM to interact with running WildFly servers (retrieve metrics, logs, invoke operations, ...). - **[Windows CLI](https://github.com/SimonB97/win-cli-mcp-server)** - MCP server for secure command-line interactions on Windows systems, enabling controlled access to PowerShell, CMD, and Git Bash shells. - **[Windsor](https://github.com/windsor-ai/windsor_mcp)** - Windsor MCP (Model Context Protocol) enables your LLM to query, explore, and analyze your full-stack business data integrated into Windsor.ai with zero SQL writing or custom scripting. From db9a2d637b81cb92ef6befd7158cb45895ea0d90 Mon Sep 17 00:00:00 2001 From: "Amir Ardeshir, DVM, MPVM, PhD" <9605033+aardeshir@users.noreply.github.com> Date: Tue, 26 Aug 2025 11:31:36 -0500 Subject: [PATCH 09/31] Remove src/youtube folder as requested by reviewer --- src/youtube/README.md | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/src/youtube/README.md b/src/youtube/README.md index f39273dd..e69de29b 100644 --- a/src/youtube/README.md +++ b/src/youtube/README.md @@ -1,19 +0,0 @@ -# YouTube MCP Server - -MCP server for YouTube Data API integration - search videos, manage playlists. - -## Features - -- Search YouTube videos -- Create playlists -- Add videos to playlists -- List user playlists -- Delete playlists -- OAuth2 authentication - -## Installation - -### NPM Package -```bash -npm install -g @a.ardeshir/youtube-mcp -youtube-mcp-setup # Run OAuth setup wizard From 6bb62fb4cfe458ba892a7b5ea59d02e94d85047e Mon Sep 17 00:00:00 2001 From: "Amir Ardeshir, DVM, MPVM, PhD" <9605033+aardeshir@users.noreply.github.com> Date: Tue, 26 Aug 2025 11:41:33 -0500 Subject: [PATCH 10/31] Delete src/youtube/README.md Remove src/youtube directory as requested by reviewer --- src/youtube/README.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 src/youtube/README.md diff --git a/src/youtube/README.md b/src/youtube/README.md deleted file mode 100644 index e69de29b..00000000 From cccea03754a968dbf62d437d73a174dad178f694 Mon Sep 17 00:00:00 2001 From: "Amir Ardeshir, DVM, MPVM, PhD" <9605033+aardeshir@users.noreply.github.com> Date: Tue, 26 Aug 2025 11:47:26 -0500 Subject: [PATCH 11/31] Update YouTube MCP link in README.md Update YouTube MCP link to external repository as requested --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index eb178db0..e2fbb803 100644 --- a/README.md +++ b/README.md @@ -1201,7 +1201,7 @@ A growing set of community-developed and maintained servers demonstrates various - **[YouTube](https://github.com/Klavis-AI/klavis/tree/main/mcp_servers/youtube)** - Extract Youtube video information (with proxies support). - **[YouTube](https://github.com/ZubeidHendricks/youtube-mcp-server)** - Comprehensive YouTube API integration for video management, Shorts creation, and analytics. - **[YouTube DLP](https://github.com/AgentX-ai/youtube-dlp-server)** - Retrieve video information, subtitles, and top comments with proxies. -- **[YouTube MCP](src/youtube)** - Create playlists from song lists with OAuth2. Search videos, manage playlists, let AI curate your YouTube collections. +- **[YouTube MCP](https://github.com/aardeshir/youtube-mcp)** - Create playlists from song lists with OAuth2. Search videos, manage playlists, let AI curate your YouTube collections. - **[Youtube Uploader MCP](https://github.com/anwerj/youtube-uploader-mcp)** - AI‑powered YouTube uploader—no CLI, no YouTube Studio. - **[YouTube Video Summarizer](https://github.com/nabid-pf/youtube-video-summarizer-mcp)** - Summarize lengthy youtube videos. - **[yutu](https://github.com/eat-pray-ai/yutu)** - A fully functional MCP server and CLI for YouTube to automate YouTube operation. From 8940b98686df3d57b2348b72698a175c994e5191 Mon Sep 17 00:00:00 2001 From: Jaerong Ahn Date: Tue, 26 Aug 2025 15:05:54 -0500 Subject: [PATCH 12/31] feat(readme): add OMOP MCP to community servers list --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 63039d1c..d8b151ec 100644 --- a/README.md +++ b/README.md @@ -311,6 +311,7 @@ Official integrations are maintained by companies building production ready MCP - Offorte Logo **[Offorte](https://github.com/offorte/offorte-mcp-server#readme)** - Offorte Proposal Software official MCP server enables creation and sending of business proposals. - Ola Maps **[OlaMaps](https://pypi.org/project/ola-maps-mcp-server)** - Official Ola Maps MCP Server for services like geocode, directions, place details and many more. - ONLYOFFICE DocSpace **[ONLYOFFICE DocSpace](https://github.com/ONLYOFFICE/docspace-mcp)** - Interact with [ONLYOFFICE DocSpace](https://www.onlyoffice.com/docspace.aspx) API to create rooms, manage files and folders. +- 🏥 **[OMOP MCP](https://github.com/OHNLP/omop_mcp)** - Map clinical terminology to OMOP concepts using LLMs for healthcare data standardization. - OP.GG Logo **[OP.GG](https://github.com/opgginc/opgg-mcp)** - Access real-time gaming data across popular titles like League of Legends, TFT, and Valorant, offering champion analytics, esports schedules, meta compositions, and character statistics. - Openfort **[Openfort](https://github.com/openfort-xyz/mcp)** - Connect your AI to Openfort's smart wallet, auth, and project infrastructure. - OpenMetadata **[OpenMetadata](https://open-metadata.org/mcp)** - The first Enterprise-grade MCP server for metadata From 37aa1f3e7323b94956ea3b4ce1976e863705bbc0 Mon Sep 17 00:00:00 2001 From: JaerongA Date: Tue, 26 Aug 2025 23:41:35 -0500 Subject: [PATCH 13/31] Update README.md Co-authored-by: Ola Hungerford --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d8b151ec..0b2cd547 100644 --- a/README.md +++ b/README.md @@ -311,7 +311,7 @@ Official integrations are maintained by companies building production ready MCP - Offorte Logo **[Offorte](https://github.com/offorte/offorte-mcp-server#readme)** - Offorte Proposal Software official MCP server enables creation and sending of business proposals. - Ola Maps **[OlaMaps](https://pypi.org/project/ola-maps-mcp-server)** - Official Ola Maps MCP Server for services like geocode, directions, place details and many more. - ONLYOFFICE DocSpace **[ONLYOFFICE DocSpace](https://github.com/ONLYOFFICE/docspace-mcp)** - Interact with [ONLYOFFICE DocSpace](https://www.onlyoffice.com/docspace.aspx) API to create rooms, manage files and folders. -- 🏥 **[OMOP MCP](https://github.com/OHNLP/omop_mcp)** - Map clinical terminology to OMOP concepts using LLMs for healthcare data standardization. +- **[OMOP MCP](https://github.com/OHNLP/omop_mcp)** - Map clinical terminology to OMOP concepts using LLMs for healthcare data standardization. - OP.GG Logo **[OP.GG](https://github.com/opgginc/opgg-mcp)** - Access real-time gaming data across popular titles like League of Legends, TFT, and Valorant, offering champion analytics, esports schedules, meta compositions, and character statistics. - Openfort **[Openfort](https://github.com/openfort-xyz/mcp)** - Connect your AI to Openfort's smart wallet, auth, and project infrastructure. - OpenMetadata **[OpenMetadata](https://open-metadata.org/mcp)** - The first Enterprise-grade MCP server for metadata From 83ba7542885772c2bf56b844989370da6fad6c75 Mon Sep 17 00:00:00 2001 From: Maayan Yosef Date: Wed, 27 Aug 2025 12:00:06 +0300 Subject: [PATCH 14/31] Add Explorium to the list of integrations --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d3594fe2..ef56f1be 100644 --- a/README.md +++ b/README.md @@ -180,6 +180,7 @@ Official integrations are maintained by companies building production ready MCP - eSignatures Logo **[eSignatures](https://github.com/esignaturescom/mcp-server-esignatures)** - Contract and template management for drafting, reviewing, and sending binding contracts. - ESP RainMaker Logo **[ESP RainMaker](https://github.com/espressif/esp-rainmaker-mcp)** - Official Espressif MCP Server to Control and Manage ESP RainMaker Devices. - Exa Logo **[Exa](https://github.com/exa-labs/exa-mcp-server)** - Search Engine made for AIs by [Exa](https://exa.ai) +- Explorium Logo **[Explorium](https://github.com/explorium-ai/mcp-explorium)** - B2B data and infrastructure for AI SDR & GTM Agents [Explorium](https://www.explorium.ai) - **[FalkorDB](https://github.com/FalkorDB/FalkorDB-MCPServer)** - FalkorDB graph database server get schema and read/write-cypher [FalkorDB](https://www.falkordb.com) - fetchSERP Logo **[fetchSERP](https://github.com/fetchSERP/fetchserp-mcp-server-node)** - All-in-One SEO & Web Intelligence Toolkit API [fetchSERP](https://www.fetchserp.com/) - Fewsats Logo **[Fewsats](https://github.com/Fewsats/fewsats-mcp)** - Enable AI Agents to purchase anything in a secure way using [Fewsats](https://fewsats.com) From 39c1ca8df07fc53ab8bfbf2802f381af7b4bec4e Mon Sep 17 00:00:00 2001 From: AjayKumbham Date: Wed, 27 Aug 2025 20:24:23 +0530 Subject: [PATCH 15/31] feat: improve roots messaging to distinguish client support vs configuration - Add clientSupportsRoots tracking variable - Set clientSupportsRoots during initialization based on client capabilities - Update listRoots tool to provide clearer messaging: - Specific message when client doesn't support roots protocol - Different message when client supports roots but none are configured - Improves user experience by clearly explaining the different scenarios Addresses feedback from @olaservo in PR review --- src/everything/everything.ts | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/src/everything/everything.ts b/src/everything/everything.ts index 97d22bdc..f6df2651 100644 --- a/src/everything/everything.ts +++ b/src/everything/everything.ts @@ -180,6 +180,7 @@ export const createServer = () => { // Roots state management let currentRoots: Root[] = []; + let clientSupportsRoots = false; const messages = [ { level: "debug", data: "Debug-level message" }, { level: "info", data: "Info-level message" }, @@ -807,8 +808,8 @@ export const createServer = () => { uri: resource.uri, name: resource.name, description: `Resource ${i + 1}: ${resource.mimeType === "text/plain" - ? "plaintext resource" - : "binary blob resource" + ? "plaintext resource" + : "binary blob resource" }`, mimeType: resource.mimeType, }); @@ -841,15 +842,28 @@ export const createServer = () => { if (name === ToolName.LIST_ROOTS) { ListRootsSchema.parse(args); + if (!clientSupportsRoots) { + return { + content: [ + { + type: "text", + text: "The MCP client does not support the roots protocol.\n\n" + + "This means the server cannot access information about the client's workspace directories or file system roots." + } + ] + }; + } + if (currentRoots.length === 0) { return { content: [ { type: "text", - text: "No roots are currently set. This could mean:\n" + - "1. The client doesn't support the MCP roots protocol\n" + - "2. The client hasn't provided any roots yet\n" + - "3. The client provided empty roots" + text: "The client supports roots but no roots are currently configured.\n\n" + + "This could mean:\n" + + "1. The client hasn't provided any roots yet\n" + + "2. The client provided an empty roots list\n" + + "3. The roots configuration is still being loaded" } ] }; @@ -955,6 +969,7 @@ export const createServer = () => { const clientCapabilities = server.getClientCapabilities(); if (clientCapabilities?.roots) { + clientSupportsRoots = true; try { const response = await server.listRoots(); if (response && 'roots' in response) { From ffe62ffb5cda4fc684748bae4fcf9ac83ff950c0 Mon Sep 17 00:00:00 2001 From: Derek Melchin <38889814+DerekMelchin@users.noreply.github.com> Date: Wed, 27 Aug 2025 09:42:01 -0600 Subject: [PATCH 16/31] Add QuantConnect MCP Server to README --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d3594fe2..157812dc 100644 --- a/README.md +++ b/README.md @@ -353,6 +353,7 @@ Official integrations are maintained by companies building production ready MCP - Put.io Logo **[Put.io](https://github.com/putdotio/putio-mcp-server)** - Interact with your Put.io account to download torrents. - **[Qdrant](https://github.com/qdrant/mcp-server-qdrant/)** - Implement semantic memory layer on top of the Qdrant vector search engine - Qorus **[Qorus](https://qoretechnologies.com/manual/qorus/current/qorus/sysarch.html#mcp_server)** - Connect to any application, system, or technology and automate your business processes without coding and with AI +- QuantConnect Logo **[QuantConnect](https://github.com/QuantConnect/mcp-server)** - Interact with your [QuantConnect](https://www.quantconnect.com/) account to update projects, write strategies, run backtest, and deploying strategies to production live-trading. - **[Quickchat AI](https://github.com/incentivai/quickchat-ai-mcp)** - Launch your conversational [Quickchat AI](https://quickchat.ai) agent as an MCP to give AI apps real-time access to its Knowledge Base and conversational capabilities - Ragie Logo **[Ragie](https://github.com/ragieai/ragie-mcp-server/)** - Retrieve context from your [Ragie](https://www.ragie.ai) (RAG) knowledge base connected to integrations like Google Drive, Notion, JIRA and more. - **[Ramp](https://github.com/ramp-public/ramp-mcp)** - Interact with [Ramp](https://ramp.com)'s Developer API to run analysis on your spend and gain insights leveraging LLMs From 267c79e296616142823780c9f738205de5270898 Mon Sep 17 00:00:00 2001 From: Chihiro Adachi <8196725+chihiro-adachi@users.noreply.github.com> Date: Thu, 28 Aug 2025 15:37:33 +0900 Subject: [PATCH 17/31] Add Kintone MCP Server To README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d3594fe2..c4cd637b 100644 --- a/README.md +++ b/README.md @@ -240,6 +240,7 @@ Official integrations are maintained by companies building production ready MCP - Kernel Logo **[Kernel](https://github.com/onkernel/kernel-mcp-server)** – Access Kernel's cloud‑based browsers via MCP. - Keywords Everywhere Logo **[Keywords Everywhere](https://api.keywordseverywhere.com/docs/#/mcp_integration)** – Access SEO data through the official Keywords Everywhere API MCP server. - KeywordsPeopleUse Logo **[KeywordsPeopleUse.com](https://github.com/data-skunks/kpu-mcp)** - Find questions people ask online with [KeywordsPeopleUse](https://keywordspeopleuse.com). +- Kintone Logo **[Kintone](https://github.com/kintone/mcp-server)** - The official local MCP server for [Kintone](https://kintone.com). - KirokuForms Logo **[KirokuForms](https://www.kirokuforms.com/ai/mcp)** - [KirokuForms](https://www.kirokuforms.com) is an AI-powered form platform combining professional form building with Human-in-the-Loop (HITL) capabilities. Create custom forms, collect submissions, and integrate human oversight into AI workflows through [MCP integration](https://kirokuforms.com/ai/mcp). - Klavis Logo **[Klavis ReportGen](https://github.com/Klavis-AI/klavis/tree/main/mcp_servers/report_generation)** - Create professional reports from a simple user query. - Klaviyo Logo **[Klaviyo](https://developers.klaviyo.com/en/docs/klaviyo_mcp_server)** - Interact with your [Klaviyo](https://www.klaviyo.com/) marketing data. From a017201b427b2f06f80a4e7de56a714a051efe05 Mon Sep 17 00:00:00 2001 From: PCfVW Date: Thu, 28 Aug 2025 09:06:12 +0200 Subject: [PATCH 18/31] Add link to mcp-arangodb-async server --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d3594fe2..5c104242 100644 --- a/README.md +++ b/README.md @@ -494,6 +494,7 @@ A growing set of community-developed and maintained servers demonstrates various - **[APT MCP](https://github.com/GdMacmillan/apt-mcp-server)** - MCP server which runs debian package manager (apt) commands for you using ai agents. - **[Aranet4](https://github.com/diegobit/aranet4-mcp-server)** - MCP Server to manage your Aranet4 CO2 sensor. Fetch data and store in a local SQLite. Ask questions about historical data. - **[ArangoDB](https://github.com/ravenwits/mcp-server-arangodb)** - MCP Server that provides database interaction capabilities through [ArangoDB](https://arangodb.com/). +- **[ArangoDB Graph](https://github.com/PCfVW/mcp-arangodb-async)** - Async-first Python architecture, wrapping the official [python-arango driver](https://github.com/arangodb/python-arango) with graph management capabilities, content conversion utilities (JSON, Markdown, YAML and Table), backup/restore functionality, and graph analytics capabilities; the 33 MCP tools use strict [Pydantic](https://github.com/pydantic/pydantic) validation. - **[Arduino](https://github.com/vishalmysore/choturobo)** - MCP Server that enables AI-powered robotics using Claude AI and Arduino (ESP32) for real-world automation and interaction with robots. - **[arXiv API](https://github.com/prashalruchiranga/arxiv-mcp-server)** - An MCP server that enables interacting with the arXiv API using natural language. - **[arxiv-latex-mcp](https://github.com/takashiishida/arxiv-latex-mcp)** - MCP server that fetches and processes arXiv LaTeX sources for precise interpretation of mathematical expressions in papers. From c97e6bd5285434a5a2c5e449e916c476c52c0cdc Mon Sep 17 00:00:00 2001 From: Rick <39862286+zurferr@users.noreply.github.com> Date: Thu, 28 Aug 2025 10:38:15 +0200 Subject: [PATCH 19/31] Add Dot (GetDot.ai) integration details to README --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d3594fe2..e1e626cc 100644 --- a/README.md +++ b/README.md @@ -168,6 +168,7 @@ Official integrations are maintained by companies building production ready MCP - DevHub Logo **[DevHub](https://github.com/devhub/devhub-cms-mcp)** - Manage and utilize website content within the [DevHub](https://www.devhub.com) CMS platform - DevRev Logo **[DevRev](https://github.com/devrev/mcp-server)** - An MCP server to integrate with DevRev APIs to search through your DevRev Knowledge Graph where objects can be imported from diff. Sources listed [here](https://devrev.ai/docs/import#available-sources). - DexPaprika Logo **[DexPaprika (CoinPaprika)](https://github.com/coinpaprika/dexpaprika-mcp)** - Access real-time DEX data, liquidity pools, token information, and trading analytics across multiple blockchain networks with [DexPaprika](https://dexpaprika.com) by CoinPaprika. +- GetDot.ai Logo **[Dot (GetDot.ai)](https://docs.getdot.ai/dot/integrations/mcp)** - Fetch, analyze or visualize data from your favorite database or data warehouse (Snowflake, BigQuery, Redshift, Databricks, Clickhouse, ...) with [Dot](https://getdot.ai), your AI Data Analyst. This remote MCP server is a one-click integration for user that have setup Dot. - Dolt Logo **[Dolt](https://github.com/dolthub/dolt-mcp)** - The official MCP server for version-controlled [Dolt](https://doltdb.com/) databases. - Drata Logo **[Drata](https://drata.com/mcp)** - Get hands-on with our experimental MCP server—bringing real-time compliance intelligence into your AI workflows. - Dumpling AI Logo **[Dumpling AI](https://github.com/Dumpling-AI/mcp-server-dumplingai)** - Access data, web scraping, and document conversion APIs by [Dumpling AI](https://www.dumplingai.com/) From 188ac63dc75096210f7be1c8d1fd69202aab3fdb Mon Sep 17 00:00:00 2001 From: Rick <39862286+zurferr@users.noreply.github.com> Date: Thu, 28 Aug 2025 10:39:56 +0200 Subject: [PATCH 20/31] moved one place down --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e1e626cc..75d5ac1e 100644 --- a/README.md +++ b/README.md @@ -168,8 +168,8 @@ Official integrations are maintained by companies building production ready MCP - DevHub Logo **[DevHub](https://github.com/devhub/devhub-cms-mcp)** - Manage and utilize website content within the [DevHub](https://www.devhub.com) CMS platform - DevRev Logo **[DevRev](https://github.com/devrev/mcp-server)** - An MCP server to integrate with DevRev APIs to search through your DevRev Knowledge Graph where objects can be imported from diff. Sources listed [here](https://devrev.ai/docs/import#available-sources). - DexPaprika Logo **[DexPaprika (CoinPaprika)](https://github.com/coinpaprika/dexpaprika-mcp)** - Access real-time DEX data, liquidity pools, token information, and trading analytics across multiple blockchain networks with [DexPaprika](https://dexpaprika.com) by CoinPaprika. -- GetDot.ai Logo **[Dot (GetDot.ai)](https://docs.getdot.ai/dot/integrations/mcp)** - Fetch, analyze or visualize data from your favorite database or data warehouse (Snowflake, BigQuery, Redshift, Databricks, Clickhouse, ...) with [Dot](https://getdot.ai), your AI Data Analyst. This remote MCP server is a one-click integration for user that have setup Dot. - Dolt Logo **[Dolt](https://github.com/dolthub/dolt-mcp)** - The official MCP server for version-controlled [Dolt](https://doltdb.com/) databases. +- GetDot.ai Logo **[Dot (GetDot.ai)](https://docs.getdot.ai/dot/integrations/mcp)** - Fetch, analyze or visualize data from your favorite database or data warehouse (Snowflake, BigQuery, Redshift, Databricks, Clickhouse, ...) with [Dot](https://getdot.ai), your AI Data Analyst. This remote MCP server is a one-click integration for user that have setup Dot. - Drata Logo **[Drata](https://drata.com/mcp)** - Get hands-on with our experimental MCP server—bringing real-time compliance intelligence into your AI workflows. - Dumpling AI Logo **[Dumpling AI](https://github.com/Dumpling-AI/mcp-server-dumplingai)** - Access data, web scraping, and document conversion APIs by [Dumpling AI](https://www.dumplingai.com/) - Dynatrace Logo **[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. From f51757eedbb1f6193b1e1b74cfec10c5e62015af Mon Sep 17 00:00:00 2001 From: AjayKumbham Date: Thu, 28 Aug 2025 16:21:48 +0530 Subject: [PATCH 21/31] fix: remove roots from server capabilities - it's a client capability --- src/everything/everything.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/everything/everything.ts b/src/everything/everything.ts index f6df2651..69356815 100644 --- a/src/everything/everything.ts +++ b/src/everything/everything.ts @@ -165,7 +165,6 @@ export const createServer = () => { logging: {}, completions: {}, elicitation: {}, - roots: { listChanged: true }, }, instructions } From 5c751420e1045f540ba793c223e62e49e4eedc7b Mon Sep 17 00:00:00 2001 From: Samyak Jain <56000318+samyakkkk@users.noreply.github.com> Date: Thu, 28 Aug 2025 17:19:12 +0530 Subject: [PATCH 22/31] doc: add Olostep MCP --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d3594fe2..235c9ecf 100644 --- a/README.md +++ b/README.md @@ -310,6 +310,7 @@ Official integrations are maintained by companies building production ready MCP - OctoEverywhere Logo **[OctoEverywhere](https://github.com/OctoEverywhere/mcp)** - A 3D Printing MCP server that allows for querying for live state, webcam snapshots, and 3D printer control. - Offorte Logo **[Offorte](https://github.com/offorte/offorte-mcp-server#readme)** - Offorte Proposal Software official MCP server enables creation and sending of business proposals. - Ola Maps **[OlaMaps](https://pypi.org/project/ola-maps-mcp-server)** - Official Ola Maps MCP Server for services like geocode, directions, place details and many more. +- Olostep **[Olostep](https://github.com/olostep/olostep-mcp-server)** - Search, scrape and crawl content from web. Real-time results in clean markdown. - ONLYOFFICE DocSpace **[ONLYOFFICE DocSpace](https://github.com/ONLYOFFICE/docspace-mcp)** - Interact with [ONLYOFFICE DocSpace](https://www.onlyoffice.com/docspace.aspx) API to create rooms, manage files and folders. - OP.GG Logo **[OP.GG](https://github.com/opgginc/opgg-mcp)** - Access real-time gaming data across popular titles like League of Legends, TFT, and Valorant, offering champion analytics, esports schedules, meta compositions, and character statistics. - Openfort **[Openfort](https://github.com/openfort-xyz/mcp)** - Connect your AI to Openfort's smart wallet, auth, and project infrastructure. From e8c23574e334d08ea82a7ea33738ebfd90de24fb Mon Sep 17 00:00:00 2001 From: Aravind Date: Thu, 28 Aug 2025 21:57:22 +0530 Subject: [PATCH 23/31] Add Onyx MCP Sandbox to community servers list --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d3594fe2..7172f58d 100644 --- a/README.md +++ b/README.md @@ -964,6 +964,7 @@ A growing set of community-developed and maintained servers demonstrates various - **[Okta](https://github.com/kapilduraphe/okta-mcp-server)** - Interact with Okta API. - **[OKX-MCP-Server](https://github.com/memetus/okx-mcp-playground)** - An MCP server provides various blockchain data and market price data via the OKX API. The server enables Claude to perform operations like retrieve assets prices, transaction data, account history data and trade instruction data. - **[OneNote](https://github.com/rajvirtual/MCP-Servers/tree/master/onenote)** - (by Rajesh Vijay) An MCP server that connects to Microsoft OneNote using the Microsoft Graph API. Reading notebooks, sections, and pages from OneNote,Creating new notebooks, sections, and pages in OneNote. +- **[Onyx MCP Sandbox](https://github.com/avd1729/Onyx)** – (by Aravind) A secure MCP server that executes code in isolated Docker sandboxes. Supports Python, Java, C, C++, JavaScript, and Rust. Provides the `run_code` tool, enforces CPU/memory limits, includes comprehensive tests, and detailed setup instructions. - **[Open Strategy Partners Marketing Tools](https://github.com/open-strategy-partners/osp_marketing_tools)** - Content editing codes, value map, and positioning tools for product marketing. - **[OpenAI WebSearch MCP](https://github.com/ConechoAI/openai-websearch-mcp)** - This is a Python-based MCP server that provides OpenAI `web_search` built-in tool. - **[OpenAlex.org MCP](https://github.com/drAbreu/alex-mcp)** - Professional MCP server providing ML-powered author disambiguation and comprehensive researcher profiles using the OpenAlex database. From d279ace6b445514cbe4a9ae483db1c61cb10fbe6 Mon Sep 17 00:00:00 2001 From: Kumbham Ajay Goud Date: Thu, 28 Aug 2025 22:16:33 +0530 Subject: [PATCH 24/31] Update src/everything/everything.ts Co-authored-by: Cliff Hall --- src/everything/everything.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/everything/everything.ts b/src/everything/everything.ts index 69356815..7f342003 100644 --- a/src/everything/everything.ts +++ b/src/everything/everything.ts @@ -176,6 +176,8 @@ export const createServer = () => { let logLevel: LoggingLevel = "debug"; let logsUpdateInterval: NodeJS.Timeout | undefined; + // Store client capabilities + let clientCapabilities: ClientCapabilities | undefined; // Roots state management let currentRoots: Root[] = []; From 2b8ba4ac9fd949607c3d76db7c0cf14e6228aa6e Mon Sep 17 00:00:00 2001 From: Kumbham Ajay Goud Date: Thu, 28 Aug 2025 22:16:52 +0530 Subject: [PATCH 25/31] Update src/everything/everything.ts Co-authored-by: Cliff Hall --- src/everything/everything.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/everything/everything.ts b/src/everything/everything.ts index 7f342003..340def80 100644 --- a/src/everything/everything.ts +++ b/src/everything/everything.ts @@ -540,14 +540,14 @@ export const createServer = () => { inputSchema: zodToJsonSchema(StructuredContentSchema.input) as ToolInput, outputSchema: zodToJsonSchema(StructuredContentSchema.output) as ToolOutput, }, - { + ]; + if (clientCapabilities!.roots) tools.push ({ name: ToolName.LIST_ROOTS, description: - "Lists the current MCP roots provided by the client. Demonstrates the roots protocol capability even though this server doesn't access files.", + "Lists the current MCP roots provided by the client. Demonstrates the roots protocol capability even though this server doesn't access files.", inputSchema: zodToJsonSchema(ListRootsSchema) as ToolInput, - }, - ]; - + }); + return { tools }; }); From d32184151961c2dc4cfa054947bb1f0eea75099a Mon Sep 17 00:00:00 2001 From: Kumbham Ajay Goud Date: Thu, 28 Aug 2025 22:17:07 +0530 Subject: [PATCH 26/31] Update src/everything/everything.ts Co-authored-by: Cliff Hall --- src/everything/everything.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/everything/everything.ts b/src/everything/everything.ts index 340def80..512cb8df 100644 --- a/src/everything/everything.ts +++ b/src/everything/everything.ts @@ -967,7 +967,7 @@ export const createServer = () => { // Handle post-initialization setup for roots server.oninitialized = async () => { - const clientCapabilities = server.getClientCapabilities(); + clientCapabilities = server.getClientCapabilities(); if (clientCapabilities?.roots) { clientSupportsRoots = true; From c45c0e26a045cd69872db5603e07f4fa265fc813 Mon Sep 17 00:00:00 2001 From: AjayKumbham Date: Thu, 28 Aug 2025 22:25:46 +0530 Subject: [PATCH 27/31] fix: add missing ClientCapabilities import --- src/everything/everything.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/everything/everything.ts b/src/everything/everything.ts index 512cb8df..33608463 100644 --- a/src/everything/everything.ts +++ b/src/everything/everything.ts @@ -1,6 +1,7 @@ import { Server } from "@modelcontextprotocol/sdk/server/index.js"; import { CallToolRequestSchema, + ClientCapabilities, CompleteRequestSchema, CreateMessageRequest, CreateMessageResultSchema, From 00492a616ece2f021531b4e85c3dfea27bb7bc25 Mon Sep 17 00:00:00 2001 From: kmckiern Date: Thu, 28 Aug 2025 10:46:27 -0700 Subject: [PATCH 28/31] feat(readme): add Mandoline MCP server to community servers list MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add Mandoline AI evaluation framework MCP server to the community servers section. Enables AI assistants to reflect on and continuously improve their performance. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d3594fe2..2a3778c9 100644 --- a/README.md +++ b/README.md @@ -842,6 +842,7 @@ A growing set of community-developed and maintained servers demonstrates various - **[Magg: The MCP Aggregator](https://github.com/sitbon/magg)** - A meta-MCP server that acts as a universal hub, allowing LLMs to autonomously discover, install, and orchestrate multiple MCP servers - essentially giving AI assistants the power to extend their own capabilities on-demand. Includes `mbro`, a powerful CLI MCP server browser with scripting capability. - **[Mailchimp MCP](https://github.com/AgentX-ai/mailchimp-mcp)** - Allows AI agents to interact with the Mailchimp API (read-only) - **[MalwareBazaar_MCP](https://github.com/mytechnotalent/MalwareBazaar_MCP)** (by Kevin Thomas) - An AI-driven MCP server that autonomously interfaces with MalwareBazaar, delivering real-time threat intel and sample metadata for authorized cybersecurity research workflows. +- **[Mandoline](https://github.com/mandoline-ai/mandoline-mcp-server)** - Enable AI assistants to reflect on, critique, and continuously improve their own performance using Mandoline's evaluation framework. - **[Matrix](https://github.com/mjknowles/matrix-mcp-server)** - Interact with a Matrix homeserver. - **[man-mcp-server](https://github.com/guyru/man-mcp-server)** - MCP to search and access man pages on the local machine. - **[MariaDB](https://github.com/abel9851/mcp-server-mariadb)** - MariaDB database integration with configurable access controls in Python. From a32f15750de26e21a6a515d86de6d589b749b7a6 Mon Sep 17 00:00:00 2001 From: cliffhall Date: Thu, 28 Aug 2025 14:13:47 -0400 Subject: [PATCH 29/31] Suppress startElicitation tool if client does not advertise support for elicitation capability * In everything.ts - remove inappropriate elicitation entry from server capabilities (this is a client capability) - When creating tool list, only add `ToolName.ELICITATION` definition to tools array if `clientCapabilities` includes `elicitation` * In package.json / package-lock.json - bump @modelcontextprotocol/sdk to "^1.17.4", adding `elicitation` to `ClientCapabilities` type --- package-lock.json | 9 +++++---- src/everything/everything.ts | 17 ++++++++--------- src/everything/package.json | 2 +- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/package-lock.json b/package-lock.json index c07a7418..56ba065c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5818,7 +5818,7 @@ "version": "0.6.2", "license": "MIT", "dependencies": { - "@modelcontextprotocol/sdk": "^1.12.0", + "@modelcontextprotocol/sdk": "^1.17.4", "express": "^4.21.1", "zod": "^3.23.8", "zod-to-json-schema": "^3.23.5" @@ -5833,9 +5833,9 @@ } }, "src/everything/node_modules/@modelcontextprotocol/sdk": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.12.3.tgz", - "integrity": "sha512-DyVYSOafBvk3/j1Oka4z5BWT8o4AFmoNyZY9pALOm7Lh3GZglR71Co4r4dEUoqDWdDazIZQHBe7J2Nwkg6gHgQ==", + "version": "1.17.4", + "resolved": "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.17.4.tgz", + "integrity": "sha512-zq24hfuAmmlNZvik0FLI58uE5sriN0WWsQzIlYnzSuKDAHFqJtBFrl/LfB1NLgJT5Y7dEBzaX4yAKqOPrcetaw==", "license": "MIT", "dependencies": { "ajv": "^6.12.6", @@ -5843,6 +5843,7 @@ "cors": "^2.8.5", "cross-spawn": "^7.0.5", "eventsource": "^3.0.2", + "eventsource-parser": "^3.0.0", "express": "^5.0.1", "express-rate-limit": "^7.5.0", "pkce-challenge": "^5.0.0", diff --git a/src/everything/everything.ts b/src/everything/everything.ts index 33608463..c313b6ea 100644 --- a/src/everything/everything.ts +++ b/src/everything/everything.ts @@ -164,8 +164,7 @@ export const createServer = () => { resources: { subscribe: true }, tools: {}, logging: {}, - completions: {}, - elicitation: {}, + completions: {} }, instructions } @@ -177,7 +176,7 @@ export const createServer = () => { let logLevel: LoggingLevel = "debug"; let logsUpdateInterval: NodeJS.Timeout | undefined; - // Store client capabilities + // Store client capabilities let clientCapabilities: ClientCapabilities | undefined; // Roots state management @@ -523,11 +522,6 @@ export const createServer = () => { "Returns a resource reference that can be used by MCP clients", inputSchema: zodToJsonSchema(GetResourceReferenceSchema) as ToolInput, }, - { - name: ToolName.ELICITATION, - description: "Demonstrates the Elicitation feature by asking the user to provide information about their favorite color, number, and pets.", - inputSchema: zodToJsonSchema(ElicitationSchema) as ToolInput, - }, { name: ToolName.GET_RESOURCE_LINKS, description: @@ -548,7 +542,12 @@ export const createServer = () => { "Lists the current MCP roots provided by the client. Demonstrates the roots protocol capability even though this server doesn't access files.", inputSchema: zodToJsonSchema(ListRootsSchema) as ToolInput, }); - + if (clientCapabilities!.elicitation) tools.push ({ + name: ToolName.ELICITATION, + description: "Demonstrates the Elicitation feature by asking the user to provide information about their favorite color, number, and pets.", + inputSchema: zodToJsonSchema(ElicitationSchema) as ToolInput, + }); + return { tools }; }); diff --git a/src/everything/package.json b/src/everything/package.json index 55777ac7..0cff945c 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.12.0", + "@modelcontextprotocol/sdk": "^1.17.4", "express": "^4.21.1", "zod": "^3.23.8", "zod-to-json-schema": "^3.23.5" From 38de94b7ad248676b5ae76473a47649653aca0b6 Mon Sep 17 00:00:00 2001 From: Ola Hungerford Date: Fri, 29 Aug 2025 04:16:50 -0700 Subject: [PATCH 30/31] fix: update temperature argument type from number to string in everything server docs (#2610) Fixes issue #474 - documentation mismatch where temperature was documented as (number) but TypeScript SDK only accepts string arguments via z.record(z.string()) Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com> Co-authored-by: Ola Hungerford --- src/everything/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/everything/README.md b/src/everything/README.md index 466e9cc2..696a77e9 100644 --- a/src/everything/README.md +++ b/src/everything/README.md @@ -124,7 +124,7 @@ Resource features: 2. `complex_prompt` - Advanced prompt demonstrating argument handling - Required arguments: - - `temperature` (number): Temperature setting + - `temperature` (string): Temperature setting - Optional arguments: - `style` (string): Output style preference - Returns: Multi-turn conversation with images From 29aba77a930779741d234c0e1d3c1de1c8a267f5 Mon Sep 17 00:00:00 2001 From: Adam Jones Date: Fri, 29 Aug 2025 14:35:23 +0100 Subject: [PATCH 31/31] fix: only run scheduled release pipeline on modelcontextprotocol org --- .github/workflows/release.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f1c2b0e4..64178c3c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -8,6 +8,7 @@ on: jobs: create-metadata: runs-on: ubuntu-latest + if: github.repository_owner == 'modelcontextprotocol' outputs: hash: ${{ steps.last-release.outputs.hash }} version: ${{ steps.create-version.outputs.version}}