logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

cdata-slack-data-access-mcp-gateway

Implements a read-only Model Context Protocol (MCP) endpoint facilitating conversational, natural language interrogation of live Slack workspace data, eliminating the prerequisite for users to possess SQL proficiency.

Author

cdata-slack-data-access-mcp-gateway logo

CDataSoftware

MIT License

Quick Info

GitHub GitHub Stars 0
NPM Weekly Downloads 0
Tools 1
Last Updated 2026-02-19

Tags

slackcdatasoftwareapiscdatasoftware slackslack datainformation slack

CData's Model Context Protocol (MCP) Server for Slack Integration

:heavy_exclamation_mark: This implementation provides strictly read-only access to the MCP service. For complete CRUD (Create, Read, Update, Delete) functionalities and a streamlined deployment experience, users are encouraged to explore the complimentary CData MCP Server for Slack (beta release).

Primary Objective

This read-only MCP Server was engineered specifically to permit Large Language Models (LLMs), such as Claude Desktop, to query real-time data residing within Slack workspaces. This capability is powered by the underlying CData JDBC Driver for Slack.

The CData JDBC Driver establishes a bridge to Slack, translating its native structure into a relational SQL-compatible model.

This server component encapsulates that driver, exposing Slack data via a straightforward MCP interface. Consequently, LLMs can retrieve up-to-the-minute data by posing queries in plain English—no explicit SQL statements are necessary.

Deployment Instructions

  1. Obtain the source code repository: bash git clone https://github.com/cdatasoftware/slack-mcp-server-by-cdata.git cd slack-mcp-server-by-cdata

  2. Compile the server binaries: bash mvn clean install

    This action generates the executable JAR file: CDataMCP-jar-with-dependencies.jar 3. Acquire and install the necessary CData JDBC Driver for Slack: https://www.cdata.com/drivers/slack/download/jdbc 4. License the CData JDBC Driver: * Navigate to the lib subdirectory within the driver's installation path (e.g., Windows: C:\Program Files\CData\CData JDBC Driver for Slack\ or Mac/Linux: /Applications/CData JDBC Driver for Slack/). * Execute the licensing command: java -jar cdata.jdbc.slack.jar --license * Input your credentials and use "TRIAL" or your registered license key. 5. Define the data source connection parameters: * Execute java -jar cdata.jdbc.slack.jar to launch the Connection String configuration utility.

    • Configure the necessary connection string details and validate it using "Test Connection".

      Crucial Note: If OAuth is required by the data source, browser-based authentication will be necessary.

    • Upon successful validation, capture and retain the generated connection string.
    • Forge a configuration file, typically with a .prp extension (e.g., slack.prp), specifying the following mandatory attributes:
    • Prefix: A designated namespace prefix for the exposed data interfaces.
    • ServerName: A unique identifier for this specific MCP server instance.
    • ServerVersion: The version designation for the server.
    • DriverPath: The absolute filesystem location of the JDBC driver JAR file.
    • DriverClass: The fully qualified name of the JDBC Driver implementation class (e.g., cdata.jdbc.slack.SlackDriver).
    • JdbcUrl: The connection string obtained in the preceding step, used by the CData JDBC Driver to link to Slack.
    • Tables: If left empty, all available data structures are exposed. Otherwise, list the specific tables intended for access. env Prefix=slack ServerName=CDataSlack ServerVersion=1.0 DriverPath=PATH\TO\cdata.jdbc.slack.jar DriverClass=cdata.jdbc.slack.SlackDriver JdbcUrl=jdbc:slack:InitiateOAuth=GETANDREFRESH; Tables=

Integration with LLM Clients (e.g., Claude Desktop)

  1. Prepare the client configuration file (e.g., claude_desktop_config.json) to incorporate the new MCP service endpoint. If the file exists, append the new entry to the mcpServers object.

    Windows Configuration Snippet

    { "mcpServers": { "{classname_dash}": { "command": "PATH\TO\java.exe", "args": [ "-jar", "PATH\TO\CDataMCP-jar-with-dependencies.jar", "PATH\TO\slack.prp" ] }, ... } }

    Linux/Mac Configuration Snippet

    { "mcpServers": { "{classname_dash}": { "command": "/PATH/TO/java", "args": [ "-jar", "/PATH/TO/CDataMCP-jar-with-dependencies.jar", "/PATH/TO/slack.prp" ] }, ... } }

    If necessary, relocate this configuration file to the client application's designated settings folder (e.g., Claude Desktop): Windows Relocation bash cp C:\PATH\TO\claude_desktop_config.json %APPDATA%\Claude\claude_desktop_config.json

    Linux/Mac Relocation bash cp /PATH/TO/claude_desktop_config.json /Users/{user}/Library/Application\ Support/Claude/claude_desktop_config.json'

  2. Relaunch or refresh the LLM client application.

