使用说明
MCP服务器
一个模型上下文协议(MCP)服务器,用于通过Ikigai平台管理数据集、流、仪表板和图表。
特性
此MCP服务器提供以下工具:
- 列表_数据集:列出所有可用数据集
- 下载_数据集:下载给定名称的数据集的数据
- list_flow:列出所有可用流
- 运行流:运行给定名称的流
- list_dashboards:列出所有可用的仪表板
- 列表_图表:列出所有可用图表
安装
从源代码安装
# Clone the repository
git clone https://github.com/harsh-at-ikigailabs/mcp-demo.git
cd mcp-demo
# Install the package
pip install .
开发安装
此项目使用 孵化 用于项目管理。设置开发环境:
# Install hatch (if not already installed)
pip install hatch
# Create and activate the development environment
hatch env create
hatch shell
# Build the project
hatch build
Claude桌面配置
要将此MCP服务器与Claude Desktop一起使用,请将以下配置添加到您的 claude_desktop_config.json 文件:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
视窗: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"ikigai": {
"command": "mcp-server",
"args": [
"--base-url", "https://api.ikigailabs.io",
"--user-email", "your-email@example.com",
"--api-key", "your-api-key",
"--app-name", "your-app-name"
]
}
}
}
将占位符值替换为您的实际Ikigai凭据:
your-email@example.com:您的邮件your-api-key:您的Ikigai API密钥your-app-name:您要连接的Ikigai应用程序的名称
更新配置后,重新启动Claude Desktop以使更改生效。
用法
运行MCP服务器
MCP服务器使用FastMCP的流式HTTP传输通过HTTP进行通信。要运行它,您必须提供所需的CLI参数:
hatch run dev -- --base-url https://api.ikigailabs.io --user-email user@example.com --api-key your-api-key --app-name your-app-name
或者直接:
python -m mcp_server.server --base-url https://api.ikigailabs.io --user-email user@example.com --api-key your-api-key --app-name your-app-name
或者使用已安装的脚本:
mcp-server --base-url https://api.ikigailabs.io --user-email user@example.com --api-key your-api-key --app-name your-app-name
必需的CLI参数
--base-url:Ikigai API的基本URL--user-email:用于身份验证的用户电子邮件--api-key:用于身份验证的API密钥--app-name:要连接的Ikigai应用程序的名称
发展
运行测试:
hatch run test
类型检查:
hatch run types:check
格式代码:
hatch run fmt
棉绒编码:
hatch run lint
项目结构
mcp-server/
├── src/
│ └── mcp_server/
│ ├── __init__.py
│ ├── __about__.py
│ └── server.py # Main MCP server implementation
├── tests/
│ └── test_server.py
├── pyproject.toml # Project configuration
└── README.md
MCP工具
列表_数据集
列出应用程序中的所有可用数据集。
数据集是存储在Ikigai平台中的数据文件。它们可以是CSV文件、Excel文件或已上传到Ikigai的Pandas DataFrames。
输入:无
输出:列出所有数据集的格式化字符串。例子:
Found 3 datasets:
- Sales Data (ID: abc123): Size: 1500: Data Types: {'date': 'datetime', 'amount': 'float', 'product': 'str'}
- Customer Info (ID: def456): Size: 500: Data Types: {'name': 'str', 'email': 'str', 'signup_date': 'datetime'}
- Inventory (ID: ghi789): Size: 2000: Data Types: {'sku': 'str', 'quantity': 'int', 'warehouse': 'str'}
下载_数据集
下载给定名称的数据集的数据。
将数据集下载为pandas DataFrame,并以JSON格式返回前10行。这对于在不下载整个数据集的情况下检查数据集内容非常有用。数据集可以是已上传到平台的存储在Ikigai中的任何数据文件(CSV、Excel等)。
输入:
dataset_name(str):要下载的数据集的名称。使用list_datasets查看可用的数据集名称。
输出:一个JSON字符串,包含:
dataset_name:数据集的名称row_count:返回的行数(限制为10)visible_row_index:响应中可见的行索引列表column_count:数据集中的列数columns:列名列表data:行数组,其中每一行都是一个值数组
示例:
{
"dataset_name": "Sales Data",
"row_count": 10,
"visible_row_index": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
"column_count": 5,
"columns": ["date", "product", "quantity", "price", "total"],
"data": [
["2024-01-01", "Widget A", 10, 25.99, 259.90],
["2024-01-02", "Widget B", 5, 15.50, 77.50],
["2024-01-03", "Widget A", 8, 25.99, 207.92]
]
}
参考: Ikigai库-下载现有数据集
list_flow
列出应用程序中的所有可用流。
Flow是Ikigai应用程序中的一个组件,它使您能够执行分析或计算。每个Flow都包含一个Flow Definition,它指定了执行数据摄取、数据转换、模型机器学习和输出数据等操作的Facet类型的顺序。
输入:无
输出:列出所有流的格式化字符串。例子:
Found 2 flows:
- Data Processing Flow (ID: flow123): Status: SUCCESS
- ML Training Flow (ID: flow456): Status: IDLE
运行流
运行给定名称的流。
在Ikigai平台上执行流。当流运行时,它按顺序执行流定义中定义的所有方面,执行数据摄取、转换、机器学习和数据输出等操作。创建了一个RunLog,用于存储运行的详细信息,包括状态、时间戳和任何错误信息。流必须存在于应用程序中并正确配置,然后才能运行。
输入:
flow_name(str):要运行的流的名称。使用list_flows查看可用的流名称。
输出:包含运行日志信息的JSON字符串:
flow_name:执行的流的名称status:流运行的状态(成功、失败等)log_id:此运行日志的唯一标识符user:运行流的用户的电子邮件erroneous_facet_id:导致错误的方面的ID(如果有,否则为空)data:运行中的其他数据timestamp:执行流程时(ISO格式)
示例:
{
"flow_name": "Data Processing Flow",
"status": "SUCCESS",
"log_id": "log_abc123xyz",
"user": "user@example.com",
"erroneous_facet_id": null,
"data": "",
"timestamp": "2025-01-01 11:00:05+00:00"
}
参考: Ikigai图书馆-流动
list_dashboards
列出应用程序中所有可用的仪表板。
仪表板是Ikigai中的可视化组件,用于显示数据和见解。它们可以包含多个图表和小部件,以提供数据的全面视图。
备注:仪表板功能可能不适用于所有Ikigai API版本。
输入:无
输出:列出所有仪表板的格式化字符串。例子:
Found 2 dashboards:
- Sales Dashboard (ID: dash123)
- Analytics Overview (ID: dash456)
或者,如果不可用: "Dashboards functionality is not available in the current Ikigai API."
列表_图表
列出应用程序中所有可用的图表。
图表是Ikigai中的可视化组件,以各种格式(条形图、折线图、饼图等)显示数据。图表通常与数据集相关联,可以嵌入仪表板中。
备注:图表功能可能不适用于所有Ikigai API版本。
输入:无
输出:列出所有图表的格式化字符串。例子:
Found 3 charts:
- Revenue Chart (ID: chart123): Type: bar
- Trends Chart (ID: chart456): Type: line
- Distribution (ID: chart789): Type: pie
或者,如果不可用: "Charts functionality is not available in the current Ikigai API."
资源
服务器还公开了以下资源,这些资源提供对Ikigai组件的编程访问:
datasets://all
以JSON格式包含应用程序中所有数据集的资源。
输出:
{
"datasets": [
{
"name": "Sales Data",
"id": "abc123",
"size": 1500,
"columns": ["date", "amount", "product"]
},
{
"name": "Customer Info",
"id": "def456",
"size": 500,
"columns": ["name", "email", "signup_date"]
}
]
}
flows://all
以JSON格式包含应用程序中所有流的资源。
输出:
{
"flows": [
{
"name": "Data Processing Flow",
"id": "flow123"
},
{
"name": "ML Training Flow",
"id": "flow456"
}
]
}
dashboards://all
以JSON格式包含应用程序中所有仪表板的资源。
输出:
{
"dashboards": [
{
"name": "Sales Dashboard",
"id": "dash123"
}
]
}
或者,如果仪表板不可用:
{
"dashboards": [],
"message": "Dashboards not available"
}
备注:仪表板功能可能不适用于所有Ikigai API版本。
charts://all
包含应用程序中所有JSON格式图表的资源。
输出:
{
"charts": [
{
"name": "Revenue Chart",
"id": "chart123"
}
]
}
或者,如果图表不可用:
{
"charts": [],
"message": "Charts not available"
}
备注:图表功能可能不适用于所有Ikigai API版本。
建筑
本项目遵循现代Python最佳实践:
- 使用赫氏公司进行项目管理和构建
- 全程键入提示
- 结构化日志记录
logging模块 - 用于MCP服务器实施的FastMCP
- 同步工具处理程序,简单易用
许可证
mcp-server 根据《 麻省理工学院 许可证。
