From 6279021d60e247551c314a3e092056ded90fbb08 Mon Sep 17 00:00:00 2001 From: Ola Hungerford Date: Sun, 30 Mar 2025 19:12:53 -0700 Subject: [PATCH 1/7] Make changes to typescript to trigger new tag --- src/memory/index.ts | 2 +- src/redis/src/index.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/memory/index.ts b/src/memory/index.ts index 62f7aeb6..a3fcc820 100644 --- a/src/memory/index.ts +++ b/src/memory/index.ts @@ -189,7 +189,7 @@ const knowledgeGraphManager = new KnowledgeGraphManager(); // The server instance and tools exposed to Claude const server = new Server({ name: "memory-server", - version: "1.0.0", + version: "0.6.3", }, { capabilities: { tools: {}, diff --git a/src/redis/src/index.ts b/src/redis/src/index.ts index 2d88d981..724dd8f0 100644 --- a/src/redis/src/index.ts +++ b/src/redis/src/index.ts @@ -36,7 +36,7 @@ const ListArgumentsSchema = z.object({ const server = new Server( { name: "redis", - version: "1.0.0" + version: "0.0.1" } ); From 52e60e6e29c41d4c6cfcb5f70e4135c413f428cf Mon Sep 17 00:00:00 2001 From: Ola Hungerford Date: Mon, 31 Mar 2025 08:08:35 -0700 Subject: [PATCH 2/7] Add missing capabilities and better connection handling --- src/redis/src/index.ts | 70 ++++++++++++++++++++++++++++++++++++------ 1 file changed, 60 insertions(+), 10 deletions(-) diff --git a/src/redis/src/index.ts b/src/redis/src/index.ts index 724dd8f0..27ce91fa 100644 --- a/src/redis/src/index.ts +++ b/src/redis/src/index.ts @@ -7,10 +7,26 @@ import { import { z } from "zod"; import { createClient } from 'redis'; -// Get Redis URL from command line args or use default +// Configuration const REDIS_URL = process.argv[2] || "redis://localhost:6379"; +const MAX_RETRIES = 5; +const MIN_RETRY_DELAY = 1000; // 1 second +const MAX_RETRY_DELAY = 30000; // 30 seconds + +// Create Redis client with retry strategy const redisClient = createClient({ - url: REDIS_URL + url: REDIS_URL, + socket: { + reconnectStrategy: (retries) => { + if (retries >= MAX_RETRIES) { + console.error(`Maximum retries (${MAX_RETRIES}) reached. Giving up.`); + return new Error('Max retries reached'); + } + const delay = Math.min(Math.pow(2, retries) * MIN_RETRY_DELAY, MAX_RETRY_DELAY); + console.error(`Reconnection attempt ${retries + 1}/${MAX_RETRIES} in ${delay}ms`); + return delay; + } + } }); // Define Zod schemas for validation @@ -37,6 +53,11 @@ const server = new Server( { name: "redis", version: "0.0.1" + }, + { + capabilities: { + tools: {} + } } ); @@ -215,22 +236,51 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => { // Start the server async function main() { try { - // Connect to Redis - redisClient.on('error', (err: Error) => console.error('Redis Client Error', err)); - await redisClient.connect(); - console.error(`Connected to Redis successfully at ${REDIS_URL}`); + // Set up Redis event handlers + redisClient.on('error', (err: Error) => { + console.error('Redis Client Error:', err); + }); + redisClient.on('connect', () => { + console.error(`Connected to Redis at ${REDIS_URL}`); + }); + + redisClient.on('reconnecting', () => { + console.error('Attempting to reconnect to Redis...'); + }); + + redisClient.on('end', () => { + console.error('Redis connection closed'); + }); + + // Connect to Redis + await redisClient.connect(); + + // Set up MCP server const transport = new StdioServerTransport(); await server.connect(transport); console.error("Redis MCP Server running on stdio"); } catch (error) { console.error("Error during startup:", error); - await redisClient.quit(); - process.exit(1); + await cleanup(); } } +// Cleanup function +async function cleanup() { + try { + await redisClient.quit(); + } catch (error) { + console.error("Error during cleanup:", error); + } + process.exit(1); +} + +// Handle process termination +process.on('SIGINT', cleanup); +process.on('SIGTERM', cleanup); + main().catch((error) => { console.error("Fatal error in main():", error); - redisClient.quit().finally(() => process.exit(1)); -}); \ No newline at end of file + cleanup(); +}); From 4e660a2d998087d00edcacea568ed9206fdba771 Mon Sep 17 00:00:00 2001 From: Ola Hungerford Date: Mon, 31 Mar 2025 08:12:53 -0700 Subject: [PATCH 3/7] Update Readme --- src/redis/README.md | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/src/redis/README.md b/src/redis/README.md index 45123a58..992471dc 100644 --- a/src/redis/README.md +++ b/src/redis/README.md @@ -2,6 +2,31 @@ A Model Context Protocol server that provides access to Redis databases. This server enables LLMs to interact with Redis key-value stores through a set of standardized tools. +## Prerequisites + +1. Redis server must be installed and running + - [Download Redis](https://redis.io/download) + - For Windows users: Use [Windows Subsystem for Linux (WSL)](https://redis.io/docs/getting-started/installation/install-redis-on-windows/) or [Memurai](https://www.memurai.com/) (Redis-compatible Windows server) + - Default port: 6379 + +## Common Issues & Solutions + +### Connection Errors + +**ECONNREFUSED** + - **Cause**: Redis server is not running or unreachable + - **Solution**: + - Verify Redis is running: `redis-cli ping` should return "PONG" + - Check Redis service status: `systemctl status redis` (Linux) or `brew services list` (macOS) + - Ensure correct port (default 6379) is not blocked by firewall + - Verify Redis URL format: `redis://hostname:port` + +### Server Behavior + +- The server implements exponential backoff with a maximum of 5 retries +- Initial retry delay: 1 second, maximum delay: 30 seconds +- Server will exit after max retries to prevent infinite reconnection loops + ## Components ### Tools @@ -77,4 +102,4 @@ docker build -t mcp/redis -f src/redis/Dockerfile . ## License -This MCP server is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository. \ No newline at end of file +This MCP server is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository. From f32332527555f9c28d8426d0ac69b14a3ed3ae5c Mon Sep 17 00:00:00 2001 From: Ola Hungerford Date: Mon, 31 Mar 2025 08:41:28 -0700 Subject: [PATCH 4/7] Revert serer-memory for now --- src/memory/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/memory/index.ts b/src/memory/index.ts index a3fcc820..62f7aeb6 100644 --- a/src/memory/index.ts +++ b/src/memory/index.ts @@ -189,7 +189,7 @@ const knowledgeGraphManager = new KnowledgeGraphManager(); // The server instance and tools exposed to Claude const server = new Server({ name: "memory-server", - version: "0.6.3", + version: "1.0.0", }, { capabilities: { tools: {}, From c4f5b75260452c9a5ce3a56d221ad5c6ac82b4b4 Mon Sep 17 00:00:00 2001 From: zzaebok Date: Wed, 2 Apr 2025 23:34:54 +0900 Subject: [PATCH 5/7] Update README.md: Add Wikidata MCP Server --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 35e24f15..330458ea 100644 --- a/README.md +++ b/README.md @@ -353,6 +353,7 @@ A growing set of community-developed and maintained servers demonstrates various - **[Webflow](https://github.com/kapilduraphe/webflow-mcp-server)** - Interfact with the Webflow APIs - **[whale-tracker-mcp](https://github.com/kukapay/whale-tracker-mcp)** - A mcp server for tracking cryptocurrency whale transactions. - **[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. - **[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. - **[World Bank data API](https://github.com/anshumax/world_bank_mcp_server)** - A server that fetches data indicators available with the World Bank as part of their data API From f3c0e5ab08e5c9a7a6e9942c6d47a09a1ba4998f Mon Sep 17 00:00:00 2001 From: zzaebok Date: Wed, 2 Apr 2025 23:34:54 +0900 Subject: [PATCH 6/7] Update README.md: Add Wikidata MCP Server --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 66a37ee6..788118eb 100644 --- a/README.md +++ b/README.md @@ -355,6 +355,7 @@ A growing set of community-developed and maintained servers demonstrates various - **[Webflow](https://github.com/kapilduraphe/webflow-mcp-server)** - Interfact with the Webflow APIs - **[whale-tracker-mcp](https://github.com/kukapay/whale-tracker-mcp)** - A mcp server for tracking cryptocurrency whale transactions. - **[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. - **[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. - **[World Bank data API](https://github.com/anshumax/world_bank_mcp_server)** - A server that fetches data indicators available with the World Bank as part of their data API From 87b4170868534779f921f2b02a47e2005d268c8c Mon Sep 17 00:00:00 2001 From: Toby Padilla Date: Fri, 4 Apr 2025 13:25:52 -0600 Subject: [PATCH 7/7] docs: update GitHub server with deprecation notice --- src/github/README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/github/README.md b/src/github/README.md index 026dde9b..a8e176f3 100644 --- a/src/github/README.md +++ b/src/github/README.md @@ -1,5 +1,9 @@ # GitHub MCP Server +**Deprecation Notice:** Development for this project has been moved to GitHub in the http://github.com/github/github-mcp-server repo. + +--- + MCP Server for the GitHub API, enabling file operations, repository management, search functionality, and more. ### Features