Lambda MCP
一个Python MCP(模型上下文协议)服务器,提供各种用于数据查询和分析的开发工具。
描述
Lambda MCP 是一个基于 FastMCP 的服务器,为开发者提供了多种工具:
- Elasticsearch 查询通过Kibana的代理API查询Elasticsearch集群
- 数据浏览器通过数据服务API在数据库上执行SQL查询
该服务器具备智能响应处理功能,能够自动进行令牌计数,以高效管理大型响应。
特点/特性
- 通过 Kibana 代理查询 Elasticsearch
- 通过数据服务API使用HMAC认证查询数据库
- 支持基本认证(Kibana)和HMAC-SHA256(数据服务)
- 具有可配置限制的代币计数
- 对于大型响应,自动输出文件
- JSON查询验证和jq过滤支持
- 处理网络和认证问题的错误处理
- 模块化架构,便于扩展
安装
来自源头
- 克隆仓库:
git clone https://github.com/yourusername/lambda-mcp.git
cd lambda-mcp- 安装该软件包:
pip install -e .使用 pip
pip install lambda-mcp使用方法
作为一个独立脚本
python lambda_mcp.py使用已安装的命令
lambda-mcp环境变量
LAMBDA_MCP_MAX_TOKEN_NUM保存到文件前响应中允许的最大标记数(默认:30000)
可用工具
1. 通过Kibana查询Elasticsearch
通过Kibana代理查询Elasticsearch,并可选使用jq进行过滤。
参数:
base_url(str): Kibana 基础 URL(例如,https://kibana.example.com)username(str): Kibana 认证的用户名(如果不需要认证,请使用空字符串)password(字符串):Kibana 认证密码(如果不需要认证,请使用空字符串)path(字符串): Elasticsearch 查询路径(例如,index/\_search,\_cat/indices)jq_query(str, 可选): 用于过滤结果的 jq 查询语句(默认:"")query(str, 可选): 作为字符串的JSON查询体(默认值: "{}")
返回:
- 字符串:查询结果以JSON字符串形式返回,如果结果过大,则返回文件信息的JSON
示例:
result = query_elasticsearch_via_kibana(
base_url="http://kibana.example.com",
username="your_username",
password="your_password",
path="_cat/indices",
jq_query='.[] | select(.index | contains("myindex"))',
query="{}"
)2. 查询数据探索器
通过数据服务API在数据库上执行SQL查询。
参数:
secret(str): HMAC认证的密钥module_nameAPI请求的模块名称base_url数据服务API的基础URL(例如,https://data-service.example.com)api_path查询端点的API路径(例如,api/v1/service/query)dbname(字符串): 要查询的数据库名称sql(str): 要执行的SQL查询字符串
返回值:
- 字符串:查询结果以JSON字符串形式返回,如果结果过大,则返回文件信息JSON
示例:
result = query_data_explorer(
secret="your_secret_key",
module_name="chatbot_admin",
base_url="https://data-service.example.com",
api_path="api/v1/service/query",
dbname="my_database",
sql="SELECT * FROM users WHERE created_at > '2024-01-01' LIMIT 100"
)项目结构
看 STRUCTURE.md 翻译为中文是:“结构说明文件(或结构文件)” 关于项目架构的详细信息以及如何对其进行扩展。
发展
安装开发依赖项
pip install -e ".[dev]"代码格式化
black lambda_mcp.py lib/ tools/
isort lambda_mcp.py lib/ tools/类型检查
mypy lambda_mcp.py lib/ tools/依赖项
requests>=2.25.0用于API调用的HTTP库fastmcp>=0.1.0针对MCP服务器的FastMCP框架tokenizers>=0.13.0代币计数功能jq>=1.0.0JSON过滤
安全注意事项
- 未存储任何凭据所有身份验证凭据(密码、密钥、API密钥)必须由调用者提供
- 没有硬编码的URL所有服务端点必须在运行时提供
- 临时文件大响应内容会被保存到临时文件中,使用后应进行清理
许可证
麻省理工学院许可证
贡献
欢迎贡献!请随时提交拉取请求。
