From b60918670b040a81082fc86076e1fe0dfb4c88e9 Mon Sep 17 00:00:00 2001 From: Phil Nash Date: Thu, 27 Mar 2025 12:48:55 +1100 Subject: [PATCH 01/10] Update README to include Astra DB MCP server --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index dfe25a9a..a83631ec 100644 --- a/README.md +++ b/README.md @@ -46,6 +46,7 @@ Official integrations are maintained by companies building production ready MCP - Aiven Logo **[Aiven](https://github.com/Aiven-Open/mcp-aiven)** - Navigate your [Aiven projects](https://go.aiven.io/mcp-server) and interact with the PostgreSQL®, Apache Kafka®, ClickHouse® and OpenSearch® services - Apify Logo **[Apify](https://github.com/apify/actors-mcp-server)** - [Actors MCP Server](https://apify.com/apify/actors-mcp-server): Use 3,000+ pre-built cloud tools to extract data from websites, e-commerce, social media, search engines, maps, and more - APIMatic Logo **[APIMatic MCP](https://github.com/apimatic/apimatic-validator-mcp)** - APIMatic MCP Server is used to validate OpenAPI specifications using [APIMatic](https://www.apimatic.io/). The server processes OpenAPI files and returns validation summaries by leveraging APIMatic’s API. +- DataStax logo **[Astra DB](https://github.com/datastax/astra-db-mcp)** - Comprehensive tools for managing collections and documents in an DataStax [Astra DB](https://www.datastax.com/products/datastax-astra) database with operations including create, update, delete, bulk actions, and vector search. - Audiense Logo **[Audiense Insights](https://github.com/AudienseCo/mcp-audiense-insights)** - Marketing insights and audience analysis from [Audiense](https://www.audiense.com/products/audiense-insights) reports, covering demographic, cultural, influencer, and content engagement analysis. - Axiom Logo **[Axiom](https://github.com/axiomhq/mcp-server-axiom)** - Query and analyze your Axiom logs, traces, and all other event data in natural language - Bankless Logo **[Bankless Onchain](https://github.com/bankless/onchain-mcp)** - Query Onchain data, like ERC20 tokens, transaction history, smart contract state. From 4d3c9e93d62be7cf9140f8283e6cf668d0b859ad Mon Sep 17 00:00:00 2001 From: Phil Nash Date: Sat, 29 Mar 2025 09:01:52 +1100 Subject: [PATCH 02/10] Improved description of Astra DB --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index faf7c08d..f5b70316 100644 --- a/README.md +++ b/README.md @@ -46,7 +46,7 @@ Official integrations are maintained by companies building production ready MCP - Aiven Logo **[Aiven](https://github.com/Aiven-Open/mcp-aiven)** - Navigate your [Aiven projects](https://go.aiven.io/mcp-server) and interact with the PostgreSQL®, Apache Kafka®, ClickHouse® and OpenSearch® services - Apify Logo **[Apify](https://github.com/apify/actors-mcp-server)** - [Actors MCP Server](https://apify.com/apify/actors-mcp-server): Use 3,000+ pre-built cloud tools to extract data from websites, e-commerce, social media, search engines, maps, and more - APIMatic Logo **[APIMatic MCP](https://github.com/apimatic/apimatic-validator-mcp)** - APIMatic MCP Server is used to validate OpenAPI specifications using [APIMatic](https://www.apimatic.io/). The server processes OpenAPI files and returns validation summaries by leveraging APIMatic’s API. -- DataStax logo **[Astra DB](https://github.com/datastax/astra-db-mcp)** - Comprehensive tools for managing collections and documents in an DataStax [Astra DB](https://www.datastax.com/products/datastax-astra) database with operations including create, update, delete, bulk actions, and vector search. +- DataStax logo **[Astra DB](https://github.com/datastax/astra-db-mcp)** - Comprehensive tools for managing collections and documents in a [DataStax Astra DB](https://www.datastax.com/products/datastax-astra) NoSQL database with a full range of operations such as create, update, delete, find, and associated bulk actions. - Audiense Logo **[Audiense Insights](https://github.com/AudienseCo/mcp-audiense-insights)** - Marketing insights and audience analysis from [Audiense](https://www.audiense.com/products/audiense-insights) reports, covering demographic, cultural, influencer, and content engagement analysis. - Axiom Logo **[Axiom](https://github.com/axiomhq/mcp-server-axiom)** - Query and analyze your Axiom logs, traces, and all other event data in natural language - Bankless Logo **[Bankless Onchain](https://github.com/bankless/onchain-mcp)** - Query Onchain data, like ERC20 tokens, transaction history, smart contract state. From 5cf5d4de15231f857e95ea92e8bc8301983ca8e1 Mon Sep 17 00:00:00 2001 From: pab1it0 Date: Sat, 29 Mar 2025 12:31:09 +0300 Subject: [PATCH 03/10] Add chess.com mcp --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b0cc79dc..00d11696 100644 --- a/README.md +++ b/README.md @@ -159,6 +159,7 @@ A growing set of community-developed and maintained servers demonstrates various - **[CFBD API](https://github.com/lenwood/cfbd-mcp-server)** - An MCP server for the [College Football Data API](https://collegefootballdata.com/). - **[ChatMCP](https://github.com/AI-QL/chat-mcp)** – An Open Source Cross-platform GUI Desktop application compatible with Linux, macOS, and Windows, enabling seamless interaction with MCP servers across dynamically selectable LLMs, by **[AIQL](https://github.com/AI-QL)** - **[ChatSum](https://github.com/mcpso/mcp-server-chatsum)** - Query and Summarize chat messages with LLM. by [mcpso](https://mcp.so) +- **[Chess.com](https://github.com/pab1it0/chess-mcp)** - Access Chess.com player data, game records, and other public information through standardized MCP interfaces, allowing AI assistants to search and analyze chess information. - **[Chroma](https://github.com/privetin/chroma)** - Vector database server for semantic document search and metadata filtering, built on Chroma - **[ClaudePost](https://github.com/ZilongXue/claude-post)** - ClaudePost enables seamless email management for Gmail, offering secure features like email search, reading, and sending. - **[Cloudinary](https://github.com/felores/cloudinary-mcp-server)** - Cloudinary Model Context Protocol Server to upload media to Cloudinary and get back the media link and details. From 3eee3e6872578dd67e17da950941ce0267f2fab1 Mon Sep 17 00:00:00 2001 From: 5startaek Date: Fri, 4 Apr 2025 23:46:42 +0900 Subject: [PATCH 04/10] feat: modify getChannels method to support fetching channels by IDs from env --- src/slack/index.ts | 58 ++++++++++++++++++++++++++++++++++------------ 1 file changed, 43 insertions(+), 15 deletions(-) diff --git a/src/slack/index.ts b/src/slack/index.ts index b0124660..f2135b36 100644 --- a/src/slack/index.ts +++ b/src/slack/index.ts @@ -53,7 +53,7 @@ interface GetUserProfileArgs { // Tool definitions const listChannelsTool: Tool = { name: "slack_list_channels", - description: "List public channels in the workspace with pagination", + description: "List public or pre-defined channels in the workspace with pagination", inputSchema: { type: "object", properties: { @@ -221,23 +221,51 @@ class SlackClient { } async getChannels(limit: number = 100, cursor?: string): Promise { - const params = new URLSearchParams({ - types: "public_channel", - exclude_archived: "true", - limit: Math.min(limit, 200).toString(), - team_id: process.env.SLACK_TEAM_ID!, - }); - - if (cursor) { - params.append("cursor", cursor); + const predefinedChannelIds = process.env.SLACK_CHANNEL_IDS; + if (!predefinedChannelIds) { + const params = new URLSearchParams({ + types: "public_channel", + exclude_archived: "true", + limit: Math.min(limit, 200).toString(), + team_id: process.env.SLACK_TEAM_ID!, + }); + + if (cursor) { + params.append("cursor", cursor); + } + + const response = await fetch( + `https://slack.com/api/conversations.list?${params}`, + { headers: this.botHeaders }, + ); + + return response.json(); } - const response = await fetch( - `https://slack.com/api/conversations.list?${params}`, - { headers: this.botHeaders }, - ); + const predefinedChannelIdsArray = predefinedChannelIds.split(",").map((id: string) => id.trim()); + const channels = []; - return response.json(); + for (const channelId of predefinedChannelIdsArray) { + const params = new URLSearchParams({ + channel: channelId, + }); + + const response = await fetch( + `https://slack.com/api/conversations.info?${params}`, + { headers: this.botHeaders } + ); + const data = await response.json(); + + if (data.ok && data.channel && !data.channel.is_archived) { + channels.push(data.channel); + } + } + + return { + ok: true, + channels: channels, + response_metadata: { next_cursor: "" }, + }; } async postMessage(channel_id: string, text: string): Promise { From ebfd210e999bc8349743e38764dbb27fcd2301af Mon Sep 17 00:00:00 2001 From: nevergettingold Date: Sat, 5 Apr 2025 00:34:42 +0900 Subject: [PATCH 05/10] docs: update README --- src/slack/README.md | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/slack/README.md b/src/slack/README.md index 970cba66..61bec01f 100644 --- a/src/slack/README.md +++ b/src/slack/README.md @@ -5,7 +5,7 @@ MCP Server for the Slack API, enabling Claude to interact with Slack workspaces. ## Tools 1. `slack_list_channels` - - List public channels in the workspace + - List public or pre-defined channels in the workspace - Optional inputs: - `limit` (number, default: 100, max: 200): Maximum number of channels to return - `cursor` (string): Pagination cursor for next page @@ -102,7 +102,8 @@ Add the following to your `claude_desktop_config.json`: ], "env": { "SLACK_BOT_TOKEN": "xoxb-your-bot-token", - "SLACK_TEAM_ID": "T01234567" + "SLACK_TEAM_ID": "T01234567", + "SLACK_CHANNEL_IDS": "C01234567, C76543210" } } } @@ -124,17 +125,26 @@ Add the following to your `claude_desktop_config.json`: "SLACK_BOT_TOKEN", "-e", "SLACK_TEAM_ID", + "-e", + "SLACK_CHANNEL_IDS", "mcp/slack" ], "env": { "SLACK_BOT_TOKEN": "xoxb-your-bot-token", - "SLACK_TEAM_ID": "T01234567" + "SLACK_TEAM_ID": "T01234567", + "SLACK_CHANNEL_IDS": "C01234567, C76543210" } } } } ``` +### Environment Variables + +1. `SLACK_BOT_TOKEN`: Required. The Bot User OAuth Token starting with `xoxb-`. +2. `SLACK_TEAM_ID`: Required. Your Slack workspace ID starting with `T`. +3. `SLACK_CHANNEL_IDS`: Optional. Comma-separated list of channel IDs to limit channel access (e.g., "C01234567, C76543210"). If not set, all public channels will be listed. + ### Troubleshooting If you encounter permission errors, verify that: From 98b9457a6d85325ba7a6633638b1af960fdd8a05 Mon Sep 17 00:00:00 2001 From: Jonathan Wang <229140959@qq.com> Date: Fri, 11 Apr 2025 11:43:56 +0800 Subject: [PATCH 06/10] Add resource mcpm --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a7962b4e..5ae70b96 100644 --- a/README.md +++ b/README.md @@ -420,6 +420,7 @@ Additional resources on MCP. - **[mcp-cli](https://github.com/wong2/mcp-cli)** - A CLI inspector for the Model Context Protocol by **[wong2](https://github.com/wong2)** - **[mcp-get](https://mcp-get.com)** - Command line tool for installing and managing MCP servers by **[Michael Latman](https://github.com/michaellatman)** - **[mcp-guardian](https://github.com/eqtylab/mcp-guardian)** - GUI application + tools for proxying / managing control of MCP servers by **[EQTY Lab](https://eqtylab.io)** +- **[mcpm](https://github.com/pathintegral-institute/mcpm.sh)** ([website](https://mcpm.sh)) - MCP Manager (MCPM) is a Homebrew-like service for managing Model Context Protocol (MCP) servers across clients by **[Pathintegral](https://github.com/pathintegral-institute)** - **[mcp-manager](https://github.com/zueai/mcp-manager)** - Simple Web UI to install and manage MCP servers for Claude Desktop by **[Zue](https://github.com/zueai)** - **[MCPHub](https://github.com/Jeamee/MCPHub-Desktop)** – An Open Source MacOS & Windows GUI Desktop app for discovering, installing and managing MCP servers by **[Jeamee](https://github.com/jeamee)** - **[mcp.natoma.id](https://mcp.natoma.id)** - A Hosted MCP Platform to discover, install, manage and deploy MCP servers by **[Natoma Labs](https://www.natoma.id)** From 9655d471f7df25fc2c48e4c8a34bac864beb8347 Mon Sep 17 00:00:00 2001 From: cliffhall Date: Mon, 14 Apr 2025 17:13:11 -0400 Subject: [PATCH 07/10] Add periodic stderr messages. In everything.ts - add a 10 second interval for sending 'notifications/stderr' messages to the client This was created in order to test the display and clearing of stderr messages in the client. - see https://github.com/modelcontextprotocol/inspector/pull/286 --- src/everything/everything.ts | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/everything/everything.ts b/src/everything/everything.ts index cee1e731..d0a2ffb3 100644 --- a/src/everything/everything.ts +++ b/src/everything/everything.ts @@ -114,8 +114,9 @@ export const createServer = () => { let subscriptions: Set = new Set(); let subsUpdateInterval: NodeJS.Timeout | undefined; - // Set up update interval for subscribed resources + let stdErrUpdateInterval: NodeJS.Timeout | undefined; + // Set up update interval for subscribed resources subsUpdateInterval = setInterval(() => { for (const uri of subscriptions) { server.notification({ @@ -154,6 +155,19 @@ export const createServer = () => { server.notification(message); }, 15000); + + // Set up update interval for stderr messages + stdErrUpdateInterval = setInterval(() => { + const shortTimestamp = new Date().toLocaleTimeString([], { + hour: '2-digit', + minute: '2-digit', + second: '2-digit' + }); server.notification({ + method: "notifications/stderr", + params: { content: `${shortTimestamp}: A stderr message` }, + }); + }, 10000); + // Helper method to request sampling from client const requestSampling = async ( context: string, @@ -676,6 +690,7 @@ export const createServer = () => { const cleanup = async () => { if (subsUpdateInterval) clearInterval(subsUpdateInterval); if (logsUpdateInterval) clearInterval(logsUpdateInterval); + if (stdErrUpdateInterval) clearInterval(stdErrUpdateInterval); }; return { server, cleanup }; From 41fa29e21bf546f7098b9193c8b76ba48b46d7b5 Mon Sep 17 00:00:00 2001 From: cliffhall Date: Mon, 14 Apr 2025 17:32:33 -0400 Subject: [PATCH 08/10] Fix formatting --- src/everything/everything.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/everything/everything.ts b/src/everything/everything.ts index d0a2ffb3..1d47979a 100644 --- a/src/everything/everything.ts +++ b/src/everything/everything.ts @@ -162,7 +162,8 @@ export const createServer = () => { hour: '2-digit', minute: '2-digit', second: '2-digit' - }); server.notification({ + }); + server.notification({ method: "notifications/stderr", params: { content: `${shortTimestamp}: A stderr message` }, }); From 8c86f7aacf176f8526430c237dd163a6d4313757 Mon Sep 17 00:00:00 2001 From: yeonupark Date: Tue, 15 Apr 2025 23:03:53 +0900 Subject: [PATCH 09/10] Add SoccerDataAPI MCP Server --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4db157b7..19794890 100644 --- a/README.md +++ b/README.md @@ -353,6 +353,7 @@ A growing set of community-developed and maintained servers demonstrates various - **[Shopify](https://github.com/GeLi2001/shopify-mcp)** - MCP to interact with Shopify API including order, product, customers and so on. - **[Siri Shortcuts](https://github.com/dvcrn/mcp-server-siri-shortcuts)** - MCP to interact with Siri Shortcuts on macOS. Exposes all Shortcuts as MCP tools. - **[Snowflake](https://github.com/isaacwasserman/mcp-snowflake-server)** - This MCP server enables LLMs to interact with Snowflake databases, allowing for secure and controlled data operations. +- **[SoccerDataAPI](https://github.com/yeonupark/mcp-soccer-data)** - This MCP server provides real-time football match data based on the SoccerDataAPI. - **[Solana Agent Kit](https://github.com/sendaifun/solana-agent-kit/tree/main/examples/agent-kit-mcp-server)** - This MCP server enables LLMs to interact with the Solana blockchain with help of Solana Agent Kit by SendAI, allowing for 40+ protcool actions and growing - **[Spotify](https://github.com/varunneal/spotify-mcp)** - This MCP allows an LLM to play and use Spotify. - **[Starwind UI](https://github.com/Boston343/starwind-ui-mcp/)** - This MCP provides relevant commands, documentation, and other information to allow LLMs to take full advantage of Starwind UI's open source Astro components. From b8ecbe79de1cd4e73e29bf374139f5a651091eba Mon Sep 17 00:00:00 2001 From: cliffhall Date: Tue, 15 Apr 2025 10:52:34 -0400 Subject: [PATCH 10/10] Adjust intervals for outgoing demo messages - subscription updates: 10 seconds - logging messages: 20 seconds - stderr messages: 30 seconds --- src/everything/everything.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/everything/everything.ts b/src/everything/everything.ts index 1d47979a..b16d8395 100644 --- a/src/everything/everything.ts +++ b/src/everything/everything.ts @@ -124,7 +124,7 @@ export const createServer = () => { params: { uri }, }); } - }, 5000); + }, 10000); let logLevel: LoggingLevel = "debug"; let logsUpdateInterval: NodeJS.Timeout | undefined; @@ -153,7 +153,7 @@ export const createServer = () => { }; if (!isMessageIgnored(message.params.level as LoggingLevel)) server.notification(message); - }, 15000); + }, 20000); // Set up update interval for stderr messages @@ -167,7 +167,7 @@ export const createServer = () => { method: "notifications/stderr", params: { content: `${shortTimestamp}: A stderr message` }, }); - }, 10000); + }, 30000); // Helper method to request sampling from client const requestSampling = async (