时间过滤MCP服务器

提供时间过滤工具的MCP服务器,用于CX Dashboard,支持预设时间段和自定义日期范围设置。

  • by shashi29vs
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 shashi29vs/MCP

使用说明

CX TimeFilter MCP 服务器

A. 模型上下文协议(MCP)服务器 为CX仪表板提供时间过滤工具。该服务器提供了时间过滤功能,任何兼容MCP的客户端(包括Langflow)均可使用。

🎯(目标) 特点/特性

  • 设置预定义时间段上个月,最近7天,本季度等。
  • 设置自定义日期范围指定确切的开始和结束日期
  • 列出可用时间段获取所有支持的时间段
  • 基于HTTP的MCP协议易于与任何MCP客户端集成
  • 可选认证API密钥保护
  • 全面验证输入验证和错误处理

🚀(火箭/快速上升的箭头,常用于表示快速进展、进步或加速) 快速入门

1. 安装

# Clone or create the project directory
mkdir cx-timefilter-mcp-server
cd cx-timefilter-mcp-server

# Install dependencies
npm install

2. 配置

# 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. 启动服务器

# Development mode
npm run dev

# Production mode
npm start

# Run tests
npm test

4. 验证安装

# 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"
    }
  }'

🛠️(扳手,常用于表示工具或修理) 可用工具

1. 设置时间段

为仪表板选项卡设置一个预定义的时间段。

参数:

  • timePeriodName (字符串):时间段的确切名称
  • tabName (字符串):仪表板选项卡名称

示例:

{
  "name": "set_time_period",
  "arguments": {
    "timePeriodName": "Last Month",
    "tabName": "Overview"
  }
}

2. 设置自定义日期范围

设置一个自定义日期范围,指定具体的开始日期和结束日期。

参数:

  • startDate (字符串):开始日期,格式为YYYY-MM-DD
  • endDate (字符串):结束日期,格式为YYYY-MM-DD
  • tabName (字符串):仪表板选项卡名称

示例:

{
  "name": "set_custom_date_range",
  "arguments": {
    "startDate": "2024-01-01",
    "endDate": "2024-01-31",
    "tabName": "Comparison"
  }
}

3. 列出时间段

列出所有可用的预定义时间段。

参数: 无

示例:

{
  "name": "list_time_periods",
  "arguments": {}
}

🔗(此符号通常表示链接,但无具体上下文,故直接以原符号呈现) API 端点

终点(Endpoint) 方法(Method) 描述(Description)
/health GET 健康检查
/mcp/info GET MCP 协议信息
/mcp/tools GET 列出可用工具列表
/mcp/tools/call POST 执行一个工具
/mcp POST 完整的MCP协议端点

🔐 认证

服务器支持可选的API密钥认证:

  1. 设置API密钥添加 MCP_API_KEY=your-secret-key 到;向;对于;为了;在(表示时间或地点) .env
  2. 在请求中包含添加 Authorization: Bearer your-secret-key 头球
  3. 替代格式: ApiKey your-secret-key 或者 Key your-secret-key

🌐(表示“世界”或“互联网”的符号) Langflow 集成

步骤1:添加MCP工具组件

  1. 打开你的Langflow项目
  2. 添加一个“MCP 工具”组件
  3. 配置连接

步骤2:配置连接

{
  "serverName": "CX TimeFilter Server",
  "connectionMode": "HTTP",
  "serverUrl": "http://localhost:3000",
  "apiKey": "your-api-key",
  "endpoints": {
    "tools": "/mcp/tools",
    "call": "/mcp/tools/call"
  }
}

步骤3:在流程中使用工具

这些工具将出现在Langflow中,并且可以在您的AI工作流程中使用。

📦 箱子/包裹 部署

铁路(推荐)

# Install Railway CLI
npm install -g @railway/cli

# Login and deploy
railway login
railway init
railway up

渲染

  1. 连接您的GitHub仓库
  2. 设置环境变量
  3. 自动部署

Docker

FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["npm", "start"]

🧪 表示“实验”或“试管”的意思。 测试

# 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": {}
  }'

📊(图表) 支持的时间段

日历周期:

  • 全部时间,今天,昨天
  • 本周,上周
  • 本月,上月
  • 本季度,上季度
  • 今年,去年

滚动周期:

  • 过去24小时,过去7天,过去14天
  • 过去30天,过去90天,过去180天
  • 过去12个月

自定义周期:

  • 任何以YYYY-MM-DD格式表示的日期范围

🔧 修理工具或扳手的符号,常用于表示需要修理或维护的物品或情境。 发展

项目结构

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

添加新工具

  1. 在(某处/某系统中)创建工具定义 src/tools/
  2. 添加验证模式
  3. 实现执行函数
  4. 导出到工具数组
  5. 更新README文件

🐛(虫子,常用来表示一个错误或小故障,类似于“bug”) 故障排除

常见问题:

  1. 端口已被使用改变 PORT in .env
  2. CORS 错误更新 ALLOWED_ORIGINS in .env
  3. 认证失败检查 MCP_API_KEY 配置
  4. 未找到工具验证工具名称完全匹配

调试模式:

NODE_ENV=development npm start

📄(文件/纸张) 许可证

MIT 许可证 - 详情请参阅 LICENSE 文件。

🤝(握手) 做出贡献

  1. 为仓库创建分支副本
  2. 创建一个特性分支
  3. 做出你的更改
  4. 添加测试
  5. 提交拉取请求

准备与Langflow集成,并通过MCP开始筛选时间段! 🎉