Skip to main content
Glama

CX TimeFilter MCP Server

by shashi29vs
README.mdโ€ข6.32 kB
# CX TimeFilter MCP Server A **Model Context Protocol (MCP) server** providing time filter tools for CX Dashboard. This server exposes time filtering functionality that can be used by any MCP-compatible client, including Langflow. ## ๐ŸŽฏ **Features** - **Set Predefined Time Periods**: Last Month, Last 7 days, This Quarter, etc. - **Set Custom Date Ranges**: Specify exact start and end dates - **List Available Periods**: Get all supported time periods - **HTTP-based MCP Protocol**: Easy integration with any MCP client - **Optional Authentication**: API key protection - **Comprehensive Validation**: Input validation and error handling ## ๐Ÿš€ **Quick Start** ### **1. Installation** ```bash # Clone or create the project directory mkdir cx-timefilter-mcp-server cd cx-timefilter-mcp-server # Install dependencies npm install ``` ### **2. Configuration** ```bash # Copy environment template cp env.example .env # Edit .env file PORT=3000 NODE_ENV=development MCP_API_KEY=your-secret-api-key-here ALLOWED_ORIGINS=http://localhost:3001,https://your-langflow-instance.com ``` ### **3. Run the Server** ```bash # Development mode npm run dev # Production mode npm start # Run tests npm test ``` ### **4. Verify Installation** ```bash # Health check curl http://localhost:3000/health # List available tools curl http://localhost:3000/mcp/tools # Test a tool (with API key if configured) curl -X POST http://localhost:3000/mcp/tools/call \ -H "Content-Type: application/json" \ -H "Authorization: Bearer your-api-key" \ -d '{ "name": "set_time_period", "arguments": { "timePeriodName": "Last Month", "tabName": "Overview" } }' ``` ## ๐Ÿ› ๏ธ **Available Tools** ### **1. set_time_period** Set a predefined time period for dashboard tabs. **Parameters:** - `timePeriodName` (string): Exact name of the time period - `tabName` (string): Dashboard tab name **Example:** ```json { "name": "set_time_period", "arguments": { "timePeriodName": "Last Month", "tabName": "Overview" } } ``` ### **2. set_custom_date_range** Set a custom date range with specific start and end dates. **Parameters:** - `startDate` (string): Start date in YYYY-MM-DD format - `endDate` (string): End date in YYYY-MM-DD format - `tabName` (string): Dashboard tab name **Example:** ```json { "name": "set_custom_date_range", "arguments": { "startDate": "2024-01-01", "endDate": "2024-01-31", "tabName": "Comparison" } } ``` ### **3. list_time_periods** List all available predefined time periods. **Parameters:** None **Example:** ```json { "name": "list_time_periods", "arguments": {} } ``` ## ๐Ÿ”— **API Endpoints** | Endpoint | Method | Description | | ----------------- | ------ | -------------------------- | | `/health` | GET | Health check | | `/mcp/info` | GET | MCP protocol information | | `/mcp/tools` | GET | List available tools | | `/mcp/tools/call` | POST | Execute a tool | | `/mcp` | POST | Full MCP protocol endpoint | ## ๐Ÿ” **Authentication** The server supports optional API key authentication: 1. **Set API Key**: Add `MCP_API_KEY=your-secret-key` to `.env` 2. **Include in Requests**: Add `Authorization: Bearer your-secret-key` header 3. **Alternative Formats**: `ApiKey your-secret-key` or `Key your-secret-key` ## ๐ŸŒ **Langflow Integration** ### **Step 1: Add MCP Tools Component** 1. Open your Langflow project 2. Add an "MCP Tools" component 3. Configure the connection ### **Step 2: Configure Connection** ```json { "serverName": "CX TimeFilter Server", "connectionMode": "HTTP", "serverUrl": "http://localhost:3000", "apiKey": "your-api-key", "endpoints": { "tools": "/mcp/tools", "call": "/mcp/tools/call" } } ``` ### **Step 3: Use Tools in Flows** The tools will appear in Langflow and can be used in your AI workflows. ## ๐Ÿ“ฆ **Deployment** ### **Railway (Recommended)** ```bash # Install Railway CLI npm install -g @railway/cli # Login and deploy railway login railway init railway up ``` ### **Render** 1. Connect your GitHub repository 2. Set environment variables 3. Deploy automatically ### **Docker** ```dockerfile FROM node:18-alpine WORKDIR /app COPY package*.json ./ RUN npm install COPY . . EXPOSE 3000 CMD ["npm", "start"] ``` ## ๐Ÿงช **Testing** ```bash # Run built-in tests npm test # Manual testing with curl curl -X POST http://localhost:3000/mcp/tools/call \ -H "Content-Type: application/json" \ -d '{ "name": "list_time_periods", "arguments": {} }' ``` ## ๐Ÿ“Š **Supported Time Periods** **Calendar Periods:** - All Time, Today, Yesterday - This Week, Last Week - This Month, Last Month - This Quarter, Last Quarter - This Year, Last Year **Rolling Periods:** - Last 24 hours, Last 7 days, Last 14 days - Last 30 days, Last 90 days, Last 180 days - Last 12 Months **Custom Periods:** - Any date range in YYYY-MM-DD format ## ๐Ÿ”ง **Development** ### **Project Structure** ``` cx-timefilter-mcp-server/ โ”œโ”€โ”€ src/ โ”‚ โ”œโ”€โ”€ server.js # Main server โ”‚ โ”œโ”€โ”€ tools/ โ”‚ โ”‚ โ””โ”€โ”€ timefilter.js # Time filter tools โ”‚ โ”œโ”€โ”€ utils/ โ”‚ โ”‚ โ””โ”€โ”€ mcp-protocol.js # MCP utilities โ”‚ โ”œโ”€โ”€ middleware/ โ”‚ โ”‚ โ””โ”€โ”€ auth.js # Authentication โ”‚ โ””โ”€โ”€ test.js # Test suite โ”œโ”€โ”€ package.json โ”œโ”€โ”€ .env โ””โ”€โ”€ README.md ``` ### **Adding New Tools** 1. Create tool definition in `src/tools/` 2. Add validation schema 3. Implement execute function 4. Export in tools array 5. Update README ## ๐Ÿ› **Troubleshooting** **Common Issues:** 1. **Port already in use**: Change `PORT` in `.env` 2. **CORS errors**: Update `ALLOWED_ORIGINS` in `.env` 3. **Auth failures**: Check `MCP_API_KEY` configuration 4. **Tool not found**: Verify tool name matches exactly **Debug Mode:** ```bash NODE_ENV=development npm start ``` ## ๐Ÿ“„ **License** MIT License - see LICENSE file for details. ## ๐Ÿค **Contributing** 1. Fork the repository 2. Create a feature branch 3. Make your changes 4. Add tests 5. Submit a pull request --- **Ready to integrate with Langflow and start filtering time periods via MCP! ๐ŸŽ‰**

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/shashi29vs/MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server