Skip to main content
Glama
KumoRFM MCP Server

KumoRFM MCP Server

Official
by kumo-ai

PyPI - Python Version PyPI Status Slack

🔬 MCP server to query KumoRFM in your agentic flows

📖 Introduction

KumoRFM is a pre-trained Relational Foundation Model (RFM) that generates training-free predictions on any relational multi-table data by interpreting the data as a (temporal) heterogeneous graph. It can be queried via the Predictive Query Language (PQL).

This repository hosts a full-featured MCP (Model Context Protocol) server that empowers AI assistants with KumoRFM intelligence. This server enables:

  • 🕸️ Build, manage, and visualize graphs directly from CSV or Parquet files

  • 💬 Convert natural language into PQL queries for seamless interaction

  • 🤖 Query, analyze, and evaluate predictions from KumoRFM (missing value imputation, temporal forecasting, etc) all without any training required

Related MCP server: GraphJin

🚀 Installation

🐍 Traditional MCP Server

The KumoRFM MCP server is available for Python 3.10 and above. To install, simply run:

pip install kumo-rfm-mcp

Add to your MCP configuration file (e.g., Claude Desktop's mcp_config.json):

{
  "mcpServers": {
    "kumo-rfm": {
      "command": "python",
      "args": ["-m", "kumo_rfm_mcp.server"],
      "env": {
        "KUMO_API_KEY": "your_api_key_here"
      }
    }
  }
}

HTTP Transport

For HTTP-native MCP clients such as a Snowflake Native App, run the server with streamable-http instead of stdio:

KUMO_API_KEY=<YOUR-KUMO-API-KEY> \
MCP_BEARER_TOKEN=<SHARED-MCP-TOKEN> \
python -m kumo_rfm_mcp.server \
  --transport streamable-http \
  --host 0.0.0.0 \
  --port 8000 \
  --path /mcp

Notes:

  • Set KUMO_API_KEY up front for headless deployments. This avoids the browser-based OAuth flow.

  • If your MCP client cannot inject environment variables, call the authenticate tool with an api_key argument once at session start.

  • If MCP_BEARER_TOKEN is set, the HTTP endpoint requires Authorization: Bearer <SHARED-MCP-TOKEN>.

⚡ MCP Bundle

We provide a single-click installation via our MCP Bundle (MCPB) (e.g., for integration into Claude Desktop):

  1. Download the dxt file from here

  2. Double click to install

The MCP Bundle supports Linux, macOS and Windows, but requires a Python executable to be found in order to create a separate new virtual environment.

Claude code

To include the server in claude code use:

claude mcp add --transport stdio kumo-rfm-mcp --env KUMO_API_KEY=<YOUR-API-KEY> -- python -m kumo_rfm_mcp.server --port 8000

🎬 Claude Desktop Demo

See here for the transcript.

https://github.com/user-attachments/assets/56192b0b-d9df-425f-9c10-8517c754420f

🔬 Agentic Workflows

You can use the KumoRFM MCP directly in your agentic workflows:

Browse our examples to get started with agentic workflows powered by KumoRFM.

📚 Available Tools

I/O Operations

  • 🔍 find_table_files - Searching for tabular files: Find all table-like files (e.g., CSV, Parquet) in a directory.

  • 🧐 inspect_table_files - Analyzing table structure: Inspect the first rows of table-like files.

Graph Management

  • 🗂️ inspect_graph_metadata - Reviewing graph schema: Inspect the current graph metadata.

  • 🔄 update_graph_metadata - Updating graph schema: Partially update the current graph metadata.

  • 🖼️ get_mermaid - Creating graph diagram: Return the graph as a Mermaid entity relationship diagram.

  • 🕸️ materialize_graph - Assembling graph: Materialize the graph based on the current state of the graph metadata to make it available for inference operations.

  • 📂 lookup_table_rows - Retrieving table entries: Lookup rows in the raw data frame of a table for a list of primary keys.

Model Execution

  • 🤖 predict - Running predictive query: Execute a predictive query and return model predictions.

  • 📊 evaluate - Evaluating predictive query: Evaluate a predictive query and return performance metrics which compares predictions against known ground-truth labels from historical examples.

  • 🧠 explain - Explaining prediction: Execute a predictive query and explain the model prediction.

🔧 Configuration

Environment Variables

  • KUMO_API_KEY: Authentication is needed once before predicting or evaluating with the KumoRFM model. You can generate your KumoRFM API key for free here. If not set, you can also authenticate on-the-fly in individual session via an OAuth2 flow.

We love your feedback! :heart:

As you work with KumoRFM, if you encounter any problems or things that are confusing or don't work quite right, please open a new :octocat:issue. You can also submit general feedback and suggestions here. Join our Slack!

Available Tools

12 tools
authenticate🔑 Signing in to KumoRFM…A

Authenticate the current KumoRFM session.

Authentication is needed once before predicting or evaluating with the KumoRFM model. If an API key is provided directly, it is used immediately. Otherwise, if the 'KUMO_API_KEY' environment variable is not set, this initiates an OAuth2 authentication flow by opening a browser window for user login. Sets the 'KUMO_API_KEY' environment variable upon successful authentication.

Inputs: api_key, api_url. Returns: Generic wrapper for non-object return types.

evaluate📊 Evaluating predictive query…A
Read-onlyIdempotent

Evaluate a predictive query and return performance metrics which compares predictions against known ground-truth labels from historical examples.

The graph needs to be materialized and the session needs to be authenticated before the KumoRFM model can start evaluating.

Take the label distribution of the predictive query in the output logs into account when analyzing the returned metrics.

Important: Before executing or suggesting any predictive queries, read the documentation first at 'kumo://docs/predictive-query'.

Inputs: query (required), metrics, anchor_time, run_mode, +2 more. Returns: metrics, logs

explain🧠 Explaining prediction…A
Read-onlyIdempotent

Execute a predictive query and explain the model prediction.

The graph needs to be materialized and the session needs to be authenticated before the KumoRFM model can start generating an explanation for a prediction.

Only a single entity prediction can be explained at a time. The run_mode will be fixed to 'fast' mode for explainability. Note that the model prediction returned by the explanation might differ slightly from the result of the predict tool due to floating-point precision. Ignore such small differences.

Important: Before executing or suggesting any predictive queries, read the documentation first at 'kumo://docs/predictive-query'.

Important: Before analyzing the explanation output, read the documentation first at 'kumo://docs/explainability'.

Inputs: query (required), index (required), anchor_time, num_neighbors, +1 more. Returns: prediction, explanation, logs

find_table_files🔍 Searching for tabular files…A
Read-onlyIdempotent

Finds all table-like files (e.g., CSV, Parquet) in a directory.

This tool is for local directories only. It cannot search, e.g., in S3 buckets.

Inputs: path (required), recursive. Returns: Generic wrapper for non-object return types.

get_docs📖 Reading…A
Read-only

Get documentation on how to use KumoRFM.

KumoRFM is a pre-trained Relational Foundation Model (RFM) that generates training-free predictions on any relational multi-table data by interpreting the data as a (temporal) heterogeneous graph. It can be queried via the Predictive Query Language (PQL).

Internal note: It is NOT related to "Recency, Frequency, Monetary" analysis.

Internally, KumoRFM utilizes in-context learning to transfer patterns from historical examples to new unseen examples. Specifically, it constructs training/in-context subgraphs with known ground-truth labels and relates them to unseen subgraphs.

See the 'kumo://docs/overview' resource for more information.

KumoRFM can discover table-like files (e.g., CSV, Parquet), inspect them, and structure them into a graph via foreign key-primary key relationships. A time column in a table dictates the create time of a row, which is used downstream to receive and order historical interactions and prevent temporal leakage. Each column within a table is assigned a semantic type (numerical, categorical, multi-categorical, ID, text, timestamp, sequence, etc) that denotes the semantic meaning of the column and how it should be processed within the model.

Important: Before creating and updating graphs, read the documentation first at 'kumo://docs/graph-setup'.

After a graph is set up and materialized, KumoRFM can generate predictions (e.g., missing value imputation, temporal forecasts) and evaluations by querying the graph via the Predictive Query Language (PQL), a declarative language to formulate machine learning tasks. Understanding PQL and how it maps to a machine learning task is critical to achieve good model predictions. Besides PQL, various other options exist to tune model output, e.g., optimizing the run_mode of the model, specifying how subgraphs are formed via num_neighbors, or adjusting the anchor_time to denote the point in time for when a prediction should be made.

Important: Before executing or suggesting any predictive queries, read the documentation first at 'kumo://docs/predictive-query'.

KumoRFM can additionally generate explanations for predictions, providing both a global column-level analysis and a local, cell-level attribution view. Together, these views enable comprehensive interpretation.

Important: Before analyzing the explanation output, read the documentation first at 'kumo://docs/explainability'.

Inputs: resource_uri (required). Returns: Generic wrapper for non-object return types.

get_mermaid🖼️ Creating graph diagram…A
Read-onlyIdempotent

Return the graph as a Mermaid entity relationship diagram.

Important: The returned Mermaid markup can be used to input into an artifact to render it visually on the client side.

Inputs: show_columns. Returns: Generic wrapper for non-object return types.

inspect_graph_metadata🗂️ Reviewing graph schema…A
Read-onlyIdempotent

Inspect the current graph metadata.

Confirming that the metadata is set up correctly is crucial for the RFM model to work properly. In particular,

  • primary keys and time columns need to be correctly specified for each table in case they exist;

  • columns need to point to a valid semantic type that describe their semantic meaning, or None if they have been discarded;

  • links need to point to valid foreign key-primary key relationships.

Inputs: no named parameters. Returns: Metadata of a graph holding multiple tables connected via foreign key-primary k…

inspect_table_files🧐 Analyzing table structure…B
Read-onlyIdempotent

Inspect the first rows of table-like files.

Each row in a file is represented as a dictionary mapping column names to their corresponding values.

Inputs: paths (required), num_rows. Returns: object

lookup_table_rows📂 Retrieving table entries…A
Read-onlyIdempotent

Lookup rows in the raw data frame of a table for a list of primary keys.

In contrast to the 'inspect_table_files' tool, this tool can be used to query specific rows in a registered table in the graph. It should not be used to understand and analyze table schema.

Use this tool to look up detailed information about recommended items to provide richer, more meaningful recommendations to users.

The table to read from needs to have a primary key, and the graph has to be materialized.

Inputs: table_name (required), ids (required). Returns: Preview of the first rows of a table-like file.

materialize_graph🕸️ Assembling graph…A
Idempotent

Materialize the graph based on the current state of the graph metadata to make it available for inference operations (e.g., predict and evaluate).

Any updates to the graph metadata require re-materializing the graph before the KumoRFM model can start making predictions again.

Inputs: no named parameters. Returns: Information about the materialized graph.

predict🤖 Running predictive query…A
Read-onlyIdempotent

Execute a predictive query and return model predictions.

The graph needs to be materialized and the session needs to be authenticated before the KumoRFM model can start generating predictions.

The output prediction format depends on the given task type.

Binary classification: | ENTITY | ANCHOR_TIMESTAMP | TARGET_PRED | False_PROB | True_PROB | where 'ENTITY' holds the entity ID, 'ANCHOR_TIMESTAMP' holds the anchor time of the prediction in unix format, 'TARGET_PRED' holds the final prediction based on a threshold of 0.5, and 'False_PROB' and 'True_PROB' hold the probabilities.

Multi-class classification: | ENTITY | ANCHOR_TIMESTAMP | CLASS | SCORE | PREDICTED | where 'ENTITY' holds the entity ID, 'ANCHOR_TIMESTAMP' holds the anchor time of the prediction in unix format. Each row corresponds to an (ENTITY, CLASS) pair (up to 10 classes are reported), where 'CLASS' holds the predicted value, 'SCORE' holds its probability, and 'PREDICTED' denotes whether the (ENTITY, CLASS) pair has the highest likelihood.

Regression: | ENTITY | ANCHOR_TIMESTAMP | TARGET_PRED | where 'ENTITY' holds the entity ID, 'ANCHOR_TIMESTAMP' holds the anchor time of the prediction in unix format, and 'TARGET_PRED' holds the predicted numerical value.

Temporal link prediction: | ENTITY | ANCHOR_TIMESTAMP | CLASS | SCORE | where 'ENTITY' holds the entity ID, 'ANCHOR_TIMESTAMP' holds the anchor time of the prediction in unix format. Each row corresponds to an (ENTITY, CLASS) pair, where 'CLASS' holds the recommended item and 'SCORE' holds its likelihood.

Important: Before executing or suggesting any predictive queries, read the documentation first at 'kumo://docs/predictive-query'.

Inputs: query (required), indices (required), anchor_time, run_mode, +2 more. Returns: predictions, logs

update_graph_metadata🔄 Updating graph schema…A
Idempotent

Partially update the current graph metadata.

Setting up the metadata is crucial for the RFM model to work properly. In particular,

  • primary keys and time columns need to be correctly specified for each table in case they exist;

  • columns need to point to a valid semantic type that describe their semantic meaning, or None if they should be discarded;

  • links need to point to valid foreign key-primary key relationships.

Omitted fields will be untouched.

For newly added tables, it is advised to double-check semantic types and modify in a follow-up step if necessary.

Make sure that tables are correctly linked before proceeding.

Note that all operations can be performed in a batch at once, e.g., one can add new tables and directly link them to together.

Important: Before creating and updating graphs, read the documentation first at 'kumo://docs/graph-setup'.

Inputs: update (required). Returns: Updated metadata of a graph holding multiple tables connected via " "foreign ke…

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.2/5.0

    Scored across 12 tools

    Disambiguation5/5

    Every tool addresses a distinct aspect of the workflow: authentication, file discovery, metadata inspection/update, graph materialization, prediction, evaluation, explanation, and documentation. There is no functional overlap that would cause confusion.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern in snake_case (e.g., authenticate, find_table_files, inspect_graph_metadata). This makes the expected action and target clear and predictable.

    Tool Count5/5

    12 tools cover the necessary stages of the KumoRFM pipeline without being excessive. Each tool earns its place, and the count is well-suited for a domain-specific ML server.

    Completeness5/5

    The tool set provides end-to-end coverage: data discovery, graph setup, materialization, prediction, evaluation, and explanation. Supporting tools like get_docs and get_mermaid enhance usability. No critical gaps are evident.

    Maintenance

    ActivityNo data
    ResponsivenessSyncing

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      Not graded
      quality
      D
      maintenance
      Enables AI assistants to build and query temporally-aware knowledge graphs from conversations and data, maintaining persistent memory of entities, relationships, and facts across interactions.
      -
    • A
      license
      Not graded
      quality
      A
      maintenance
      Enables AI assistants to query databases using natural language, with automatic schema discovery and SQL compilation.
      833 npm
      3,235
      Apache 2.0
    • A
      license
      A
      quality
      D
      maintenance
      Provides AI assistants with semantic layer visibility and multi-dimensional querying capabilities over Cube.js data.
      2
      16 npm
      1
      MIT