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

data-connector-mcp-service

Utility for querying, manipulating, and introspecting data housed in remote CData AI environments via SQL, featuring stored procedure invocation and seamless integration into advanced machine learning pipelines.

Author

data-connector-mcp-service logo

CDataSoftware

No License

Quick Info

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

Tags

apisconnectcloudcloudcdatasoftware connectcloudai workflowsdata sources

🚀 CData Connect AI Model Context Server (MCP)

Runtime Environment License Type Containerization Support Platform Link Server Registry

📣 Now Featuring Connect AI Native Server 📣

Connect AI (formerly Connect Cloud) natively embeds an MCP Server utilizing the Streamable HTTP transport mechanism. Full documentation available at CData AI portal.

This repository also supports conventional local deployment using the STDIO transport mode.


This implementation serves as a Model Context Protocol (MCP) service layer, facilitating secure data access and manipulation for AI agents leveraging the CData Connect AI infrastructure. It permits agents to issue standard SQL commands, examine database structures, and trigger defined procedures.


✨ Core Capabilities

  • ✅ Execute arbitrary SQL queries against provisioned data endpoints
  • 🔄 Facilitate bulk data modifications (DML: INSERT, UPDATE, DELETE)
  • ⚙️ Initiate execution of pre-compiled database routines (Stored Procedures)
  • 📚 Comprehensive access to schema artifacts: catalogs, namespaces, tables, and field definitions

🛠 System Requirements

  • Runtime: Node.js version 18 or newer
  • Backend Access: An active CData Connect Cloud account with authorized API credentials
  • Authentication Key: A valid Personal Access Token (PAT)

⚙️ Deployment Guide

Installation via Smithery (Automated)

Deploy the CData Connect AI MCP Server to Claude Desktop automatically using Smithery:

bash npx -y @smithery/cli install @CDataSoftware/connectcloud-mcp-server --client claude

Manual Setup

  1. Repository Cloning

bash git clone https://github.com/cdatasoftware/connectcloud-mcp-server.git cd connect-cloud-mcp-server

  1. Dependency Fetching

bash npm install

  1. Configuration File Generation

Generate a .env configuration file detailing necessary credentials:

env CDATA_USERNAME=your_registered_username CDATA_PAT=your_secure_personal_access_token

# Optional Tuning Parameters LOG_ENABLED=false LOG_LEVEL=info CDATA_URL=https://your-custom-test-endpoint

# Transport Selection (default: http) TRANSPORT_TYPE=http # Use 'stdio' for console piping PORT=3000 # Network listener port HOST=localhost # Network listener interface


▶️ Service Execution

Development Workflow

Utilize ts-node for real-time code iteration:

bash npm run dev

Production Deployment

Compile assets then launch:

bash npm run build npm start

HTTP Communication Interfaces

When operating in HTTP mode (the default), the service exposes these network endpoints:

  • Primary MCP Channel: http://localhost:3000/mcp - The main endpoint adhering to the MCP specification
  • Raw RPC Channel: http://localhost:3000/direct - A JSON-RPC interface bypassing session logic
  • Discovery Manifest: http://localhost:3000/.well-known/mc/manifest.json - Metadata for protocol discovery

Utilizing STDIO Communication

To pipe input/output directly to the terminal process:

bash TRANSPORT_TYPE=stdio npm start


🔍 Validation via MCP Inspector

The MCP Inspector provides an essential GUI and CLI environment for validating server responsiveness. Full integration support is built into this project.

Initial Configuration Check

Execute the setup validation utility:

bash npm run validate:inspector

This script verifies credentials and outputs detailed setup guidance.

Quick Start with the Inspector Interface

  1. Global Inspector Installation (Recommended): bash npm install -g @modelcontextprotocol/inspector

  2. Launch Web UI: bash npm run inspector

This opens a browser window allowing selection and testing across configured transport methods.

Testing Different Connection Modes

STDIO Mode Test

bash

Launches inspector, automatically starting the server via STDIO

npm run inspector:stdio

HTTP Mode Test (Requires two terminals)

bash

Terminal 1: Start the server

npm run dev:http

Terminal 2: Launch inspector connected to the running HTTP server

npm run inspector:http

Command Line Verification

bash

Fast CLI testing using STDIO transport

npm run inspector:cli

Execute automated regression tests for inspector connectivity

npm run test:inspector

Inspector Configuration File Details

The included mcp-inspector.json predefines several connection profiles for ease of use:

  • connectcloud-stdio: Automatically starts the server via STDIO interface
  • connectcloud-http: Connects to a manually running HTTP server instance

Available Testing Scripts

Command Functionality
npm run inspector Opens the interactive web interface for server selection
npm run inspector:stdio Direct launch using STDIO transport mode
npm run inspector:http Direct launch targeting the HTTP transport
npm run inspector:cli Execute testing directly in the console (CLI mode)
npm run test:inspector Runs non-interactive automated verification suite

