使用说明
Sigma MCP服务器部署指南
概述
本指南指导您通过API网关将Sigma MCP服务器部署到AWS Lambda。
测试MCP服务器的示例问题
“Sigma MCP服务器的状态如何?” “检查Sigma MCP服务器连接” “测试Sigma MCP服务器连接” “Sigma MCP服务器是否正常工作?” “获取Sigma MCP服务器的当前状态” “验证Sigma MCP服务器是否正常运行”
建筑
Claude/MCP Client → API Gateway → Lambda → DynamoDB (cache)
↓
Secrets Manager (credentials)
↓
Sigma API
先决条件
- AWS-CLI 配置了适当的权限
- 地形 已安装(v1.0+)
- Node.js 18+和npm
- 西格玛API证书 (客户端ID和密码)
步骤1:准备Lambda包
# Install dependencies
npm install
# Build the TypeScript code
npm run build
# Create deployment package
npm run package
这创造了 sigma-mcp-server.zip 使用编译后的代码和依赖关系。
步骤2:配置地形变量
创建一个 terraform.tfvars 文件:
aws_region = "us-east-1"
environment = "dev"
sigma_base_url = "https://api.sigmacomputing.com"
步骤3:部署基础设施
# Initialize Terraform
terraform init
# Plan the deployment
terraform plan
# Apply the changes
terraform apply
重要:部署后,使用您的实际Sigma凭据更新Secrets Manager密钥:
aws secretsmanager update-secret \
--secret-id "sigma-api-credentials-dev" \
--secret-string '{"clientId":"YOUR_ACTUAL_CLIENT_ID","clientSecret":"YOUR_ACTUAL_SECRET"}'
步骤4:初始缓存填充
在MCP服务器可以搜索文档之前,需要填充文档缓存。您可以通过以下方式做到这一点:
选项A:一次性脚本
创建一个简单的脚本来填充缓存:
// populate-cache.ts
import { SigmaApiClient } from './src/sigma-client.js';
import { DocumentCache } from './src/document-cache.js';
async function populateCache() {
const client = new SigmaApiClient({
baseUrl: process.env.SIGMA_BASE_URL!,
clientId: process.env.SIGMA_CLIENT_ID!,
clientSecret: process.env.SIGMA_CLIENT_SECRET!,
});
const cache = new DocumentCache(process.env.CACHE_TABLE_NAME!);
await client.initialize();
await cache.initialize();
await cache.refreshCache(client);
console.log('Cache populated successfully');
}
populateCache().catch(console.error);
选项B:Lambda函数调用
您可以直接调用Lambda来触发缓存刷新(您需要为此添加一个端点)。
步骤5:配置Claude桌面
将您的MCP服务器添加到Claude Desktop的配置中:
{
"mcpServers": {
"sigma-analytics": {
"command": "node",
"args": [
"path/to/mcp-client-script.js"
],
"env": {
"API_GATEWAY_URL": "https://your-api-id.execute-api.region.amazonaws.com/dev"
}
}
}
}
您需要创建一个与API网关端点(而不是stdio)通信的客户端脚本。
API网关设置详细信息
Terraform创建:
- REST API -API网关主要资源
- 代理资源 -
{proxy+}捕捉所有路径 - 任何方法 -接受所有HTTP方法
- Lambda集成 -将请求路由到Lambda函数
- 部署 -使用调用URL创建阶段(dev/prod)
API网关流:
- 客户端在正文中发送带有MCP请求的HTTP POST
- API网关通过AWS_PROXY集成转发到Lambda
- Lambda处理MCP请求并返回响应
- API网关向客户端返回响应
环境变量
Lambda函数使用这些环境变量(由Terraform设置):
SIGMA_BASE_URL-西格玛API终点CACHE_TABLE_NAME-DynamoDB表名NODE_ENV-环境(开发/生产)
凭据会自动从AWS Secrets Manager加载。
监控和日志
- CloudWatch日志:
/aws/lambda/sigma-mcp-server-{environment} - API网关日志:可以在API网关控制台中启用
- DynamoDB指标:在CloudWatch中可用
输出
部署后,Terraform提供:
# Get the API Gateway URL
terraform output api_gateway_url
# Get other resource names
terraform output lambda_function_name
terraform output dynamodb_table_name
terraform output secrets_manager_secret_name
局部测试
在部署到AWS之前,您可以在本地测试MCP服务器:
1.设置环境变量
创建一个 .env 项目根目录中的文件(此文件已在.gitignore中):
# Sigma API Configuration
SIGMA_CLIENT_ID=your_actual_sigma_client_id
SIGMA_CLIENT_SECRET=your_actual_sigma_client_secret
SIGMA_BASE_URL=https://api.sigmacomputing.com
# Cache Configuration
# Set to 'true' to skip caching entirely (for local testing)
# Set to 'false' or omit to use DynamoDB cache (for production)
SKIP_CACHE=true
# AWS Configuration (for local testing, these can be empty or use localstack)
AWS_REGION=us-east-1
CACHE_TABLE_NAME=sigma-documents-cache
# Environment
NODE_ENV=development
2.安装依赖项
npm install
3.测试心跳
运行本地测试脚本以验证连接:
npm run test:local
这将:
- 检查您的环境变量
- 构建TypeScript代码
- 启动MCP服务器
- 发送心跳请求
- 显示服务器状态的响应
4.手动测试
您还可以手动运行服务器并与之交互:
# Build the project
npm run build
# Start the server
npm start
服务器将在stdio上运行并等待MCP请求。
备注:使用时 SKIP_CACHE=true,服务器将为每个请求直接从Sigma API获取数据,这对于测试很有用,但可能比使用缓存数据慢。
测试
测试部署:
调试
MCP服务器包括全面的调试功能,以帮助解决REST API调用Sigma的问题。
启用调试模式
要启用调试模式,请设置 DEBUG_MODE 环境变量:
export DEBUG_MODE=true
或者将其添加到您的 .env 文件:
DEBUG_MODE=true
调试输出
启用调试模式后,您将看到以下内容的详细日志记录:
- MCP服务器操作:工具调用、资源请求、错误处理
- Sigma API调用:HTTP请求、响应、身份验证
- 文档分析:缓存操作、数据获取、解析
- 许可证管理:令牌刷新、过期、身份验证状态
使用调试模式进行测试
使用测试脚本运行analyze_documents工具并进行调试:
# Build the project first
npm run build
# Run the test with debugging
node test-analyze-documents.js
调试日志格式
调试消息遵循以下格式:
🔍 [DEBUG]-信息和进展✅ [DEBUG]-成功消息❌ [DEBUG]-错误消息⚠️ [DEBUG]-警告
常见调试场景
- 身份验证问题:检查令牌刷新日志
- API调用失败:查找HTTP状态代码和错误响应
- 数据解析问题:检查JSONL解析日志
- 缓存问题:验证缓存命中/未命中模式
故障排除步骤
- 检查环境变量:确保设置了所有必需的变量
- 验证Sigma API证书:首先使用心跳工具进行测试
- 检查网络连接:检查Sigma API端点是否可达
- 检查缓存状态:验证文档缓存是否正常工作
安全考虑
- API网关 在此原型中没有身份验证-请考虑为生产添加API密钥或IAM身份验证
- 秘密经理 通过自动轮换功能安全地存储凭据
- IAM角色 遵循最小特权原则
- 垂直路径计算机 -考虑在VPC中部署Lambda以增强网络安全性
扩展和性能
- 拉姆达:自动称重,冷启动~1-2秒
- DynamoDB:按需计费自动计费
- API网关:默认情况下每秒最多可处理10000个请求
- 缓存策略:Lambda中的内存缓存用于快速查找,DynamoDB用于持久化
故障排除
常见问题:
- “未找到密码” -使用真实凭据更新Secrets Manager
- “找不到表” -确保DynamoDB表存在并且Lambda具有权限
- 冷启动 -空闲时间后的第一个请求需要更长的时间
- CORS错误 -API网关包括CORS头
有关详细的错误信息,请查看CloudWatch日志。
