模型上下文协议服务器

MCP服务器通过Ikigai平台管理数据集、流程、仪表板和图表的数据管理工具

  • by harsh-at-ikigailabs
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 harsh-at-ikigailabs/mcp-demo

使用说明

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

参考: Ikigai库-从应用程序中查找数据集

下载_数据集

下载给定名称的数据集的数据。

将数据集下载为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库-从应用程序中寻找流程

运行流

运行给定名称的流。

在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"]
    }
  ]
}

参考: Ikigai库-从应用程序中查找数据集

flows://all

以JSON格式包含应用程序中所有流的资源。

输出:

{
  "flows": [
    {
      "name": "Data Processing Flow",
      "id": "flow123"
    },
    {
      "name": "ML Training Flow",
      "id": "flow456"
    }
  ]
}

参考: Ikigai库-从应用程序中寻找流程

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 根据《 麻省理工学院 许可证。