A Model Context Protocol (MCP) server for querying and managing data through CData Connect Cloud. This server enables AI agents to interact with data using SQL, metadata introspection, and procedure execution.
- ✅ Execute SQL queries on cloud-connected data sources
- 🔄 Perform batch operations (INSERT, UPDATE, DELETE)
- ⚙️ Execute stored procedures
- 📚 Access metadata (catalogs, schemas, tables, columns)
- Node.js v18 or higher
- A CData Connect Cloud account with API access
- A Personal Access Token (PAT) for authentication
To install CData Connect Cloud MCP Server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @CDataSoftware/connectcloud-mcp-server --client claude
-
Clone the repository
git clone https://github.com/cdatasoftware/connectcloud-mcp-server.git cd connect-cloud-mcp-server
-
Install dependencies
npm install
-
Configure environment variables
Create a
.env
file with the following content:CDATA_USERNAME=your_username CDATA_PAT=your_personal_access_token # Optional Configuration LOG_ENABLED=false LOG_LEVEL=info CDATA_URL=https://your-test-environment-url # Transport Configuration (default: http) TRANSPORT_TYPE=http # or 'stdio' for terminal usage PORT=3000 # HTTP server port HOST=localhost # HTTP server host
Use ts-node
for live development:
npm run dev
Build and start:
npm run build
npm start
When running with HTTP transport (default), the server provides these endpoints:
- MCP Endpoint:
http://localhost:3000/mcp
- Primary Model Context Protocol endpoint - Direct Endpoint:
http://localhost:3000/direct
- Direct JSON-RPC endpoint without session management - Manifest:
http://localhost:3000/.well-known/mc/manifest.json
- MCP discovery manifest
To use STDIO transport instead (for terminal/CLI usage):
TRANSPORT_TYPE=stdio npm start
The MCP Inspector is a visual testing tool that provides both a web UI and CLI interface for testing MCP servers. This project includes full support for the inspector.
Run the setup validation script to ensure everything is configured correctly:
npm run validate:inspector
This will check your configuration and provide detailed setup instructions.
-
Install the inspector globally (optional but recommended):
npm install -g @modelcontextprotocol/inspector
-
Launch inspector with web UI:
npm run inspector
This opens a web interface where you can select and test different transport configurations.
# Launch inspector with STDIO transport (starts server automatically)
npm run inspector:stdio
# Start the server first
npm run dev:http
# Then in another terminal, launch inspector
npm run inspector:http
# Quick CLI testing with STDIO transport
npm run inspector:cli
# Test specific methods directly
npm run test:inspector
The project includes a mcp-inspector.json
configuration file with pre-configured server setups:
- connectcloud-stdio: STDIO transport with automatic server startup
- connectcloud-http: Streamable HTTP transport (requires manual server start)
Script | Description |
---|---|
npm run inspector |
Launch inspector web UI with server selection |
npm run inspector:stdio |
Launch inspector with STDIO transport |
npm run inspector:http |
Launch inspector with HTTP transport |
npm run inspector:cli |
CLI mode with STDIO transport |
npm run test:inspector |
Quick automated test |
Tool | Description |
---|---|
queryData |
Execute SQL queries |
execData |
Execute stored procedures |
Tool | Description |
---|---|
getCatalogs |
Retrieve available catalogs |
getSchemas |
List schemas in a catalog |
getTables |
List tables in a schema |
getColumns |
Get column metadata for a table |
getPrimaryKeys |
Retrieve primary keys for tables |
getIndexes |
Get index information for tables |
getImportedKeys |
Retrieve foreign key columns that reference tables |
getExportedKeys |
Retrieve foreign key columns referenced from tables |
getProcedures |
List available procedures |
getProcedureParameters |
Get procedure input/output params |
This server is compatible with AI agents that implement the Model Context Protocol.
const response = await agent.generateContent({
tools: [
{
name: "queryData",
parameters: {
query: "SELECT * FROM Salesforce1.Salesforce.Account LIMIT 10"
}
}
]
});
docker build -t mcp/connectcloud:latest -f Dockerfile .
Add or edit this configuration to your claude_desktop_config.json
under the mcpServers
section:
{
"mcpServers": {
"connect-cloud": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"--name", "connect-cloud-mcp",
"-e", "CDATA_USERNAME",
"-e", "CDATA_PAT",
"mcp/connectcloud"
],
"env": {
"CDATA_USERNAME": "<your-cdata-username>",
"CDATA_PAT": "<your-cdata-personal-access-token>"
}
}
}
}
{
"mcpServers": {
"connect-cloud": {
"command": "npx",
"args": [
"-y",
"@cdatasoftware/connectcloud-mcp-server"],
"env": {
"CDATA_USERNAME": "<your-cdata-username>",
"CDATA_PAT": "<your-cdata-personal-access-token>"
}
}
}
}
This project is licensed under the MIT License.