Advisory: A complete termination and restart of the client application (e.g., force-quitting via Task Manager/Activity Monitor) is frequently required for newly defined MCP Servers to become active.

Independent Server Execution

  1. The server can be initiated standalone using the following command structure: bash java -jar /PATH/TO/CDataMCP-jar-with-dependencies.jar /PATH/TO/Salesforce.prp

    Constraint: Operation relies on stdio for communication, meaning it is only viable for clients executing on the identical host machine as the server process.

Operational Guidance

Once the MCP Server is successfully integrated into the client's configuration, the AI system can access the underlying data structure via its provided tools for retrieval operations. Typically, explicit invocation of these tools is unnecessary; instructing the client naturally about the required data yields the result. For instance: * "Determine the relationship metric between successfully closed opportunities and the associated account sector." * "Tally the volume of outstanding support requests within the 'SUPPORT' organizational unit." * "List all scheduled engagements for the present solar day."

The available instrumentation and their associated functions are detailed subsequently. In these descriptions, {servername} denotes the identifier assigned to the MCP Server within the configuration file (e.g., {classname_dash}).

Tool Set & Function Definitions

  • {servername}_get_tables: Fetches a complete enumeration of accessible data structures in the source system. Follow up with the {servername}_get_columns tool to inspect schema details. Output is delivered in CSV format, including a header row.
  • {servername}_get_columns: Retrieves the attribute list for a specified data entity. Precede this call by using {servername}_get_tables to identify valid entities. Output is delivered in CSV format, including a header row.
  • {servername}_run_query: Executes arbitrary SQL SELECT statements against the underlying data store.

JSON-RPC Invocation Examples

For scenarios involving programmatic tool calling, bypassing the natural language interface (e.g., direct scripting rather than using Claude), reference the JSON payload blueprints below. These adhere to the JSON-RPC 2.0 specification:

slack_get_tables Example

{ "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "slack_get_tables", "arguments": {} } }

slack_get_columns Example

{ "jsonrpc": "2.0", "id": 2, "method": "tools/call", "params": { "name": "slack_get_columns", "arguments": { "table": "Account" } } }

slack_run_query Example

{ "jsonrpc": "2.0", "id": 3, "method": "tools/call", "params": { "name": "slack_run_query", "arguments": { "sql": "SELECT * FROM [Account] WHERE [IsDeleted] = true" } } }

Debugging Common Issues

  1. If the CData MCP Server fails to materialize within the host client (e.g., Claude Desktop), confirm the client application has been completely terminated (use system monitoring tools to verify process closure).
  2. If data retrieval is unsuccessful, re-validate the connection string configuration. Utilize the dedicated builder utility to construct the string precisely and ensure it is correctly placed within the configuration (.prp) file.
  3. For connectivity failures to the external data source, direct your inquiry to the CData Support Portal.
  4. For issues related to the MCP server functionality itself or general feedback, participate in the CData User Forum.

Licensing Agreement

This MCP server distribution is governed by the MIT License. This permits broad freedom to utilize, modify, and redistribute the software, contingent upon adherence to the MIT License stipulations. Detailed terms are available within the repository's LICENSE file.

Comprehensive Data Source Support Index

(Table showing hundreds of supported data connectors, including Access, Salesforce, SQL Server, Google services, etc., culminating in ... Dozens More)

WIKIPEDIA CONTEXT: XMLHttpRequest (XHR) is an established application programming interface represented as a JavaScript object. Its methods facilitate the transmission of HTTP requests from a web browser to a backend server. This enables browser-based applications to dispatch asynchronous requests post-page load and receive subsequent data. XHR is foundational to the Ajax paradigm. Historically, prior to Ajax, interaction with servers predominantly relied on traditional page refreshes triggered by form submissions or hyperlink navigation. The concept originated in 2000 via Microsoft Outlook developers and was first manifested in Internet Explorer 5 (1999) using non-standard ActiveX identifiers. By Internet Explorer 7 (2006), the standardized XMLHttpRequest identifier became universally supported across major browser engines (Gecko, Safari, Opera). The W3C formalized the object specification in 2006, later evolving into Level 2 features like byte stream handling and cross-site request allowance, which were eventually merged back. Development oversight transitioned to WHATWG, maintaining a living standard document.

See Also

`