🧰 Exposed Data Manipulation Functions

🔹 Data Access & Modification

Function Name Purpose
queryData Execute declarative Structured Query Language (SQL) statements
execData Invoke stored routines and procedures

🔹 Schema Navigation

Function Name Purpose
getCatalogs Retrieve the root organizational units
getSchemas List all namespaces within a specified catalog
getTables Enumerate tables residing in a given namespace
getColumns Fetch attribute definitions for a specific table
getPrimaryKeys Identify the unique constraint columns
getIndexes Obtain structural information regarding table indexes
getImportedKeys Detail referencing foreign key constraints
getExportedKeys Detail referenced foreign key constraints
getProcedures List accessible database functions/routines
getProcedureParameters Detail input and output signatures for routines

🤖 Interaction with Large Language Models (LLMs)

This service layer adheres strictly to the Model Context Protocol, ensuring compatibility with any compliant AI agent framework.

Example: TypeScript Agent Invocation

ts const result = await agent.generateContent({ tools: [ { name: "queryData", parameters: { query: "SELECT CustomerName FROM CRM.CustomerBase WHERE Region = 'EMEA'" } } ] });


🐳 Containerized Operation

Image Creation

Build the requisite Docker artifact:

bash docker build -t mcp/connectcloud:latest -f Dockerfile .


🧩 Integration with Claude Desktop

To integrate this service into your local Claude Desktop instance, update the mcpServers section within your claude_desktop_config.json file as follows:

Option 1: Launching from a Docker Container

{ "mcpServers": { "connect-cloud": { "command": "docker", "args": [ "run", "-i", "--rm", "--name", "connect-cloud-mcp", "-e", "CDATA_USERNAME", "-e", "CDATA_PAT", "mcp/connectcloud" ], "env": { "CDATA_USERNAME": "", "CDATA_PAT": "" } } } }

Option 2: Invoking via Npx

{ "mcpServers": { "connect-cloud": { "command": "npx", "args": [ "-y", "@cdatasoftware/connectcloud-mcp-server"], "env": { "CDATA_USERNAME": "", "CDATA_PAT": "" } } } }


📄 Licensing Information

This software is distributed under the terms of the MIT License.

BACKGROUND: The XMLHttpRequest (XHR) object provides a JavaScript interface for performing HTTP operations asynchronously between a browser client and a remote web server. Its primary methods enable applications loaded in the browser to exchange data with the server post-initial page render, forming the backbone of Asynchronous JavaScript and XML (Ajax) patterns. Previously, server interaction relied primarily on full page reloads triggered by form submissions or link navigation.

== Developmental Trajectory == The conceptual foundation for XHR was established around 2000 by Microsoft engineers developing the Outlook Web Access interface. Its initial implementation appeared in Internet Explorer 5 (1999), though it used proprietary COM object instantiation syntax (e.g., ActiveXObject("Msxml2.XMLHTTP")). By the release of Internet Explorer 7 (2006), standardized naming conventions had achieved universal adoption across all major browser engines, including Mozilla's Gecko (2002), Safari 1.2 (2004), and Opera 8.0 (2005).

=== Standardization Process === The World Wide Web Consortium (W3C) initiated the formal specification effort for the XMLHttpRequest object on April 5, 2006, releasing a Working Draft. A subsequent Level 2 specification followed on February 25, 2008, introducing capabilities for tracking request progress, enabling cross-origin requests (CORS), and processing data as raw byte streams. By late 2011, these Level 2 enhancements were merged back into the primary specification document. Development responsibility transitioned to the WHATWG near the end of 2012, where it is now maintained as a continuously evolving document described using Web IDL.

== Operational Sequence == Executing an HTTP request using XMLHttpRequest generally involves a defined sequence of programmatic steps:

  1. Object Instantiation: Create an instance of the XMLHttpRequest object via its constructor.
  2. Configuration (open): Invoke the open method to define the communication verb (GET, POST, etc.), specify the target resource URI, and select either synchronous or asynchronous execution mode.
  3. Event Handling: For asynchronous operations, attach a callback function (listener) to monitor changes in the request's state.
  4. Transmission (send): Activate the request by calling the send method, optionally passing payload data to the server.
  5. Response Processing: The registered listener handles state transitions. Upon completion (state 4, the "done" state), the retrieved data is typically available in the responseText property. Beyond these fundamentals, XHR offers extensive control mechanisms. Custom HTTP headers can be injected to dictate server behavior. Data can be uploaded synchronously within the send call. Responses, especially those in JSON format, can be automatically parsed into native JavaScript objects, or streamed incrementally instead of waiting for total receipt. Requests can also be prematurely terminated or set with timeout constraints.

See Also

`