CData Arc MCP Server
Enables AI assistants to manage CData Arc connectors, files, transactions, workspaces, and administrative actions through natural language interactions via the Arc Admin API.
README
CData Arc MCP Server
A comprehensive Model Context Protocol (MCP) server that enables AI assistants like Claude to manage CData Arc flows, messages, and application behavior through natural language interactions. Built with TypeScript and the MCP SDK, providing secure access to Arc's Admin API.
🚀 Overview
This MCP server provides complete administrative access to your CData Arc instance through natural language interactions. Claude can now create connectors, monitor transactions, manage configurations, troubleshoot issues, and perform administrative actions using conversational commands.
🛠️ Available Tools
Connector Management (7 tools)
list_connectors- List Arc connectors with filtering and paginationget_connector- Get detailed information about a specific connectorcreate_connector- Create new connectors with custom configurationupdate_connector- Update existing connector settingsdelete_connector- Remove connectors permanentlyreceive_file- Trigger file receive operations for connectorssend_file- Trigger file send operations for connectors
File & Message Management (7 tools)
list_files- List processed files with filtering and paginationget_file- Get detailed information about specific filescreate_file- Create new files with custom metadataupdate_file- Update existing file metadata and contentdelete_file- Remove files permanentlyget_files_by_connector- List all files for a specific connectorget_recent_files- View recently processed files across all connectors
Transaction & Log Management (9 tools)
list_logs- List Arc logs with level and category filteringget_log- Get detailed log entry informationcreate_log- Create new log entriesdelete_log- Remove log entrieslist_transactions- List processing transactions with status filteringget_transaction- Get detailed transaction informationget_recent_transactions- View recent transactions with status summaryget_message_count- Get count of unsent messages by connector and workspaceget_transaction_logs- Retrieve detailed transaction log files and content
Workspace Management (4 tools)
list_workspaces- List all workspaces with comprehensive property displayget_workspace- Get detailed workspace configuration and settingscreate_workspace- Create new workspaces with custom configurationupdate_workspace- Update workspace settings including email, S3, cleanup, and performance options
Certificate Management (6 tools)
list_certificates- List Arc certificates with filtering and paginationget_certificate- Get detailed information about a specific certificatecreate_certificate- Create new certificates with custom configurationdelete_certificate- Remove certificates permanentlycreate_cert- Generate new public/private certificate key pairsexchange_cert- Exchange certificates for AS2/OFTP protocols with partners
Vault Management (4 tools)
list_vault_items- List vault items with filtering and paginationget_vault_item- Get detailed information about specific vault itemscreate_vault_item- Create new vault entries for secure storagedelete_vault_item- Remove vault items permanently
Report Management (3 tools)
list_reports- List available reports with filtering optionsget_report- Get detailed report information and configurationdelete_report- Remove reports permanently
Request Monitoring (2 tools)
list_requests- List API requests with filtering and paginationget_request- Get detailed information about specific API requests
Administrative Actions (6 tools)
cleanup_files- Clean up log files for specified workspaces and connectorsexport_settings- Export connector settings and workspace configuration to arcflow formatimport_settings- Import partner/connector profiles from arcflow datacopy_connector- Copy connector configurations between workspacescopy_workspace- Copy entire workspaces with all connectorsset_flow- Configure connector flow connections within a workspace
Profile & Configuration Management (2 tools)
get_profile- View Arc application profile and settingsupdate_profile- Update logging, email notifications, SMTP, SSO, and syslog configuration
🏗️ Architecture
Core Components
ArcApiClient- Handles HTTP communication with Arc Admin API with comprehensive error handling- Tool Modules - Organized by functionality (connectors, files, logs, profile, certificates, actions, etc.)
- Type Definitions - Complete TypeScript interfaces for all Arc entities and API operations
- Dual Transport - Supports both stdio and HTTP transports
Key Features
- 🔐 Secure Authentication - Bearer token and Basic Auth support
- 🔍 Rich Filtering - OData-style query parameters with advanced filtering
- 📊 Smart Formatting - User-friendly output with comprehensive details and status information
- ⚡ Error Handling - Comprehensive error handling with detailed API error parsing
- 🔄 Real-time Data - Live access to Arc instance data with proper OData response handling
- 🎯 OData Compatibility - Proper handling of OData responses and empty result sets
- 🚀 Action Support - Administrative actions like cleanup, export/import, and flow configuration
📦 Installation
-
Clone the repository:
git clone https://github.com/your-username/cdata-arc-mcp-server.git cd cdata-arc-mcp-server -
Install dependencies:
npm install -
Build the TypeScript code:
npm run build
This creates the compiled JavaScript files in the dist/ directory that Claude Desktop needs to run the MCP server.
⚙️ Configuration
Claude Desktop Configuration
Add to your Claude Desktop claude_desktop_config.json:
{
"mcpServers": {
"cdata-arc-server": {
"command": "node",
"args": ["C:/path/to/cdata-arc-mcp-server/dist/index.js"],
"env": {
"CDATA_BASE_URL": "http://localhost:8001/api.rsc",
"CDATA_AUTH_TOKEN": "your-api-token-here"
}
}
}
}
Important Configuration Notes:
- Use forward slashes
/or escaped backslashes\\in Windows paths - Replace
localhost:8001with your actual CData Arc instance URL - Ensure the
dist/index.jsfile exists by runningnpm run buildfirst - Restart Claude Desktop after making configuration changes
Environment Variables
Required:
CDATA_BASE_URL: Base URL for your CData Arc instance (e.g.,http://localhost:8001/api.rsc)CDATA_AUTH_TOKEN: Your authtoken for your CData Arc instance (e.g.,username:1234567890) Optional:MCP_TRANSPORT_MODE: Transport mode -stdio(default) orhttpMCP_HTTP_PORT: Port for HTTP transport (default:3000)
Transport Modes
This MCP server supports two communication modes:
STDIO Mode (Default)
- How it works: Claude Desktop launches the server as a child process and communicates via standard input/output
- When to use: Normal operation with Claude Desktop (recommended)
- Configuration: Claude Desktop handles starting/stopping the server automatically
- Testing: Use
npm run startto test the server manually in stdio mode (it will wait for JSON-RPC messages on stdin)
HTTP Mode
- How it works: MCP server runs as a standalone HTTP service with a health check endpoint
- When to use: Designed for server deployments and monitoring
- Current limitations:
- Only supports plaintext HTTP (SSL/TLS support planned for future release)
- Only
/healthendpoint currently available (MCP protocol endpoints coming soon) - Not compatible with Claude Desktop remote connections (requires HTTPS and SSE endpoints)
- Configuration: Set
MCP_TRANSPORT_MODE=httpand optionallyMCP_HTTP_PORT=3000 - Testing: Use
npm run start:httpwith environment variables, then test the health endpoint athttp://localhost:3000/health
🚦 Getting Started
-
Install dependencies and build the server:
npm install npm run build -
Configure your Arc instance URL and authentication token in environment variables or Claude Desktop config
-
Add the MCP server to your Claude Desktop configuration file
-
Restart Claude Desktop to load the new MCP server
-
Start chatting with Claude about your Arc instance! Try commands like:
- "Show me all connectors in the default workspace"
- "Get the recent transactions for the past hour"
- "Clean up log files older than 30 days"
- "Export the connector settings for workspace 'production'"
Quick Start Commands
# Install and build
npm install
npm run build
# Run in development mode with file watching
npm run dev
# Start the server directly (for testing)
npm run start
🔧 Development
Available Scripts
npm run dev # Development mode with file watching and auto-restart
npm run build # Build TypeScript to JavaScript
npm run start # Start server in stdio mode (for manual testing - Claude Desktop normally handles this)
npm run start:http # Start server in HTTP mode on the port defined by `MCP_HTTP_PORT`
npm run typecheck # Type checking only
Project Structure
src/
├── index.ts # Main server entry point
├── services/
│ └── arc-client.ts # Arc API client with comprehensive error handling
├── tools/
│ ├── connector-tools.ts # Connector management and file operations
│ ├── monitoring-tools.ts # Logs, transactions, and message monitoring
│ ├── workspace-tools.ts # Workspace management operations
│ ├── certificate-tools.ts # Certificate creation and exchange
│ ├── vault-tools.ts # Vault/secrets management
│ ├── report-tools.ts # Report management
│ ├── request-tools.ts # API request monitoring
│ ├── action-tools.ts # Administrative actions (cleanup, export/import)
│ └── config-tools.ts # Profile and configuration management
├── types/
│ └── arc-api.ts # Complete TypeScript type definitions
└── admin_api_swagger.json # OpenAPI specification
🐛 Troubleshooting
Common Issues
-
Connection errors
- Verify
CDATA_BASE_URLis correct and CData Arc instance is running - Check
CDATA_AUTH_TOKENis valid and has proper permissions - Ensure the API endpoint
/api.rscis accessible
- Verify
-
Tool not found errors
- Run
npm run buildto ensure TypeScript is compiled - Restart Claude Desktop after configuration changes
- Check that all file paths in configuration use forward slashes or escaped backslashes
- Run
-
Authentication errors
- Test API access directly:
curl -H "x-cdata-authtoken: YOUR_TOKEN" http://localhost:8001/api.rsc/connectors - Verify token has admin-level permissions for all operations
- Test API access directly:
-
Empty or error responses
- Check Arc instance logs for detailed error information
- Verify workspace and connector IDs exist and are spelled correctly
- Some endpoints return empty results when no data matches the criteria
Debug Mode
Set NODE_ENV=development for additional debug logging:
{
"mcpServers": {
"cdata-arc-server": {
"command": "node",
"args": ["C:/path/to/dist/index.js"],
"env": {
"CDATA_BASE_URL": "http://localhost:8001/api.rsc",
"CDATA_AUTH_TOKEN": "your-token",
"NODE_ENV": "development"
}
}
}
}
📄 OpenAPI Integration
The server includes a complete OpenAPI specification (admin_api_swagger.json) with:
- All API endpoints used by the MCP tools
- Proper schema definitions with comprehensive type information
- OData-compliant request/response formats
- Authentication and error handling specifications
- Action endpoints for administrative operations
🤝 Contributing
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes and add tests if applicable
- Ensure code passes linting:
npm run lint - Build and test:
npm run build && npm run test - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
📝 License
MIT License - see LICENSE file for details.
🔗 Related Links
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。